PLC的基本逻辑指令及举例.ppt

上传人:小飞机 文档编号:5444063 上传时间:2023-07-07 格式:PPT 页数:125 大小:2.32MB
返回 下载 相关 举报
PLC的基本逻辑指令及举例.ppt_第1页
第1页 / 共125页
PLC的基本逻辑指令及举例.ppt_第2页
第2页 / 共125页
PLC的基本逻辑指令及举例.ppt_第3页
第3页 / 共125页
PLC的基本逻辑指令及举例.ppt_第4页
第4页 / 共125页
PLC的基本逻辑指令及举例.ppt_第5页
第5页 / 共125页
点击查看更多>>
资源描述

《PLC的基本逻辑指令及举例.ppt》由会员分享,可在线阅读,更多相关《PLC的基本逻辑指令及举例.ppt(125页珍藏版)》请在三一办公上搜索。

1、第3章 可编程序控制器的基本指令及程序设计,一、基本指令二、程序控制指令三、PLC 编程规则四、典型环节程序示例五、PLC程序的简单设计法,逻辑取及线圈驱动指令 触点串联指令 触点并联指令 串联电路块的并联连接指令 并联电路块的串联连接指令 置位复位指令 RS触发器指令 立即指令 边沿脉冲指令 逻辑堆栈操作指令 定时器 计数器 比较指令 NOT及NOP指令,一、PLC的基本逻辑指令及举例,一、PLC基本逻辑指令及举例,S7200系列PLC逻辑指令共有106条,厂家提供了梯形图(LAD)、语句表(STL)、功能块图(FBD)和顺序流程图几种编程语言,其中LAD和STL是最基本的也是最常用的编程语

2、言。本章以这两种语言为例介绍其应用。1.装入触点指令及驱动指令 LD(LOAD):装入触点指令。用于网络块逻辑运算开始的常开触点与母线的连接。LDN(LOAD NOT):取反指令。用于网络块逻辑运算开始的常闭触点与母线的连接。(OUT):线圈的驱动指令 图31 为上面三条指令的用法注意事项:,3,LD、LDN指令不只是用于网络块逻辑计算开始时与母线相连的常开和常闭触点,在分支电路块的开始也使用LD、LDN指令,与后面要讲的LD、OLD指令配合完成块电路的编程。指令不能用于输入继电器。指令可连续使用任意次。在同一线圈中不要使用双线圈输出。LD、LDN操作数为I、Q、M、SM、T、C、V、S 的操

3、作数为Q、M、S、V,2.触点串联指令,A(And):与指令。用于单个常开触点的串联连接。AN(And Not):与反指令。用于单个常闭触点的串联连接。,注意事项:A、AN是单个触点串联连接指令,可连续使用,编程时只受到打印宽度和屏幕显示的限制。例中可以反复使用=指令,但次序必须正确。A、AN指令的操作数为:I、Q、M、SM、T、C、V、S和L。,LD M0.0LPS A M0.1=Q0.0LPP=Q0.1,网络1,I0.0,M0.1,网络2 连续输出,I0.2,Q0.0,M0.3,T5,Q0.3,M0.4,Q0.1,LD I0.0 A M0.0=Q0.0LD M0.1AN I0.2=M0.3

4、A T5=Q0.3 AN M0.4=Q0.1,(a)梯形图,(b)语句表,M0.0,3.触点并联指令,O(or),或指令。用于单个常开触点的并联连接,ON(or not),或反指令。用于单个常闭触点的并联连接,单个触点的O、ON指令可连续使用O、ON指令的操作数为:I、Q、M、SM、T、C、V、S、和L,注意事项:,M0.0,M0.1,M0.2,I0.1,I0.0,Q0.0,LD M0.0O M0.1ON M0.2A I0.0O I0.1=Q0.0,(a)梯形图,(b)语句表,网络1 触点的并联电路举例,4 串联电路块的并联连接指令,OLD(or load),或块指令:用于串联电路块的并联连接

5、两个以上触点串联形成的支路叫串联电路块,在电路块的开始也要使用LD、LDN指令 每完成一次块电路的并联时要写上OLD指令 OLD指令无操作数,注意事项,I0.0,I0.1,I0.2,M0.0,M0.1,M0.2,M0.3,Q0.0,LD I0.0A M0.0LD I0.1AN M0.1OLDLDN I0.2A M0.2OLDA M0.3=Q0.0,(a)梯形图,(b)语句表,网络1 OLD指令使用举例,5 并联电路块的串联连接指令,ALD(And Load),与块指令。用于并联电路块的串联连接 两条以上支路并联形成的电路叫并联电路块,注意事项,在块电路开始时要使用LD和LDN指令 在每完成一次

