PLC是和温控仪表做的,设置M8161=ON为8位模式,数据读出,当目标值在0~255之间时和仪表显示值一致,当不在这个范围内时出现错误,读出值和仪表上显示值不一致,我发现还是跟8位模式有关,当错误值加减255时又和仪表显示值一样了。
理论上讲如果是8位模式,通讯时是将目标值的16BIT拆成高低8位分开传输的,接收后要做处理才能恢复使用;只需将装目标值高8位的那个寄存器上下字节对调(SWAP指令),再跟装目标值低8位的寄存器做或运算(WOR指令)就能把原始目标值恢复出来,但是这样运算出来的值根本就不对!不知哪位大侠有没有碰到过相同的问题啊??还请赐教一二!!!
最后强烈鄙视一下三菱!!做个MODBUS指令会死啊!!!
至于楼上说的YY是什么东西,我估计:可能与被读仪器内部程序相关,我查看了许多厂家的RTU协议,所看到的协议都是读2个以上的字,还没见过读一个字的。按上图事例:读2个字,那么返回一共10个字节。
如果按楼主要求,仅仅读一个字,那么理应返回7个字节,而楼主实际返回了8个字节,比需要的多了一个,本人估计,是否可这样认为,仪器的设计人在编制程序时,处理7个字节可能比较麻烦,为了方便,全部按8个以上字节考虑,所多余的一个字节,可能是下一个寄存器的一部分。
以上看法供参考,欢迎高手指正!
=====================================
知道了,yjig大哥你太热心了,分数给你吧,谢谢啦!!!哈哈