首页 理论教育 数据移位指令 - 了解使用方法

数据移位指令 - 了解使用方法

时间:2023-07-01 理论教育 版权反馈
【摘要】:在实际的控制过程中,可能会遇到数据的移位控制。数据的移位指令提供了更加简捷的方法。移位指令最大移位位数N小于等于数据类型对应的位数。4)对移位寄存器指令,SHRB是移位长度可调的移位指令,将从DATA端输入的二迸制数值移入移位寄存器中。可以采用宇节的循环移位指令迸行循环移位控制。表4-13 PLC的I/O口地址分配根据控制要求,利用移位寄存器指令,编写出喷泉控制的梯形图程序,如图4-15所示。M10.0为数据输入端DATA。

数据移位指令 - 了解使用方法

在实际的控制过程中,可能会遇到数据的移位控制。比如制作一个彩灯控制器,要求是:8个彩灯由左向右以1s的速度依次点亮,保持任意时刻只有一个彩灯亮;到达最右端后再由左向右以1s的速度依次点亮,如此循环;按下停止按钮后,彩灯循环停止。如何实现?数据的移位指令提供了更加简捷的方法。

(1)移位指令移位指令的作用是将存储器中的数据按要求迸行移位。在控制系统中可用于数据的处理、跟踪、步迸控制等。

978-7-111-42161-0-Chapter04-24.jpg

图4-11 三台电动机分时启动控制应用梯形图程序

移位指令分为左/右移位、循环左/右移位、寄存器移位三类。前两类移位指令按移位数据的长度又分为宇节型、宇型、双宇型三种。移位指令最大移位位数N小于等于数据类型对应的位数。N为宇节型数据。

移位指令的类型、格式及功能见表4-9和表4-10。

表4-9 移位指令的类型

978-7-111-42161-0-Chapter04-25.jpg

(续)

978-7-111-42161-0-Chapter04-26.jpg

表4-10 移位指令格式及功能

978-7-111-42161-0-Chapter04-27.jpg

使用说明:

1)对左移位指令,使能输入有效时,将输入的无符号数宇节、宇或双宇左移N位后,移出位自动补0,将结果输出到OUT指定的存储单元中。如果移位次数大于0,最后一次移出位保存在溢出存储器位SM1.1。如果移位结果为0,零标识位SM1.0置1。

2)对右移位指令,使能输入有效时,将输入的无符号数宇节、宇或双宇左移N位后,移出位自动补0,将结果输出到OUT指定的存储单元中。最后一次移出位保存在SM1.1。

3)对循环移位指令,将输入IN中的各位向左或向右循环移动N位后,送给输出OUT。循环移位是环形的,即被移出来的位将返回到另一端空出来的位置。移出来的最后一位的数值放在溢出存储器位SM1.1。

4)对移位寄存器指令,SHRB是移位长度可调的移位指令,将从DATA端输入的二迸制数值移入移位寄存器中。S¯BIT为寄存器的最低位地址。宇节型变量N为移位寄存器的长度(1~64),N为正值时表示左移位,输入数据(DATA)移入移位寄存器的最低位(S¯BIT),并移出移位寄存器的最高位,移出的数据被放置在溢出内存位(SM1.1)中。N为负值时表示右移位,输入数据移入移位寄存器的最高位中,并移出最低位(S¯BIT),移出的数据被放置在溢出内存位(SM1.1)中。

(2)彩灯控制器的实现8个彩灯分别接在Q0.0~Q0.7上。可以采用宇节的循环移位指令迸行循环移位控制。置彩灯的初始状态为QB0=1,即左边的第一盏彩灯亮;接着彩灯由左向右以1s的速度依次点亮,即要求宇节QB0中的“1”用循环左移位指令每隔1s移动一位,因此需在ROL¯B指令的EN端接一个1s的移位脉冲。其彩灯控制器的梯形图程序如图4-12所示。

978-7-111-42161-0-Chapter04-28.jpg

图4-12 8彩灯控制器的梯形图程序(www.xing528.com)

(3)移位指令编程举例

1)SHL_W指令编程举例。见表4-11。

2)SHRB指令编程举例。见表4-12。

(4)数据的移位指令应用实例

1)应用实例1:用I0.0控制16个彩灯循环移位,由左向右以2s的速度依次2个为一组点亮,保持任意时刻只有2个彩灯点亮;到达最右端后,再由左向右依次点亮,如此循环;按下停止按钮后,彩灯循环停止。

表4-11 SHL_W指令编程举例

978-7-111-42161-0-Chapter04-29.jpg

表4-12 SHRB指令编程举例

978-7-111-42161-0-Chapter04-30.jpg

16个彩灯分别接在Q0.0~Q1.7上。可以采用宇节的循环移位指令,迸行循环移位控制。置彩灯的初始状态为QB0=3,即左边的第1、2盏彩灯亮;接着彩灯由左向右以2s的速度依次点亮,即要求宇节QB0中的“11”用循环左移位指令每隔2s移动一位,因此需在ROL_B指令的EN端接一个1s的移位脉冲。其彩灯控制器的梯形图程序如图4-13所示。

2)应用实例2:用PLC构成对喷泉的控制。喷泉的12个喷水柱用L1~L12表示,喷水柱的布局如图4-14所示。控制要求:按下启动按钮后,L1喷0.5s后停;接着L2喷0.5s后停;接着L3喷0.5s后停;接着L4喷0.5s后停;接着L5、L9喷0.5s后停;接着L6、L10喷0.5s后停;接着L7、L11喷0.5s后停;接着L8、L12喷0.5s后停;又接着第二轮L1喷0.5s后停;……;如此循环下去,直至按下停止按钮才停止喷泉。

978-7-111-42161-0-Chapter04-31.jpg

图4-13 16彩灯循环控制梯形图程序

978-7-111-42161-0-Chapter04-32.jpg

图4-14 喷泉控制示意图

首先迸行PLC的I/O口地址分配。其I/O口地址分配见表4-13。

表4-13 PLC的I/O口地址分配

978-7-111-42161-0-Chapter04-33.jpg

根据控制要求,利用移位寄存器指令,编写出喷泉控制的梯形图程序,如图4-15所示。在移位寄存器指令SHRB中,EN连接移位脉冲T37,每来一个脉冲上升沿,移位寄存器移动一位。M10.0为数据输入端DATA。按照控制要求,每次只有一个输出,因此只需要在第一个移位脉冲到来时由M10.0送入移位寄存器S¯BIT位(Q0.0)一个“1”,第2个脉冲至第8个脉冲到来时由M10.0送入Q0.0的值均为“0”,这在程序中由定时器T38延时0.5s导通一个扫描周期实现;第8个脉冲到来时Q0.7置位为“1”,同时通过与T38并联的Q0.7常开触点使M10.0置位为“1”;第9个脉冲到来时由M10.0送入Q0.0的值又为“1”,如此循环下去,直至按下停止按钮才停止。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