6、块电路的串联连接后要写上ALD指令 ALD指令无操作数,网络1 ALD指令使用举例,I0.0,I0.1,M0.0,M0.2,M0.1,M0.3,Q0.0,LD I0.0 O I0.1 LD M0.0A M0.1LD M0.2AN M0.3OLD ALD=Q0.0,(a)梯形图,(b)语句表,6.置位、复位指令,表1 置位复位指令的功能表,网络1 置位,网络2 复位,I0.0,Q0.0,LD I0.0S Q0.0,2LD I0.1R Q0.1,2,I0.0,I0.1,(a)梯形图,(b)语句表,(c)时序图,Q0.0,Q0.1,对元件来说一旦被置位,就保持在通电状态,除非在对它复位;而一旦被复位

7、,就保持在断电状态,除非在对它置位S/R指令可以互换次序使用,但由于PLC采用扫描工作方式,所以写在后面的指令具有优先权如果对记数器和定时器复位,则记数器和定时器的当前值被清零N的常数范围为1-255,N也可为:VB、IB、QB、MB、SMB、SB、LB、AC、常数、*VD、*AC、*LD。一般情况下使用常数S/R指令的操作数为:I、Q、M、SM、T、C、V、S、和L,注意事项:,7.RS触发指令,SR(set dominant bistable),置位优先触发指令。当置位信号和复位信号都为真时,输出为真,RS(reset dominant bistable),复位优先触发指令。当置位信号和复

8、位信号都为真时,输出为假,R,S1,SR,OUT,bit,R1,S,RS,OUT,bit,RS触发器指令的真值表,网络1,网络2,I0.0,I0.1,I0.0,I0.1,Q0.0,Q0.1,(a)梯形图,(b)时序图,8.立即指令(Immediately),立即指令是为了提高PLC对输入输出的响应速度而设置,不受PLC循环工作方式的影响,允许对输入和输出点进行快速直接存取。对I 操作,相应的输入映像寄存器的值并未更新;当用立即指令访问输出点时,对Q操作,新值同时写到PLC的物理输出点和相应的输出映像寄存器。,网络1 立即指令举例,LD I0.0=Q0.0=I Q0.1SI Q0.2,1LDI

9、I0.0=Q0.3,(a)梯形图,(b)语句表,扫描周期n,n+1,n+2,n+3,Q0.0映像寄存器,Q0.1映像寄存器,Q0.2映像寄存器,Q0.3映像寄存器,Q0.0物理触点,Q0.1物理触点,Q0.2物理触点,Q0.3物理触点,(c)时序图,输入采样,输出刷新,I0.0,注意:用立即输出指令访问输出点时,在输入采样时刻,对Q进行操作,新值既写物理输出点,也写输出映像寄存器,t,t,9.边沿脉冲指令,P,N,网络1 边沿脉冲指令举例,网络2,网络3,网络4,I0.0,M0.0,I0.1,M0.1,M0.1,M0.0,LD I0.0EU=M0.0LD M0.0S Q0.0,1LD I0.1

10、ED=M0.1LD M0.1R Q0.0,1,I0.0,(a)梯形图,(b)语句表,(c)时序图,10.逻辑堆栈操作指令,LPS(logic push)逻辑入栈指令,LRD(logic read)逻辑读栈指令,LPP(logic pop)逻辑出栈指令,LDS(load stack)装入堆栈指令,使用举例1,使用举例2,使用举例3,s7-PLC 使用9层堆栈来处理所有的逻辑操作,逻辑堆栈指令主要完成对触点进行的复杂连接。,注意事项,分支电路开始指令。其作用是把栈顶值复制后压入堆栈,开始第二个以后的从逻辑块的编程,其作用是读取最近LPS压入堆栈的内容,而本身不进行PUSH和POP工作,分支电路结束

11、指令。其作用把堆栈弹出一级,堆栈内容依次上移,复制堆栈中的n个值到栈顶,而栈底丢失。,STL:LDS n(n 为08的整数),网络1 LPS、LRD、LPP指令使用举例1,M1.2,Q0.3,M1.1,Q0.2,M1.0,M0.5,M0.4,Q0.1,M0.3,M0.2,M0.1,Q0.0,M0.0,I0.0,LD I0.0LPSLD M0.0O M0.1ALD=Q0.0LRDLD M0.2A M0.3LDN M0.4,A M0.5OLDALD=Q0.1LPPA M1.0=Q0.2LD M1.1ON M1.2ALD=Q0.3,(a)梯形图,(b)语句表,BACK,网络1 LPS、LRD、LPP

