循环及移位指令

合集下载

微机原理第三章5

微机原理第三章5

(4)SHR AL, 1
29
• 已知(AL)=0B4H=10110100B,(CF)=1。
(1)SAL AL, 1 ;移位后(AL)= 68H=01101000B, CF=1
(2)SAR AL, 1 ;移位后(AL)=0DAH=11011010B, CF=0
(3)SHL AL, 1 ;移位后(AL)= 68H=01101000B, CF=1
3.3.4 串操作指令
• 串操作指令 :
• 数据传送类指令每次只能传送一个数据,若要传 送大批数据就需要重复编程,这样就浪费了大量的时 间和空间。 为此8086提供了一组处理主存中连续存放数据串 的指令,这就是串操作指令。

针对数据块或字符串的操作; 可实现存储器到存储器的数据传送;
待操作的数据串称为源串,目标地址称为目标串。
ROLÖ · Á î µ Ä Ñ ­ º ²³ ó Ò Æ ² Ø ³ ô
D15ò º D7 D0 CF
RORÖ · Á î µ Ä Ñ ­ º ²Ó Ò Ò Æ ² Ø ³ ô
32
通过进位的循环指令图解
CF D15ò º D7 D0
RCLÖ · Á î Ä µ ´ ÷ ¼ ÷ Î º Ñ ­ º ²ó ³Ò Æ ² Ø ³ ô
34
[例 ]
• 循环指令举例
ROL BX,CL
; 将 BX 中的内容不带进位循环左移 CL 中规定 的次数 ROR WORD PTR[SI],1
;将物理地址为 DS*16+SI单元的字不带进位循 环右移1次
35
[例 ]
• 设CF=1, AL = 1011 0100B = 0B4H 若执行指令ROL AL, 1 ;则AL=? CF=?, OF=? 若执行指令ROR AL, 1 ;则AL= ? CF=?, OF=? 若执行指令RCR AL, 1 ;则AL=? CF=?, OF=? 若执行指令MOV CL, 3 RCL AL, CL ;则AL=?, CF=?, OF=?

plc位移位和循环移位指令

plc位移位和循环移位指令

plc位移位和循环移位指令PLC(可编程逻辑控制器)是一种常用于工业自动化控制系统的设备,它能够通过编程实现各种复杂的逻辑运算和控制功能。

在PLC 的指令集中,位移位和循环移位指令是两个重要的指令类型,它们在程序设计和运行中起到了重要的作用。

位移位指令是PLC中常用的一种操作指令,它用于将数据在字节或位级别上进行移动。

位移位指令通常用于对数据进行分解、合并、排序等操作。

位移位指令有两种形式:字节位移和位位移。

字节位移指令用于将字节数据在字节级别上进行移动。

例如,我们可以使用字节位移指令将一个16位的数据分成两个8位的数据,或者将两个8位的数据合并成一个16位的数据。

通过字节位移指令,我们可以实现对数据的有序排列和组合,从而方便后续的逻辑运算和控制。

位位移指令用于将数据在位级别上进行移动。

例如,我们可以使用位位移指令将一个8位的数据的某个位移到另一个位置,或者将多个位进行组合和拆分。

位位移指令通常用于对数据的某一位进行操作,例如将某一位设置为1或0,或者将某几位数据进行逻辑运算。

循环移位指令是另一种常用的PLC指令,它用于将数据在位级别上进行循环移动。

循环移位指令可以将数据按照指定的次数进行循环移动,从而实现对数据的循环操作。

循环移位指令有两种形式:循环左移和循环右移。

循环左移指令将数据的位从低位开始循环左移,即将最高位数据移动到最低位。

这样,数据的位在左移的过程中会循环移动,最后将最高位数据移动到最低位,从而实现数据的循环左移。

循环右移指令将数据的位从高位开始循环右移,即将最低位数据移动到最高位。

这样,数据的位在右移的过程中会循环移动,最后将最低位数据移动到最高位,从而实现数据的循环右移。

位移位和循环移位指令在PLC程序设计和运行中有着广泛的应用。

它们可以实现对数据的灵活处理和操作,从而满足不同的控制需求。

例如,在温度控制系统中,我们可以使用位移位和循环移位指令对传感器采集到的温度数据进行处理和判断,从而实现对温度的精确控制和调节。

1200plc移位指令

1200plc移位指令

1200plc移位指令摘要:1.1200PLC 移位指令简介2.1200PLC 移位指令的类型3.1200PLC 移位指令的用法4.1200PLC 移位指令的实例5.1200PLC 移位指令在工程中的应用正文:1200PLC 移位指令是一种在可编程逻辑控制器(PLC)中广泛应用的指令,用于实现二进制或循环移位操作。

通过使用移位指令,可以简化代码编写,提高程序执行效率。

1200PLC 移位指令具有多种类型,可以根据实际需求选择合适的指令。

首先,我们来了解一下1200PLC 移位指令的类型。

1200PLC 移位指令主要分为以下几种:(1)循环右移(RRC)(2)循环左移(RLC)(3)带循环右移(RR)(4)带循环左移(RL)接下来,我们来看一下1200PLC 移位指令的用法。

在使用移位指令时,需要指定操作数(S)、移位次数(C)和移位方向(D)。

