GE SRTP OPC Items

 Table Of Contents

Standard Items

See Device Standard Items.

Protocol Items

The GE protocol implementation supports the ability to read from and write to IO memory segments. Client applications have to identify the appropriate memory segment as well as the offset into that memory segment.

All IO memory items start with ‘%’. There are four arguments in the item tag:

  1. The segment of memory that you wish to access (ex. ‘R’).
  2. The second argument is the offset into the previously specified memory segment (ex. ‘100’).
  3. The third argument (an optional modifier) indicates the number of bytes that you wish to read or writes from that offset and what is the correct data type of data (ex. ‘F’ for a four byte floating point).
  4. The fourth argument (optional) is the array size (the number of items you wish to poll using the previous three arguments).

ACM will use default values in the event that you do not specify any optional arguments. For example, the item “%R100” would use the default modifier for ‘R’ memory (a two byte unsigned integer) and a default array size of 1.

Memory Segment List

The GE protocol implementation supports the ability to read from and write to IO memory

Memory SegmentDefault ModifierSupported ModifiersDescription
AIUnsigned Integer (I)F, D, IS, I, L, LS, MAnalog Input
AQUnsigned Integer (I)F, D, IS, I, L, LS, MAnalog Output
GBooleanF, D, IS, I, B, BS, L, LS, MGenius Global
IBooleanF, D, IS, I, B, BS, L, LS, MInput
MBooleanF, D, IS, I, B, BS, L, LS, MSystem
QBooleanF, D, IS, I, B, BS, L, LS, MOutput
RUnsigned Integer (I)F, D, IS, I, L, LS, MRegister
SBooleanIS, I, B, BS, MSystem
SABooleanIS, I, B, BS, MSystem A
SBBooleanIS, I, B, BS, MSystem B
SCBooleanIS, I, B, BS, MSystem C
TBooleanF, D, IS, I, B, BS, L, LS, MTemporary

Note

Memory segment ‘S’ is read only.

Modifier List

ModifierType of Value to Convert toNumber of Bytes to Read/Write
FFloat4
DDouble8
IUnsigned Integer2
ISSigned Integer2
BUnsigned Byte Integer1
BSSigned Byte Integer1
LLong Unsigned Integer4
LSLong Signed Integer4
MCharacter String1

Note

Character strings (M) items must include an array argument in order to be valid (ex. %R100M[2]).

Examples:

Read a single two byte signed integer (INT) in reference memory

Information given…
Memory Segment: ‘R’ (Register) Memory Offset: 43
Length/Type of Data: INT Array Size: 1

  1. The data to read is from reference memory, so the first character in the tag is ‘%’.
  2. The data is in memory segment ‘R’, so the first argument in the tag after ‘%’ is ‘R’. Tag is now “%R”.
  3. The data has an offset of 43 word registers from the start of the memory segment, so the second argument is ‘43’. Tag is now “%R43”.
  4. The value we need to return is an INT (a two byte signed integer). This corresponds to a IS modifier in the table above. Tag is now %R43IS”.
  5. We are retrieving a single value (array size is 1), so an array size modifier is not necessary. No change to the tag.

The tag to add to the OPC Client and poll is: “%R43IS”. This will return 60.

Read an array of two four byte floating points (REAL) in reference memory

Information given…
Memory Segment: ‘AI’ (Analog Input) Memory Offset: 73
Length/Type of Data: REAL Array Size: 2

  1. The data to read is from reference memory, so the first character in the tag is ‘%’.
  2. The data is in memory segment ‘AI’, so the first argument in the tag after ‘%’ is ‘AI’. Tag is now “%AI”.
  3. The data has an offset of 73 word registers from the start of the memory segment, so the second argument is ‘73’. Tag is now “%AI73”.
  4. The value we need to return is a REAL (a four byte floating point value). This corresponds to an F modifier in the table above. Tag is now “%AI73F”.
  5. We are retrieving two values (array size is 2), so we append an array size modifier to the tag. Tag is now “%AI73F[2]”.

The tag to add to the OPC Client and poll is: “%AI73F[2]”. This will return {22506.93, 17942.15}.

Read a single Boolean point (BOOL) in reference memory

Information given… Memory Segment: ‘I’ (Input) Memory Offset: 265 Length/Type of Data: BOOL
Array Size: 1

  1. The data to read is from reference memory, so the first character in the tag is ‘%’.
  2. The data is in memory segment ‘I’, so the first argument in the tag after ‘%’ is ‘I’. Tag is now “%I”.
  3. The data has an offset of 265 Boolean (or “digital”) registers from the start of the memory segment, so the second argument is ‘265’. Tag is now “%I265”.
  4. The value we need to return is a BOOL (an “on” or “off” Boolean value). No modifier is required for the Boolean type so there is no change to the tag.
  5. We are retrieving a single value (array size is 1), so an array size modifier is not necessary. No change to the tag.