12、指令使用举例2,Q0.0,Q0.1,Q0.2,Q0.3,M0.3,M0.6,M0.5,M0.4,M0.2,M0.1,M0.0,LD M0.0LPS A M0.1LPSAN M0.2=Q0.0LPPA M0.3=Q0.1,(a)梯形图,(b)语句表,LPPA M0.4 LPSA M0.5=Q0.2LPPAN M0.6=Q0.3,网络1 LPS、LRD、LPP指令使用举例3,LD M0.0LPS A M0.1LPSA M0.2LPSA M0.3=Q0.0,LPP=Q0.1LPP=Q0.2LPP=Q0.3,(a)梯形图,(b)语句表,注意事项,受堆栈空间的限制(9层堆栈),LPS、LPP指令连续使用

13、时应少于9次。LPS和LPP指令必须成对使用,它们之间可以使用LRD指令。LPS、LRD、LPP指令无操作数。,LDS 指令使用举例,例:LDS 3,11.定时器,1)种类 定时器可分为2)分辨率与定时时间的计算 单位时间的时间增量称为定时器的分辨率。定时器定时时间T的计算:T=PTS T:实际定时时间 PT:定时时间 S:分辨率 PT数据类型为INT型,操作数可为:VW、IW、QW、MW、SW、SMW、LW、AIW、T、C、AC、VD、AC、LD和常数3)定时器的编号 定时器的编号用定时器的名称和它的常数编号(最大为255)。即TXXX,如T40 定时器的编号包含两方面的信息:定时器位和定时

14、器当前值。定时器位:当定时器的当前值达到设定值PT时,定时器的触点动作。定时器当前值:存储定时器当前所累计的时间,它用16位符号的整数来表 示,最大计数值为32767 使能输入:BOOL型,可以是I、Q、M、SM、T、C、V、S、L,定时器的分辨率与编号,4).定时器指令使用说明(1)接通延时定时器 TON(On-Delay Timer)接通延时定时器用于单一时间间隔的定时。其LAD符号:STL格式:TON TXXX,PT;如:TON T120,8;(8100ms),IN,TXXX位,T,(2)记忆接通延时定时器 TONR(Retentive On-Delay Timer)记忆接通延时定时器具

15、有记忆功能,它用于对许多间隔的累计定时。上电周期或者首次扫描时,定时器位为OFF,当前值保持在掉电前的 值。当输入接通时,当前值从上次所保持值继续计时,当累计当前 值达到设定值 时,定时器为ON,当前值可继续计数到32767。需注意TONR定时器只能用复位指令R对其进行复位操作。,LAD:,STL:TONR TXXX,PT 如 TONR T20,63,IN,TXXX位,T,(3)断开延时定时器 TOF(Off-Delay Timer)断开延时定时器用于断电后的单一间隔时间计时。上电周期或首次扫描,定时器位为OFF,当前值为0。输入接通时,定时器位为ON,当前值为0,当输入端由接通到断开时,定时

16、器开始计时,当达到设定值时,定时器位为OFF,当前值等于设定值,停止计时。输入端再次由OFFON时,TOF复位,如果,输入端再从ONOFF,则TOF可实现再次启动。,LAD:,STL:TOF TXXX,PT 如 TOF T35,6,IN,TXXX位,T,LD I0.0 TON T35,+4/接通延时定时器 TONR T2,+10/有记忆接通延时定时器 TOF T36,+3/断电延时定时器,应用举例,5).定时器的刷新方式和正确使用(1)定时器的刷新方式1ms定时器:1ms定时器由系统每隔1ms刷新一次,与扫描周期及程序处理无关。它采用的是中断方式。10ms定时器:10ms定时器由系统在每个扫描

17、周期开始时自动刷新,由于每个扫描周期只刷新一次,故在一个扫描周期内定时器位和定时器的当前值保持不变。100ms定时器:100ms定时器在定时器指令执行时被刷新,它仅用在定时器指令在每个扫描周期执行一次的程序中。,(2)定时器的正确使用,1 ms定时器的使用,10 ms定时器的使用,100 ms定时器的使用,12 计数器,1.几种基本概念(1)种类 S7200系列PLC的计数器有3种:增计数器CTU,增减计数器CTUD,减计数器CTD。(2)编号 计数器的编号用计数器名称和数字组成,如C6。计数器的编号包含两方面的信息:计数器的位和计数器当前值。计数器位:表示计数器是否发生动作的状态。计数器当前