操作数(S)表示要进行移位操作的内存区域,移位次数(C)表示要移位的位数,移位方向(D)表示移位方向,可以是正向(0)或反向(1)。

下面,我们通过一个实例来了解一下1200PLC 移位指令的具体应用。

假设有一个4 位的二进制数1011,我们想要将其循环左移两位。

可以使用以下指令:```RLC S1.0, C2, D1```执行该指令后,S1.0 中的二进制数将会变为1100。

1200PLC 移位指令在工程中有着广泛的应用,例如在数据处理、通信协议和控制逻辑等方面。

通过灵活使用移位指令,可以简化代码编写,提高程序执行效率,降低系统成本。

总之,1200PLC 移位指令是一种非常有用的指令,可以实现二进制或循环移位操作。

汇编语言2-4逻辑移位指令

汇编语言2-4逻辑移位指令
第 2章
8086指令系统
一、数据传送类; 二、算术运算类; 三、位操作指令(逻辑运算和移位类); 四、串操作类; 五、控制转移类; 六、处理器控制类;
第 2章
8086指令系统
位操作指令,它们都是按位进行操作的包含逻辑运
算类指令和移位指令。 位操作类指令以二进制位为基本单位进行数据的操 作;这是一类常用的指令,都应该特别掌握 注意这些指令对标志位的影响 要求:全面而准确地理解每条指令的功能和应用 重点掌握以下指令:
第 2章
2、逻辑或指令OR
功能:对两个操作数执行按位逻辑或运 算,结果送到目的操作数
OR reg,imm/reg/mem ;reg←reg∨imm/reg/mem OR mem,imm/reg ;mem←mem∨imm/reg
说明:(1)按位逻辑或运算; (2)OR指令对操作数的限制和对标志位的影响; 思考: (1)某一个操作数自己和自己相逻辑或? 置某些位 (2)OR指令主要用在什么场合?
RCR reg/mem,1/CL
;带进位循环左移
;带进位循环右移
演示
第 2章
说明:循环移位指令
对操作数:同移位指令。 对标志的影响:
(1)按照指令功能设置进位标志CF (2)不影响SF、ZF、PF、AF (3)对于OF,同移位指令。如果进行一位移动, 则按照操作数的最高符号位是否改变,相应设置 溢出标志OF:如果移位前的操作数最高位与移位 后操作数的最高位不同(有变化),则OF = 1; 否则OF = 0。当移位次数大于1时,OF不确定
第 2章
例:移位指令
mov cl,4 mov al,0f0h ;al=f0h shl al,1 ;al=e0h ;CF=1,SF=1、ZF=0、PF=0,OF=0 shr al,1 ;al=70h ;CF=0,SF=0、ZF=0、PF=0、OF=1 sar al,1 ;al=38h ;CF=0,SF=0、ZF=0、PF=0、OF=0 sar al,cl ;al=03h ;CF=1,SF=0、ZF=0、PF=1 、OF=0

循环移位与移位指令

循环移位与移位指令

