恭喜,你发布的帖子
发布于 2024-02-26 17:50:35
2楼
既然 VB2064 ~ VB2088(?2087)是传送给对方的,那么对方读取到的又是什么数值呢?这个你可以去核实的。
个人猜测可能是由于双字节(VW)及四字节(VD)的数据处理的方式不同引起的。
比如说,VW2064 = 1000D(D表示十进制,下同) = 03E8H(H表示十六进制,下同),则 VB2064 = 03H,VB2065 = E8H。注:低地址存储的是高位字节,高地址存储的却是低位字节。
而一些 PLC 中可能读取到的就是 E803H = -6141D!也就是高地址存储的是高位字节,低地址存储的是低位字节。
那么,为了正常识别,就需要交换高、低字节。
对于VD(模拟量数值使用的是四字节),不仅要交换高低字,还要交换高低字节!
所以,你要去确认是不是因为这个原因。若是,还有一些转换工作要做的。
请填写推广理由:
分享
只看
楼主