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