这个程序如何理解

LD     SM0.0
 MOVW   AIW12, VW12
 A      I0.0
 MOVW   16#0, VW10
 NOT
 MOVW   16#FFFF, VW10
 这段程序书上的描述是将模拟值采集到VW12中,当10.0接通则转化为双整数,否则VD10等于模拟量输入值.

 我想知道在VW10中填入0就可以使VW12的值转换为一个双整数存放在VD10中么?另外在VW10中填1又是如何让VD10等于模拟量的输入值的呢?

问题补充:
VOLLMER你的回答等于没有回答,我问的是填0就可以转化为双整数么?  填1又是如何=模拟量输入值的,我想问一个理解的详细过程?

最佳答案

当VW12>0时,只有VW10=0,VW12才等于VD10。
   当VW12<0时,使VW10=FFFF,那么VW12就等于VD10。
   I0.0=1时,AIW12应该是个正值,I0.0=0时,AIW12应该是个负值(或者AIW12是正值的时候,I0.0=1,AIW12是负值的时候,I0.0=0),所以才需要这样计算,目的是将整数转换为双整数。

   

 

提问者对于答案的评价:
对头,就是这样模拟值在PLC中以补码表示,所以VW12大于0时候,VW10中填0就可以使VD10=VW12;当VW12小于0的时候,VW10中填1,因为是负数的补码,所以填1就不影响真值。

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2021年7月5日 上午2:06
下一篇 2021年7月5日 上午2:06

相关推荐

发表回复

登录后才能评论