LD I0.1
EU
SHRB I0.2 , V20.0 ,5
移位寄存器的最高位是V20.4。
如果把N值变为-5 ,即
LD I0.1
EU
SHRB I0.2 , V20.0 ,-5
那么,移位寄存器的最高位是什么?移位寄存器的最低位是什么?如果V20.0的初始值为:2# 1111_1001。I0.2 为“1”。 程序的结果是什么?
最佳答案
定义移位寄存器的最高位不是由N值的正或负定义的,就是它的绝对值来定义的,也就是说你说的5和-5,它们指定移位寄存器的最高位和最低位都一样的。
N值的正或负主要来定义移位寄存器的的位移的方向.
在"移位减"(用长度(N)的负值表示)中,输入数据移入移位寄存器的最高位中,并移出最低位(S_BIT)。移出的数据被放置在溢出内存位(SM1.1)中。
在"移位加"(用长度(N)的正值表示)中,输入数据(DATA)移入移位寄存器的最高位中(由S_BIT指定),并移出移位寄存器的最高位。移出的数据被放置在溢出内存位(SM1.1)中。
移位寄存器的最大长度为64位(无论正负)。
像你的例子,如果VB20的初始值为:2# 1111_1001。I0.2 为“1”。如果N=+5,则当I0.1 ON第一次时I0.2的值移入V20.0,VB20的值是:2#1111_0011,原来的V20.5的值移到SM1.1。如果N=-5, VB20的初始值为:2# 1111_1001。I0.2 为“1”,则当I0.1 ON第一次时I0.2的值移入V20.5中,VB20的值是:2#1111_1100,原来的V20.0的值移到SM1.1。
提问者对于答案的评价:
ok
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc358061.html