有一个MODBUS RTU协议其中一个数据是64位整数到了西门子VD这怎么处理?

现在有一个电表协议,读正向有功电能,对方电表该数据用的INT64.   到了西门子smart200PLC这是不是只能接收最大32位无符号数据?  假如对方电能数据放在寄存40001到40007中放到西门子VD0和VD4中,PLC这只能用过40004到40007这个VD4中的数据?  
   程序另外设置,当总电量大于等于VD4的最大值,将电量用电量清0.

是不是只能这样处理?

图片说明:

有一个MODBUS RTU协议其中一个数据是64位整数到了西门子VD这怎么处理?   

最佳答案

不是这样理解的,假设从站(仪表)的数据长度为40001~40007的8个字的长度,那么,你读取的信息在dataptr管脚以指针方式接收是如&vb0,那么,他们对应关系是
40001          vw0
。。。          vw2
。。。          vw4
40007          vw14
MSG指令如果是读、写V存储区数据的,那么只能是以字的形式。
你仪表的数据是int64,是理解为64位数据?
如果是,那200smart是不支持64位数据的直接应用的。
s7-1200的可以。

提问者对于答案的评价:
谢谢。 我的提问错了。 应该该40001 40002  40003  40004这几个刚好是一个电能数据,放入VD0到VD4中。  是不 是数据先放入了VD4中,VD4满了再从VD0中进位。

最佳答案作者回复:
首先你验证你的仪表电能数据是存放在VD0~VD4中的。
如果确实是,那么,你监控这些数据的存放方式,如果按西门子的数据格式,你理解的是对的,但是,作为与第三方的通讯(实际计算数据的交换),反倒变的不确定了。
监控实际数据的变化是最有效的办法。

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2021年7月4日
下一篇 2021年7月4日

相关推荐

发表回复

登录后才能评论