第六章5循环移位指令

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

• 带进位循环右移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,便于控制。
(3)在指令的连续执行方式中,每一个扫描周期都会移位一次。 在实际控制中,常采用脉冲执行方式。
位左移指令SFTL的应用示例梯形图如下所示。
位左移指令SFTL示例梯形图
位左移指令SFTL示例过程
位右移指令SFTR的应用示例梯形图如下所示。
位右移指令SFTR示例梯形图
位右移指令SFTR示例过程
SFTRP SFTLP
SFWRP X1 出库 M8000 BCD SFRDP
D0 D2
D1
K100
D101 K100
把产品编号读到D101中
D101 K4Y0
用4位BCD数码管显示产品编号

移位写入和读出物品编号实例
图 FIFO指令
(5)执行图5-59,当X0闭合,D0为100。执行SFWR指令,
当X1第1次闭合,D2为100,D1为1; 当X1第2次闭合,D3为100,D1为2,…, 当X1第9次闭合,D10为100,D1为9。 执行SFRD指令,当X2第1次闭合,D10数据100送D20,D1为8; 当X2第2次,D9数据送D20,D1数值减小到7…,一直到D1为0。 在写出过程中,D2~D10数据保持不变。
输 输入继电 器 X0 入 作 用 输出继电器 Y7~Y0 输 出 控制对象 HL8~HL1 输入元件 SB1
启动按钮
X1
SB2
停止按钮
Y17~Y10
Y27~Y20
HL16~HL9
H24~HL17
PLC应用指令的应用 霓虹灯控制 控制要求:
现有L1~L8共8盏霓虹灯管接于K2Y000,要求当X000为ON时,霓虹灯 L1~L8以正序每隔1秒轮流点亮,当Y007亮后,停2秒;然后,反向逆 序隔1秒轮流点亮,当Y000再亮后,停5秒,重复上述过程。当X001为 ON时,霓虹灯停止工作。
【例】四台水泵轮流运行,由四台三相异步电动机M1~M4 驱动。正常要求是两台运行两台备用。为了防止备用水泵 长时间不用造成锈蚀等问题,要求四台水泵中两台运行, 并每隔8h切换一台,使四台水泵轮流运行。
X0 C0 Y0 Y1 Y2 Y3 SA 运行 8h 8h 8h 8h 8h 8h 停止
Y3
KM4→(M4)
• 循环左移(D) ROL(P) (Rotation Left)(16/32)
操作数 [D]:KnY、KnM、KnS、T、C、D、V、Z 说明
执行这两条指令时,各位的数据向右(或向左)循环移动 n位(n为常数),16位指令和32位指令中n应分别小于16 和32。
每次移出来的那一位同时存入进位标志M8022中。
【例】入库物品FIFO。写入99个物品的产品编号(4位十 进制数),依次存放在D2~D100中,按照先入库的物品 先出库的原则,读取出库物品的产品编号,并用4位数码 管显示产品编号。则其程序如图所示。
X0 入库 BIN K4X0 D0 4位十进制编号0~9999→D0 存放99个产品编号D0→D2~D100
【解】 控制线路需要2个输入端口,8个输出端口。输入、输出端口的分配 如表5.39所示。
输入/输出端口分配表 输 输入继电器 X0 X1 入 作 用 启动按钮 停止按钮 Y7~Y0 输 输出继电器 出 控制对象 8个接触器
输入元件 SB1 SB2
字右移和字左移指令 字右移WSFR(P)(Word Shift Right)、 字左移 WSFL(P)(Word Shift Left) 操作数 [S]: KnX、KnY、KnM、KnS、T、C、D [D]: KnY、KnM、KnS、T、C、D
位移位指令使用说明
说明
(1) SFTR命令有4个操作数,当X10接通,以源(S.)X0开始的n2 (K2)位,向右移入以目标(D.)M0开始的n1(K8)位元件中去。 每当X10从OFF → ON,移位一次。移位后,如果源为1,则目标 置位,而源复位。
(2) SFTL命令也有4个操作数,其动作原理与(1)相同。
(1)利用基本指令完成编程。
(2)利用步进指令完成编程。 (3)利用移位指令完成编程。
• 利用基本指令完成编程,程序如下:
• 利用步进指令完成编程任务,参考程序如下:
• 利用移位指令完成编程任务,参考程序如下:
一、循环移位指令
左、右循环移位指令 • 循环右移(D)ROR(P)(Rotation Right)(16/32)
图a中: • 目标元件D1是FIFO堆栈的首地址,也是堆栈的指针,移位寄存器未装入 数据时应将D1清0。 • 在X000由OFF变为ON时,指针的值加1后写入数据。第一次写入时,源操 作数D0中的数据写入D2。
FIFO指令使用说明
• 如果X000再次由OFF变为ON,D1中的数变为2,D0中的数据写入D3。依 此类推,源操作数D0中的数据依次写入堆栈。 • 当D1中的数据等于n-1(n为堆栈的长度)时,不再执行上述处理,进位标 志M8022置1。
利用FIFO
案例五 生产线质量控制
•现代工业生产广泛采用流水作业,对成品或半成品进行分 检,排除残次品是必须的工序。在流水线上,成品或半成 品往往要经过若干项检验,符合要求者得以通过,随着流
移位寄存器写入与读出指令
移位寄存器又称为先入先出FIFO(First in First out)堆栈,堆栈的长
度范围为2~512个字。 • 写入指令 SFWR(Shift Register Writeter Read)
用于FIFO堆栈的读写,先写入的数据先读出。 SFWR操作数 [S]: K、H、KnX、KnY、KnM、KnS、T、C、D、V、Z [D]: KnY、KnM、KnS、T、C、D SFRD操作数 [S]: KnX、KnY、KnM、KnS、T、C、D [D]: KnY、KnM、KnS、T、C、D
循环移位与移位指令
教学目标 1、了解循环指令的使用 2、掌握移位寄存器的指令使用 3、掌握利用可编程序控制器来实现数码管 显示控制的程序设计
项目:彩灯的循环控制
现有16个彩灯,摆放成圆形,按下启动按钮,彩灯以顺时针方
向间隔1秒轮流点亮,循环三次后彩灯转换成逆时针方向间隔2
秒轮流点亮,循环三次后自动停止工作。按下停止按钮,立即 停止工作。 如何完成控制要求?
循环右移说明
循 环 位 移 指 令 使 用 说 明
【例题】 循环左移指令ROL的应用举例如图所示。求输出位组件K4Y0在 一个循环周期中各位状态的变化。
各位状态的变化
【例题】 利用PLC实现流水灯控制。某灯光招牌有24个灯, 要求按下启动按钮X0时,灯以正、反序每0.1s间隔轮流点亮; 按下停止按钮X1时,停止工作。 【解】 由于输出动作频繁,应选择晶体管或晶闸管输出类型 的PLC。流水灯控制需要2个输入端口,24个输出端口。输入、 输出端口的分配如表5.34所示。 输入/输出端口分配表
PLC应用指令的应用 霓虹灯控制 I/O分配表
输入 输入继电器 X000 X001 作用 起动按钮 停止按钮 输出继电器 Y000~Y007 输出 作用 驱动L1~L8
PLC应用指令的应用 霓虹灯控制 梯形图设计(1/2)
PLC应用指令的应用 霓虹灯控制
梯形图设计(2/2)
二、带进位左、右循环移位指令
图 b中
• X000由OFF变为ON时,D2中的数据送到D20,同时指针D1的值减1,D3
到D9的数据向右移一个字。 • 数据总是从D2读出,指针D1为0时,FIFO堆栈被读空,不再执行上述处
理,零标志M8020为ON。
• 执行本指令的过程中,D9的数据保持不变。
移位写入指令的使用注意事项: 1)一般情况下2≤n≤512。 2)源操作数可取所有数据类型,目标操作数可取KnY、 KnM、KnS、T、C和D。 3)SFWR(P)只有16位操作数,占7个程序步。 移位寄存器又称为FIFO(First In First Out,先入先出) 堆栈,堆栈的长度范围为2~512字。移位寄存器写入指令 SFWR和移位寄存器读出指令SFRD用于FIFO堆栈的读写,先写 入的数据先读出。 移位读出指令的使用注意事项: 1)一般情况下2≤n≤512。 2)源操作数可取所有数据类型,目标操作数可取KnY、 KnM、KnS、T、C和D。 3)SFRD(P)只有16位操作数,占7个程序步。
【解】 Y17~Y0各位状态的变化如表所示。在未执行位右移指令SFTR 前,(K4Y0)= 0,第一次执行左移指令SFTR后,(K4Y0)= H0B000, 第二次执行左移指令SFTL后,(K4Y0)= H0BB00,依次类推。
例题 各位状态的变化
【例题】 某台设备有8台电动机,为了减小电动机同时启动对电源的影 响,利用位移指令实现间隔10s的顺序通电控制。按下停止按钮时,同时 停止工作。
【解】 Y17~Y0各位状态的变化如表所示。第一次执行左移指令 SFTL后,(K4Y0)= H0B,第二次执行左移指令SFTL后,(K4Y0)= H0BB,依次类推。
例题 各位状态的变化
2.位右移指令SFTR举例 【例题】 位右移指令SFTR的程序梯形图如图所示。设Y17~Y0的初始 状态为0,X3~X0的位状态为1011。求数次执行位右移指令SFTR后, Y17~Y0各位状态的变化。
Y2
KM3→(M3)
X1
Y1
KM2→(M2)
X0
Y0
KM1→(M1)
COM
COM1
(a) 四台水泵运行时序图 Y1 M0 X0 SFTLP C0 RST X0 M8014 C0 X1 ZRST Y0 Y3 K480 C0 M0 Y0 K4 K1
(b) 电动机PLC接线图
Y3 0 0 0 0 1 1 0
n1、n2:K,H,n2 ≤ n1 ≤ 512。
梯形图
图a中的X000由OFF变为ON时,字右移指令按图中所示的顺序移位。 图b中的X010由OFF变为ON时,字左移指令按图中所示的顺序移位。
字移位指令使用说明
字右移指令的使用注意事项: 1)一般情况下n2≤n1≤512。 2)WSFR指令源操作数可取KnX、KnY、KnM、KnS、T、C 和D,目标操作数可取KnY、KnM、KnS、T、C和D。 3)WSFR(P)只有16位操作数,占9个程序步。
相关文档
最新文档