Applies To:
  • CitectSCADA 5.xx
  • CitectHMI 5.xx

When I attempt to read REAL values from my Siemens S7 PLC, they appear in CitectSCADA as #COM. What are some possible causes/remedies for this? 

There could be several reasons why REAL values aren't returned correctly into CitectSCADA:

1) REAL data tags are not located on a byte boundary in the PLC divisible by four.

Any REAL data in the PLC takes 4 bytes of memory, and for correct operation with the S7NT driver, the tag should be addressed on a byte boundary divisible by 4. This is documented in the S7NT Driver specification.

2) The S7NT driver is blocking REALs together with other data types in one request.

By default, driver will check the data returned from the PLC to see that it has a valid IEEE Floating point format. If REAL values are blocked together with other data types (eg. INTs), the check will fail as INTs are obviously not in REAL format, so the whole block will fail the Check. Setting the Parameter [S7NT]EnableFloatCheck=0 disables this behaviour.

See KB articles Q3848 and Q3901 for further information on this parameter.

3) The REAL value returned may be illegal

The REAL value that is read from the PLC may (genuinely) fail the IEEE REAL format.

See also KB article Q3634 for more information about invalid REAL formats.


Siemens, S7, S7NT, REAL