quote:以下是引用明天在2013-06-08 09:57:57的发言:
西门子CP341做Modbus 通讯得注意:高低字节顺序,另外你这个应用是2个寄存器拼成一个浮点数,那就得注意数据的一致性问题,就是一次性使用FC03读取这2个寄存器,不能分2次读取。
问题已解决,问题确实是出在字节顺序上,施耐德的电表默认设置为2143,西门子存储实数的4个字节顺序为4321,通讯读过来的寄存器偏移了一个寄存器,即2个字节,导致趋势上的数据变成数据1的43字节+数据2的21字节,根据IEEE754-1985解析数据是阶码部分是对的,但是尾数肯定是错的,当数据2的连续变化到某个值时就出现这个拼凑出来的监视数据出现小范围跳动。
非常感谢各位的分析和解答。