发表于:2012-02-12 21:05:16
楼主
我使用wincc+CP5611的主站通讯,从站是标准的DP从站,有个问题,现在读上来的字高低位是反的,通过报文来看,发上来的是高字在前,低字在后,wincc读出来的正好相反,低字在前高字在后,这是什么原因啊?
举例:从站的电流测量值是7A,发出来的数据是70,十六进制对应的是 00 46,但是WINCC现实的数据确实17920,对应的十六进制是 46 00,这个事什么原因造成的,请问该怎么办呢?
答:在modbus通讯中检查会遇到这种情况,一般采用位置置换的方法来进行数据传递,然后再重新读取即可。如下(可转换成LAD图)
A(
L MW 100
T DB80.DBW 14
SET
SAVE
CLR
A BR
)
JNB _003
L MW 102
T DB80.DBW 12
_003: NOP 0
然后再读取DB80.DBD 12的数值就可以了。