案例 数码管显示控制
用PLC控制七段数码管循环显示数字 0~9,显示间隔1s。
LED数码管工作原理 数码管工作原理
a b c
ad
e
f
g
a
b c
d e
f
g
f g
b
COM( ) ( COM(+) ( )
a e
R U I
c
d
COM
U′
U - U′ R= I
一、硬件设计
LED显示控制 显示控制PLC的I/O点分配表 显示控制 的 点分配表
字右移位指令WSFR、字左移位指令 WSFL
助记符 WSFR FNC36 字右移 WSFL FNC37 字左移 功 能 把源元件状态存 放到字栈中,堆 栈右移 把源元件状态存 放到字栈中,堆 栈左移 操 作 [S.] KnX、 KnY、 KnM、 KnS、 T、C、 D [D.] 数 n1 n2 程 序 步
梯形图
二、软件设计
脉冲 0 1 2 3 4 5 6 7 8 9 M4 0 0 0 0 0 1 1 1 1 1 M3 M2 0 0 0 0 1 1 1 1 1 0 0 0 0 1 1 1 1 1 0 0 M1 0 0 1 1 1 1 1 0 0 0 M0 0 1 1 1 1 1 0 0 0 0 S0 1 1 1 1 1 0 0 0 0 0
七 段 码 显 示 真 值 表
数字 aY0 bY1 cY2 dY3 eY4 fY5 gY6 0 1 2 3 4 5 6 7 8 9 1 0 1 1 0 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 0 1 1 0 1 1 1 1 1 0 1 1 0 1 1 0 1 1 1 0 1 0 0 1 1 0 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 1 0 1 1

S7-1200第08讲:移动操作,转换,程序控制,字逻辑运算,移位与循环移位指令

S7-1200第08讲:移动操作,转换,程序控制,字逻辑运算,移位与循环移位指令
SWAP:用于反转二字节和四字节数据元素 的字节顺序。不改变每个字节中的位顺序。
移动指令:
VariantGet:读取 SRC 参数所指向的变量,并将其写入到 DST参数的变 量中。
VariantPut:将 SRC 参数所引用的变量写入到 DST参数所指向的变量中。
CountOfElements:计算 IN参数指向的数组中所含数组元素的数目。
GET_ERR_ID:指示发生程序块执行错误,并报告错误的 ID(标识符代 码)。
RUNTIME:测量整个程序、各个块或命令序列的运行时间。
字逻辑运算指令:
AND、OR 和 XOR 逻辑运算指令: 所选数据类型将 IN1、IN2 和 OUT 设置为
相同的数据类型。 IN1 和 IN2 的相应位值相互组合,在参数
NORM_X:标准化通过参数 MIN 和 MAX指定的值范围内的参数 VALUE: OUT = (VALUE - MIN) / (MAX - MIN),其中 (0.0 <= OUT <= 1.0)
程序控制指令:
JMP:RLO(逻辑运算结果)= 1 时跳 转:如果有能流通过 JMP 线圈 (LAD), 则程序将从指定标签后的第一条指令 继续执行。
FLOOR:将实数(Real 或LReal)转换为小于或等于所选实数的最大整数 (IEEE“向负无穷取整”)。
TRUNC:TRUNC 用于将实数转换为整数。实数的小数部分被截成零(IEEE - 取整为零)。
SCALE_X:按参数 MIN 和 MAX所指定的数据类型和值范围对标准化的实 参数 VALUE(其中,0.0 <= VALUE <=1.0)进行标定: OUT = VALUE (MAX - MIN) + MIN

FX系列PLC的循环移位与移位指令

FX系列PLC的循环移位与移位指令

RCL、 RCLP… 5步
DRCL、 DRCLP… 9

带进位循环左移指令使16位、32位数据连同进位一起向右循环移位“n”
位。
如果M8022在执行循环指令前ON,则循环中的进位标志被送到目标。
X0
[D.]
n
FNC33 RCL(P) D0
K4
当X0由OFF→ON时,[D]内各位数据向左移n位,最后一次从最低位移
SFRD指令是先进先出控制的数据读出指令
程序步 n
K、H 2≤
n≤512
SFWR、 SFWR
P… 7步
X1
[S.] [D.] n
FNC39 SFRD (P)
D0
D20
K10
当X1由OFF→ON时,将D1的数据传送到D20内,与此同时,指针D0 的内容减1,D2~D9的数据向右移。
当X0再由OFF→ON时,即原D2中的内容传送到D20内,D1的内容再 减1。依此类推,数据总是从D1读出。当D1的内容为0,则上述操作不再 执行,零标志M8020动作。
D(•)
KnY、 KnM、
KnS 、T、 C、
D、V、Z
n
K、H 移位量 n≤16 (16位) n≤32 (32位)
程序步
ROR、 RORP… 5步
DROR、 DRORP… 9 步
X0
[D.]
n
FNC30 ROR(P) D0
K4
当X0由OFF→ON时,[D]内各位数据向右移n位,最后一次从最低位移出的 状态也存于进位标志M8022中。
操作数范围
D(•)
n
KnY、 KnM、
KnS 、T、 C、
D、V、Z
K、H 移位量 n≤16 (16位) n≤32 (32位)

5.9移位与循环指令

5.9移位与循环指令

5.9移位与循环指令移位与循环指令在PLC 控制中常用,根据移位的数据长度可分为字节型移位,字型移位和双字型移位;根据移位的方向可分为左移和右移,还可进行循环移位。

注:移位指令在运用时,由于手的抖动很容易多次输入,建议加上上升沿指令,不易发生错误。

5.9.1位移指令位移指令将输入值右移或左移N位,并将输出结果装载到OUT中。

该指令有左移和右移两种。

根据所移位数的长度不同可分为字节型、字型和双字型。

移位数据存储单元的移出端与SM1.1(溢出)相连,所以最后被移出的位被放到SM1.1位存储单元。

移位时,移出位进入SM1.1,另一端自动补0。

如果移位操作使数据变为0,则零存储器标志位(SMl.0)自动置位。

1.左移指令表5- 左移指令功能描述:把字节型(字型或双字型)输人数据左移N位后,再将结果输出到OUT所指的字节(字或双字)存储单元,最后一次移出位保存在SM1.1中。

最大实际可移位次数为8位(16位或32位)。

2.右移指令表5- 右移指令功能描述:把字节型(字型或双字型)输人数据右移N位后,再将结果输出到OUT所指的字节(字或双字)存储单元,最后一次移出位保存在SM1.1中。

最大实际可移位次数为8位(16位或32位)。

【例5-3】字节左移六只灯(Q0.0~Q0.5),按下启动按钮(I0.0)时,六只灯按正方向顺序逐个点亮,每一时间只有一只灯亮。

灯亮的间隔时间为1秒。

按下停止按钮(I0.1),灯全灭。

5.9.2循环移位指令 (Rotate)循环移位指令包括循环左移和循环右移,循环移位位数的长度可以是字节、字或双字。

循环数据存储单元的移出端与另一端相连,同时又与SMl.1(溢出)相连,所以最后被移出的位移到另一端的同时,也被放到SMl.1位存储单元。

例如在循环右移时,移位数据的最右端位移入最左端,同时又进入SMl.1。

SMl.1始终存放最后一次被移出的位。

移位次数N与移位数据的长度有关,如N小于实际的数据长度,则执行N次移位。

循环移位指令

循环移位指令

指令解读
应用注意
1. 连续执行型每个扫描周期都要执行一次, 因 此,最好使用脉冲执行型指令ROLPo
2. 当终址D使用组合位元件时位元件的组数在 16位指令ROL时为K4;在32位指令DROL时为K8,否 则 指令不能执行。
编程示例
试用循环指令编制如下流程的应用程序。有5 个灯,启动后,先是按照顺序轮流各自亮Is,全 部一 起亮5s,如此反复循环。
2. 当终址D使用组合位元件时位元件的组数在 16位指令ROR时为K4;在32位指令DROR时为K8,否 则 指令不能执行。
编程示例
有A, B, C三个灯,(代表“欢迎您”三个 字),控制要求是A, B, C各轮流亮1秒钟,然后 一 起亮1秒钟,如此反复循环。
设计思路
您迎欢 您 迎
Y17 Y16
xooo
0T 6H
xooo
T
X001
____ቤተ መጻሕፍቲ ባይዱ_ ______ ______
_
{MOW KI
K4Y000
10 H
M1
[MOVP KO
K4Y000
T
17 H
25
XOMOllM8013
T IIF
Y006
34
[RST YOOO
Y006
訓~ ROLP K4Y000 KI
Y1~Y5轮流输出1 ------[MOVP H7F K4Y000
D10中低4位送丫0~¥调 出
EXD
二、循环左移指令ROL
指令格式
操作数
内容与取值
D.
循环左移数据存储字元件地址。
循环移动位数,16位循环移位指令(n<16) ; 32位循环
n
移位指令(n<32)。

5循环及移位指令

5循环及移位指令

3.指令格式及功能
(1)
循 环 右 移 说 明 (一)
(1) 循环右移说明(二) 执行条件成立,[D.]循环右移n位。[D.]高位n位右 移,[D.]中原高位n位同时右移,以此类推,[D.]中低位 n位移至[D.]中的高位n位。每次执行循环右移n位的最 后一位影响标志位M8022(进位标志)。
(3)执行图5-45,当X0闭合,D10的值为245。图5-46给出运行的情况,图(a)中,当X1 闭合1次,执行ROR指令1次,D10右移3位。此时D10=-24546。同时进位标志M8022 为“1”。当X1再闭合1次,再执行ROR指令1次,D10右移3位。此时D10=-11261。同 时进位标志M8022为“1”。图(b)中,当X2闭合,执行ROL指令1次,D10的各位左移2 位,此时D10=980。同时进位标志M8022为“0” X2再闭合,再执行ROL指令1 次,D10的再左移2位,此时D10=3920。同时进位标志M8022为“0”。
图5-57 字右移和字左移命令
(2)执行图5-57,为X0闭合,D3、D2、D1、D0的值分别为40、30、20、10。 当X1闭合一次,执行WSFR命令,D25、D24、D23、D22分别为40、30、20、 10;X1再闭合一次,则D21、D20、D19、D18分别为40、30、20、10,而D25~ D22保持原移入值不变。 当X1再闭合一次,则D17、D16、D15、D14分别为40、30、20、10,而D25~ D18保持原移入值不变,当X1再闭合一次,D13、D12、D11、D10分别为40、30、 20、10。而D25~D14保持原移入值不变。 (3)WSFL执行情况与(2)相同,但当X3闭合一次,X0、X1、X2、X3分别为10、 20、30、40 (4)WSFR、WSFL控制触点,最好采用脉冲触点指令,如图5-57所示

单片机指令的移位操作探索单片机指令中的移位操作功能

单片机指令的移位操作探索单片机指令中的移位操作功能

单片机指令的移位操作探索单片机指令中的移位操作功能单片机指令的移位操作探寻单片机是一种集成电路,具有微处理器功能,常被用于嵌入式系统等应用中。

在单片机的指令集中,移位操作是一项常见的功能。

移位操作可以通过改变数据位的位置来实现对数据的处理和控制。

本文将探讨单片机指令中的移位操作功能,并介绍移位操作的类型及其应用场景。

1. 逻辑移位操作逻辑移位操作是指根据指令要求,通过在数据的位级别上进行移位操作,不考虑数据的符号位。

逻辑移位操作通常分为逻辑左移和逻辑右移两种操作。

1.1 逻辑左移逻辑左移是将数据在二进制表示下向左移动指定的位数,右侧补零。

逻辑左移操作可以实现乘以2的幂次方的运算,常用于乘法操作的替代。

例如,若将一个8位数据0xAC进行逻辑左移2位,则结果为0xB0。

移位前的二进制表示为10101100,移位后的二进制表示为10110000。

逻辑左移操作可以用单片机指令中的LSL(Logical Shift Left)指令来实现。

LSL指令的操作数可以是寄存器或内存中的数据。

逻辑右移是将数据在二进制表示下向右移动指定的位数,左侧补零。

逻辑右移操作可以实现除以2的幂次方的运算,常用于除法操作的替代。

例如,若将一个8位数据0xAC进行逻辑右移2位,则结果为0x2B。

移位前的二进制表示为10101100,移位后的二进制表示为00101011。

逻辑右移操作可以用单片机指令中的LSR(Logical Shift Right)指令来实现。

LSR指令的操作数可以是寄存器或内存中的数据。

2. 算术移位操作算术移位操作是指根据指令要求,在数据的位级别上进行移位操作,并保留数据的符号位。

算术移位操作通常分为算术左移和算术右移两种操作。

2.1 算术左移算术左移是将数据在二进制表示下向左移动指定的位数,右侧补零,并保留符号位。

算术左移操作可以实现乘以2的幂次方的运算,与逻辑左移相比,算术左移保留了符号位。

例如,若将一个8位数据0xAC进行算术左移2位,则结果为0xB0。

第六章5循环移位指令

第六章5循环移位指令

• 带进位循环右移RCR(Rotation Right with Carry) • 带进位循环左移RCL(Rotation Left with Carry)
执行这两条指令时,各位的数据与进位位M8022一起(16位指令时一共17
位)向右(或向左)循环移动n位(见图)。
三、位右移和位左移指令 • 位右移SFTR(Shift Right) • 位左移 SFTL(Shift Left) 操作数 [S]: X、Y、M、S [D]:Y、M、S
实现位元件中的状态成 组地向右或向左移动
说明: 位元件组的长度由n1指定,n2指定移 动的位数。
梯形图
图中X010由OFF变为ON时,位右移指令(3位1组)按以下顺序移位:M2~M0中 的数溢出,M5~M3→M2~M0,M8~M6→M5~M3,X002~X0000→M8~M6。 图b中的X010由OFF变为ON时,位左移指令按图中所示的顺序移位。
Y2 0 0 0 1 1 0 0
Y1 0 0 1 1 0 0 1
Y0 0 1 1 0 0 1 1
M0 1 1 0 0 1 1 0 循 环
(c)四台水泵运行梯形图

四台水泵轮流工作实例
2.位左移指令SFTL举例
【例题】 位左移指令SFTL的程序梯形图如图所示。设Y17~Y0的初 始状态为0,X3~X0的位状态为1011。求数次执行位左移指令SFTL后, Y17~Y0各位状态的变化。
(1)位右移说明: 当操作条件满足时,位右移指令在n1个指定目标位元件中,右移n2个指 定的源元件位元件状态。即n2位[S.] 状态右移到n1位[D.],从n1位目标元件 的高位进去,而其低位溢出。 上述的示例程序操作。位右移的目标元件为:M10~M25,源元件为: X0~X1,当X1由“0”变“1”时,X1、X0的状态传到M25、M24,原来的 M25、M24移到M23、M22…以此类推,M11、M10丢失。由图示的方法说 明状态的变化。 由于连续型操作,每个扫描周期都进行操作,合上一瞬间,就把原操作数状 态都移位了。建议使用SFTRP,SFTLP,便于控制。

plc位移位和循环移位指令

plc位移位和循环移位指令

plc位移位和循环移位指令PLC位移位和循环移位指令一、引言PLC(可编程逻辑控制器)是一种专门应用于工业自动化领域的数字计算机。

在PLC中,位移位和循环移位指令是常用的指令之一。

本文将介绍PLC位移位和循环移位指令的原理和应用。

二、PLC位移位指令1. 概念位移位指令是一种用于对数据进行位操作的指令。

它可以根据指定的位数将数据向左或向右移动,并在移动过程中将被移出的位补充或丢弃。

2. 应用场景位移位指令在PLC中广泛应用于数据处理、逻辑运算等方面。

例如,在自动化生产线上,当需要对传感器采集到的数据进行处理时,可以使用位移位指令来提取特定的位信息,以进行后续的逻辑判断或控制操作。

3. 操作方法PLC位移位指令通常有两个参数:被操作的数据和位移的位数。

根据位移的方向和位数,可以实现不同的功能。

(1)左移位左移位是将数据向左移动指定的位数,左侧空出的位补零。

左移位可以用于将数据乘以2的幂次方。

例如,对于二进制数1010,左移1位后得到的结果是10100。

(2)右移位右移位是将数据向右移动指定的位数,右侧空出的位补零或丢弃。

右移位可以用于将数据除以2的幂次方。

例如,对于二进制数1010,右移1位后得到的结果是101。

三、PLC循环移位指令1. 概念循环移位指令是一种将数据在二进制位上进行循环移动的指令。

它可以将数据的最高位或最低位移动到对应的最低位或最高位,同时将其他位向前或向后移动。

2. 应用场景循环移位指令在PLC中常用于数据处理、编码解码等方面。

例如,在编码器中,可以使用循环移位指令对传感器采集到的位置信息进行编码,以便后续的位置控制。

3. 操作方法PLC循环移位指令通常有两个参数:被操作的数据和移动的位数。

根据移动的方向和位数,可以实现不同的功能。

(1)左循环移位左循环移位是将数据向左移动指定的位数,并将最高位移动到最低位。

左循环移位可以用于实现循环队列等数据结构。

例如,对于二进制数1010,左循环移位1位后得到的结果是0101。

S7-300任意位数的循环移位

S7-300任意位数的循环移位

S7-300任意位数的循环移位
S7-200和S7-1200有字节、字和双字的循环移位指令。

S7-300/400只有双字循环移位指令。

在它的基础上,可以实现任意位的循环移位,下面以8位循环移位为例。

本例来源于作者的《跟我动手学S7-300/400 PLC》。

MB0是双字MD0的最高字节,MD0每次循环左移1位后,最高位M0.7的数据被移到MD0最低位的M3.0(见下图)。

为了实现MB0的循环移位,移位后如果M3.0为1状态,将MB0的最低位M0.0置位为1,反之将M0.0复位为0,相当于MB0的最高位M0.7移到了MB0的最低位M0.0。

MD0每次循环右移1位之后,MB0的最低位M0.0的数据被移到MB1最高位的M1.7。

移位后根据M1.7的状态,将MB0的最高位M0.7置位或复位,相当于MB0的最低位M0.0移到了MB0的最高位M0.7。

在程序段3,用MOVE指令将MB0的值传送到QB4,可用QB4来控制8位彩灯。

根据本例的思路,不难实现任意位的循环移位。

阅读(5465)评论(0)。

5循环及移位指令解读

5循环及移位指令解读
X2第二次合上, D11的值___________________________; X2第三次合上, D11的值___________________________;
例3,现有16个彩灯,摆放成圆形,按下启动按钮,彩灯以顺时针方向间隔
0.5秒轮流点亮,循环两次后彩灯转换成逆时针方向间隔0.5秒轮流点亮,循 环两次后自动停止工作。按下停止按钮,立即停止工作。
3.指令格式及功能
(1)
循 环 右 移 说 明 (一)
(1) 循环右移说明(二) 执行条件成立,[D.]循环右移n位。[D.]高位n位右 移,[D.]中原高位n位同时右移,以此类推,[D.]中低位 n位移至[D.]中的高位n位。每次执行循环右移n位的最 后一位影响标志位M8022(进位标志)。
(3)执行图5-45,当X0闭合,D10的值为245。图5-46给出运行的情况,图(a)中,当X1 闭合1次,执行ROR指令1次,D10右移3位。此时D10=-24546。同时进位标志M8022 为“1”。当X1再闭合1次,再执行ROR指令1次,D10右移3位。此时D10=-11261。同 时进位标志M8022为“1”。图(b)中,当X2闭合,执行ROL指令1次,D10的各位左移2 位,此时D10=980。同时进位标志M8022为“0” X2再闭合,再执行ROL指令1 次,D10的再左移2位,此时D10=3920。同时进位标志M8022为“0”。
3、操作格式及功能 (1)操作格式:
(2)操作功能: WSFR:在[S.]中的n2个字元件右移至[D.]开始的 n1个字元件中,高字移进,低字溢出。 WSFL:在[S.]中的n2个字元件左移至[D.]开始的 n1个字元件中,低字移进,高字溢出。
(3)WSFR说明: 当X0合上,D10~D25单元的变化, 如图所示。

PLC技术及应用-循环与移位类指令

PLC技术及应用-循环与移位类指令

利用乘法指令来实现彩灯移位点亮控制
M8002 Y17
SET Y0
X0 M8013
MULPHale Waihona Puke K4Y0 K2 K4Y0END
第一行的作用是设置0000 0000 0001,以后当M8013第一 次接通的时候,由于1*2=2,于是得到0000 0000 0000 0010;当M8013第二次接通是,2*2=4,得到0000 0000 0000 ,0100;以此类推,可以得到1000 0000 0000 0000,此时 Y17接通,置Y0=1,再次进行循环。
先入先出写入和读出指令
先入先出写入指令和先入先出写入读出指令SFWR(P)和SFRD(P)的编 号分别为FNC38和FNC39。
当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 。
PLS M0 RST M1
END
彩灯功能用加减乘除指令共同完成
X0 M8013 M0
MULP K4Y0 K2 K4Y0
Y14 M0 M8013
INCP K4Y0 SET M0
DECP K4Y0
DIVP K4Y0 K2 K4Y0
Y0
RST M0
彩灯功能用位右移、位左移指令共同完 成
X0
X1 M8013 M0
: 20X 2
185
式中“X”代表输入端口 K2X0输入的二进制数,运算结 果通过K2Y0输出;X20是起停

左循环移位指令

左循环移位指令
项目七: PLC功能指令应用
左循环移位指令
XXXXX XXXXX
项目七: PLC功能指令应用
FX2系列可编程控制器移位控制指令有移位、循环移位、字移 位及先进先出FIFO指令等10条指令。
右循环移位指令ROR 左循环移位指令ROL 位右移位指令SFTR、 位左位指令SFTL
带进循环右移指令RCR
项目七: PLC功能指令应用
指令用法
ROL指令功能是将指定的目软组件中的二进制数按照指令规定的每次移 动的位数由低位向高位移动,最后移出的那一位将进入进位标志位 M8022。ROL指令的执行类似于ROR,只是移位方向相反
【例2】如图7.61所示,ROL指令应用举例
X0 FNC31 ROL(P) [D.] D0
带进位循环左移指令RCL
字右移位指令WSFR
先入先出读出指令SFRD
先入先出写入指令SFWR
字左移位指令WSFL
项目七: PLC功能指令应用
左循环移位指令
指令 名称 指令代 码位数 操作数范围 D( •)
n K、 H 移位量 ROL、ROLP… KnY、KnM、 循环 ROL FNC31 n≤16(16 5步 KnS 、T、C、 左移 ROL(P) 16/32 位) DROL、 D 、 V、 Z n≤32(32 DROLP… 9步 位)
n
K4
图7.61
ROL指令应用举例
项目七: PLC功能指令应用
当X0由OFF→ON时,[D]内各位数据向左移n位,最后一次从最低位移出的 状态也存于进位标志M8022中。循环左移指令的示意图如图7.62所示:
图7.62
循环左移指令的示意图
项目七: PLC功能指令应用
用连续指令执行时,循环移位操 作每个周期执行一次。 在指定位软元件的场合下, 只有K4(16位指令)或K8 (32位指令)有效。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

图5-52为I/O分配图,图中X0为 起动按钮,X4为停止按钮。图5-53 为其梯形图。
图5-52 例5-8的I/O图
图5-53 例5-8 梯形图 图5-53中使用了SFTL指令。以M0元件1位向左移入以M10起始的6位元件中去。SFTL的控制触 点由“与、或”电路控制: 而首次控制M0,必须在M10,M11,…M15得电时闭合,故此在程序的第0行用了一系列的常闭 串联触点去控制M0。 第43行至58行,为驱动电路。当M10得电,驱动Y0及T0。T0延时时间到,产生移位,M11得 电,而M10复位失电。M11得电,驱动Y1,机器运行到触压行程开关SQ1,X1闭合,产生新的移 位,M12得电,而M11失电。M12得电,驱动Y2,机器运行到触压行程开关SQ2,X2闭合,产生新 的移位。M13得电,而M12失电。M13得电,驱动Y3及定时器T1,延时3s时间到,T1触点闭合,产 生新的移位,M14得电,而M13失电。M14得电,驱动Y0、Y1、Y2、Y3,驱动T0。当T0延时3s时间 到,产生新的移位,M15得电,而M14失电。M15得电驱动ZRST指令使从M10~M15均失电,程序 停止。而再按X0,程序又会进行另一循环。
图5-57 字右移和字左移命令
(2)执行图5-57,为X0闭合,D3、D2、D1、D0的值分别为40、30、20、10。 当X1闭合一次,执行WSFR命令,D25、D24、D23、D22分别为40、30、20、 10;X1再闭合一次,则D21、D20、D19、D18分别为40、30、20、10,而D25~ D22保持原移入值不变。 当X1再闭合一次,则D17、D16、D15、D14分别为40、30、20、10,而D25~ D18保持原移入值不变,当X1再闭合一次,D13、D12、D11、D10分别为40、30、 20、10。而D25~D14保持原移入值不变。 (3)WSFL执行情况与(2)相同,但当X3闭合一次,X0、X1、X2、X3分别为10、 20、30、40,余类推。 (4)WSFR、WSFL控制触点,最好采用脉冲触点指令,如图5-57所示
例1,当X0合上,分析Y0~Y17工作起情况;当X0断开?
例2,分析Y0~Y17的工作情况
例5-8 某生产过程如下:按起动按钮,电机M1启动工作,延时3s, M1停止,同时电机M2起动运行。前进碰行程开关SQ1,M2停止, M3起动。前进碰行程开关SQ2,M3停止,M4起动。M4运行3s,M1、 M2、M3、M4同时工作,又延时3s后全部停止。试用SFTL指令编程。
例3,现有16个彩灯,摆放成圆形,按下启动按钮,彩灯以顺时针方向间隔
0.5秒轮流点亮,循环两次后彩灯转换成逆时针方向间隔0.5秒轮流点亮,循 环两次后自动停止工作。按下停止按钮,立即停止工作。
二、字移位指令
1、助记符,指令代码 字右移:WSFR,WSFRP,FNC36(16) 字左移:WSFL,WSFLP,FNC37(16) 2、源、目标操作数: [S.]:KnX,KnY,KnM,KnS,T,C,D; [D.]: KnY,KnM,KnS,T,C,D; n1、n2:K,H,包含:移位 移位:SFTR,SFTL;循 移位 循 环移位:ROR,ROL;字移位 字移位:WSFR, 环移位 字移位 WSFL;先入先出 先入先出(FIFO):SFWR,SFWL。 先入先出 • 移位指令为非循环移位,数据移出部分丢失, 数据移入部分从其它数据获得。 • 循环移位 :数据在字或双字内的移位,是一种 环形的移动。 • 字移位:字数据在存储空间中的位置调整等功 能。 • 先入先出FIFO:数据管理。
项目:彩灯的循环控制
现有16个彩灯,摆放成圆形,按下启 动按钮,彩灯以顺时针方向间隔1秒轮流点 亮,循环三次后彩灯转换成逆时针方向间 隔2秒轮流点亮,循环三次后自动停止工作。 按下停止按钮,立即停止工作。
如何完成控制要求? (1)利用基本指令完成编程。 (2)利用步进指令完成编程。 (3)利用移位指令完成编程。
3.指令格式及功能
(1)
循 环 右 移 说 明 (一)
(1) 循环右移说明(二) 执行条件成立,[D.]循环右移n位。[D.]高位n位右 移,[D.]中原高位n位同时右移,以此类推,[D.]中低位 n位移至[D.]中的高位n位。每次执行循环右移n位的最 后一位影响标志位M8022(进位标志)。
(3)执行图5-45,当X0闭合,D10的值为245。图5-46给出运行的情况,图(a)中,当X1 闭合1次,执行ROR指令1次,D10右移3位。此时D10=-24546。同时进位标志M8022 为“1”。当X1再闭合1次,再执行ROR指令1次,D10右移3位。此时D10=-11261。同 时进位标志M8022为“1”。图(b)中,当X2闭合,执行ROL指令1次,D10的各位左移2 位,此时D10=980。同时进位标志M8022为“0”。当X2再闭合,再执行ROL指令1 次,D10的再左移2位,此时D10=3920。同时进位标志M8022为“0”。
(a) 往右移的意义 (b)往左移的意义 图5-51 SFTR 和 SFTL的用法
(4)利用SFTR、SFTL命令,可以实现步进顺控。步进顺控时一般都是每次移动一 个状态,如例5-8所示。
3.指令格式及功能: SFTRP SFTLP
(1)位右移说明: )位右移说明: 当操作条件满足时, 个指定目标位元件中, 当操作条件满足时,位右移指令在n1个指定目标位元件中,右 个指定目标位元件中 个指定的源元件位元件状态。 状态右移到n1位 移n2个指定的源元件位元件状态。即n2位[S.] 状态右移到 位 个指定的源元件位元件状态 位 [D.],从n1位目标元件的高位进去,而其低位溢出。 位目标元件的高位进去, , 位目标元件的高位进去 而其低位溢出。 上述的示例程序操作。位右移的目标元件为:M10~M25,源 上述的示例程序操作。位右移的目标元件为: , 元件为: 的状态传到M25、 元件为:X0~X1,当X1由“0”变“1”时,X1、X0的状态传到 , 由 变 时 、 的状态传到 、 M24,原来的 移到M23、M22…以此类推,M11、M10 以此类推, ,原来的M25、M24移到 、 移到 、 以此类推 、 丢失。由图示的方法说明状态的变化。 丢失。由图示的方法说明状态的变化。 由于连续型操作,每个扫描周期都进行操作,合上一瞬间, 由于连续型操作,每个扫描周期都进行操作,合上一瞬间,就把 原操作数状态都移位了。建议使用SFTRP,SFTLP,便于控制。 原操作数状态都移位了。建议使用 , ,便于控制。
图5-55
5.5.4字右移、字左移(WSFR,WSFL) 字右移、字左移( 字右移 , ) 1. 字左移和字左移命令的助记符和功能如表5-23所示:
3. 说明 (1) 如图5-56所示,WSFR命令的意义是:当X1闭合一次, 将以源(S.)D0为首址的4位(n2=K4)元件的数据向右移到目标(D.) 以D10为首址的16位(n1=K16)元件中去。 WSFL命令的意义是当X3闭合一次,将以源(S.)D0为首址的 4位(n2=K4)元件的数据向左移入到目标(D.)以D10为首址的16位 (n1=K16)元件中去。
例5-9 用SFTL指令编写广告灯光闪烁电路,如例4- 6 所示。要求有连续,单周,单步 控制。 I/O图分配如图5-54所示。图中 X0为启动,X1为停止,X2为单周/ 连续切换,X3为单步/连续切换。 图5-55为梯形图。
图5-54 广告灯光I/O分配
图中第33行中X3作为单步/连续的控制。当X3关合时,程序为连续动作。S20的 状态从左向右移位。当X3断开,每次移位,必须按起动按钮X0一次。故为单步。 图中第10行中X2为单周/连续的控制。当X2闭合时,为连续动作。当X2断开,每 次运行到S30时,由于X2断开,不能自动地使S20~S30复位,故为单周。
(4)WSFL说明: 当X0合上,D26~D41字单元的变 化,如图所示。
4、举例,分析程序,说明Y0的工作情况。
带进位循环右移和循环左移( 带进位循环右移和循环左移(RCR,RCL) , )
图5-48 带进位的循环
3.说明 (1)每次执行RCR指令,目标元件(D)中的位带进位循环右移n位,最后被移出的 位放入到进位标志M8022中。在运行下一次RCR指令时,M8022中的位首先进入目标 元件中。
• 利用基本指令完成编程,程序如下:
• 利用步进指令完成编程任务,参考程 序如下:
• 利用移位指令完成编程任务,参考程序如下:
一、循环移位: 循环移位: 1.助记符、指令代码 • 循环右移:ROR,DROR , RORP,DRORP。 (16/32) • 循环左移:ROL,DROL , ROLP,DROLP。 (16/32) 2.源、目标操作数: • D : KnY,KnM,KnS,T,C,D,V,Z • N:K,H<=[D.]的位数。
(2)每执行一次RCL指令,目标元件(D)中的位带进位循环左移n位,最后被移出的 位放入进位标志M8022中。在运行下一次RCR指令时,M8022中的位首先进入目标元件 中。 (3)图5-48执行情况如图5-49所示。图(a)为带进位循环右移4位,执行情况如下: X0接通, D1=0000 0000 1111 1111=255, M8022=0 X1接通第1次, D1=1110 0000 0000 1111=-8177, M8022=1 X1接通第2次, D1=1111 1110 0000 0000=-512, M8022=1 X1接通第3次, D1=0001 1111 1110 0000=8160, M8022=0 图(b)为带进位循环左移4位,执行情况如小: X0接通, D1=0000 0000 1111 1111=255, M8022=0 X2接通第1次, D1=0000 1111 1111 0000=4080, M8022=0 X2接通第2次, D1=1111 1111 0000 0000=-256, M8022=0 X2接通第3次, D1=1111 0000 0000 0111=-4089, M8022=1
相关文档
最新文档