rol 循环左移 计算_循环与移位类指令ROR ROL RCR RCL SFTR SFTL WSFR WSFL SFWR SFRD 三菱FX系列PLC...

摘要:1.循环移位指令右、左循环移位指令(D)ROR(P)和(D)ROL(P)编号分别为FNC30和FNC31。执行这两条指令时,各位数据向右(或向左)循环移动n位,最后一次移出来的那一位同时存入进位标志M8022中,如图1所示。 图1 右、左循环移位指令的使用2.带进位的循环移位指令 带进位的循环右、左移位指令(D) RCR(P)和(D) RCL(P)编号分别为FNC32和FNC

1.循环移位指令

右、左循环移位指令(D)ROR(P)和(D)ROL(P)编号分别为FNC30和FNC31。执行这两条指令时,各位数据向右(或向左)循环移动n位,最后一次移出来的那一位同时存入进位标志M8022中,如图1所示。

图1

右、左循环移位指令的使用

2.带进位的循环移位指令

带进位的循环右、左移位指令(D)

RCR(P)和(D)

RCL(P)编号分别为FNC32和FNC33。执行这两条指令时,各位数据连同进位(M8022)向右(或向左)循环移动n位,如图2所示。

图2

带进位右、左循环移位指令的使用

使用ROR/ROL/RCR/RCL指令时应该注意:

1)目标操作数可取KnY,KnM,KnS,T,C,D,V和Z,目标元件中指定位元件的组合只有在K4(16位)和K8(32位指令)时有效。

2)16位指令占5个程序步,32位指令占9个程序步。

3)用连续指令执行时,循环移位操作每个周期执行一次。

3.位右移和位左移指令

位右、左移指令SFTR(P)和SFTL(P)的编号分别为FNC34和FNC35。它们使位元件中的状态成组地向右(或向左)移动。n1指定位元件的长度,n2指定移位位数,n1和n2的关系及范围因机型不同而有差异,一般为n2≤n1≤1024。位右移指令使用如图3

所示。

图3

位右移指令的使用

使用位右移和位左移指令时应注意:

1)源操作数可取X、Y、M、S,目标操作数可取Y、M、S。

2)只有16位操作,占9个程序步。

4.字右移和字左移指令

字右移和字左移指令WSFR(P)和WSFL(P)指令编号分别为FNC36和FNC37。字右移和字左移指令以字为单位,其工作的过程与位移位相似,是将n1个字右移或左移n2个字。

使用字右移和字左移指令时应注意:

1)源操作数可取KnX、KnY、KnM、KnS、T、C和D,目标操作数可取KnY、KnM、KnS、T、C和D。

2)字移位指令只有16位操作,占用9个程序步.

3)n1和n2的关系为n2≤n1≤512。

5.先入先出写入和读出指令

先入先出写入指令和先入先出写入读出指令SFWR(P)和SFRD(P)的编号分别为FNC38和FNC39。

先入先出写入指令SFWR的使用如图4所示,

当X0由OFF变为ON时,SFWR执行,

D0中的数据写入D2,而D1变成指针,其值为1(D1必须先清0);当X0再次由OFF变为ON时,D0中的数据写入D3,D1变为2,依次类推,D0中的数据依次写入数据寄存器。D0中的数据从右边的D2顺序存入,源数据写入的次数放在D1中,当D1中的数达到n-1后不再执行上述操作,同时进位标志M8022置1。

图4

先入先出写入指令的使用

先入先出读出指令SFRD,当X0由OFF变为ON时,D2中的数据送到D20,同时指针D1的值减1,D3~D9的数据向右移一个字,数据总是从D2读出,指针D1为0时,不再执行上述操作且M8020置1。

图5

先入先出读出指令的使用

使用SFWR和SFRD指令时应注意:

1)目标操作数可取KnY、KnM、KnS、T、C和D,源操数可取所有的数据类型。

2)指令只有16位运算,占7个程序步。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值