18、值:用来存储计数器当前所累计的脉冲数,用16位符号整数表示,最大值为32767。,2.计数器指令使用说明(1)增计数器CTU(Count Up),CU:脉冲输入端,R:复位信号端,PV:预设定端,首次扫描,计数器位为OFF,当前值为0。在计数脉冲输入端CU的每个上升沿,计数器计数一次,当前值增加一个单位。当前值达到设定值时,计数器位ON,当前值可继续计数到32767 后停止计数。复位输入端有效,计数器自动复位,计数器位为OFF,当前值为0。,STL指令格式:CTU CXXX,PV例 CTU C20,3,I0.0,I0.1,C20,Q0.0,C20,CU,CTU,+3,R,PV,(a)梯形图,(

19、b)语句表,LD I0.0/计数脉冲信号输入LD I0.1/复位脉冲信号输入CTU C20,+3/增计数,设定计数值LD C20/计数值为3时输出 Q0.0,(c)时序图,举例,(2)增减计数器CTUD(Count Up/Down),CU:脉冲递增计数输入端,CD:脉冲递减计数输入端,R:复位信号端,PV:预设定端,首次扫描时,计数器位为OFF,当前值为0。CU输入的每个上升沿计数器当前值增加一个单位,CD输入的每个上升沿,计数器当前值减少一个单位,当前值达到设定值时,计数器位置位为ON。,32768,32767,0,CU,CD,STL指令格式:CTUD CXXX,PV例 CTUD C30,5

20、,(3)减计数器CTD(Count Down),CD:脉冲递减输入端,LD:复位输入端,PV:预设定端,首次扫描,计数器位为OFF,当前值等于预设值PV。计数器检测到CD输入端的上升沿时,计数器当前值减少一个单位,当前值减为0时,计数器位为ON。复位输入端有效时,计数器位为OFF,当前值为PV。,STL指令格式:CTD CXXX,PV例 CTD C40,4,(a)梯形图,(b)语句表,LD I0.0/减计数脉冲信号输入LD I0.1/复位脉冲信号输入CTD C40,+4/减计数,设定计数值LD C40/计数值为0时输出 Q0.0,注意:以上三种计数器如果将计数器位作为复位输入信号,则可实现循环

21、计数。,13 比较指令,比较指令类型:字节比较,整数比较,双字节比较,实数比较和字符串比较。数值比较指令的运算符:,和等6种,而字符串比较指令只有和两种。对比较指令可进行LD,A和O编程。,LAD:,XX:比较关系符(,=,)T:数据类型符(B,I,D,R)当IN1,IN2满足由“XX”确定的关系时,比较触点闭合。IN1与IN2 的寻址范围:IB、QB、MB、SB、SMB、LB、VB、AC、LD和常数。,STL:LDTXX IN1,IN2 ATXX IN1,IN2 OTXX IN1,IN2,T:B,W,D,R XX:=,=,;,注意:对于LAD的=,在STL为=;对于LAD的整数比较,数据类型

22、为I,而STL为W;,BACK,梯形图,语句表,LDW=C30,+30=Q0.0 LD I0.0 AR VB1,VB2=Q0.2,14 NOT 及NOP指令,1).取反指令NOT 将复杂逻辑结果取反,为用户使用反逻辑提供方便。该指令无操作数,其LAD和STL形式如下。STL形式:NOT LAD形式:|NOT|2).空操作指令NOP(No Operation)该指令用在跳转指令结束处,或在调试程序中使用。其对用户程序的执行无影响,其LAD和STL形式如下。STL形式:NOP N N的范围:0255 LAD形式:,使用说明:,(1)结束指令只能用在主程序中,不能在子程序和中断程序中使用。而有条件结

23、束指令可用在无条件结束指令前结束主程序。,(2)在调试程序时,在程序的适当位置插入无条件结束指令可实现程序的分段调试。,(3)可以利用程序执行的结果状态、系统状态和外部设置切换条件来调用有条件结束指令,使程序结束。,(4)使用Micro/Win32编程时,编程人员不需手工输入无条件结束指令,该软件会自动在内部加上一条无条件结束指令到主程序的结尾。,STOP指令有效时,可以使主机CPU的工作方式由RUN切换到STOP,从而立即中止用户程序的执行。STOP指令可以用在主程序、子程序和中断程序中。LAD:(STOP);STL:STOP,结束指令和停止指令的用法如下图所示:,1).结束指令 END(有

24、条件结束指令)和MEND(无条件结束指令)LAD:(END)或(MEND);STL:END或MEND,二、程序控制指令,1 结束及暂停指令,2).停止指令STOP,STOP和END指令通常在程序中用来对突发紧急事件进行处理。,网络1 STOP、END、WDR使用举例,SM5.0,(STOP),I0.3,网络2,I0.5,(END),网络3,M0.4,(WDR),LD SM5.0/检查I/O错误O SM4.3/运行时检查编程O I0.3/外部切换开关STOP/条件满足,由RUN切换到/STOP方式LD I0.5/外部停止控制ENDLD M0.4/用触点重新触发WDR/看门狗定时器,图 结束、停止

25、及看门狗指令举例,SM4.3,2 看门狗指令,WRD(Watchdog Reset)称为看门狗复位指令,也称为警戒时钟刷新指令。它可以把警戒时钟刷新,即延长扫描周期,从而有效地避免看门狗超时错误。,使用WDR指令时要特别小心,如果因为使用WDR指令而使扫描时间拖的过长(如在循环结构中使用WDR),那么在中止本次扫描前,下列过程将被禁止:,(1)通信(自由口I/O除外);(2)I/O 刷新(直接I/O除外);(3)强制刷新;(4)SM 位刷新(SM0、SM5-SM29的位不能被刷新);(5)运行时间诊断;(6)扫描时间超过25s时,使10ms和100ms定时器不能正常计时;(7)中断程序中的ST

