三凌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 个程序步。