200 SMART 1、64位UINT怎么转32位UINT 2、系统识别的有符号数据能否转成无符号数据?

各位大老们:
       使用MODBUS通讯读取天罡热表的累计热量。根据协议,累计热量为64位无符号整数,由于200 SMART无64位数据类型,所以我只取了32位。现遇下以问题:
      1、如何将64位的数据类型转成32位?
      2、在最初累计热量数据小的时候,只读取32位是没有问题的,但随着数据量不断变大,系统把读取的32位数据识别成有符号数据,出现负数。如何将有符号转成无符号数据。就是图片中的VD5304怎么才能以无符号数据显示。

最佳答案

http://www.ad.siemens.com.cn/productportal/prods/s7-200-smart-portal/200smarttop/programming/Data_format.html
里面有个双实数转实数的例程,你可以参考一下。

我的思路是,使用modbus协议读写的数据都是以字(16位)来进行的,至于其数据转换的处理都是在PLC上另行处理的,也就是如果是一个64位的数据,实际PLC是读取了连续的4个16位的数据。PLC上你应该对这4个16位的数据进行处理。
具体怎么操作还没想出来,毕竟smart的PLC最大处理数据只是32位整型。我感觉这块是否可以在触摸屏上使用脚本进行移位拼接。

提问者对于答案的评价:
谢谢

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

发表评论

登录后才能评论