Applies To:
  • CitectSCADA 4.xx, 5.xx

The DDE addressing format that allows an external program (such as a spreadsheet) to access Citect variables uses the format citect|variable!tagname.

A variable tag array addressing memory in an AB PLC5, for example, may be defined in the variable tags definition similarly to:

Variable Tag Name:    Array
Data Type:                  Digital
I/O Device Name:       PLC
Address:                    N7:1/1[10]

This would give a 10 element digital array referencing PLC memory locations N7:1/1 to N7:1/10.

To refer to the second element of the array (N7:1/2) within Citect we'd use Array[2] as the tag name.

A DDE construct of citect|variable!array[2] to address the second element of an array would be handy, but this is not supported by the DDE mechanism. This is not a Citect error, it is just a limitation in the DDE protocol.


Create additional variable tags that point directly to the PLC memory address of the array element, then use these additional tag names to form the DDE address. For example, a variable tag defined as:

Variable Tag Name:    DdeA2
Data Type:                  Digital
I/O Device Name:       PLC
Address:                    N7:1/2

A DDE reference of citect|variable!ddea2 will reference the same PLC information as Array[2] in the example. The additional tags do not add to the point count since no new I/O is being defined.

In a large array setup this will be a little tedious to setup, but it will get around the limitation.