移位与循环移位指令--习题
PLC题库
1.左、右移位指令是()A.RL与RRB.ROL与RORC.SFTL与SFTRD.SHL与SHR2.下面程序中,若VB0的值为5,则I0.0变“ON”后,Q0.7~Q0.0的值分别为:( )A.0000 1000B.0000 1001C.0000 0101D.0000 10113.对S7-200系列PLC,输入公共端M与哪种电压相连?( )A.0VB.+12VC.+24VD.-24V4.工业控制中,PLC直流控制电压一般为多少伏?( )A.AC110VB.DC24VC.DC36VD.AC220V5.下面程序中,若CO的当前值为5,则I0.0变“ON”后,Q0.0、Q0.1、Q0.2的状态分别为( )A.Q0.0为0、Q0.1为0、Q0.2为1B.Q0.0为1、Q0.1为0、Q0.2为0C.Q0.0为0、Q0.1为1、Q0.2为0D.Q0.0为1、Q0.1为0、Q0.2为16.加法指令格式为()A.MULB.ADDC.DIVD.SUB7.在SCR指令段中,如S0.1原处于接通的状态,当转移条件成立后,使S0.2接通,那么S0.1应是()A.接通B.复位C.状态由S0.2下步决定D.不定8.S7-200PLC,数据块数据传送,可采用哪种指令?( )A.BMBB.MOVBC.SLBD.PID9.对S7-200系列PLC,两个16位数整数相乘,产生一个32位的输出结果,应采用哪种指令。
( )A.ADDB.SUBC.DIVD.MUL10.由于PLC执行指令的速度很快,因此通常用执行()步指令所需要的时间来衡量PLC的速度。
A.800B.900C.1000D.150011.使用哪个命令,输出Q、M仅在驱动接通后的一个扫描周期内动作?( )A.LRDB.LPSC.EDD.EU12.要使定时器T、计数器C等元件中的状态位清零,可使用那一条指令( )A.SB.RC.LRDD.LPP13.顺序功能图的三要素是指()A.步、顺序、状态B.顺序、状态、条件C.顺序、转换、动作D.步、转换、动作14.左、右循环移位指令是()A.RCL与RCRB.ROL与RORC.SFTL与SFTRD.WSFL与WSFR15.下面指令中能实现10s定时的为:( )A.LD I0.0TON T37, +1B.LD I0.0TON T33, +10C.LD I0.0TON T42, +100D.LD I0.0TON T55, +1016.如下梯形图对于的时序关系,下列选型中()正确A BA.上述A选项B.上述B选项C.上述C选项D.上述D选项17.下图中时序图对于的梯形图为()ABCDA.上述A选项B.上述B选项C.上述C选项D.上述D选项18.减法指令格式为()A.MULB.ADDC.DIVD.SUB19.空指令的取值范围为()A.0~127B.0~255C.1~256D.1~32767B20.置位/复位指令的取值范围为()A.0~127B.0~255C.1~256D.1~32767B21.()是步进结束指令A.SCRB.LSCRC.SCRTD.SCRED22.()是步进跳转指令A.SCRB.LSCRC.SCRTD.SCREC23.()是步进开始指令A.SCRB.LSCRC.SCRTD.SCREB24.步进顺序控制的初始步用()激活A.SM0.0B.SM0.1C.SM0.4D.SM0.5B25.已知某PLC控制系统需要8点输入,6点输出,那么选择PLC时,其输入输出点数分别为()A.8、6B.10、10C.10、8D.8、10C26.起-保-停电路最主要特点是具有“记忆”功能,如下图所示,起到停止功能的触点是()A.I0.0B.I0.1C.Q0.0D.以上都不是B27.起-保-停电路最主要特点是具有“记忆”功能,如下图所示,起到启动功能的触点是()A.I0.0B.I0.1C.Q0.0D.以上都不是A28.起-保-停电路最主要特点是具有“记忆”功能,如下图所示,起到保持功能的触点是()A.I0.0B.I0.1C.Q0.0D.以上都不是C29.堆栈指令可以嵌套使用,最多为()层A.8B.9C.255D.无数B30.乘法指令格式为()A.MULB.ADDC.DIVD.SUBA31.块指令支路数量为()A.8B.9C.255D.无数C32.( )指令用于并联多个串联组成的电路块,表示块的“或”操作A.ALDB.OLDC.AD.OB33.()指令用于串联多个并联组成的电路块,表示块的“与”操作A.ALDB.OLDC.AD.0A34.()是局部变量寄存器A.LB.VC.ID.AIA35.()是变量寄存器A.LB.VC.ID.AIB36.只能与步进指令配合使用的是()软元件A.MB.SMC.ID.SD37.输出指令(=)不能用于()A.MB.SMC.ID.QC38.SM0.5为占空比50%、周期为()时钟脉冲A.1msB.100msC.1sD.1minC39.SM0.4为占空比50%、周期为()时钟脉冲A.1msB.100msC.1sD.1minD40.VD0表示含义中下列()不正确A.VW0~VW1B.VB0~VB4C.V0.0~V3.7D.V0~V4D41.以下说法正确的有()A.PLC输出使用的DC24V电源由PLC本身提供B.PLC的外部负载可由输出继电器驱动C.PLC之间的通讯方式主要是串行通信D.影响PLC扫描周期长短的因素包括程序长度和CPU处理速度E.以上答案都是错误的BCD42.以下说法错误的有()A.工业中控制电压一般是36伏B.PLC的多个线圈可以并联也可以串联C.两个软元件线圈可以并联,更多个则不可以D.PLC的自检过程是在每次开机通电时完成的E.以上答案都是错误的ABCD43.以下说法正确的有()A.PLC可以向扩展模块提供24V直流电源B.在PLC的寻址方式中,W表示字,一个字占8位C.PLC地址单元一般占用两个字节D.PLC有一个24V的内置电源E.以上答案都是错误的AD44.PLC具有许多独特的优点,其中包括()A.可靠性高、抗干扰能力强B.编程简单、使用方便C.功能完善、通用性强D.设计安装简单、维护方便E.以上答案都是错误的ABCD45.下列编程元件中,LD指令能操作的编程元件有()A.I、QB.M、CC.T、SD.DE.以上答案都是错误的ABC46.以下说法错误的有()A.PLC的最大I/O点数并没有限制B.PLC是专门用来完成逻辑运算的控制器C.PLC的抗干扰能力高于微型计算机、单片机、工控机D.PLC的输出形式是继电器接点输出E.以上答案都是错误的ABD47.PLC的发展方向可向着()A.小型化B.智能化C.高速化D.多功能E.以上答案都是错误的ABCD48.PLC的应用领域有()A.开关量逻辑控制B.运动控制C.数据处理D.闭环过程控制E.以上答案都是错误的ABCD49.PLC的结构形式有()A.整体式B.叠装式C.分隔式D.模块式E.以上答案都是错误的ABD50. 下面关于S7-200系列PLC的触点串联指令A、AN的叙述中正确的是: ()A.AN指令用于单个触点的串联连接,串联的数不能超过5个B.A常用于串联常开触点C.AN常用于串联常闭触点D.在OUT指令之后,可以通过串联触点对其它线圈进行驱动E.以上答案都是错误的BC51.PLC的继电器输出方式即可以驱动交流负载又可以驱动直流负载对52.PLC的双向晶闸管输出方式可以驱动交流负载对53.对于输入继电器,编程时应注意,其线圈只能由外部信号来驱动,故而在梯形图中不应出现输入继电器的线圈。
S7-200 SMART移位和循环移位运算指令怎么用?
S7-200 SMART移位和循环移位运算指令
移位指令
S7-200 SMART移位指令分为左、右移位、循环左、右移位及寄存器移位指令三大类。
前两类移位指令按移位数据的长度又分字节型、字型、双字型3种。
下图所示为移位指令梯形图:
图1. 移位指令:
移位与循环指令相关视频教程的链接如下:
如下为一个移位和循环移位实例:
图2.移位和循环移位程序图
其中:
I4.0上升沿触发
FOR_W为字循环右移
SHL_W为字左移
其移位和循环移位的过程可由下图进一步说明:
图3.移位和循环移位过程说明图
For Next 循环
程序循环结构用于描述一段程序的重复循环执行。
由 FOR和NEXT指令构成程序的循环体。
FOR指令标记循环的开始,NEXT指令为循环体的结束指令。
图4.For Next 循环
其中:
INIT,FINAL分别定义起始值和结束值。
使能输入EN有效,循环体开始执行,执行到NEXT指令时返回,每执行一次循环体,当前值计数器INDX增1,达到终止值FINAL时,循环结束。
使能输入无效时,循环体程序不执行。
每次使能输入有效,指令自动将各参数复位。
注意:使用 FOR 和 NEXT 指令可在重复执行分配计数的循环中执行程序段。
每条 FOR 指令需要一条 NEXT 指令。
For Next 编程实例
图5.For Next 循环循环程序图
使用状态表监控程序的运行如下图所示
图6.状态监视图
如上表所示,VW100值为4, INDEX大于终止值,循环终止。
微机原理课后习题参考答案
微机原理课后习题参考答案第1部分微型计算机基础知识1.1 微处理器、微型计算机和微型计算机系统三者之间有什么不同?【解】微处理器:指计算机内部对数据进行处理并对处理过程进行控制的部件,伴随着大规模集成电路技术的迅速发展,芯片集成密度越来越高,CPU可以集成在一个半导体芯片上,这种具有中央处理器功能的大规模集成电路器件,被统称为“微处理器”。
微型计算机:简称“微型机”、“微机”,也称“微电脑”。
由大规模集成电路组成的、体积较小的电子计算机。
由微处理机(核心)、存储片、输入和输出片、系统总线等组成。
特点是体积小、灵活性大、价格便宜、使用方便。
微型计算机系统:简称“微机系统”。
由微型计算机、显示器、输入输出设备、电源及控制面板等组成的计算机系统。
配有操作系统、高级语言和多种工具性软件等。
1.2 CPU在内部结构上由哪几部分组成?CPU应该具备哪些主要功能?【解】CPU在内部结构上由运算器、控制器、寄存器阵列和内部总线等各部分构成,其主要功能是完成各种算数及逻辑运算,并实现对整个微型计算机控制,为此,其内部又必须具备传递和暂存数据的功能。
1.3 微型计算机采用总线结构有什么优点?【解】①简化了系统结构,便于系统设计制造;②大大减少了连线数目,便于布线,减小体积,提高系统的可靠性;③便于接口设计,所有与总线连接的设备均采用类似的接口;④便于系统的扩充、更新与灵活配置,易于实现系统的模块化;⑤便于设备的软件设计,所有接口的软件就是对不同的口地址进行操作;⑥便于故障诊断和维修,同时也降低了成本。
总线的逻辑电路有些是三态的,即输出电平有三种状态:逻辑“0”,逻辑“1”和“高阻”态。
1.4计算机总线有哪些,分别是什么?【解】总线按其信号线上传输的信息性质可分为三组:①数据总线,一般情况下是双向总线;②地址总线,单向总线,是微处理器或其他主设备发出的地址信号线;③ 控制总线,微处理器与存储器或接口等之间1.5 数据总线和地址总线在结构上有什么不同之处?如果一个系统的数据和地址合用一套总线或者合用部分总线,那么要靠什么来区分地址和数据?【解】数据总线(DB)为双向结构,数据在CPU与存储器或I/O 接口之间的传送是双向的,(数据既可以读也可以写),其宽度通常与微处理器的字长相同。
微机原理习题解答:4
微机原理习题解答:4习题四1.8086语言指令的寻址方式有哪几类?用哪一种寻址方式的指令执行速度最快?答:数据操作数的寻址方式有七种,分别为:立即寻址,寄存器寻址,直接寻址,寄存器间接寻址,寄存器相对基址变址和相对基址变址寻址。
其中寄存器寻址的指令执行速度最快。
2.若DS=6000H,SS=5000H,ES=4000H,SI=0100H,BX=0300H,BP=0400H,D=1200H,数据段中变量名NUM的偏移地址为0050H,试指出下列源操作数的寻址方式和物理地址是多少?(1)MOV AX,[64H]答:寻址方式为直接寻址;PA=60064H(2)MOV AX,NUM 答:寻址方式为直接寻址;PA=60005H (3)MOV AX,[SI]答:寻址方式为寄存器间接寻址;PA=60100H (4)MOV AX,[BX]答:寻址方式为寄存器间接寻址;PA=60300H (5)MOV AX,[BP]答:寻址方式为寄存器间接寻址;PA=50400H (6)MOV AL,[DI]答:寻址方式为寄存器间接寻址;PA=61200H (7)MOV AL,[BX+1110H]答:寻址方式为寄存器相对寻址;PA=61410H (8)MOV AX,NUM[BX]答:寻址方式为寄存器相对寻址;PA=60305H (9)MOV AX,[BX+SI]答:寻址方式为基址变址寻址;PA=60400H(10)MOV AX,NUM[BX][DI]答:寻址方式为相对基址变址寻址;PA=61505H3.设BX=637DH,SI=2A9BH,位移量为C237H,试确定由这些寄存器和下列寻址方式产生的有效地址。
(1)直接寻址答:有效地址为EA=C237H(2)用BX的寄存器间接寻址答:有效地址为EA=637DH(3)用BX的相对寄存器间接寻址答:有效地址为EA=125B4H (4)基址加变址寻址答:有效地址为EA=8E18H(5)相对基址变址寻址答:有效地址为EA=1504FH其中,(3)和(5)中产生进位,要把最高位1舍去。
plc位移位和循环移位指令
plc位移位和循环移位指令PLC(可编程逻辑控制器)是一种常用于工业自动化控制系统的设备,它能够通过编程实现各种复杂的逻辑运算和控制功能。
在PLC 的指令集中,位移位和循环移位指令是两个重要的指令类型,它们在程序设计和运行中起到了重要的作用。
位移位指令是PLC中常用的一种操作指令,它用于将数据在字节或位级别上进行移动。
位移位指令通常用于对数据进行分解、合并、排序等操作。
位移位指令有两种形式:字节位移和位位移。
字节位移指令用于将字节数据在字节级别上进行移动。
例如,我们可以使用字节位移指令将一个16位的数据分成两个8位的数据,或者将两个8位的数据合并成一个16位的数据。
通过字节位移指令,我们可以实现对数据的有序排列和组合,从而方便后续的逻辑运算和控制。
位位移指令用于将数据在位级别上进行移动。
例如,我们可以使用位位移指令将一个8位的数据的某个位移到另一个位置,或者将多个位进行组合和拆分。
位位移指令通常用于对数据的某一位进行操作,例如将某一位设置为1或0,或者将某几位数据进行逻辑运算。
循环移位指令是另一种常用的PLC指令,它用于将数据在位级别上进行循环移动。
循环移位指令可以将数据按照指定的次数进行循环移动,从而实现对数据的循环操作。
循环移位指令有两种形式:循环左移和循环右移。
循环左移指令将数据的位从低位开始循环左移,即将最高位数据移动到最低位。
这样,数据的位在左移的过程中会循环移动,最后将最高位数据移动到最低位,从而实现数据的循环左移。
循环右移指令将数据的位从高位开始循环右移,即将最低位数据移动到最高位。
这样,数据的位在右移的过程中会循环移动,最后将最低位数据移动到最高位,从而实现数据的循环右移。
位移位和循环移位指令在PLC程序设计和运行中有着广泛的应用。
它们可以实现对数据的灵活处理和操作,从而满足不同的控制需求。
例如,在温度控制系统中,我们可以使用位移位和循环移位指令对传感器采集到的温度数据进行处理和判断,从而实现对温度的精确控制和调节。
循环移位与移位指令
案例 数码管显示控制
用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
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移位与循环指令移位与循环指令在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次移位。
keilC中的循环移位
一:C语言实现循环移位:比如将a=0x45循环左移二位。
a循环左移n位,即将原先右面(8-n)位左移n 位,而将原先左端的n位移到最右面n位。
实现步骤:1、将a的左端n位先放到b中的高n位中b=>>(8-n);2、将a左移n位,其右面高n位被补0c=<<n; //<<或>>是不带循环的移位3、将b,c进行或运算a=c|b;程序如下:main(){unsigned char a=0x45,b,c;unsigned int n=2;b=a>>8-n)c=a<<n;a=c|b;}二:Keil C言实现循环移位在Keil C51中有如此一个库,其头文件为<intrins.h>在C51\INC目录下,有以下几个操作,它不是函数,但象函数,它们有入口出口,可是,没有返回RET 语句,若是有这些操作,用disassembly窗口能够看到是将代码直接嵌入到你的代码中,其效率很高,比如一个空操作,_nop_() 嵌入的代码确实是一个NOP指令。
在那个库中,有如下操作:unsigned char _chkfloat_(float val) 检查浮点数状态返回值:0: standard floating-point numbers1: Floating-point value 02:+INF (positive overflow)3:-INF (Not a number) error statusunsigned char _crol_( //字节的多次循环左移unsigned char c, //C左移的字符unsigned char b);//b左移的位数unsigned char _cror_( //字节的多次循环右移unsigned char c, //C右移的字符unsigned char b);//b右左移的位数unsigned int _irol_ ( //字的循环左移unsigned int c, //c左移的字unsigned char b);//b左移的次数unsigned int _iror_ ( //字的循环右移unsigned int c, //c右移的字unsigned char b);//b右移的次数unsigned long _lrol_ ( //4字节(双字)的循环左移unsigned long c,//c左移的双字unsigned char b);//b左移的次数unsigned long _lror_ ( //4字节(双字)的循环右移unsigned long c,//c右移的双字unsigned char b);//b右移的次数void _nop_ (void); //NOP 8051中的空操作bit _testbit_ (bit b);//8051中的JBC指令,测试b,然后清0,返回b 的值。
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所示
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-1200 移位和循环指令
当拨动开关拨到OFF位置后,给QW0赋值为0,所有彩 灯均熄灭。
循环左移ROL
下图显示了如何将 DWORD 数据类型操作数的内容向左循环移动 3 位。
案例:彩灯循环控制
编程要求
当拨动开关拨到到ON位置后,彩灯从Y0开始,Y0亮1s后熄灭,Y2亮,Y2亮1s后熄灭,Y3亮....依次循环; 当拨动开关拨到OFF位置后,所有彩灯均熄灭。
案例:彩灯循环控制
编程过程
循环右移ROR
下图显示了如何将 DWORD 数据类型操作数的内容向右循环移动 3 位。
循环左移ROL
“循环左移”指令将输入 IN 中操作数的内容按位向左循环移位,并在输出 OUT 中查询结果。参数 N 用于 指定循环移位中待移动的位数。用移出的位填充因循环移位而空出的位。
如果参数 N 的值为“0”,则将输入 IN 的值复制到输出 OUT 的操作数中。 如果参数 N 的值大于可用位数,则输入 IN 中的操作数值仍会循环移动指定位数。
22
S7-1200 移位和循环指令
右移SHR
“右移”指令将输入 IN 中操作数的内容按位向右移位,并在输出 OUT 中查询结果。参数 N 用于指定将指 定值移位的位数。
如果参数 N 的值为“0”,则将输入 IN 的值复制到输出 OUT 的操作数中。 如果参数 N 的值大于位数,则输入 IN 的操作数值将向右移动该位数个位置。 无符号值移位时,用零填充操作数左侧区域中空出的位。如果指定值有符号,则用符号位的信号状态填充空 出的位。
左移SHL
下图说明了如何将 WORD 数据类型操作数的内容向左移动 6 位。
移位指令练习题
移位指令练习题移位指令是计算机中常用的指令之一,用于对二进制数进行左移或右移操作。
在本篇文章中,我们将介绍一些移位指令的基本概念,并提供一些移位指令的练习题,帮助读者深入理解和掌握移位指令的使用。
一、移位指令概述移位指令是计算机中的一种基本指令,常用于对数据的位进行移动操作。
一般而言,移位操作可分为逻辑移位和算术移位两种形式。
逻辑移位是通过将数据位向左或向右移动指定的位数,然后用0填充空出的位数。
逻辑移位有两种模式:逻辑左移和逻辑右移。
算术移位与逻辑移位类似,不同之处在于算术移位是在移位过程中保留原有数据的最高有效位(符号位)。
算术左移将数据位向左移动指定的位数,并用0填充空出的位数;算术右移将数据位向右移动指定的位数,并用原有数据的最高有效位(符号位)填充空出的位数。
二、1. 逻辑左移练习假设有一个8位的二进制数01011010,对其进行逻辑左移3位后的结果是多少?解析:逻辑左移将数据位向左移动指定的位数,并用0填充空出的位数。
对于本题,我们将二进制数01011010逻辑左移3位,即为01010000。
2. 逻辑右移练习假设有一个12位的二进制数110011001100,对其进行逻辑右移4位后的结果是多少?解析:逻辑右移将数据位向右移动指定的位数,并用0填充空出的位数。
对于本题,我们将二进制数110011001100逻辑右移4位,即为000011001100。
3. 算术左移练习假设有一个16位的二进制数0011001100110011,对其进行算术左移5位后的结果是多少?解析:算术左移将数据位向左移动指定的位数,并用0填充空出的位数。
对于本题,我们将二进制数0011001100110011算术左移5位,即为0110011001100000。
4. 算术右移练习假设有一个10位的二进制数1010101010,对其进行算术右移2位后的结果是多少?解析:算术右移将数据位向右移动指定的位数,并用原有数据的最高有效位(符号位)填充空出的位数。
三菱PLC循环与移位应用指令
三菱PLC循环与移位应用指令
系列PLC 循环与移位指令是使位数据或字数据向指定方向循环、位移的
指令。
一、循环移位指令
1.左、右循环移位指令
左、右循环移位指令包括循环右移ROR(Rotation Right)和循环左移ROL(Rotation Left)指令。
2.带进位左、右循环移位指令
带进位循环移位指令也包括带进位循环右移RCR(Rotation Right with Carry)和带进位循环左移RCL(Rotation Left with Carry)指令,功能编号分别为FNC32 和FNC33。
二、移位指令
1.位右移和位左移指令
位右移SFTR(Shift Right)与位左移SFTL(Shift Left)指令实现位元件中的状态成组地向右或向左移动。
2.字右移和字左移指令
字右移WSFR(word Shift Right)、字左移WSFL(word Shift Left)的源操作数可以取KnX、KnY、KnM、KnS、T、C 和D,目标操作数可以取
KnY、KnM、KnS、T、C 和D。
字移动指令只有16 位运算。
3.移位寄存器写入与读出指令
移位寄存器又称为先入先出FIFO(First in First out)堆栈,堆栈的长度范围为2~512 个字。
移位寄存器写入指令SFWR(Shift Register Write)和移位寄存器读出指令SFRD(Shift Register Read)用于FIFO 堆栈的读写,先写入的数据先读出。
三菱PLC习题集(填空、判断、选择题)
填空部分1、PLC基本单元主要由CPU、电源、存储器、I/O模块及编程器组成。
2、为适应不同负载需要,各类PLC的输出都有三种方式,即继电器输出、晶体管输出、晶闸管输出。
3、PLC的工作状态有停止(STOP)状态和运行(RUN)状态。
4、PLC的工作方式是采用周期循环扫描。
PLC的工作方式的优点集中输入与集中输出、能在很大程度上减少软故障的发生。
5、一个用户程序扫描周期由三阶段组成:输入采样阶段、程序执行阶段、输出处理阶段。
6、PLC最基本、最广泛的应用领域是开关量的逻辑控制。
用它来取代传统的继电–接触器控制系统进行逻辑、顺序控制。
7、PLC所采用的微处理器有三种:通用微处理器,单片微处理器(即单片机),位片式微处理器。
8、PLC通电后,CPU在程序的监督控制下先进行内部处理。
在执行用户程序之前还应完成通信服务与自诊检查。
9、一般由程序控制的数字电子设备产生的故障有两种:软故障,硬故障。
10、PLC的供电电源可直接采用普通单相交流电,也可用直流24V供电。
11、PLC对用户程序(梯形图)按先左后右、从上至下的步序。
12、PLC的软件和硬件定时器相比较,定时范围长的是PLC,精度高的是PL C。
13、PLS和PLF指令都是实现在程序循环扫描过程中某些只需执行一次的指令。
不同之处是上升沿触发还是下降沿触发。
14、SET可以对Y、M、S操作。
RST可以对Y、M、S、T、C、D操作。
15、在FX系列PLC中主要元件表示如下:X表示输入继电器、Y表示输出继电器、T表示定时器、C表示计数器、M表示辅助继电器,S表示状态元件、D、V、Z表示数据寄存器。
16、定时器可以对PLC内1 ms、10 ms、100 ms的时钟脉冲进行加法计算。
17、在FX系列的PLC中,辅助继电器又分为三类通用辅助继电器、断电保持辅助继电器、特殊辅助继电器。
18、在MC指令内嵌套使用时嵌套级最大可为8级。
19、FX系列PLC支持编程方式梯形图、步进流程图(SFC)、指令表。
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技术》习题集(简答题)
《电器控制与PLC技术》习题集简答题1.什么是功能指令?有何作用?答:1)功能指令的表现形式图13-2 功能指令基本形式(1) [S﹒]叫做源操作数,其内容不随指令执行而变化,在可利用变址修改软元件的情况下,用加“﹒”符号的[S﹒]表示,源的数量多时,用[S1﹒][S2﹒]等表示(2) [D﹒]叫做目标操作数,其内容随指令执行而改变,如果需要变址操作时,用加“﹒”的符号[D﹒]表示,目标的数量多时,用[D1﹒][D2﹒]等表示。
(3) [n﹒]叫做其他操作数,既不作源操作数,又不作目标操作数,常用来表示常数或者作为源操作数或目标操作数的补充说明。
可用十进制的K、十六进制的H和数据寄存器D来表示。
在需要表示多个这类操作数时,可用[n1]、[n2]等表示,若具有变址功能,则用加“﹒”的符号[n﹒]表示。
此外其他操作数还可用[m]来表示。
2)功能指令又称应用指令,实际上是一个个功能不同的子程序,采用了计算机通用的助记符形式。
按功能号(FNC00~FNC99)编排,每条功能指令都有一助记符。
2.什么叫“位”软元件?什么叫“字”软元件?有什么区别?答:(1)“位”软元件:处理断开和闭合状态的元件为位软元件;(2)“字”软元件:处理16位数据的元件为字软元件。
(3)由位软元件组合起来也可以构成字软元件,进行数据处理;每4个位软元件为一组,组合成一个单元,位软元件的组合由Kn(n在1至7之间)加首元件来表示。
如KnY 、KnX等,K1Y0表示由Y0、Y1、Y2 、Y3组成的4位字软元件;K4M0表示由M0——M15组成的十六位字软元件。
3.数据寄存器有哪些类型?具有什么特点?试简要说明答:PLC在进行输入输出处理、模拟量控制、位置控制时,需要许多数据寄存器存储数据和参数(存放操作数、运算结果和运算的中间结果)。
数据寄存器为16位,最高位为符号位。
可用两个数据寄存器来存储32位数据,最高位仍为符号位。
数据寄存器有以下几种类型:1).通用数据寄存器(D0~D199)共200点。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课堂练习:
22.设AX=3762H,CL=5,执行“SHR AX,CL”后,AX=()。
A.0376H B.01BBH C.01BB D.0376
28.执行“DIV BX”指令后,()寄存器中存放商。
A.AL B.AH C.AX D.DX
24.若移位指令的移位位数大于1时,其移位位数必须放在中。
25.如果AL=85H,CL=4,执行“SAR AL,CL”时,AL= ,CF= 。
6.设BX=8234H,请说明下列两条指令的区别,执行下列各指令后BX中的内容是什么?
SHR BX,1
SAR BX,1
6.现有程序段如下:
MOV BL,AL
MOV CL,4
SHR BL,CL
MOV A,BL
AND AL,0FH
MOV B,AL
请回答:(1)该程序段完成的功能是什么?
(2)如果AL的初值为56H,则A= ,B= 。
8.现有程序段如下:
MOV AX,M
MOV DX,N
SHR DX,1
RCR AX,1
请回答:(1)该程序段完成的功能是什么?
(2)若M=1234H,N=5678H,程序运行后DX= ,AX= 。
9.现有程序段如下:
XOR AX,AX
MOV AX,6342H
MOV CX,0404H
ROL AH,CL
XCHG CH,CL
ROR AL,CL
请回答:(1)该程序段执行后AX= 。
(2)CF= 。
11.现有程序段如下:
MOV CX,16
MOV BX,0
MOV DX,1
L:MOV AX,9AB8H
AND AX,DX
JZ N
INC BX
N:SHL DX,1
LOOP L
MOV M,BX
请回答:(1)该程序段完成的功能是什么?
(2)该程序段执行完后(M)= 。
14.现有程序段如下:
MOV AL,0
MOV BL,1
MOV CX,10
L:ADD AL,BL
INC BL
LOOP L
请回答:(1)该程序段完成的功能是什么?
(2)该程序执行完后,AL= 。
5.将DX:AX:BX中的48位数乘以2。
9.将DX:AX中的32位数据逻辑左移2位。
答案============================================================
课堂练习:
22.设AX=3762H,CL=5,执行“SHR AX,CL”后,AX=()。
A.0376H B.01BBH C.01BB D.0376
28.执行“DIV BX”指令后,()寄存器中存放商。
A.AL B.AH C.AX D.DX
24.若移位指令的移位位数大于1时,其移位位数必须放在中。
CL
25.如果AL=85H,CL=4,执行“SAR AL,CL”时,AL= ,CF= 。
0F8H 0 6.设BX=8234H,请说明下列两条指令的区别,执行下列各指令后BX中的内容是什么?
SHR BX,1
SAR BX,1
参考:SHR是逻辑右移指令,移位后空出的位补0,而SAR是算术右移指令,最高位保持不变,其他位右移一位。
SHR BX,1执行后BX=411AH,执行SAR BX,1后BX=0C11AH。
6.现有程序段如下:
MOV BL,AL
MOV CL,4
SHR BL,CL
MOV A,BL
AND AL,0FH
MOV B,AL
请回答:(1)该程序段完成的功能是什么?
(2)如果AL的初值为56H,则A= ,B= 。
6.(1)将AL中的八位数分高低4位分别存放在A和B中。
(2)A=05H,B=06H
8.现有程序段如下:
MOV AX,M
MOV DX,N
SHR DX,1
RCR AX,1
请回答:(1)该程序段完成的功能是什么?
(2)若M=1234H,N=5678H,程序运行后DX= ,AX= 。
8.(1)将M:N中的32位右移一位。
(2)DX=091AH,AX=2B3CH
9.现有程序段如下:
XOR AX,AX
MOV AX,6342H
MOV CX,0404H
ROL AH,CL
XCHG CH,CL
ROR AL,CL
请回答:(1)该程序段执行后AX= 。
(2)CF= 。
9.(1)3624H
(2)CF=0
11.现有程序段如下:
MOV CX,16
MOV BX,0
MOV DX,1
L:MOV AX,9AB8H
AND AX,DX
JZ N
INC BX
N:SHL DX,1
LOOP L
MOV M,BX
请回答:(1)该程序段完成的功能是什么?
(2)该程序段执行完后(M)= 。
11.(1)统计9AB8H中为1的位数。
(2)M=8
14.现有程序段如下:
MOV AL,0
MOV BL,1
MOV CX,10
L:ADD AL,BL
INC BL
LOOP L
请回答:(1)该程序段完成的功能是什么?
(2)该程序执行完后,AL= 。
14.(1)实现1+2+3+……+10
(2)37H(55)
5.将DX:AX:BX中的48位数乘以2。
5.SAL BX, 1
RCL AX, 1
RCL DX, 1
9.将DX:AX中的32位数据逻辑左移2位。
9.SHL AX, 1
RCL DX, 1
SHL AX, 1
RCL DX, 1。