Issue
MODBus XDriver is communicating with device but the data read is not what is expected.
For example, when requesting the voltage between phase 1 and neutral (StartChannel = 3926) from a PM1200 the value received is the following:
VPhase1toNeutral [1] = 17085
VPhase1ToNeutral [0] = 65890 (This last value varies constantly because it is the least significant part of reading).
This value should be between 110V and 120V or 220V and 240V depending on location.
Environment
CyberStation
CX9900
CX9640
bCX4040
CX9680
ACX5720
ACX5740
Cause
Function code used reading raw data from register(s) without conversion.
Since, when you request information from a Modbus RTU device you receive the exact value that is in the register, Andover Controls has provided some special function codes that will help to convert some of the common engineering values into usable values. The listing in the x-driver documentation shows the special function code, what is expected from the third party and the equivalent function code that is truly sent to the device.
For instance if a point is a Intel float and resides in the 40,000 range then function code 245 would be used in the Andover Controls x-driver. This will still send out a function code 3 in the Modbus message but the x-driver will take the value sent in from the third party device and convert it into a usable float.
Resolution
Use Continuum special function code to convert the raw value to a readable value.