龙空技术网

PLC的循环移位,带进位移位傻傻分不清?试试看看这篇文章。

仓颉 1506

前言:

如今姐妹们对“移位运算右移”可能比较关注,朋友们都想要剖析一些“移位运算右移”的相关文章。那么小编同时在网上收集了一些对于“移位运算右移””的相关文章,希望你们能喜欢,咱们快快来了解一下吧!

为了让大家掌握更多PLC知识,本篇文章将会为大家详细介绍循环右移,左移指令,带进位循环左移,右移指令。如果有不懂的可以在下方留言,或私信小编噢!下面我们直接进入主题

循环右移指令:

该指令的助记符,指令代码,操作数,程序步如下表:

指令格式:该指令表示的是把D0里面的数据向右移动4位。

指令说明:

假设D0里面的数据为1111111100000000,循环移位4位就变成了0000111111110000。为什么会变成这样呢?因为当指令启动后低位的数据进入了高位里面去,高位的数据向右移动了4位。但是我们要注意最后一位移出来的就进入了进位标记里面去,进位标记里面的M8022就变成了0。

但是我们还是要注意,在平常使用中我们要在ROR后面加一个P,这样就只会在一个扫描周期内才接通一次,如果不加的话那么程序就会一直进行。还有如果我们的目标操作元件D0是用组合位元件的话,那么组合位元件必须是16位或者32位的,如果不是那么程序可能无法进行。

循环左移指令:

该指令的助记符,指令代码,操作数,程序步如下表:

指令格式:

该指令表示的是当X0接通的时候把D0里面的二进制位向左移动4位。在原理上循环右移基本一致。

带进位循环右移指令:

该指令的助记符,指令代码,操作数,程序步如下表:

指令格式:

该指令表示当X0接通后,把D0里面的内容向右移动4位。

当指令执行的一次的时候,把里面(1111111100000000)的数据向右移动4位,向右移动4位的话就把低位的4个数给挤出来,然后再把这个挤出来的数据通过M8022然后再填补到高位变成了(0001111111110000),我们可以看到多了一个1,这是怎么回事呢?这个一其实是来自进位标记里面的,进位标记处于ON状态,里面为1。进位标记里面的1代替了其中的一个位置,也就是代替了这个0的位置。这个时候进位标记里面的数就变成了0。所谓带进位标记的意思就是把进位标记里面的数一起包含进去,但是我们要注意,当目标原件使用组合位元件的时候,组合位元件的个只能是16个或者是32个否则会出错。并且使用脉冲执行,这样就可以确保数据的稳定。

带进位循环左移指令 :该指令的助记符,指令代码,操作数,程序步如下表:

指令格式:

该指令表示当X0接通后,把D0里面的内容向左移动4位。

当指令执行的一次的时候,把里面(1111111100000000)的数据向左移动4位,向左移动4位的话就把高位的4个数给挤出来,然后再把这个挤出来的数据通过M8022然后再填补到低位变成了(11111000000000111),我们可以看到少了一个1,这是怎么回事呢?这个1其实在进位标记里面,进位标记处于OFF状态,里面为0。进位标记里面的0代替了其中的一个位置,也就是代替了这个1的位置。这个时候进位标记里面的数就变成了1。

关注小编不迷路,带你学习更多PLC知识噢!

标签: #移位运算右移