In non-standard conforming RTUs there can be 2 IOs with the same COA/IOA but different Type ID, the difference being in the value format and not just the time tag. If one of those is configured as a zenon variable, and the IEC870 driver receives an ASDU for the other IO (mismatched Type ID), the value gets incorrectly assigned to the zenon variable. Its value is overwritten and thus corrupted. This behavior has been changed.
Solution:
The driver assigns the value of ASDUs to the zenon variable only if the Type ID of the ASDU is compatible with the Type ID of the variable. Compatible in the meaning of the IEC 60870-5-101/104 Standard; e.g. T01, T02 and T30 are compatible (a signal with or without time information).
When receiving ASDUs with incompatible Type ID, the value is ignored and an error is logged; e.g. T01 and T03 are not compatible (two different signals/value encoding).
To benefit from this fix: