PLC 200 smart MODBUS通讯中 读取到的16位数据为负值

大家好,请教一下问题
我再S7-200 SMART中通过 MODBUS读取了16位数据到模拟量转换库中,但是读到的数据为负值,而且数值也不对,好像是真实值的补码,因为这个负值去掉负号与真实值相加为65535 即16进制的FFFF,MODBUS另一端数据没有问题,应该是程序的问题,请问应该怎样更改?  或者是否有16位的模拟量转化库?   谢谢大家

图片说明:

PLC 200 smart  MODBUS通讯中  读取到的16位数据为负值   

最佳答案

1、要从PLC系统的模拟量输入查起,检查模拟量输入是否正常。
2、我觉得你的程序中的有关模拟量输入上下线设置可能有问题。转换程序的引脚如何填写,建议看看下述实例:
、S7-200smart-PLC模拟量输入程序详解:
https://bbs.xianjichina.com/forum/details_13367
3、模拟量为什么是为65535 即16进制的FFFF?
这表明PLC系统的模拟量输入工作不正常。
若排除测量模式设置和接线的问题后,问题仍存在(我经常遇到这种情况),可能是共模电压过高,我一般先用信号发生器发生一4~20mA,排除一下通道本身故障(也可用其他正常点的信号输出测量),如无故障,往往加装信号隔离器可正常检测。

提问者对于答案的评价:
感谢老师的回复。
到现在虽然问题的原因没有找到,但是问题已经解决了。
查了有关资料知道,模拟量转换通道是有数值限制要求的,即不得大约27648,这是PLC 200 SMART 决定的,所以我把读进来的数据首先取反码,然后用65535减去反码,得到的数值除以10,降低了读进来的数据;把我的数据也除以10,这样分辨率稍稍有点降低,但不影响数据的准确性。

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc292017.html

(2)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年10月31日 上午12:58
下一篇 2020年10月31日 上午12:58

相关推荐