The tag to add to the OPC Client and poll is: “%I265”. This will return either a 1 or “On” depending on how your OPC Client is configured.

Read a single floating point (REAL) in reference memory

Information given… Memory Segment: ‘I’ (Input) Memory Offset: 32457 Length/Type of Data: REAL
Array Size: 1

  1. The data to read is from reference memory, so the first character in the tag is ‘%’.
  2. The data is in memory segment ‘I’, so the first argument in the tag after ‘%’ is ‘I’. Tag is now “%I”.
  3. The data has an offset of 32457 Boolean (or “digital”) registers from the start of the memory segment, so the second argument is ‘32457’. Tag is now “%I32457”.
  4. The value we need to return is a REAL (a four byte floating point value). This corresponds to a F modifier in the table above. Tag is now “%I32457F”.
  5. We are retrieving a single value (array size is 1), so an array size modifier is not necessary. No change to the tag.

The tag to add to the OPC Client and poll is: “%I32457F”. This will return 919.1.

Read a floating point (REAL) in symbolic memory

Information given…
Name of Symbolic: A301A.PV Length/Type of Data: REAL

  1. The data to read is from symbolic memory, so the first character in the tag is ‘!’.
  2. The name of the symbolic we want to read is ‘A301A.PV’. The tag is now “!A301A.PV”.
  3. The data type of this symbolic is a REAL. This corresponds to an F modifier in the table above so we need to append an ‘:F’ to the end of the tag to tell GESRTP how many bytes to expect and what type to convert the value to. The tag is now “!A301A.PV:F”.

The tag to add to the OPC Client and poll is: “!A301A.PV:F”. This will return 47.35273.

Read a Boolean point (BOOL) in symbolic memory

Information given…
Name of Symbolic: ENIU12_LAN_B_InputsDiscrete[004] Length/Type of Data: BOOL

  1. The data to read is from symbolic memory, so the first character in the tag is ‘!’.
  2. The name of the symbolic we want to read is ‘ENIU12_LAN_B_InputsDiscrete[004]’. The tag is now “!ENIU12_LAN_B_InputsDiscrete[004]”.
  3. The data type of this symbolic is a BOOL. No modifier is required for Boolean types. No change to the tag.

The tag to add to the OPC Client and poll is: “!ENIU12_LAN_B_InputsDiscrete[004]”. This will return “On” or “Off” depending on the logic in the controller. If the logic in the controller is disabled, the value you read will be “off”.

Additional Item Tag Examples

Item NameDescriptionExample of Expected Result
%R100Extract two bytes of memory in ‘R’ memory starting at offset 100 and convert to an unsigned integer.3
%Q3Extract one bit of ‘Q’ memory starting at offset 3 and convert to a Boolean value.On
%Q577IExtract two bytes of ‘Q’ memory starting at offset 577 and convert to an unsigned integer.34
%R321FExtract four bytes of ‘R’ memory starting at offset 321 and convert to a floating point value.43.4
%R341Extract two bytes of ‘R’ memory starting at 341 and convert to an unsigned integer.43
%Q3[13]Extract a 13 bit array of ‘Q’ memory starting at offset 3 and convert to Boolean values.On, Off, On, Off, On, Off, Off, Off, Off, On, On, On, Off
%R121F[2]Extract four words (8 bytes) of ‘R’ memory starting at offset 121. Convert %R121 and %R122 to one four byte floating point and place in array position 0. Convert %R123 and %R124 to one four byte floating point and place in array position 1.121.95, 123.95
%R351M[3]Extract two words (4 bytes) of ‘R’ memory starting at offset 351. Convert bytes one through three to characters and return in
array positions zero, one and two. Driver will ignore the fourth byte.
Abc
!SymbolicWord1:IRetrieve the value on the CPU pointed to by the symbolic variable “SymbolicWord1” and convert to a two byte unsigned integer.21
!SymbolicBoolRetrieve the value on the CPU pointed to by the symbolic variable “SymbolicBool” and convert to a Boolean value.Off
!SymbolicString:MRetrieve the value on the CPU pointed to by the symbolic variable “SymbolicString” and convert to a character string.Rx3i

Extended Items

ItemData TypeDescription
RetrievePLCStatisticsUnsigned
Integer
Write a 1 to this item to start the retrieval of PLC
Statistics as configured on the PLC Statistics tab.

For assistance, please submit a ticket via our Support Portal, email autosol.support@autosoln.com or call 281.286.6017 to speak to a support team member.