26、OP指令。,返回,3 跳转及标号指令,跳转指令可以使PLC编程的灵活性大大提高,使主机可根据对不同条件的判断,选择不同的程序段执行程序。,跳转指令 JMP(Jump to Label):当输入端有效时,使程序跳转到标号处执行。标号指令 LBL(Label):指令跳转的目标标号。操作数N为0-255。,(1)跳转指令和标号指令必须配合使用,而且只能使用在同一程序块中,如主程序、同一个子程序或同一个中断程序。(2)执行跳转后,被跳过程序段中的各元件状态为:,Q、M、S、C 等元件的位保持跳转前的状态;计数器 C 停止计数,当前值存储器保持跳转前的计数值;对定时器来说,因刷新方式不同而工作状态不同。

27、,跳转指令的使用方法如下图所示。,使用说明,LAD:,STL:,JMP N,LBL,N,LAD:,STL:,LBL N,I0.0,3(JMP),3,LBL,LD I0.0JMP 3.LBL 3,图 跳转指令使用举例,4 循环指令,1.)循环指令,循环开始指令 FOR:用来标记循环体的开始。循环结束指令NEXT:用来标记循环体的结束。无操作数。FOR和NEXT之间的程序段称为循环体,每执行一次循环体,当前计数值增1,并且将其结果同终值作比较,如果大于终值,则终止循环。,循环指令的引入为解决重复执行相同功能的程序段提供了极大的方便,并且优化了程序结构。特别是在进行大量相同功能的计算和逻辑处理时,循

28、环指令非常有用。,循环指令的LAD和STL形式如图,FOR,EN,ENO,INDX,INIT,FINAL,(NEXT),FOR INDX,INIT,FINAL.NEXT,图 循环指令的LAD和STL形式,2.)参数说明,从图中可以看出,循环指令盒中有三个数据输入端:当前循环计数INDX(index value or current loop count)、循环初值INIT(starting value)和循环终值FINAL(ending value)。在使用时必须给FOR指令指定当前循环计数(INDX)、初值(INIT)和终值(FINAL)。,INDX操作数:VW、IW、QW、MW、SW、SM

29、W、LW、T、C、AC、*VD、*AC、和*CD。这些操作数属INT型。,INIT和FINAL操作数:VW、IW、QW、MW、SW、SMW、LW、T、C、AC、常数、*VD、*AC、*CD。这些操作数属INT型。,使用说明:,(1)FOR、NEXT 指令必须成对使用。(2)FOR和NEXT 可以循环嵌套,最多8层,各嵌套不可有交叉现象。(3)每次使能输入(EN)重新有效时,指令将自动复位各参数。(4)初值大于终值时,循环体不被执行。(5)注意在循环体中对INDX的控制。,循环指令使用举例如下图所示。,网络5,I1.0,FOR,EN,ENO,INDX,INIT,FINAL,VW100,1,100

30、,A,B,FOR,EN,ENO,INDX,INIT,FINAL,VW225,1,2,网络10,I1.1,网络15,网络20,(NEXT),(NEXT),(a)梯形图,LD I.0FOR VW100,1,100.LD I1.1FOR VW225,1,2.NEXT.NEXT,(b)语句表,图 循环指令使用举例,返回,5 子程序,子程序在结构化程序设计中是一种方便有效的工具。S7-200 PLC的指令系统具有简单、方便、灵活的子程序调用功能。与子程序有关的操作有:建立子程序、子程序的调用和返回。,建立子程序是通过编程软件来完成的。对于CPU226XM,最多可以有128个子程序,对其余的CPU,最多有

31、64个子程序。,(1)子程序调用指令(CALL),在使能输入有效时,主程序把程序控制权交给子程序。子程序的调用可以带参数,也可以不带参数。它在梯形图中以指令盒的形式编程。指令格式如表下表所列。,在使能输入有效时,结束子程序的执行,返回主程序中(返回到调用此子程序的下一条指令)。梯形图中以线圈的形式编程,指令不带操作数。指令格式如表下表所列。,(3)应用举例。如后图所示。,使用说明:,2).子程序的调用,1)建立子程序,(2)子程序返回指令,无条件返回(RET):用于子程序结束。条件返回(CRET):只能用于子程序内部。,表 子程序调用指令格式,指令,子程序调用指令,子程序返回指令,LAD,SB

