《PLC的基本逻辑指令及举例.pptx》由会员分享,可在线阅读,更多相关《PLC的基本逻辑指令及举例.pptx(125页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 逻辑取及线圈驱动指令 触点串联指令 触点并联指令 串联电路块的并联连接指令 并联电路块的串联连接指令 置位复位指令 RS触发器指令 立即指令 边沿脉冲指令 逻辑堆栈操作指令 定时器 计数器 比较指令 NOT及NOP指令一、PLC的基本逻辑指令及举例第1页/共125页一、PLC基本逻辑指令及举例 S7200系列PLC逻辑指令共有106条,厂家提供了梯形图(LAD)、语句表(STL)、功能块图(FBD)和顺序流程图几种编程语言,其中LAD和STL是最基本的也是最常用的编程语言。本章以这两种语言为例介绍其应用。1.装入触点指令及驱动指令 LD(LOAD):装入触点指令。用于网络块逻辑运算开始的常开
2、触点与母线的连接。LDN(LOAD NOT):取反指令。用于网络块逻辑运算开始的常闭触点与母线的连接。(OUT):线圈的驱动指令 图31 为上面三条指令的用法注意事项:3n LD、LDN指令不只是用于网络块逻辑计算开始时与母线相连的常开和常闭触点,在分支电路块的开始也使用LD、LDN指令,与后面要讲的LD、OLD指令配合完成块电路的编程。n 指令不能用于输入继电器。n 指令可连续使用任意次。n 在同一线圈中不要使用双线圈输出。nLD、LDN操作数为I、Q、M、SM、T、C、V、S 的操作数为Q、M、S、V第2页/共125页2.触点串联指令A(And):与指令。用于单个常开触点的串联连接。AN(
3、And Not):与反指令。用于单个常闭触点的串联连接。注意事项:n A、AN是单个触点串联连接指令,可连续使用,编程时只受到打印宽度和屏幕显示的限制。n 例中可以反复使用=指令,但次序必须正确。n A、AN指令的操作数为:I、Q、M、SM、T、C、V、S和L。()()M0.0M0.1Q0.0Q0.1LPS LPP 第3页/共125页网络1网络2 连续输出 T5A T5(a)梯形图(b)语句表第4页/共125页3.触点并联指令 O(or)或指令。用于单个常开触点的并联连接 ON(or not)或反指令。用于单个常闭触点的并联连接单个触点的O、ON指令可连续使用O、ON指令的操作数为:I、Q、M
4、、SM、T、C、V、S、和L注意事项:第5页/共125页(a)梯形图(b)语句表网络1 触点的并联电路举例第6页/共125页第7页/共125页4 串联电路块的并联连接指令 OLD(or load)或块指令:用于串联电路块的并联连接两个以上触点串联形成的支路叫串联电路块n 在电路块的开始也要使用LD、LDN指令n 每完成一次块电路的并联时要写上OLD指令n OLD指令无操作数注意事项第8页/共125页OLDOLD(a)梯形图(b)语句表网络1 OLD指令使用举例第9页/共125页5 并联电路块的串联连接指令 ALD(And Load)与块指令。用于并联电路块的串联连接 两条以上支路并联形成的电路
5、叫并联电路块注意事项n 在块电路开始时要使用LD和LDN指令n 在每完成一次块电路的串联连接后要写上ALD指令n ALD指令无操作数第10页/共125页网络1 ALD指令使用举例 O I0.1 OLD ALD (a)梯形图(b)语句表第11页/共125页第12页/共125页6.置位、复位指令LADSTL功能置位指令 bit S NS bit,N从bit开始的N个元件置1并保持复位指令 bit R NR bit,N从bit开始的N个元件清零并保持表1 置位复位指令的功能表()()第13页/共125页网络1 置位网络2 复位 I0.1S2Q0.0R2S Q0.0,2R Q0.1,2(a)梯形图(b
6、)语句表(c)时序图第14页/共125页n对元件来说一旦被置位,就保持在通电状态,除非在对它复位;而一旦被复位,就保持在断电状态,除非在对它置位nS/R指令可以互换次序使用,但由于PLC采用扫描工作方式,所以写在后面的指令具有优先权n如果对记数器和定时器复位,则记数器和定时器的当前值被清零nN的常数范围为1-255,N也可为:VB、IB、QB、MB、SMB、SB、LB、AC、常数、*VD、*AC、*LD。一般情况下使用常数nS/R指令的操作数为:I、Q、M、SM、T、C、V、S、和L注意事项:第15页/共125页7.RS触发指令 SR(set dominant bistable)置位优先触发指
7、令。当置位信号和复位信号都为真时,输出为真 RS(reset dominant bistable)复位优先触发指令。当置位信号和复位信号都为真时,输出为假RS1SROUTbitR1SRSOUTbit第16页/共125页 指令S1R输出(bit)置位优先触发指令(SR)00保持前一状态010101111 指令SR1输出(bit)复位优先触发指令RS)00保持前一状态010101110RS触发器指令的真值表第17页/共125页S1RSROUTSR1RSOUT网络1网络2I0.0I0.1Q0.0Q0.1(a)梯形图(b)时序图第18页/共125页8.立即指令(Immediately)nRI bitn
8、立即复位Bit只能为QN的范围:1-128N的操作数同S/R指令nSI bitn立即置位nBit只能为Qn=I bitn立即输出nANI bitn立即与反nAI bitn立即与nONI bitn立即或反nOI bitn立即或LDNI bitn立即取反nBit只能为ILDI bitn立即取n使用说明nLADnSTL指令名称bitIIbitbitISINbitbitNRI立即指令是为了提高PLC对输入输出的响应速度而设置,不受PLC循环工作方式的影响,允许对输入和输出点进行快速直接存取。对I 操作,相应的输入映像寄存器的值并未更新;当用立即指令访问输出点时,对Q操作,新值同时写到PLC的物理输出点
9、和相应的输出映像寄存器。第19页/共125页网络1 立即指令举例网络2I0.0Q0.0IQ0.11SIQ0.2Q0.3II0.0SI Q0.2,1(a)梯形图(b)语句表扫描周期nn+1n+2n+3映像寄存器映像寄存器映像寄存器映像寄存器物理触点物理触点物理触点物理触点(c)时序图输入采样输出刷新注意:用立即输出指令访问输出点时,在输入采样时刻,对Q进行操作,新值既写物理输出点,也写输出映像寄存器tt第20页/共125页9.边沿脉冲指令指令名称LADSTL功能说明上升沿脉冲EU在上升沿产生脉冲无操作数下降沿脉冲ED在下降沿产生脉冲PN第21页/共125页Q0.0R1PN网络1 边沿脉冲指令举例
10、网络2网络3网络4EUS Q0.0,1EDR Q0.0,1M0.0I0.1M0.1Q0.0(a)梯形图(b)语句表(c)时序图Q0.0S1第22页/共125页10.逻辑堆栈操作指令 LPS(logic push)逻辑入栈指令 LRD(logic read)逻辑读栈指令 LPP(logic pop)逻辑出栈指令 LDS(load stack)装入堆栈指令s7-PLC 使用9层堆栈来处理所有的逻辑操作,逻辑堆栈指令主要完成对触点进行的复杂连接。分支电路开始指令。其作用是把栈顶值复制后压入堆栈开始第二个以后的从逻辑块的编程,其作用是读取最近LPS压入堆栈的内容,而本身不进行PUSH和POP工作分支电
11、路结束指令。其作用把堆栈弹出一级,堆栈内容依次上移复制堆栈中的n个值到栈顶,而栈底丢失。STL:LDS n (n 为08的整数)第23页/共125页第24页/共125页网络1 LPS、LRD、LPP指令使用举例1LPSALDLRDOLDALDLPPALD (a)梯形图(b)语句表第25页/共125页网络1 LPS、LRD、LPP指令使用举例2LPS LPSLPP(a)梯形图(b)语句表 LPPA M0.4 LPSLPP第26页/共125页M0.3M0.2Q0.0Q0.1M0.1Q0.2Q0.3M0.0网络1 LPS、LRD、LPP指令使用举例3LPS LPSLPSLPPLPPLPP(a)梯形图
12、(b)语句表第27页/共125页注意事项受堆栈空间的限制(9层堆栈),LPS、LPP指令连续使用时应少于9次。LPS和LPP指令必须成对使用,它们之间可以使用LRD指令。LPS、LRD、LPP指令无操作数。入栈前入栈后iv0iv3iv1iv0iv2iv1iv3iv2iv4iv3iv5iv4iv6iv5iv7iv6iv8iv7LDS 指令使用举例例:LDS 3 第28页/共125页11.定时器接通延时定时器(TON)有记忆接通延时定时器(TONR)断开延时定时器(TOF)1)种类 定时器可分为2)分辨率与定时时间的计算 单位时间的时间增量称为定时器的分辨率。定时器定时时间T的计算:T=PTS T
13、:实际定时时间 PT:定时时间 S:分辨率 PT数据类型为INT型,操作数可为:VW、IW、QW、MW、SW、SMW、LW、AIW、T、C、AC、VD、AC、LD和常数3)定时器的编号 定时器的编号用定时器的名称和它的常数编号(最大为255)。即TXXX,如T40 定时器的编号包含两方面的信息:定时器位和定时器当前值。定时器位:当定时器的当前值达到设定值PT时,定时器的触点动作。定时器当前值:存储定时器当前所累计的时间,它用16位符号的整数来表 示,最大计数值为32767 使能输入:BOOL型,可以是I、Q、M、SM、T、C、V、S、L1ms10ms100msINPTTXTXXXTXXXTXX
14、X第29页/共125页定时器类型分辨率/ms当前最大值/s定时器编号 TONR132.767T0,T6410327.67T1T4,T65T681003276.7T5T31,T69T95TON,TOF132.767T32,T9610327.67T33T36,T97T1001003276.7T37T61,T101T255定时器的分辨率与编号第30页/共125页4).定时器指令使用说明(1)接通延时定时器 TON(On-Delay Timer)接通延时定时器用于单一时间间隔的定时。其LAD符号:STL格式:TON TXXX,PT;如:TON T120,8;(8100ms)INPTTONTXXXTXX
15、XTXXXINTXXX位T第31页/共125页(2)记忆接通延时定时器 TONR(Retentive On-Delay Timer)记忆接通延时定时器具有记忆功能,它用于对许多间隔的累计定时。上电周期或者首次扫描时,定时器位为OFF,当前值保持在掉电前的 值。当输入接通时,当前值从上次所保持值继续计时,当累计当前 值达到设定值 时,定时器为ON,当前值可继续计数到32767。需注意TONR定时器只能用复位指令R对其进行复位操作。INPTTONRTXXXTXXXTXXXLAD:STL:TONR TXXX,PT 如 TONR T20,63INTXXX位T第32页/共125页(3)断开延时定时器 T
16、OF(Off-Delay Timer)断开延时定时器用于断电后的单一间隔时间计时。上电周期或首次扫描,定时器位为OFF,当前值为0。输入接通时,定时器位为ON,当前值为0,当输入端由接通到断开时,定时器开始计时,当达到设定值时,定时器位为OFF,当前值等于设定值,停止计时。输入端再次由OFFON时,TOF复位,如果,输入端再从ONOFF,则TOF可实现再次启动。INPTTOFTXXXTXXXTXXXLAD:STL:TOF TXXX,PT 如 TOF T35,6INTXXX位T第33页/共125页I0.0INT35TONPT+4T2 INPT+10T36INPT+3TONRTOF(a)梯形图(b
17、)语句表 TON T35,+4 /接通延时定时器 TONR T2,+10 /有记忆接通延时定时器 TOF T36,+3 /断电延时定时器 应用举例第34页/共125页第35页/共125页5).5).定时器的刷新方式和正确使用(1)定时器的刷新方式1ms定时器:1ms定时器由系统每隔1ms刷新一次,与扫描周期及程序处理无关。它采用的是中断方式。10ms定时器:10ms定时器由系统在每个扫描周期开始时自动刷新,由于每个扫描周期只刷新一次,故在一个扫描周期内定时器位和定时器的当前值保持不变。100ms定时器:100ms定时器在定时器指令执行时被刷新,它仅用在定时器指令在每个扫描周期执行一次的程序中。
18、第36页/共125页(2)定时器的正确使用错误正确T32T32T32T32T32Q0.0300300Q0.0Q0.0ININTONTONPTPT第37页/共125页错误正确ININT33T33T33T33Q0.0T33Q0.0Q0.03030TONTONPTPT第38页/共125页正确最好ININT37TONTONPTPTQ0.0T37T37Q0.0Q0.033T37T37第39页/共125页12 计数器1.几种基本概念(1)种类 S7200系列PLC的计数器有3种:增计数器CTU,增减计数器CTUD,减计数器CTD。(2)编号 计数器的编号用计数器名称和数字组成,如C6。计数器的编号包含两方
19、面的信息:计数器的位和计数器当前值。计数器位:表示计数器是否发生动作的状态。计数器当前值:用来存储计数器当前所累计的脉冲数,用16位符号整数表示,最大值为32767。第40页/共125页2.计数器指令使用说明 (1)增计数器CTU(Count Up)RCUPVCTUCXXXCXXXCXXXCU:脉冲输入端R:复位信号端PV:预设定端计数值计数器位CXXX:计数器编号首次扫描,计数器位为OFF,当前值为0。在计数脉冲输入端CU的每个上升沿,计数器计数一次,当前值增加一个单位。当前值达到设定值时,计数器位ON,当前值可继续计数到32767 后停止计数。复位输入端有效,计数器自动复位,计数器位为OF
20、F,当前值为0。STL指令格式:CTU CXXX,PV例 CTU C20,3第41页/共125页C20C20CUCTU+3RPV(a)梯形图(b)语句表LD I0.0 /计数脉冲信号输入LD I0.1 /复位脉冲信号输入CTU C20,+3 /增计数,设定计数值LD C20 /计数值为3时输出 I0.0I0.1C20 当前值C20 位(c)时序图举例第42页/共125页(2)增减计数器CTUD(Count Up/Down)CDCURCTUDCXXXCXXXCXXXPVCU:脉冲递增计数输入端CD:脉冲递减计数输入端R:复位信号端PV:预设定端计数值计数器位CXXX:计数器编号首次扫描时,计数器
21、位为OFF,当前值为0。CU输入的每个上升沿计数器当前值增加一个单位,CD输入的每个上升沿,计数器当前值减少一个单位,当前值达到设定值时,计数器位置位为ON。32768327670CUCDSTL指令格式:CTUD CXXX,PV例 CTUD C30,5第43页/共125页第44页/共125页(3)减计数器CTD(Count Down)LD CD PVCTD CXXXCXXXCXXXCD:脉冲递减输入端LD:复位输入端 PV:预设定端首次扫描,计数器位为OFF,当前值等于预设值PV。计数器检测到CD输入端的上升沿时,计数器当前值减少一个单位,当前值减为0时,计数器位为ON。复位输入端有效时,计数
22、器位为OFF,当前值为PV。STL指令格式:CTD CXXX,PV例 CTD C40,4第45页/共125页I0.0I0.1C40Q0.0C40CDCTD+4LDPV(a)梯形图(b)语句表LD I0.0 /减计数脉冲信号输入LD I0.1 /复位脉冲信号输入CTD C40,+4 /减计数,设定计数值LD C40 /计数值为0时输出 注意:以上三种计数器如果将计数器位作为复位输入信号,则可实现循环计数。第46页/共125页13 比较指令 比较指令类型:字节比较,整数比较,双字节比较,实数比较和字符串比较。数值比较指令的运算符:,和等6种,而字符串比较指令只有和两种。对比较指令可进行LD,A和O
23、编程。LAD:IN1IN2XXTXX:比较关系符(,=,=,=,;注意:n 对于LAD的=,在STL为=;n 对于LAD的整数比较,数据类型为I,而STL为W;第48页/共125页Q0.2Q0.1Q0.0网络1网络3网络2I0.0I0.1C30=I+30 VD1 B VB2 梯形图语句表LDW=C30,+30 =Q0.0 =Q0.1 OB VB1,VB2 第49页/共125页14 NOT 及NOP指令1).取反指令NOT 将复杂逻辑结果取反,为用户使用反逻辑提供方便。该指令无操作数,其LAD和STL形式如下。STL形式:NOT LAD形式:|NOT|2).空操作指令NOP(No Operati
24、on)该指令用在跳转指令结束处,或在调试程序中使用。其对用户程序的执行无影响,其LAD和STL形式如下。STL形式:NOP N N的范围:0255 LAD形式:NOPN第50页/共125页使用说明:(1)结束指令只能用在主程序中,不能在子程序和中断程序中使用。而有条件结束指令可用在无条件结束指令前结束主程序。(2)在调试程序时,在程序的适当位置插入无条件结束指令可实现程序的分段调试。(3)可以利用程序执行的结果状态、系统状态和外部设置切换条件来调用有条件结束指令,使程序结束。(4)使用Micro/Win32编程时,编程人员不需手工输入无条件结束指令,该软件会自动在内部加上一条无条件结束指令到主
25、程序的结尾。STOP指令有效时,可以使主机CPU的工作方式由RUN切换到STOP,从而立即中止用户程序的执行。STOP指令可以用在主程序、子程序和中断程序中。LAD:(STOP);STL:STOP结束指令和停止指令的用法如下图所示:1).结束指令 END(有条件结束指令)和MEND(无条件结束指令)LAD:(END)或 (MEND);STL:END或MEND二、程序控制指令1 结束及暂停指令2).停止指令STOP第51页/共125页STOP和END指令通常在程序中用来对突发紧急事件进行处理。网络1 STOP、END、WDR使用举例(STOP)网络2(END)网络3(WDR)LD SM5.0 /
26、检查I/O错误O SM4.3 /运行时检查编程O I0.3 /外部切换开关STOP /条件满足,由RUN切换到 /STOP方式LD I0.5 /外部停止控制ENDLD M0.4 /用触点重新触发WDR /看门狗定时器图 结束、停止及看门狗指令举例第52页/共125页2 看门狗指令WRD(Watchdog Reset)称为看门狗复位指令,也称为警戒时钟刷新指令。它可以把警戒时钟刷新,即延长扫描周期,从而有效地避免看门狗超时错误。使用WDR指令时要特别小心,如果因为使用WDR指令而使扫描时间拖的过长(如在循环结构中使用WDR),那么在中止本次扫描前,下列过程将被禁止:(1)通信(自由口I/O除外)
27、;(2)I/O 刷新(直接I/O除外);(3)强制刷新;(4)SM 位刷新(SM0、SM5-SM29的位不能被刷新);(5)运行时间诊断;(6)扫描时间超过25s时,使10ms和100ms定时器不能正常计时;(7)中断程序中的STOP指令。返回第53页/共125页 3 跳转及标号指令跳转指令可以使PLC编程的灵活性大大提高,使主机可根据对不同条件的判断,选择不同的程序段执行程序。跳转指令 JMP(Jump to Label):当输入端有效时,使程序跳转到标号处执行。标号指令 LBL (Label):指令跳转的目标标号。操作数N为0-255。(1)跳转指令和标号指令必须配合使用,而且只能使用在同
28、一程序块中,如主程序、同一个子程序或同一个中断程序。(2)执行跳转后,被跳过程序段中的各元件状态为:Q、M、S、C 等元件的位保持跳转前的状态;计数器 C 停止计数,当前值存储器保持跳转前的计数值;对定时器来说,因刷新方式不同而工作状态不同。跳转指令的使用方法如下图所示。使用说明N(JMP )LAD:STL:JMP NLBLNLAD:STL:LBL N第54页/共125页3(JMP)3LBLJMP 3.LBL 3图 跳转指令使用举例第55页/共125页4 循环指令1.)循环指令循环开始指令 FOR:用来标记循环体的开始。循环结束指令NEXT:用来标记循环体的结束。无操作数。FOR和NEXT之间
29、的程序段称为循环体,每执行一次循环体,当前计数值增1,并且将其结果同终值作比较,如果大于终值,则终止循环。循环指令的引入为解决重复执行相同功能的程序段提供了极大的方便,并且优化了程序结构。特别是在进行大量相同功能的计算和逻辑处理时,循环指令非常有用。循环指令的LAD和STL形式如图第56页/共125页FORENENOINDXINITFINAL(NEXT)FOR INDX,INIT,FINAL.NEXT图 循环指令的LAD和STL形式第57页/共125页2.)参数说明从图中可以看出,循环指令盒中有三个数据输入端:当前循环计数INDX(index value or current loop cou
30、nt)、循环初值INIT(starting value)和循环终值FINAL(ending value)。在使用时必须给FOR指令指定当前循环计数(INDX)、初值(INIT)和终值(FINAL)。INDX操作数:VW、IW、QW、MW、SW、SMW、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)每次使能输入(
31、EN)重新有效时,指令将自动复位各参数。(4)初值大于终值时,循环体不被执行。(5)注意在循环体中对INDX的控制。循环指令使用举例如下图所示。第58页/共125页网络5FORENENOINDXINITFINALVW1001100ABFORENENOINDXINITFINALVW22512网络10网络15网络20(NEXT)(NEXT)(a)梯形图FOR VW100,1,100.FOR VW225,1,2.NEXT.NEXT(b)语句表图 循环指令使用举例返回第59页/共125页5 子程序子程序在结构化程序设计中是一种方便有效的工具。S7-200 PLC的指令系统具有简单、方便、灵活的子程序调
32、用功能。与子程序有关的操作有:建立子程序、子程序的调用和返回。建立子程序是通过编程软件来完成的。对于CPU226XM,最多可以有128个子程序,对其余的CPU,最多有64个子程序。(1)子程序调用指令(CALL)在使能输入有效时,主程序把程序控制权交给子程序。子程序的调用可以带参数,也可以不带参数。它在梯形图中以指令盒的形式编程。指令格式如表下表所列。在使能输入有效时,结束子程序的执行,返回主程序中(返回到调用此子程序的下一条指令)。梯形图中以线圈的形式编程,指令不带操作数。指令格式如表下表所列。(3)应用举例。如后图所示。使用说明:2).子程序的调用 1)建立子程序(2)子程序返回指令无条件
33、返回(RET):用于子程序结束。条件返回(CRET):只能用于子程序内部。第60页/共125页表 子程序调用指令格式指令子程序调用指令子程序返回指令LADSBR-0EN(RET)或STLCALL SBR_0RET 或CRET网络1网络2WYHENENSBR_0(a)梯形图LD I0.0 /使能输入CALL WYH /调用子程序WYH LD I0.1 /使能输入CALL SBR_0 /调用子程序WYH(b)语句表返回图5-25 所示的程序实现用外部控制条件分别调用两个子程序。(CRET)第61页/共125页使用说明:CRET 多用于子程序的内部,由判断条件决定是否结束子程序调用,RET 用于子程
34、序的结束。如果在子程序的内部又对另一子程序执行调用指令,则这种调用称为子程序的嵌套。子程序的嵌套深度最多为8级。当一个子程序被调用时,系统自动保存当前的堆栈数据,并把栈顶置1,堆栈中的其他值为0,子程序占有控制权。子程序执行结束,通过返回指令自动恢复原来的逻辑堆栈值,调用程序又重新取得控制权。累加器可在调用程序和被调用程序之间自由传递,所以累加器的值在子程序调用时既不保存也不恢复。返回第62页/共125页3).带参数的子程序调用子程序最多可以传递16个参数。参数在子程序的局部变量表加以定义。参数包含下列信息:变量名、变量类型和数据类型。变量名 变量名最多用8个字符表示,第一个字符不能是数字。变
35、量类型 变量类型是按变量对应数据的传递方向来划分的,可以是传入子 程序(IN)、传入和传出子程序(IN/OUT)、传出子程序(OUT)和暂时变量(TEMP)等4种类型。4种变量类型的参数在变量表中的位置必须按照一定的先后顺序。数据类型 局部变量表中还要对数据类型进行声明。数据类型可以是:能流、布尔型、字节型、字型、双字型、整数型、双整数型和实型。常数参数必须声明数据类型。输入或输出参数没有自动数据类型转换功能。参数在调用时必须按一定的顺序排列。(1)子程序参数(2)参数子程序调用的规则第63页/共125页(3)变量表的使用按照子程序指令的调用顺序,参数值分配给局部变量存储器,起始地址是。使用编
36、程软件时,地址分配是自动的。参数子程序调用指令格式:CALL 子程序名,参数1,参数2,参数n。(4)程序实例下图 为一个带参数调用的子程序实例,其局部变量分配如表 下表所列。说明:下图中的STL程序并不是从下图中的LAD转换过来的,而是单独编写的。同样从图STL也转换不成图中的LAD。第64页/共125页CALL SBR_1,I0.1,VB10,I1.0,&VB100,*AC1,VD200I0.0I0.1VB10I01.0*AC1SBR_1ENIN1IN2IN3IN4IN/OUT1OUT1VD200图 带参数子程序调用举例L地址参数名参数类型数据类型说明无LB1LW7LD3ENIN1IN2I
37、N3IN4IN/OUT1ININININININ/OUTBOLLBOLLBOLLBYTEDWORDWORD指令使能输入参数第1个输入参数,布尔型第3个输入参数,布尔型第2个输入参数,字节型第4个输入参数,双字型第1个输入/输出参数,字型表 局部变量表返回&VB100LD9OUTDWORD第1个输出参数,双字型OUT1第65页/共125页6 与ENO指令ENO是LAD中指令盒的布尔能流输出端。如果指令盒的能流端有效,则执行没有错误,ENO就置位,并将能流向下传递。ENO可以作为允许位表示指令成功执行。STL指令没有EN输入,但对要执行的指令,其栈顶值必须为1。可用“与”ENO(AENO)指令来产
38、生和指令盒中的ENO位相同的功能。指令格式:AENOAENO指令无操作数,且只在STL中使用,它将栈顶值和ENO 位的逻辑进行与运算,运算结果保存到栈顶。AENO指令使用较少。AENO指令的用法如图3-27所示。第66页/共125页图3-27 AENO 指令用法举例网络1 与ENO使用举例ADD_IENENATCHENOENOIN1IN2INTEVNTINT_010VW204VW200VW204LD I0.0 /使能输入+I VW200,VW204 /整数加法,VW200+VW204=VW204AENO /与ENO指令ATCH INT_0,10 /如果+I指令执行正确,则调用中断程序 INT_
39、0,中断事件号为10第67页/共125页三、PLC初步编程指导1.梯形图编程的基本规则 梯形图编程的基本规则如下:(1)PLC内部元器件触点的使用次数是无限制的。(2)梯形图的每一行都是从左边母线开始,然后是各种触点的逻辑连接,最后以线圈或指令盒结束。触点不能放在线圈的右边。线圈连接时必须用并联,不能出现串联形式。如图 所示。但如果是以有能量传递的指令盒结束的指令,可以使用AENO指令在其后面连接指令盒(较少使用),如图 所示。第68页/共125页 (3)线圈和指令盒一般不能连接在左边的母线上。如需要的话可通过特殊的中间继电器(常ON特殊中间继电器)完成,如图 所示。(4)在同一程序中,同一编
40、号的线圈使用两次及两次以上称为双线圈输出。双线圈输出非常容易引起误动作,所以应避免使用。S7-200PLC中不允许双线圈输出。如图 所示。(5)内外触点的配合。在LAD中应正确选择设备所连的输入继电器的触点类型,使用常开触点还是常闭触点与外部触点有关。如图 所示 (6)在手工编写梯形图程序时,触点应画在水平线上,从习惯和美观的角度来讲,不要画在垂直线上,如图 。使用编程软件则不可能把触点画在垂直线上。第69页/共125页 (7)不包括触点的分支线条应放在垂直方向,不要放在水平方向,以便于读图和图形的美观,如图 所示。使用编程软件则不可能出现这种情况。(8)应把串联多的电路块尽量放在最上边,把并
41、联多的电路块尽量放在最左边,这样一是节省指令,二是美观,如图 所示。(9)图 所示为梯形图的推荐画法。第70页/共125页2.LAD和STL编程形式的区别 利用PLC指令对梯形图编程时,可以把整个梯形图程序看成由很多网络块组成,每个网络块均起始于母线。所有的网络块组合在一起就是梯形图程序,这是S7-200PLC的特点。LAD程序可以通过编程软件直接转换为STL形式。S7-200PLC用STL编程时,如果也以每个独立的网络块为单位,则STL程序和LAD程序基本上是一一对应的,而且两者可以通过编程软件相互转换;如果不以每个独立的网络块为单位编程,而是连续编写,则STL程序和LAD程序不能通过编程软
42、件相互转换。大家在使用时要注意。LAD是使用最多的编程语言,它非常直观易懂,对每个人都适用;特别老练的人在某些情况下会直接使用STL形式编程,用STL形式编写的程序简短,但不直观。第71页/共125页 但不管怎么说,大家对这两种形式的程序都应该熟悉。特别是会用手工把一个LAD程序转换为STL程序,这对进一步理解PLC程序执行的原理有很大的帮助。下面的一个典型例子说明了从LAD到STL的转换步骤。对每一个独立的LAD网络块中的程序,可分成若干小块,对每个小块按照从左到右,从上到下的原则进行编程。然后将程序块连接起来,就完成了该网络块的STL编程。图 详细介绍了语句表编程的步骤。第72页/共125
43、页四、典型的简单电路编程 1 延时脉冲产生电路 2 瞬时接通/延时断开电路 3 延时接通/延时断开电路 4 脉冲宽度可控制电路 5 计数器的扩展 6 长定时电路 7 闪烁电路 8 报警电路 9 抢答器电路10 多个传送带控制示例 第82页/共125页1.延时脉冲产生电路 在有输入信号后,停一段时间产生一个脉冲。主要用于获取启动或关断信号。电路的程序及时序第83页/共125页2 瞬时接通/延时断开电路 在输入信号有效时,马上有输出,而输入信号OFF后,输出信号延时后才OFF.电路的程序及时序第84页/共125页3.延时接通/延时断开电路该电路要求有信号输入后,停一段时间输出信号才为ON,而输入信
44、号OFF后,输出信号延时一段时间才OFF.电路的程序及时序第85页/共125页4.脉冲宽度可控制电路在输入信号宽度不规范的情况下,要求每一个输入信号的上升沿产生一个宽度固定的脉冲,该脉冲的宽度可以调节。注意:如果输入信号的两个上升沿之间的距离小于脉冲的宽度,则忽略输入信号的第二个上升沿,电路的程序及时序第86页/共125页5.计数器的扩展 一个计数器最大计数值为32767。实际应用中,如果计数范围超过该值,就需要对计数器进行扩展。计数器扩展电路的程序第87页/共125页6 长定时电路 S7-200PLC中的定时器最长定时时间不到1h,但在一些 实际应用中,往往需要几小时甚至几天或更长时间的定时
45、控制,这样仅用一个定时器就不能完成该任务。在输入信号有效后,经过10h 30min后将输出置位。定时电路的梯形图程序第88页/共125页7.闪烁电路 也称为振荡电路,用在报警、娱乐等场合。闪烁电路实际上就是一个时钟电路。它可以是等间隔的通断,也可以是不等间的通断。闪烁电路的程序及时序图第89页/共125页 8.报警电路报警是电气自动控制中不可缺少的重要环节,标准的报警功能应该是声光报警。当故障发生时,报警指示灯闪烁,报警电铃或蜂鸣器鸣响。操作人员知道故障发生后,按消铃按钮,报电铃关掉,报警指示灯从闪烁变为长亮。故障消失后,报警灯熄灭。另外设置试灯、试铃按钮,用于平时检测报警指示灯和电铃的好坏。
46、标准报警电路第90页/共125页9 试设计一个抢答器电路程序,出题人提出问题,3个答题人按动按纽,仅仅是最早按的人面前的信号灯亮。然后出题人按动复位按纽后(带自锁的按键),引出下一个问题。梯形图I0.0I0.1I0.2I1.0Q0.0Q0.1Q0.21L2L3L1M 2M+24V+24V-24VLN-24V甲乙丙主持人甲灯乙灯丙灯PLC第91页/共125页10 多个传送带启动和停止示意如图下所示。初始状态为各个电机都处于停止状态。按下启动按纽后,电动机M1通电运行,行程开关SQ1有效后,电动机M2通电运行,行程开关SQ2有效后,M1断电停止。其它传动带动作类推。整个系统循环工作。按停止按纽后,
47、系统把目前的工作进行完成后停止在初始状态。试设计出LAD。货车货车SQ1SQ2SQ3SQ4SQ6M1M2M2LAD第92页/共125页 启动条件Q0.0 闪闭闭闭闭闭 停止条件断Q0.0 断断断闭第111页/共125页五、PLC程序的简单设计法及应用举例 PLC程序的简单设计2 应用举例第113页/共125页 PLC的程序设计一般是凭设计者的经验来完成的。在没有约束条件下,典型的输出对象的梯形图和基本逻辑函数可表示为:()F kX开KX关F k=(X 开+K)X 关(1)F k就是输出线圈,K为输出线圈的当前状态值,F k为下一个状态值。X 开为启动条件,X 关为关断触点。第114页/共125
48、页在有约束条件下,典型的输出对象的梯形图和基本逻辑函数可表示为:F k=(X 开*X 开约+K)(X 关+X 关约)(2)()F kX开KX关X 开约X 关约F k就是输出线圈,K为输出线圈的当前状态值,F k为下一个状态值。X 开为启动条件,X 关为关断触点。X 开约为启动约束条件,X 关约为关断约束条件。第115页/共125页(1)内部元器件的触点可以无限制的使用(2)大部分情况下,基本上可以不考虑逻辑元件的使用浪费 现象。(3)利用软件编程很容易找到对象启动和关断所需的信号。PLC与继电器相比的特殊性与优越性:第116页/共125页(1)找出输出对象的启动条件和关断条件,为了提高可靠性
49、要求它们最好是脉冲信号。(2)如果该输出对象的启动或关断有约束条件,则找出约束 条件。(3)一般情况下,输出对象按照图(a)编程,有约束条 件时,按图(b)编程。(4)对程序进行全面检查和修改。PLC简单程序设计法的一般步骤和要求:第117页/共125页例题电机顺序启/停电路。要求:3台电机按启动按钮后,M1,M2,M3正序启动;按停止按钮后,逆序停止。动作之间要有一定间隔。分析:先把题目中的输入/输出点找出来,分配好对应的PLC的I/O地址。该题中有2个输入点,即启动按钮I0.0,停止按钮I0.1;有3个输出点,即电机M1的Q0.0,电机M2的Q0.1和电机M3的Q0.2.注意:PLC输出点
50、实际上控制的是每个电机的接触器线圈。第118页/共125页I0.0I0.1Q0.0Q0.1Q0.2M1M2M3启动停止PLCI0.0M1M2M3T37T381 min 1 min M1M2M3T40T3930S30S 启动停止第119页/共125页方式一:图为电机顺序启停电路的梯形图及程序。3台电机启动的时间间隔为1min,停止时间间隔为30s。M1的启动条件是启动按钮,M3的停止条件是停止按钮,其他的启动和停止条件都是定时器所产生的脉冲信号。T37、T38、T39和T40都是100ms的定时器,所以可以使用自复位来产声脉冲信号,自复位可以使编程简单。所以建议使用定时器,如果可以,则尽量使用1