Applies To:
  • CitectSCADA 1.00 - 3.30 4.10

If you write to a digital MEMORY PLC variable before you read from it then the write may fail. This may typically happen when you initialise digital tags on startup before you have read any of these variables. 

CIT has confirmed this to be a problem in Citect for Windows versions 1.00 to 3.30, 4.00, 4.10. This problem has been fixed in version 3.40 and 4.20.

You can work around this problem by reading the values of the digital before you write. You only have to read the top most digital and it should allow all digital writes to work correctly. For example if your startup cicode function initialise many digital tags on startup you can read the highest digital tag to resolve as follows:

   int temp;
   temp = MaxDigital; /* MaxDigital should be the highest digital address */
   ReRead(1); /* force a read of the MaxDigital */
   Digital = 1;
  /* write to all digitals */