32、R-0,EN,(RET)或,STL,CALL SBR_0,RET 或CRET,网络1,I0.0,网络2,I0.1,WYH,EN,EN,SBR_0,(a)梯形图,LD I0.0/使能输入CALL WYH/调用子程序WYH LD I0.1/使能输入CALL SBR_0/调用子程序WYH,(b)语句表,返回,图5-25 所示的程序实现用外部控制条件分别调用两个子程序。,(CRET),使用说明:,CRET 多用于子程序的内部,由判断条件决定是否结束子程序调用,RET 用于子程序的结束。如果在子程序的内部又对另一子程序执行调用指令,则这种调用称为子程序的嵌套。子程序的嵌套深度最多为8级。当一个子程序被调

33、用时,系统自动保存当前的堆栈数据,并把栈顶置1,堆栈中的其他值为0,子程序占有控制权。子程序执行结束,通过返回指令自动恢复原来的逻辑堆栈值,调用程序又重新取得控制权。累加器可在调用程序和被调用程序之间自由传递,所以累加器的值在子程序调用时既不保存也不恢复。,返回,3).带参数的子程序调用,子程序最多可以传递16个参数。参数在子程序的局部变量表加以定义。参数包含下列信息:变量名、变量类型和数据类型。,变量名 变量名最多用8个字符表示,第一个字符不能是数字。变量类型 变量类型是按变量对应数据的传递方向来划分的,可以是传入子 程序(IN)、传入和传出子程序(IN/OUT)、传出子程序(OUT)和暂时

34、变量(TEMP)等4种类型。4种变量类型的参数在变量表中的位置必须按照一定的先后顺序。数据类型 局部变量表中还要对数据类型进行声明。数据类型可以是:能流、布尔型、字节型、字型、双字型、整数型、双整数型和实型。,常数参数必须声明数据类型。输入或输出参数没有自动数据类型转换功能。参数在调用时必须按一定的顺序排列。,(1)子程序参数,(2)参数子程序调用的规则,(3)变量表的使用,按照子程序指令的调用顺序,参数值分配给局部变量存储器,起始地址是L0.0。使用编程软件时,地址分配是自动的。参数子程序调用指令格式:CALL 子程序名,参数1,参数2,参数n。,(4)程序实例,下图 为一个带参数调用的子程

35、序实例,其局部变量分配如表 下表所列。,说明:下图中的STL程序并不是从下图中的LAD转换过来的,而是单独编写的。同样从图STL也转换不成图中的LAD。,LD I0.0CALL SBR_1,I0.1,VB10,I1.0,&VB100,*AC1,VD200,L地址,参数名,参数类型,数据类型,说明,无,L0.0,LB1,LW7,LD3,LB2.0,EN,IN1,IN2,IN3,IN4,IN/OUT1,IN,IN,IN,IN,IN,IN/OUT,BOLL,BOLL,BOLL,BYTE,DWORD,WORD,指令使能输入参数,第1个输入参数,布尔型,第3个输入参数,布尔型,第2个输入参数,字节型,第

36、4个输入参数,双字型,第1个输入/输出参数,字型,表 局部变量表,返回,&VB100,LD9,OUT,DWORD,第1个输出参数,双字型,OUT1,6 与ENO指令,ENO是LAD中指令盒的布尔能流输出端。如果指令盒的能流端有效,则执行没有错误,ENO就置位,并将能流向下传递。ENO可以作为允许位表示指令成功执行。STL指令没有EN输入,但对要执行的指令,其栈顶值必须为1。可用“与”ENO(AENO)指令来产生和指令盒中的ENO位相同的功能。指令格式:AENOAENO指令无操作数,且只在STL中使用,它将栈顶值和ENO 位的逻辑进行与运算,运算结果保存到栈顶。AENO指令使用较少。AENO指令

37、的用法如图3-27所示。,图3-27 AENO 指令用法举例,网络1 与ENO使用举例,I0.0,ADD_I,EN,EN,ATCH,ENO,ENO,IN1,IN2,INT,EVNT,INT_0,10,VW204,VW200,VW204,LD I0.0/使能输入+I VW200,VW204/整数加法,VW200+VW204=VW204AENO/与ENO指令ATCH INT_0,10/如果+I指令执行正确,则调用中断程序 INT_0,中断事件号为10,三、PLC初步编程指导,1.梯形图编程的基本规则,梯形图编程的基本规则如下:(1)PLC内部元器件触点的使用次数是无限制的。(2)梯形图的每一行都是

38、从左边母线开始,然后是各种触点的逻辑连接,最后以线圈或指令盒结束。触点不能放在线圈的右边。线圈连接时必须用并联,不能出现串联形式。如图 所示。但如果是以有能量传递的指令盒结束的指令,可以使用AENO指令在其后面连接指令盒(较少使用),如图 所示。,3-27,3-28,(3)线圈和指令盒一般不能连接在左边的母线上。如需要的话可通过特殊的中间继电器SM0.0(常ON特殊中间继电器)完成,如图 所示。(4)在同一程序中,同一编号的线圈使用两次及两次以上称为双线圈输出。双线圈输出非常容易引起误动作,所以应避免使用。S7-200PLC中不允许双线圈输出。如图 所示。(5)内外触点的配合。在LAD中应正确

