请教200smart里读取数据格式的问题

200smart通过通讯读取了1个四字节位移量,第一、二个字节为整数部分,第三、四个字节为小数部分。我把这个位移变量放到VD0里,我读上来的数是12E62E00,按照通讯格式,我要把整数部分VW0=12E6H=4838;VW2/65535=2E00H/65535=11776/65535=0.18。那么读取值转换成工程值是:12E6.2E00=4838+0.18=4838.180 (mm)
现在读上来的是16进制数,我可以直接把位移量MD0=VW2/65535+VW0吗?这样在计算过程中16进制数2E00H是否会自动转换成10进制数11776?数据格式会不会冲突

最佳答案

1,首先  MD0=VW2/65535+VW0  这种方法不对的 。

             你要做的是:
             VW2转换双整数 而后转换成实数 (暂定存在 MD100)
             VW2转换双整数 而后转换成实数 (暂定存在 MD104)
             VD108是要存的工程量值
             VD108=MD104+MD100/65535.0
          
            这是改造后的程序,但也不正确 。这只是当工程量是正数的情况,即VW0是正数,
            当VW0是负数时是什么情况,这也要考虑。结合字符串指令来解决比较合适。
           

  2, 10进制,16进制 ,2进制 在数据存储上是相同的,不存在数制转换的问题 。 
         10进制,16进制 ,2进制这是针对书写,显示来讲的。

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

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

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

相关推荐

发表回复

登录后才能评论