Problem

An iFix application displays Allen-Bradley PLC values through Industrial Gateway Server (IGS). It works well when PLC’s sixteen bit integers are positive. However, when sixteen bit integers go into negative, iFix displayed some strange value. A check into iFix database manager confirmed that IGS read wrong values. In the picture below, PLC value INT[7] is -45, however, iFix displays 65,491.

001 - Wrong number when INT is negative

 

 

Solution

This application uses dynamic tags. There are two settings affect this problems.

  1. If all tags are same data type, IGS for that device can be configured to default to that data type. Float data type is shown in picture below.003 - IGS Device Default Setting
  2. However, if tags are different data type, data type should be appended at the end of tag after “@” sign. For example, to read a sixteen bit signed integer INT[7] from ControlLogix, the tag should be INT[7]@short .IGS manual states that following data types can be used.004 - IGS Tag Data Type
  3. After this fix, iFix reads negative value correctly.005 - Correct Value number when INT is negative