39、选择设备所连的输入继电器的触点类型,使用常开触点还是常闭触点与外部触点有关。如图 所示(6)在手工编写梯形图程序时,触点应画在水平线上,从习惯和美观的角度来讲,不要画在垂直线上,如图。使用编程软件则不可能把触点画在垂直线上。,3-29A,3-30,3-29B,3-35,(7)不包括触点的分支线条应放在垂直方向,不要放在水平方向,以便于读图和图形的美观,如图 所示。使用编程软件则不可能出现这种情况。(8)应把串联多的电路块尽量放在最上边,把并联多的电路块尽量放在最左边,这样一是节省指令,二是美观,如图 所示。(9)图 所示为梯形图的推荐画法。,3-31,3-32,3-33,2.LAD和STL编程

40、形式的区别 利用PLC指令对梯形图编程时,可以把整个梯形图程序看成由很多网络块组成,每个网络块均起始于母线。所有的网络块组合在一起就是梯形图程序,这是S7-200PLC的特点。LAD程序可以通过编程软件直接转换为STL形式。S7-200PLC用STL编程时,如果也以每个独立的网络块为单位,则STL程序和LAD程序基本上是一一对应的,而且两者可以通过编程软件相互转换;如果不以每个独立的网络块为单位编程,而是连续编写,则STL程序和LAD程序不能通过编程软件相互转换。大家在使用时要注意。LAD是使用最多的编程语言,它非常直观易懂,对每个人都适用;特别老练的人在某些情况下会直接使用STL形式编程,用

41、STL形式编写的程序简短,但不直观。,但不管怎么说,大家对这两种形式的程序都应该熟悉。特别是会用手工把一个LAD程序转换为STL程序,这对进一步理解PLC程序执行的原理有很大的帮助。下面的一个典型例子说明了从LAD到STL的转换步骤。对每一个独立的LAD网络块中的程序,可分成若干小块,对每个小块按照从左到右,从上到下的原则进行编程。然后将程序块连接起来,就完成了该网络块的STL编程。图 详细介绍了语句表编程的步骤。,3-34,(a)错误,(b)错误,1,2,4,3,1,2,2,3,4,4,图3-28 梯形图画法示例1,返回,4,5,(c)正确,1,2,3,4,4,4,5,(a)错误,(b)正确

42、,Q 0.0,SM0.0,Q0.0,返回,图3-29A 梯形图画法示例,I0.0,I0.1,Q0.0,PLC,+24V,(),I0.0,I0.1,Q0.0,Q0.0,L,L,N,启动,停止,I0.0,I0.1,Q0.0,PLC,+24V,(),I0.0,I0.1,Q0.0,Q0.0,L,L,N,启动,停止,图 335,返回,(),(),M0.0,M0.0,I0.0,I0.1,返回,图3-29 B梯形图画法示例,(a)错误,(b)正确,图3-30 梯形图画法示例3,返回,(a)不好,(b)正确,图3-31 梯形图画法示例4,返回,(a)把串联多的电路块放在最上边,(b)把并联多的电路块放在最左边

43、,图3-32 梯形图画法示例5,返回,图3-33 梯形图的推荐画法,返回,1,2,3,4,5,6,7,8,9,10,11,12,13,(1),(2),(3),(4),(8),(5),(6),(7),(9),(10),(11),(12),(1)LD 1 AN 2(2)LD 3 A 4(3)OLD(4)O 5(5)LD 6 A 7,(6)LD 8 AN 9(7)OLD(8)ALD(9)A 10(10)=12(11)A 11(12)=13,(a)梯形图,(b)语句表编写顺序示范,图3-34 语句表编写举例,四、典型的简单电路编程,1 延时脉冲产生电路 2 瞬时接通/延时断开电路 3 延时接通/延时断

44、开电路 4 脉冲宽度可控制电路 5 计数器的扩展 6 长定时电路 7 闪烁电路 8 报警电路 9 抢答器电路10 多个传送带控制示例,1.延时脉冲产生电路 在有输入信号后,停一段时间产生一个脉冲。主要用于获取启动或关断信号。,电路的程序及时序,2 瞬时接通/延时断开电路,在输入信号有效时,马上有输出,而输入信号OFF后,输出信号延时后才OFF.,电路的程序及时序,3.延时接通/延时断开电路,该电路要求有信号输入后,停一段时间输出信号才为ON,而输入信号OFF后,输出信号延时一段时间才OFF.,电路的程序及时序,4.脉冲宽度可控制电路,在输入信号宽度不规范的情况下,要求每一个输入信号的上升沿产生

