Citect String Array Tags

Trying to make a variable String Array tag to link to an OPC Server.

Setup a STRING Variable to look at a specific index (the addressing scheme for the Opto22 OPC allows this type of selection) without the !A[x] suffix used make it a string array tag. Was able to read/write the contents of this index. Note this was a long text string which worked fine. Addressing schemes for other string arrays do not allow individual index selection.

 If I use the !A[X] suffix on the address string (which works on Integer and Float Arrays) not only doesn’t it work but the IOServer crashes if I try to read a specific index.

Any insight to creating String Array tags that work would be greatly appreciated. FYI using CitectScada 7.50 (2015)

  • I'm not sure on OPC but for other Citect drivers like Modbus you have to define a single string tag as an array of PLC registers. So for these drivers it's not possible to define an array of strings and it might be that this rule also applies for the OPC driver.
  • I was able to read/write to an OPC String Array via a simple OPC Test Client, so it should work via any OPC client (ie. CitectScada).

    As I noted I was able to setup a String Tag to read/write an individual index of the OPC String Array because the Address Scheme allowed selection of individual indexes.

    The problem is trying to bring in a String Array / Table (using the !A[x] suffix in the address) when the addressing scheme doesn't allow individual indexes to be called out. Monitoring my OPC Server it does appear that Citect does setup (in the OPC Server) that we are monitoring the String Array. Unfortunately reading or writing to the index either gives me BAD status or crashes the IOServer.

    Any other insight or experience in setting up string arrays would be appreciated.
  • Here's an update regarding String Arrays in Citect - my local support guy (who got it from Citect Support) tells me that CitectScada does NOT handle String Arrays. Could NOT find this fact online or within the documentation.

    If the OPC Addressing scheme allows individual indexes to be accessed (which I've done) you can bring these indexes as string variables.

    However if your OPC Addressing scheme does not allow selection of individual indexes (which I've also run into) then you are basically out of luck.

    Hard to believe that a system as complete as CitectScada cannot handle string arrays when a cheap OPC Test Client can. When I look at the OPC Server, I can see that Citect sets up the String Array, but read/write to individual indexes seems to be blocked.
    I'm hoping that this is something Citect can work into future releases.

    If anybody has another way of bringing String Arrays into Citect (other than what I mentioned above), please let us know.
    Citect Support - can you please comment on this issue.