PLC移位循环指令

PLC移位循环指令

一、移位指令

移位指令包括无符号数移位和有符号数移位。 其中无符号数移位包含字左移指令、字右移指令、 双字左移指令和双字右移指令;有符号数移位包含整数右移指令和双整数右移指令。

1、无符号数移位指令
(1)字左移指令当允许输入EN位为高电平“1”时,将执行字左移指令,将IN端指定的内容送入累加器1低字中,并左移N端指定的位数,然后写入OUT端指定的地址中。
在这里插入图片描述
字左移指令的工作原理:
在这里插入图片描述
如图所示的程序中,当I0.2的状态为“1”时, MW2中的数据读入累加器1低字中,并将累加器1低字的内容左移1位(N=W#16#1),然后再将移位后的内 容写入到MW10中,注意MW2中的内容并没有变化。
在这里插入图片描述
要想在同一个存储字中看到移位的效果,可以将IN和OUT端指定相同的地址,即将移位结果存回被移
位地址空间。
在这里插入图片描述
(2)字右移指令
当允许输入EN的状态为“1”时,将执行字右移指令。
在这里插入图片描述
字右移指令工作原理:
在这里插入图片描述
(3)双字左移指令
双字左移指令是移位对象是32位,当EN端的为 “1”时,CPU将IN端的内容读入累加器1,并将累加器1中的内容整体左移N端指定的位数。移位过程中, 按照高位丢失低位补“0”的原则进行。
在这里插入图片描述

(4)双字右移指令
双字右移指令移位的对象是32位,当EN端的状态 为“1”时,CPU将IN端指定的内容读入累加器1中, 并将累加器1整体右移N端指定的位数,按照低位丢失高位补“0”的原则进行。
在这里插入图片描述
2、有符号数移位指令

(1)整数右移指令
整数右移指令与字和双字移位指令不同。整数只 有右移指令,移位时按照低位丢失,高位补符号位状 态的原则,也就是正数高位补“0”,负数高位补 “1”的原则。
在这里插入图片描述
(整数右移指令工作原理)
在这里插入图片描述
(2)双整数右移指令

双整数右移指令与整数右移类似,双整数移位指令操作对象为32位。
在这里插入图片描述
二、循环指令

循环指令可以操作的存储区、各个端的名称与移位指令相同。但是,移位指令可以使操作对象向单一 方向移位,移出的位大多丢掉;而循环指令可以使操作对象进行循环移位,移出的位不会丢掉,而是放回空出的位上。需要注意的是循环指令的操作对象,其数据类型为DWORD型,是32位的内容。循环指令包含 双字左循环指令和双字右循环指令。

1、双字左循环指令
双字左循环指令的循环移位对象为32位,当EN端的状态为“1”时,将执行指令:CPU将IN端指定的内 容读入累加器1中,然后将累加器1中的内容循环左移N端指定的位数,并写入OUT端指定的地址中。
在这里插入图片描述
双字左循环指令的工作原理:
在这里插入图片描述
2、双字右循环指令

双字右循环指令与双字左循环指令类似,只不 过是使操作对象向右循环移位。

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_45252077/article/details/106783199