45、一个宽度固定的脉冲,该脉冲的宽度可以调节。注意:如果输入信号的两个上升沿之间的距离小于脉冲的宽度,则忽略输入信号的第二个上升沿,,电路的程序及时序,5.计数器的扩展 一个计数器最大计数值为32767。实际应用中,如果计数范围超过该值,就需要对计数器进行扩展。,计数器扩展电路的程序,6 长定时电路 S7-200PLC中的定时器最长定时时间不到1h,但在一些 实际应用中,往往需要几小时甚至几天或更长时间的定时控制,这样仅用一个定时器就不能完成该任务。在输入信号I0.0有效后,经过10h 30min后将输出Q0.0置位。,定时电路的梯形图程序,7.闪烁电路 也称为振荡电路,用在报警、娱乐等场合。闪烁

46、电路实际上就是一个时钟电路。它可以是等间隔的通断,也可以是不等间的通断。,闪烁电路的程序及时序图,8.报警电路报警是电气自动控制中不可缺少的重要环节,标准的报警功能应该是声光报警。当故障发生时,报警指示灯闪烁,报警电铃或蜂鸣器鸣响。操作人员知道故障发生后,按消铃按钮,报电铃关掉,报警指示灯从闪烁变为长亮。故障消失后,报警灯熄灭。另外设置试灯、试铃按钮,用于平时检测报警指示灯和电铃的好坏。,标准报警电路,9 试设计一个抢答器电路程序,出题人提出问题,3个答题人按动按纽,仅仅是最早按的人面前的信号灯亮。然后出题人按动复位按纽后(带自锁的按键),引出下一个问题。,梯形图,10 多个传送带启动和停止示

47、意如图下所示。初始状态为各个电机都处于停止状态。按下启动按纽后,电动机M1通电运行,行程开关SQ1有效后,电动机M2通电运行,行程开关SQ2有效后,M1断电停止。其它传动带动作类推。整个系统循环工作。按停止按纽后,系统把目前的工作进行完成后停止在初始状态。试设计出LAD。,货车,货车,SQ1,SQ2,SQ3,SQ4,SQ6,M1,M2,M2,LAD,网络1 延时脉冲产生电路,I0.0,P,(),M0.0,网络2,(),M0.1,M0.0,/,Q0.0,M0.1,网络3,T37,(),Q0.0,IN TONPT,+20,LD I0.0EU=M0.0LD M0.00 M0.1AN Q0.0=M0.

48、1TON T37,+20LD T37=Q0.0,梯形图,语句表,注 释,时序图,T37,2s,I0.0,M0.0,T37,Q0.0,注释:时序图中利用脉冲指令在I0.0的上升沿产生一个计时启动脉冲接下来就是一个非常典型的环节。因为定时器没有瞬动触点,不可能用自身的触点组成自锁回路,所以必须用一个中间继电器M0.1组成延时逻辑。T37定时到时,产生一个宽度为一个扫描周期的脉冲Q0.0,然后Q0.0使T37复位。,网络1 瞬时接通/延时断开电路,/,I0.0,Q0.0,IN TONPT,+30,网络2,(),Q0.0,I0.0,/,T37,Q0.0,梯形图,LDN I0.0A Q0.0TON T3

49、7,+30LD I0.0O Q0.0AN T37=Q0.0,语句表,时序图,I0.0,Q0.0,注 释,T37,3S,注释:,在时序图中,关键的问题是找出定时器T37的计时条件。在本例中T37的计时条件是I0.0为OFF且为ON。因为I0.0变为OFF后,Q0.0 仍要保持通电状态3s,所以Q0.0的自锁触点是必须的。,网络1 延时接通/延时断开电路,+30,I0.0,网络2,/,I0.0,Q0.0,(),Q0.0,网络3,T37,/,T38,Q0.0,梯形图,LD I0.0TON T37,+30LDN I0.0A Q0.0TON T38,+50LD T37O Q0.0AN T38=Q0.0,

50、语句表,I0.0,Q0.0,注 释,时序图,T37,3S,5S,TON,IN,PT,TON,IN,PT,T38,50,注释:,和瞬时接通/延时断开电路相比,该电路多加了一个输入延时。T37延时3s作为Q0.0的启动条件,T38延时5s作为Q0.0的关断条件。两个定时器配合使用实现该电路的功能。,网络1 脉冲宽度可控制电路,(),(),(),+20,(),IN TONPT,I0.0,P,S,M0.0,Q0.0,M0.1,1,/,T37,网络2,M0.0,M0.1,网络3,T37,R,Q0.0,1,LD I0.0EUS Q0.0,1=M0.0LD M0.0O M0.1AN T37=M0.1TON

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号