In this section analog I/O will be discussed using a 1794-IE4XOE2/B 4 Input/2Output 24V DC Non-Isolated Analog module. The card has a 12 bit resolution. To use this module it is defined under the ’I/O Configuration’. While configuring the module the following options are available.
• Update rate (Requested Packet Interval) 2-750ms
• Input channel ranges for channels 0 to 3
• Output channel ranges for channel 0 and 1
After the card is configured the configuration words are available in the ’controller scooped tags’. These are listed below with descriptions assuming the card is in ’rack:2:’. The configuration words may also be used to update the card during operation. To do this the values are changed using normal program statements to read or write to values.
rack:2:C.Ch0SafeStateConfig - Sets the safe state when the module update fails
rack:2:C.Ch1SafeStateConfig - Sets the safe state when the module update fails
rack:2:C.Ch0InputFullRange - 0 = 4-20mA; 1 = -10-10V,0-10V,0-20mA
rack:2:C.Ch1InputFullRange - 0 = 4-20mA; 1 = -10-10V,0-10V,0-20mA
rack:2:C.Ch2InputFullRange - 0 = 4-20mA; 1 = -10-10V,0-10V,0-20mA
rack:2:C.Ch3InputFullRange - 0 = 4-20mA; 1 = -10-10V,0-10V,0-20mA
rack:2:C.Ch0OututFullRange - 0 = 4-20mA; 1 = -10-10V,0-10V,0-20mA
rack:2:C.Ch1OutputFullRange - 0 = 4-20mA; 1 = -10-10V,0-10V,0-20mA
rack:2:C.Ch0InputConfigSelect - 0 = 0-10V, 0-20mA; 1 = 4-20mA, -10V-10V
rack:2:C.Ch1InputConfigSelect - 0 = 0-10V, 0-20mA; 1 = 4-20mA, -10V-10V
rack:2:C.Ch2InputConfigSelect - 0 = 0-10V, 0-20mA; 1 = 4-20mA, -10V-10V
rack:2:C.Ch3InputConfigSelect - 0 = 0-10V, 0-20mA; 1 = 4-20mA, -10V-10V
rack:2:C.Ch0OutputConfigSelect - 0 = 0-10V, 0-20mA; 1 = 4-20mA, -10V-10V
rack:2:C.Ch1OutputConfigSelect - 0 = 0-10V, 0-20mA; 1 = 4-20mA, -10V-10V
rack:2:C.SSCh0OutputData - A safe output value for channel 0
rack:2:C.SSCh1OutputData - A safe output value for channel 1
rack:2:I.Fault - Returns a fault code for the module
rack:2:I.Ch0InputData - The analog input value read on channel 0
rack:2:I.Ch1InputData - The analog input value read on channel 1
rack:2:I.Ch2InputData - The analog input value read on channel 2
rack:2:I.Ch3InputData - The analog input value read on channel 3
rack:2:I.Ch0InputUnderrange - The channel 0 current is below 4mA
rack:2:I.Ch1InputUnderrange - The channel 1 current is below 4mA
rack:2:I.Ch2InputUnderrange - The channel 2 current is below 4mA
rack:2:I.Ch3InputUnderrange - The channel 3 current is below 4mA
rack:2:I.Ch0OutputOpenWire - The output current is zero - indicates broken wire
rack:2:I.Ch1OutputOpenWire - The output current is zero - indicates broken wire
rack:2:I.PowerUp - The module is configured and running normally
rack:2:O.Ch0OutputData - The analog output voltage for channel 0
rack:2:O.Ch1OutputData - The analog output voltage for channel 1
Figure 21.1 A Voltage Divide by Two Example shows a simple analog IO example with some error checking. The system uses start and stop buttons to operate, along with a check for module errors. If the system is running the input voltage from input channel 0 will be divided by two and then set as the output voltage for output channel 0. If the system is not running the output voltage on channel zero is set to 0 (0V).
Figure 21.1 A Voltage Divide by Two Example
Although the card is a 12 bit card, it uses data values as if it has 15 digits of accuracy. Hence the valid range for the card is -32,768 to 32,767.