三菱PLC中,移位传送指令是怎样工作的?

如题所述

smov:数位传送指令。举个例子,简单点说就是把“1234”中的某个或多个位置的一个或多个数字传送到“5678”中的对应位置上,使原来的“5678”变成一个新的数字(例,1678,5278,5634等),而原来的“1234”不变。其指令格式,及寄存器的数位规定,如下图:
其中,s.是“1234”所在的d寄存器地址,m1规定从哪个位置开始移动(k1~k4),m2指定移动的数字个数(1~4),d.是“5678”所在的d寄存器地址,n是移入d.中的位置(k1~k4)。(注:该指令有bcd码数,十六进制数两种执行模式,标志继电器m8168
on时执行十六进制数移位;m8168
off时执行bcd码数移位)。
例:(d0)=1234,(d1)=5678
在bcd码模式下:

smov
d0
k4
k2
d1
k3
的意思就是把d0中从k4位起的连续两位即“12”传送收到d1中从k3位起的连续两位中,即用“12”代替“67”,结果就是(d0)=1234,(d1)=5128。

在十六进制模式下:(d0)=
#04d2
(1234),(d1)=
#162e(5678)

smov
d0
k4
k2
d1
k3
的意思是用“04”代替“62”,结果(d0)=
#04d2
(1234),(d1)=
#104e(4174)。
以上介绍耐心看不难理解,个人认为比手册更通俗一些,祝楼主好运,望采纳!
温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-12-04
位右移SFTR与位左移SFTL指令
SFTR,SFTL:连续执行型指令
SFTRP,SFTLP:脉冲执行型指令
位右移SFTR与位左移SFTL指令编程方式如下:
SFTRP
M0
M20
K16
K4
SFTLP
M0
M20
K16
K4
*M0:源位元件起始地址,只能是位元件(X,Y,M,S)

*M20:目标位元件起始地址,只能是位元件(Y,M,S)
*K16:目标位元件个数,只能是数值
*K4:移动的个数,只能是数值

实例:
假设M0=ON,M1=ON,M2=OFF,M3=ON
M20---M23都为ON,M24---M27都为OFF,M28---M31都为ON,M32---M35都为OFF
SFTRP
M0
M20
K16
K4(M20---M35以四个位为单位向右移动,M20---M23溢出)
执行的结果为:

M20---M23都为OFF,M24---M27都为ON,M28---M31都为OFF,M32=ON(等于M0),M33=ON(等于M1),M34=OFF(等于M2),M35=ON(等于M3)

SFTLP
M0
M20
K16
K4(M20---M35以四个位为单位向左移动,M32---M35溢出)
执行的结果为:
M20=ON(等于M0),M21=ON(等于M1),M22=OFF(等于M2),M23=ON(等于M3),M24---M27都为ON,M28---M31都为OFF,M32---M35都为ON
相似回答