最后,由于
modbus通讯同时支持字读写和位读写(在施耐德所有PLC中,所有地址都是按照“字”地址和“位”地址定义的,字地址和位地址没有任何关系,可以任意调用,而西门子所有PLC地址都是按照“字节”方式定义的。)
在存储数据时,西门子PLC中的数据是按照“低字节、高字节”顺序存储的,如果读取浮点数数据,顺序为:低字低字节、低字高字节、高字低字节、高字高字节。
而施耐德所有PLC由于按照“字”地址和“位”地址定义的,所有数据存储时与西门子PLC完全相反,即如果读取浮点数数据,顺序为:低字高字节、低字低字节、高字高字节、高字低字节的顺序。
这就是为什么有些数据上传到西门子PLC或HMI时,所有数据都不正确的原因,是因为高低字节顺序反了。
如果出现上述问题,只需将高低字节编程做个转换即可。