Applies To:
  • CitectSCADA 5.40

I am using the new support for the OPC_ARRAY data type in OPC driver v1.07.02.000b1 and tags in my project with the "!" character as part of their address are causing errors. I think they are incorrectly being interpreted as arrays, which I know uses the "!A" syntax. What can I do to solve this problem? 

It is possible to change the array delimiter character from an "!" to any ASCII character. As this is both a compile option and a runtime option, it must be set using both a Citect.ini parameter and by editing the OPC.dbf file in the \Citect\Bin directory.

1. Set the following parameter [OPC]Delimiter="n" where n is any ASCII character (default setting is "!").

Example: [OPC]Delimiter="?"

2. Edit the OPC.dbf file in the \Citect\Bin directory. This is a dBase IV file - backup the file before editing it and contact Citect Customer Service if you are unsure of how to save the file correctly. Below is an extract from the file. The character immediately behind "%!", is the delimiter that may be changed.


%R%N+%!!A 0x20030000 4 32 0 32767 VT_ARRAY OF VT_I4

Example: If the delimiter was set to "?" then the line would be as follows -

%R%N+%!?A 0x20030000 4 32 0 32767 VT_ARRAY OF VT_I4

Note: The change must be done in every row of the OPC.dbf where %!! is found, not just in one row. This is because the Citect.ini [OPC]Delimiter parameter is global for all array, timestamp and quality tags in the OPC driver.