310 likes | 476 Views
PLC 功能指令. 包头轻工职业技术学院 任课教师 : 张晓晖. 一、任务提出. 1 、按下启动按钮,将 8 盏彩灯同时点亮,按下停止按钮,将 8 盏彩灯同时熄灭。
E N D
PLC功能指令 包头轻工职业技术学院 任课教师:张晓晖
一、任务提出 • 1、按下启动按钮,将8盏彩灯同时点亮,按下停止按钮,将8盏彩灯同时熄灭。 • 2、S7-200系列PLC中CPU221和CPU222有一个模拟电位器,其他型号的PLC有2个模拟电位器。CPU将电位器的位置转换为0~255的数字值,然后存入两个特殊存储器字节SMB28和SMB29中,分别对应模拟电位器0和模拟电位器1的值。可以用2.5mm螺丝刀来调整电位器的位置。现在我们的任务是调整模拟电位器0,改变SMB28字节数值。当SMB28数值小于或等于50时,Q0.0输出;当SMB28数值在50和150之间时,Q0.1输出;当SMB28数值大于或等于150时,Q0.2输出。 • 3、设计霓虹灯控制器。要求是:按下启动按钮,1号灯到8号灯按照从下到上的顺序以1s的速度依次点亮,到达最顶端后,再从1号灯到8号灯依次点亮,如此循环;按下停止按钮后,霓虹灯循环停止。
4、在模拟量数据采集中,为了防止干扰,经常通过程序进行数据滤波,其中一种方法为平均值滤波法。现要求连续采集5次数做平均,并以其值作为采集数。这5个数通过5个周期进行采集。请设计该滤波程序。 5、使用S7-200检测边沿指令(正、负跳变指令)来检测简单信号的变化。在这个过程中,用上升和下降来来区分信号边沿,上升沿指信号由“0”变为“1”,下降沿指信号由“1”变为“0”。逻辑“1”表示输入上有电压,“0”表示输入上无电压。 程序用2个存储字分别累计输入I0.0上升沿数目,以及输入I0.1下降沿数目。 6、若将VW10中的整数100和VD100中的实数120.5相加,如何操作?
二、必备知识 • 在前面的章节中,我们学习了S7-200PLC指令系统中的位逻辑指令、定时器、计数器等指令。这些指令是PLC最基本和最常用的指令,实际上,PLC指令中,除了上述这些基本指令外,还有一种应用类指令,统称功能指令。在生产实际的控制过程中,存在大量的非开关量的数据,并需要对这些数据进行采集、分析和处理,进而实现生产过程的自动控制,这就需要用到PLC基本的数据处理功能。除此之外,还有一类功能指令与子程序、中断、高速计数、位置控制、闭环控制等PLC高级应用有关,涉及到相应的专业知识,需要查阅有关的书籍和参考资料才能正确地理解和使用它们。 • PLC的数据处理功能主要包括数据的传送、比较、移位、转换、运算等。学习了这些指令,这几个问题就迎刃而解了。
1、数据传送指令 • 字节、字、双字、实数单个数据传送指令MOV 使ENO = 0即使能输出断开的错误条件是:SM4.3(运行时间),0006(间接寻址错误)。
字节、字、双字、实数数据块传送指令BLKMOV • 数据块传送指令将从输入地址IN开始的N个数据传送到输出地址OUT开始的N个单元中,N的范围为1至255,N的数据类型为:字节。 使ENO = 0的错误条件:0006(间接寻址错误)0091(操作数超出范围)。
【例4-1】将变量存储器VW10中内容送到VW100中 • 【例4-2】将变量存储器VB20开始的4个字节(VB20- VB23)中的数据,移至VB100开始的4个字节中(VB100-VB103)。 • 程序执行后,将VB20~VB23中的数据30、31、32、33送到VB100~VB103。 • 执行结果如下:数组1数据 30 31 32 33 数据地址 VB20 VB21 VB22 VB23 • 块移动执行后:数组2数据 30 31 32 33 数据地址 VB100 VB101 VB102 VB103
任务1解决方案一 • I/O分配: I0.0为启动信号,I0.1为停止信号,8个彩灯分别由Q0.0~Q0.7驱动。
任务1解决方案二 • 在为变量赋初值时,为保证数据传送只执行一次,数据传送指令一般与SM0.1或者跳变指令联合使用。
2、比较指令 比较指令用来比较两个操作数IN1和IN2的大小,操作数可以是整数,也可以是实数。在梯形图中,用带参数和运算符的触点表示比较指令。比较触点可以装入,也可以串并联。比较指令为上下限控制提供了极大的方便。 指该令中的“=”位置还可以取“<”、“<=”、“=”、“>=”、“>”和“<>”。
【例4-3】比较触点指令举例 LD I0.1 AW== VW200,+3 = Q0.0 I0.1 VW200 Q0.0 ==I +3 指令的操作是将IN1和IN2比较,比较成立时结果为1否则为0,然后送入(LD)栈顶;或者将结果作逻辑运算(A、O)后再送入栈顶。 只有I0.1的值为1且比较触点比较结果为真时,Q00的值才为1,即才有输出。
3、移位指令 • 1) 左、右移位指令 左、右移位数据存储单元与SM1.1(溢出)端相连,移出位被放到特殊标志存储器SM1.1位。移位数据存储单元的另一端补0。 (1)左移位指令(SHL) 使能输入有效时,将输入IN的无符号数字节、字或双字中的各位向左移N位后(右端补0),将结果输出到OUT所指定的存储单元中,如果移位次数大于0,最后一次移出位保存在“溢出”存储器位SM1.1。如果移位结果为0,零标志位SM1.0置1。 • (2)右移位指令 使能输入有效时,将输入IN的无符号数字节、字或双字中的各位向右移N位后,将结果输出到OUT所指定的存储单元中,移出位补0,最后一移出位保存在SM1.1。如果移位结果为0,零标志位SM1.0置1。 • (3)使ENO = 0的错误条件:0006(间接寻址错误),SM4.3(运行时间) • 移位指令分为左、右移位和循环左、右移位及寄存器移位指令三大类。前两类移位指令按移位数据的长度又分字节型、字型、双字型3种。
2)循环右移、左移指令 • 循环右移指令,把输入端(IN)指定的数据循环右移N位,结果存入OUT单元。 循环右移指令按操作数的数据类型可分为字节、字、双字循环右移指令。 • 循环左移指令,把输入端(IN)指定的数据循环左移N位,结果存入OUT单元。 循环左移指令,按操作数的数据类型可分为字节、字、双字循环右移指令,如图5-51所示。
【例4-4】程序应用举例,将AC0中的字循环右移2位,将VW200中的字左移3位。【例4-4】程序应用举例,将AC0中的字循环右移2位,将VW200中的字左移3位。
梯形图: 当EN端有效(一个扫描周期的上升沿到来时)时,PLC采样DATA输入端的0或1状态,并将该状态移入移位寄存器,其它各位依次递推移动。 SHRB EN ENO DATA S_BIT N 移位寄存器指令:该指令用于顺序控制、物流及数据流控制。 SHRB——表示移位寄存器; EN ——使能控制端,当有一个脉冲上升沿到 来时,使移位寄存器移位; DATA——是要移位的脉冲输入端; S_BIT——用以指定移位寄存器使用的最低位; N ——用以指定移位寄存器的长度(有几位)。 语句表:SHRB DATA,S_ BIT,N
N=+14,可见移位方向是从低到高位,输入数据是从最低位移入,并使寄存器各位整体左移一位,最高位移出至SM1.1溢出标志位。N=+14,可见移位方向是从低到高位,输入数据是从最低位移入,并使寄存器各位整体左移一位,最高位移出至SM1.1溢出标志位。 N=-时,反方向移位,从高位移入从低位移出。 I0.1 I0.2 P VB33.4 SHRB +14 EN ENO DATA S_BIT N 8 16 0 7 23 15 VB33 VB35 VB34 语句表:SHRB DATA,S_ BIT,N 如 LD I0.0 EU SHRB I0.2,VB33.4,14 VB33.4 SM1.1
使用寄存器分析 移位过程分析 I0.1 I0.2 I0.0 P V10.0 (EN) SHRB 4 I0.2 0 1 EN ENO DATA S_BIT N 0 0 0 7 7 7 0 7 V10 V10 V10 V10 1 1 0 1 0 1 1 0 1 0 1 1 1 1 移位前内容: 第一次移位: S_BIT=V10.0表示使用第10字节的位移位寄存器,最低位是第0位。N=4长度为4位,正值为正向移位。 第二次移位:
【例4-5】程序应用举例。 S_BIT=M10.0表示使用第10字节的位移位寄存器,最低位是第0位。N=4长度为4位,正值为正向移位。
【例4-6】用PLC构成喷泉的控制。用灯L1~L12分别代表喷泉的12个喷水注。 【例4-6】用PLC构成喷泉的控制。用灯L1~L12分别代表喷泉的12个喷水注。 • (1)控制要求:按下起动按钮后,隔灯闪烁,L1亮0.5秒后灭,接着L2亮0.5秒后灭, 接着L3亮0.5秒后灭,接着L4亮0.5秒后灭,接着L5、L9亮0.5秒后灭,接着L6、L10亮0.5秒后灭,接着L7、L11亮0.5秒后灭,接着L8、L12亮0.5秒后灭,L1亮0.5秒后灭,如此循环下去,直至按下停止按钮。 • (2)I/O分配 输入 (常开)起动按钮:I0.0 (常闭)停止按钮:I0.1 输出 L1:Q0.0 L2:Q0.1 L3:Q0.2 L4:Q0.3 L5、L9: Q0.4 L6、L10:Q0.5 L7、L11:Q0.6 L8、L12:Q0.7
分析: 应用移位寄存器控制,根据喷泉模拟控制的8位输出(Q0.0~Q0.7),须指定一个8位的移位寄存器(M10.1~M11.0),移位寄存器的S-BIT位为M10.1,并且移位寄存器的每一位对应一个输出。 在移位寄存器指令中,EN连接移位脉冲,每来一个脉冲的上升沿,移位寄存器移动一位。移位寄存器应0.5s移一位,因此需要设计一个0.5s产生一个脉冲的脉冲发生器(由T38构成)。
M10.0为数据输入端DATA ,根据控制要求,每次只有一个输出,因此只需要在第一个移位脉冲到来时由M10.0送入移位寄存器S-BIT位(M10.1)一个“1”,第二个脉冲至第八个脉冲到来时由M10.0送入M10.1的值均为“0”,这在程序中由定时器T37延时0.5s导通一个扫描周期实现,第八个脉冲到来时M11.0置位为1,同时通过与T37并联的M11.0常开触点使M10.0置位为1,在第九个脉冲到来时由M10.0送入M10.1的值又为1,如此循环下去,直至按下停止按钮。按下常闭停止按钮(I0.1),其对应的常闭触点接通,触发复位指令,使M10.1~M11.0的8位全部复位
任务3解决方案 • 分析:8个彩灯分别接Q0.0~Q0.7,可以用字节的循环移位指令进行循环移位控制。置彩灯的初始状态为QB0为1,即1号灯先亮;接着灯从下到上以1s的速度依次点亮,即要求字节QB0中的1每1s循环左移动1位,因此,需要在循环左移位指令的使能EN端接一个1s的移位脉冲。
4、算数运算指令 • 算术运算指令包括加、减、乘、除运算和数学函数变换,逻辑运算包括逻辑与或非指令等。
【例4-7】求5000加400的和,5000在数据存储器VW200中,结果放入AC0。【例4-7】求5000加400的和,5000在数据存储器VW200中,结果放入AC0。 【例4-8】乘除法指令应用举例,
5、其他数据运算指令 加1、减1运算指令 加1、减1运算指令用于对输入无符号数字节、有符号字、有符号数双字进行加1或减1的操作。
任务5解决方案 • 检测输入信号的边沿的程序框图和梯形图程序如下。
6、数据转换指令 • 转换指令的作用是对数据格式进行转换,它包括字节数与整数的互相转换、整数与双字整数的相互转换、双字整数与实数的相互转换、BCD码与整数的相互转换、ASCII码与十六进制数的相互转换以及编码、译码、段译码等操作。它们主要用于数据处理时的数据匹配及数据显示。