beautypg.com

5 using interrupts in application tasks – Rockwell Automation 57C411 Resolver Input Module User Manual

Page 26

background image

4Ć8

2000

UPDATE_TIME% = 1

\!500 microsecond conversion

2010

CCLK_EN@ = TRUE

\!Turn on the clock

4000

!

4001

! Place any additional initialization software here

4002

!

4998

! Scan every 55 msec.

4999

!

5000

CALL SCAN_LOOP( TICKS=10)

5010

CALL INVERTER( INPUT= RESOLVER_IN%,OUTPUT=READING%)

10000

END

The symbolic names defined as COMMON" reference the inputs

defined in the sample configuration task above. The symbolic name

READING%" is local to the BASIC task and does not have I/O

associated with it. Refer to the DCS 5000 Control Block Language

Instruction Manual (JĆ3601) for more information.

4.5

Using Interrupts in Application Tasks

The input module supports an interrupt on the periodic

resolverĆtoĆdigital conversion. Interrupts are used to synchronize

software tasks with the resolverĆtoĆdigital conversion. Conversion

rates may be specified from 500 microseconds up to a maximum of

32.7675 seconds in increments of 500 microseconds.
In order to use interrupts on the input module, it is necessary to

assign symbolic names to the interrupt control register. This is

accomplished with IODEF statements in the configuration task. Note

that interrupts cannot be used with modules located in remote racks.
Only one task may act as a receiver for a particular hardware

interrupt. That task should declare the symbolic names assigned to

the interrupt control register on the input module as COMMON. Once

this has been done, any reference to those symbolic names within

the task will reference the bits or register defined in the configuration

task.
The following is an example of a configuration task for an input

module using interrupts:

1000

!

1001

! resolver data

1002

!

1005

IODEF RESOLVER_IN%[SLOT=4, REGISTER=0]

1006

IODEF RESOLVER_IN_EXT%[SLOT=4, REGISTER=1]

1010

!

1011

! interrupt status and control register (used by the operating system)

1012

!

1014

IODEF STROBE_STATUS@( SLOT=4, REGISTER=2,BIT=14)

1015

IODEF ISCR%[SLOT=4, REGISTER=3]

1016

IODEF STROBE_ACK@( SLOT=4, REGISTER=3,BIT=12)

1020

!

1021

! common clock enable

1022

!

1025

IODEF CCLK_EN@[SLOT=4, REGISTER=3, BIT=6]

1030

!

1031

! resolver conversion period

1032

!

1035

IODEF UPDATE_TIME%[SLOT=4, REGISTER=4]

1050

!

1051

! Place additional configuration statements here

1052

!

2000

END

This configuration defines all of the information most commonly used

on the module. Unused definitions should be deleted by the user.