Applies To:
  • CitectSCADA 5.xx

I am using RSLinx as an OPC Server, how do I get arrays to work in Citect?  

Make sure that you use Citect's OPC driver (opc.dll) version V1.07.03.018 or later.

The solution to this problem is to be aware of how RSLinx handles array requests. RSLinx will only treat tags as arrays if they use the correct address notation.

Consider a system where RSLinx has an active topic called "MyTopic" with an integer array called "intArray" which is of length 15. To access this array in Citect using OPC the tag would have an address of "intArray,L15!A[15]". The tag address can be broken down into the following components:

intArray - The name of the tag.
,L15 - Required for RSLinx to know that the tag is an array of length 15.
!A[15] - Required by the Citect OPC driver to show that the tag is an array of length 15

 Using an address of "[MyTopic]intArray,L15!A[15]" will not work because of the square brackets "[" in the address field before the "![A]". To avoid this problem the OPC topic can be defined in the Citect.ini file, this will also make the tag addressing less complicated. To achieve this the Citect.ini file should contain the following:



<IOServerName> = Name of I/O Server configured in Citect
<IODeviceName> = Name of I/O Device configured for OPC communications