200SMART做RTU从站取过来的模拟量是实数VD如何转化VB格式,做通讯
问题补充:
目前模拟量取过来是vd ,如果做从站通训,如何处理。详细一点本人小白
图片说明:
钻石用户推荐最佳答案
主设备电流信号一般保留两位小数就可以了,其实数 VD 可以先用实数乘法指令扩大 100 倍,然后将得到的新的浮点数转换成双整数
1、用 TRUNC 截尾取整指令,将 32 位实数值 IN 转换为双精度整数值,并将结果存入分配给 OUT 的地址中。只有转换了实数的整数部分之后,会丢弃小数部分。
或者用第 2 条的方法
2、用 ROUND 四舍五入取整指令,将 32 位实数值 IN 转换为双精度整数值,并将取整后的结果存入分配给 OUT 的地址中。如果小数部分大于或等于 0.5,该实数值将进位。
3、用DI_I 指令将双精度的32位整数转换成单精度的16整数。要知道一点这个值比实际值大了 100 倍。
4、将最后转换的单精度整数用 MOVW 指令传送到 MODBUS 从站的保持寄存器。这个区域的 V 区地址是由从站 MODBUS 指令指定的。
5、其它的就是 MODBUS 从站的编程了。
S7-200 SMART Modbus通信常见问题
http://www.ad.siemens.com.cn/productportal/Prods/s7-200-smart-portal/200SmartTop/SmartSMS/020.html
提问者对于答案的评价:
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc291544.html