三菱PLC怎样移位?BSFLP高手教教我

2024年12月03日 04:33
有1个网友回答
网友(1):

三凌PLC中有BSFLP吗?

移位:

1、ROR  右循环移位     

2、ROL  左循环移位

右、左循环移位指令(D)ROR(P)和(D)ROL(P)编号分别为FNC30 和FNC31。执行这两条指令时,各位数据向右

(或向左)循环移动n 位,最后一次移出来的那一位同时存入进位标志M8022 中,

3、RCR  带进位右循环移位

4、RCL   带进位左循环移位

带进位的循环右、左移位指令(D) RCR(P)和(D) RCL(P)编号分别为FNC32 和FNC33。执行这两条指令时,

各位数据连同进位(M8022)向右(或向左)循环移动n 位,如图2 所示。

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

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

和K8(32 位指令)时有效。

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

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

5、SFTR 右移位

6、SFTL 左移位

位右、左移指令SFTR(P)和SFTL(P)的编号分别为FNC34 和FNC35。它们使位元件中的状态成组地向右

(或向左)移动。n1 指定位元件的长度,n2 指定移位位数,n1 和n2 的关系及范围因机型不同而有差异,

一般为n2≤n1≤1024。位右移指令使用如图3 所示。

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

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

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

7、WSFR   右移字

8、WSFL   左移字

先入先出写入指令和先入先出写入读出指令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 顺序存入,源数据写入的次数放在D

1 中,当D1 中的数达到n-1 后不再执行上述操作,同时进位标志M8022 置1。

9、.SFWR 先入先出FIFO写入

10、SFRD先入先出FIFO读出

先入先出读出指令SFRD,当X0 由OFF 变为ON 时,D2 中的数据送到D20,同时指针D1 的值减1,D3~

D9 的数据向右移一个字,数据总是从D2 读出,指针D1 为0 时,不再执行上述操作且M8020 置1。

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

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

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