Applies To:
  • CitectSCADA

Sections of PLC datablocks and whole datablock values being read by Citect are coming up with #COM errors. Other data blocks in the PLC are being read OK.

Occasionally on some pages where some of the #COM values in one of the blocks are being displayed, a value will be seen for a moment, and then go back to #COM status.

Error Message in Citect Hardware Alarms: "2008 - Not in Database" 

The actual error message for 0x2008 is "ILLEGAL REAL VALUE"

There are a number of possibilities for this (the first one being by far the most likely);

1. Within the data block the real tags must fall on 4 byte boundaries. This is explained in detail in the driver specification document, (sseven.pdf, Page 18, section 5.13 b) An extract of the relevent pages is attached to this KB article.

2. The PLC has a value in one (or more) of the registers being read by Citect that is outside the IEEE REAL format -3.402 823E+38 to -1.175 495E-38 and 0 and +1.175 495E-38 to +3.402 823E+38, which is used by Citect.  With the Siemens S7-400 / S7-300 some operations may create an invalid range for the result, however it will set a combination of bits in the status word in the PLC when this occurs (the bits are CC1, CC0, OV, OS).

For REAL types with this issue, that are read by Citect you should use code in the PLC to monitor the status bits and correct the value.

In addition to the above two points, it is also recommended that items of the same datatype within a block be grouped together.