版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
可编程序控制器(PLC)第五章第五章可编程序控制器的基本指令及程序设计一、基本指令二、程序控制指令三、PLC编程规则四、典型环节程序示例五、PLC程序的简单设计法
逻辑取及线圈驱动指令
触点串联指令
触点并联指令
串联电路块的并联连接指令
并联电路块的串联连接指令
置位复位指令
RS触发器指令
立即指令
边沿脉冲指令
逻辑堆栈操作指令
定时器
计数器
比较指令
NOT及NOP指令一、PLC的基本逻辑指令及举例一、PLC基本逻辑指令及举例
S7-200系列PLC逻辑指令共有106条,厂家提供了梯形图(LAD)、语句表(STL)、功能块图(FBD)和顺序流程图几种编程语言,其中LAD和STL是最基本的也是最常用的编程语言。本章以这两种语言为例介绍其应用。1.装入触点指令及驱动指令LD(LOAD):装入触点指令。用于网络块逻辑运算开始的常开触点与母线的连接。LDN(LOADNOT):取反指令。用于网络块逻辑运算开始的常闭触点与母线的连接。=(OUT):线圈的驱动指令图3-1为上面三条指令的用法注意事项:3
LD、LDN指令不只是用于网络块逻辑计算开始时与母线相连的常开和常闭触点,在分支电路块的开始也使用LD、LDN指令,与后面要讲的LD、OLD指令配合完成块电路的编程。=指令不能用于输入继电器。=指令可连续使用任意次。在同一线圈中不要使用双线圈输出。LD、LDN操作数为I、Q、M、SM、T、C、V、S
=的操作数为Q、M、S、V2.触点串联指令A(And):与指令。用于单个常开触点的串联连接。AN(AndNot):与反指令。用于单个常闭触点的串联连接。注意事项:
A、AN是单个触点串联连接指令,可连续使用,编程时只受到打印宽度和屏幕显示的限制。
例中可以反复使用=指令,但次序必须正确。
A、AN指令的操作数为:I、Q、M、SM、T、C、V、S和L。使用举例()()M0.0M0.1Q0.0Q0.1LDM0.0LPSAM0.1=Q0.0LPP=Q0.1网络1I0.0M0.1网络2连续输出I0.2Q0.0M0.3T5Q0.3M0.4Q0.1LDI0.0AM0.0=Q0.0LDM0.1ANI0.2=M0.3AT5=Q0.3ANM0.4=Q0.1BACK(a)梯形图(b)语句表M0.03.触点并联指令O(or)或指令。用于单个常开触点的并联连接ON(ornot)或反指令。用于单个常闭触点的并联连接使用举例单个触点的O、ON指令可连续使用O、ON指令的操作数为:I、Q、M、SM、T、C、V、S、和L注意事项:M0.0M0.1M0.2I0.1I0.0Q0.0LDM0.0OM0.1ONM0.2AI0.0OI0.1=Q0.0BACK(a)梯形图(b)语句表网络1触点的并联电路举例4串联电路块的并联连接指令OLD(orload)或块指令:用于串联电路块的并联连接两个以上触点串联形成的支路叫串联电路块使用举例在电路块的开始也要使用LD、LDN指令每完成一次块电路的并联时要写上OLD指令
OLD指令无操作数注意事项I0.0I0.1I0.2M0.0M0.1M0.2M0.3Q0.0LDI0.0AM0.0LDI0.1ANM0.1OLDLDNI0.2AM0.2OLDAM0.3=Q0.0BACK(a)梯形图(b)语句表网络1OLD指令使用举例5并联电路块的串联连接指令使用举例
ALD(AndLoad)与块指令。用于并联电路块的串联连接两条以上支路并联形成的电路叫并联电路块注意事项
在块电路开始时要使用LD和LDN指令在每完成一次块电路的串联连接后要写上ALD指令
ALD指令无操作数BACK网络1ALD指令使用举例I0.0I0.1M0.0M0.2M0.1M0.3Q0.0LDI0.0OI0.1LDM0.0AM0.1LDM0.2ANM0.3OLDALD=Q0.0
(a)梯形图(b)语句表6.置位、复位指令LADSTL功能置位指令bitSNSbit,N从bit开始的N个元件置1并保持复位指令bitRNRbit,N从bit开始的N个元件清零并保持表1置位复位指令的功能表使用说明使用举例()()网络1置位网络2复位I0.0Q0.0I0.1S2Q0.0R2LDI0.0SQ0.0,2LDI0.1RQ0.1,2BACKI0.0I0.1(a)梯形图(b)语句表(c)时序图Q0.0,Q0.1对元件来说一旦被置位,就保持在通电状态,除非在对它复位;而一旦被复位,就保持在断电状态,除非在对它置位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、和LBACK注意事项:7.RS触发指令
SR(setdominantbistable)置位优先触发指令。当置位信号和复位信号都为真时,输出为真
RS(resetdominantbistable)复位优先触发指令。当置位信号和复位信号都为真时,输出为假RS1SROUTbitR1SRSOUTbit指令S1R输出(bit)置位优先触发指令(SR)00保持前一状态010101111指令SR1输出(bit)复位优先触发指令RS)00保持前一状态010101110RS触发器指令的真值表S1RSROUTSR1RSOUT网络1网络2I0.0I0.1I0.0I0.1Q0.0Q0.1I0.0I0.1Q0.0Q0.1BACK(a)梯形图(b)时序图8.立即指令(Immediately)RIbit立即复位Bit只能为QN的范围:1-128N的操作数同S/R指令SIbit立即置位Bit只能为Q=Ibit立即输出ANIbit立即与反AIbit立即与ONIbit立即或反OIbit立即或LDNIbit立即取反Bit只能为ILDIbit立即取使用说明LADSTL指令名称bitIIbitbitISINbitbitNRI使用举例立即指令是为了提高PLC对输入/输出的响应速度而设置,不受PLC循环工作方式的影响,允许对输入和输出点进行快速直接存取。对I操作,相应的输入映像寄存器的值并未更新;当用立即指令访问输出点时,对Q操作,新值同时写到PLC的物理输出点和相应的输出映像寄存器。网络1立即指令举例网络2I0.0Q0.0IQ0.11SIQ0.2Q0.3II0.0LDI0.0=Q0.0=IQ0.1SIQ0.2,1LDII0.0=Q0.3BACK(a)梯形图(b)语句表扫描周期nn+1n+2n+3Q0.0映像寄存器Q0.1映像寄存器Q0.2映像寄存器Q0.3映像寄存器Q0.0物理触点Q0.1物理触点Q0.2物理触点Q0.3物理触点(c)时序图输入采样输出刷新I0.0注意:用立即输出指令访问输出点时,在输入采样时刻,对Q进行操作,新值既写物理输出点,也写输出映像寄存器tt9.边沿脉冲指令指令名称LADSTL功能说明上升沿脉冲EU在上升沿产生脉冲无操作数下降沿脉冲ED在下降沿产生脉冲PN使用举例Q0.0R1PN网络1边沿脉冲指令举例网络2网络3网络4I0.0M0.0I0.1M0.1M0.1M0.0LDI0.0EU=M0.0LDM0.0SQ0.0,1LDI0.1ED=M0.1LDM0.1RQ0.0,1I0.0M0.0I0.1M0.1Q0.0BACK(a)梯形图(b)语句表(c)时序图Q0.0S110.逻辑堆栈操作指令
LPS(logicpush)逻辑入栈指令
LRD(logicread)逻辑读栈指令
LPP(logicpop)逻辑出栈指令
LDS(loadstack)
装入堆栈指令使用举例1使用举例2使用举例3s7-PLC使用9层堆栈来处理所有的逻辑操作,逻辑堆栈指令主要完成对触点进行的复杂连接。注意事项分支电路开始指令。其作用是把栈顶值复制后压入堆栈开始第二个以后的从逻辑块的编程,其作用是读取最近LPS压入堆栈的内容,而本身不进行PUSH和POP工作分支电路结束指令。其作用把堆栈弹出一级,堆栈内容依次上移复制堆栈中的n个值到栈顶,而栈底丢失。STL:LDSn(n为0~8的整数)网络1LPS、LRD、LPP指令使用举例1M1.2Q0.3M1.1Q0.2M1.0M0.5M0.4Q0.1M0.3M0.2M0.1Q0.0M0.0I0.0LDI0.0LPSLDM0.0OM0.1ALD=Q0.0LRDLDM0.2AM0.3LDNM0.4AM0.5OLDALD=Q0.1LPPAM1.0=Q0.2LDM1.1ONM1.2ALD=Q0.3(a)梯形图(b)语句表BACK网络1LPS、LRD、LPP指令使用举例2Q0.0Q0.1Q0.2Q0.3M0.3M0.6M0.5M0.4M0.2M0.1M0.0LDM0.0LPSAM0.1LPSANM0.2=Q0.0LPPAM0.3=Q0.1(a)梯形图(b)语句表BACKLPPAM0.4LPSAM0.5=Q0.2LPPANM0.6=Q0.3M0.3M0.2Q0.0Q0.1M0.1Q0.2Q0.3M0.0网络1LPS、LRD、LPP指令使用举例3LDM0.0LPSAM0.1LPSAM0.2LPSAM0.3=Q0.0LPP=Q0.1LPP=Q0.2LPP=Q0.3(a)梯形图(b)语句表BACK注意事项受堆栈空间的限制(9层堆栈),LPS、LPP指令连续使用时应少于9次。LPS和LPP指令必须成对使用,它们之间可以使用LRD指令。LPS、LRD、LPP指令无操作数。入栈前入栈后iv0iv3iv1iv0iv2iv1iv3iv2iv4iv3iv5iv4iv6iv5iv7iv6iv8iv7LDS指令使用举例例:LDS311.定时器接通延时定时器(TON)有记忆接通延时定时器(TONR)断开延时定时器(TOF)1)种类定时器可分为2)分辨率与定时时间的计算
单位时间的时间增量称为定时器的分辨率。定时器定时时间T的计算:T=PT×ST:实际定时时间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、L1ms10ms100msINPTTXTXXXTXXXTXXX定时器类型分辨率/ms当前最大值/s定时器编号TONR132.767T0,T6410327.67T1~T4,T65~T681003276.7T5~T31,T69~T95TON,TOF132.767T32,T9610327.67T33~T36,T97~T1001003276.7T37~T61,T101~T255定时器的分辨率与编号4).定时器指令使用说明
(1)接通延时定时器TON(On-DelayTimer)接通延时定时器用于单一时间间隔的定时。
其LAD符号:STL格式:TONTXXX,PT;如:TONT120,8;(8*100ms)INPTTONTXXXTXXXTXXXINTXXX位T(2)记忆接通延时定时器TONR(RetentiveOn-DelayTimer)
记忆接通延时定时器具有记忆功能,它用于对许多间隔的累计定时。
上电周期或者首次扫描时,定时器位为OFF,当前值保持在掉电前的值。当输入接通时,当前值从上次所保持值继续计时,当累计当前值达到设定值时,定时器为ON,当前值可继续计数到32767。需注意TONR定时器只能用复位指令R对其进行复位操作。
INPTTONRTXXXTXXXTXXXLAD:STL:TONRTXXX,PT如TONRT20,63INTXXX位T(3)断开延时定时器TOF(Off-DelayTimer)
断开延时定时器用于断电后的单一间隔时间计时。上电周期或首次扫描,定时器位为OFF,当前值为0。输入接通时,定时器位为ON,当前值为0,当输入端由接通到断开时,定时器开始计时,当达到设定值时,定时器位为OFF,当前值等于设定值,停止计时。输入端再次由OFF-ON时,TOF复位,如果,输入端再从ON-OFF,则TOF可实现再次启动。INPTTOFTXXXTXXXTXXXLAD:STL:TOFTXXX,PT如TOFT35,6INTXXX位TI0.0INT35TONPT+4T2INPT+10T36INPT+3TONRTOF(a)梯形图(b)语句表LDI0.0TONT35,+4//接通延时定时器TONRT2,+10//有记忆接通延时定时器TOFT36,+3//断电延时定时器
应用举例5).定时器的刷新方式和正确使用(1)定时器的刷新方式1ms定时器:1ms定时器由系统每隔1ms刷新一次,与扫描周期及程序处理无关。它采用的是中断方式。10ms定时器:10ms定时器由系统在每个扫描周期开始时自动刷新,由于每个扫描周期只刷新一次,故在一个扫描周期内定时器位和定时器的当前值保持不变。100ms定时器:100ms定时器在定时器指令执行时被刷新,它仅用在定时器指令在每个扫描周期执行一次的程序中。(2)定时器的正确使用错误正确T32T32T32T32T32Q0.0300300Q0.0Q0.0ININTONTONPTPT1ms定时器的使用错误正确ININT33T33T33T33Q0.0T33Q0.0Q0.03030TONTONPTPT10ms定时器的使用100ms定时器的使用正确最好ININT37TONTONPTPTQ0.0T37T37Q0.0Q0.033T37T3712计数器1.几种基本概念(1)种类
S7-200系列PLC的计数器有3种:增计数器CTU,增减计数器CTUD,减计数器CTD。(2)编号
计数器的编号用计数器名称和数字组成,如C6。计数器的编号包含两方面的信息:计数器的位和计数器当前值。计数器位:表示计数器是否发生动作的状态。计数器当前值:用来存储计数器当前所累计的脉冲数,用16位符号整数表示,最大值为32767。2.计数器指令使用说明
(1)增计数器CTU(CountUp)RCUPVCTUCXXXCXXXCXXXCU:脉冲输入端R:复位信号端PV:预设定端计数值计数器位CXXX:计数器编号首次扫描,计数器位为OFF,当前值为0。在计数脉冲输入端CU的每个上升沿,计数器计数一次,当前值增加一个单位。当前值达到设定值时,计数器位ON,当前值可继续计数到32767后停止计数。复位输入端有效,计数器自动复位,计数器位为OFF,当前值为0。STL指令格式:CTUCXXX,PV例CTUC20,3I0.0I0.1C20Q0.0C20CUCTU+3RPV(a)梯形图(b)语句表LDI0.0//计数脉冲信号输入LDI0.1//复位脉冲信号输入CTUC20,+3//增计数,设定计数值LDC20//计数值为3时输出=Q0.0I0.0I0.1C20当前值C20位(c)时序图举例(2)增减计数器CTUD(CountUp/Down)CDCURCTUDCXXXCXXXCXXXPVCU:脉冲递增计数输入端CD:脉冲递减计数输入端R:复位信号端PV:预设定端计数值计数器位CXXX:计数器编号首次扫描时,计数器位为OFF,当前值为0。CU输入的每个上升沿计数器当前值增加一个单位,CD输入的每个上升沿,计数器当前值减少一个单位,当前值达到设定值时,计数器位置位为ON。-32768327670~~CUCDSTL指令格式:CTUDCXXX,PV例CTUDC30,5(3)减计数器CTD(CountDown)LDCDPVCTDCXXXCXXXCXXXCD:脉冲递减输入端LD:复位输入端PV:预设定端首次扫描,计数器位为OFF,当前值等于预设值PV。计数器检测到CD输入端的上升沿时,计数器当前值减少一个单位,当前值减为0时,计数器位为ON。复位输入端有效时,计数器位为OFF,当前值为PV。STL指令格式:CTDCXXX,PV例CTDC40,4I0.0I0.1C40Q0.0C40CDCTD+4LDPV(a)梯形图(b)语句表LDI0.0//减计数脉冲信号输入LDI0.1//复位脉冲信号输入CTDC40,+4//减计数,设定计数值LDC40//计数值为0时输出=Q0.0注意:以上三种计数器如果将计数器位作为复位输入信号,则可实现循环计数。13比较指令比较指令类型:字节比较,整数比较,双字节比较,实数比较和字符串比较。
数值比较指令的运算符:=,>=,<,<=,>和<>等6种,而字符串比较指令只有=和<>两种。
对比较指令可进行LD,A和O编程。LAD:IN1IN2XXTXX:比较关系符(==,>=,<=,<>,>,<)T:数据类型符(B,I,D,R)当IN1,IN2满足由“XX”确定的关系时,比较触点闭合。IN1与IN2的寻址范围:IB、QB、MB、SB、SMB、LB、*VB、*AC、*LD和常数。
STL:LDTXXIN1,IN2ATXXIN1,IN2OTXXIN1,IN2T:B,W,D,RXX:=,>=,<=,>,<,<>;注意:
对于LAD的==,在STL为=;
对于LAD的整数比较,数据类型为I,而STL为W;Q0.2Q0.1Q0.0网络1网络3网络2I0.0I0.1C30>=I+30VD1<R95.8VB1>BVB2BACK梯形图语句表LDW>=C30,+30=Q0.0LDI0.0AR<VD1,95.8=Q0.1LDI0.1OB>VB1,VB2=Q0.214NOT及NOP指令1).取反指令NOT将复杂逻辑结果取反,为用户使用反逻辑提供方便。该指令无操作数,其LAD和STL形式如下。STL形式:NOTLAD形式:——|NOT|——2).空操作指令NOP(NoOperation)该指令用在跳转指令结束处,或在调试程序中使用。其对用户程序的执行无影响,其LAD和STL形式如下。STL形式:NOPNN的范围:0~255LAD形式:——NOPN使用说明:(1)结束指令只能用在主程序中,不能在子程序和中断程序中使用。而有条件结束指令可用在无条件结束指令前结束主程序。(2)在调试程序时,在程序的适当位置插入无条件结束指令可实现程序的分段调试。(3)可以利用程序执行的结果状态、系统状态和外部设置切换条件来调用有条件结束指令,使程序结束。(4)使用Micro/Win32编程时,编程人员不需手工输入无条件结束指令,该软件会自动在内部加上一条无条件结束指令到主程序的结尾。STOP指令有效时,可以使主机CPU的工作方式由RUN切换到STOP,从而立即中止用户程序的执行。STOP指令可以用在主程序、子程序和中断程序中。LAD:(STOP);STL:STOP结束指令和停止指令的用法如下图所示:1).结束指令END(有条件结束指令)和MEND(无条件结束指令)LAD:(END)或(MEND);STL:END或MEND二、程序控制指令1结束及暂停指令2).停止指令STOPSTOP和END指令通常在程序中用来对突发紧急事件进行处理。网络1STOP、END、WDR使用举例SM5.0(STOP)I0.3网络2I0.5(END)网络3M0.4(WDR)LDSM5.0//检查I/O错误OSM4.3//运行时检查编程OI0.3//外部切换开关STOP//条件满足,由RUN切换到//STOP方式LDI0.5//外部停止控制ENDLDM0.4//用触点重新触发WDR//看门狗定时器图
结束、停止及看门狗指令举例SM4.32看门狗指令WRD(WatchdogReset)称为看门狗复位指令,也称为警戒时钟刷新指令。它可以把警戒时钟刷新,即延长扫描周期,从而有效地避免看门狗超时错误。使用WDR指令时要特别小心,如果因为使用WDR指令而使扫描时间拖的过长(如在循环结构中使用WDR),那么在中止本次扫描前,下列过程将被禁止:(1)通信(自由口I/O除外);(2)I/O刷新(直接I/O除外);(3)强制刷新;(4)SM位刷新(SM0、SM5-SM29的位不能被刷新);(5)运行时间诊断;(6)扫描时间超过25s时,使10ms和100ms定时器不能正常计时;(7)中断程序中的STOP指令。返回
3跳转及标号指令跳转指令可以使PLC编程的灵活性大大提高,使主机可根据对不同条件的判断,选择不同的程序段执行程序。跳转指令JMP(JumptoLabel):当输入端有效时,使程序跳转到标号处执行。标号指令LBL(Label):指令跳转的目标标号。操作数N为0-255。(1)跳转指令和标号指令必须配合使用,而且只能使用在同一程序块中,如主程序、同一个子程序或同一个中断程序。(2)执行跳转后,被跳过程序段中的各元件状态为:Q、M、S、C等元件的位保持跳转前的状态;计数器C停止计数,当前值存储器保持跳转前的计数值;对定时器来说,因刷新方式不同而工作状态不同。跳转指令的使用方法如下图所示。使用说明N(JMP)LAD:STL:JMPNLBLNLAD:STL:LBLNI0.03(JMP)3LBLLDI0.0JMP3...LBL3图跳转指令使用举例4循环指令1.)循环指令循环开始指令FOR:用来标记循环体的开始。循环结束指令NEXT:用来标记循环体的结束。无操作数。FOR和NEXT之间的程序段称为循环体,每执行一次循环体,当前计数值增1,并且将其结果同终值作比较,如果大于终值,则终止循环。循环指令的引入为解决重复执行相同功能的程序段提供了极大的方便,并且优化了程序结构。特别是在进行大量相同功能的计算和逻辑处理时,循环指令非常有用。循环指令的LAD和STL形式如图FORENENOINDXINITFINAL(NEXT)FORINDX,INIT,FINAL...NEXT图循环指令的LAD和STL形式2.)参数说明从图中可以看出,循环指令盒中有三个数据输入端:当前循环计数INDX(indexvalueorcurrentloopcount)、循环初值INIT(startingvalue)和循环终值FINAL(endingvalue)。在使用时必须给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)每次使能输入(EN)重新有效时,指令将自动复位各参数。(4)初值大于终值时,循环体不被执行。(5)注意在循环体中对INDX的控制。循环指令使用举例如下图所示。网络5I1.0FORENENOINDXINITFINALVW1001100ABFORENENOINDXINITFINALVW22512网络10I1.1网络15网络20(NEXT)(NEXT) (a)梯形图LDI.0FORVW100,1,100..LDI1.1FORVW225,1,2..NEXT.NEXT(b)语句表图循环指令使用举例返回5子程序子程序在结构化程序设计中是一种方便有效的工具。S7-200PLC的指令系统具有简单、方便、灵活的子程序调用功能。与子程序有关的操作有:建立子程序、子程序的调用和返回。建立子程序是通过编程软件来完成的。对于CPU226XM,最多可以有128个子程序,对其余的CPU,最多有64个子程序。(1)子程序调用指令(CALL)在使能输入有效时,主程序把程序控制权交给子程序。子程序的调用可以带参数,也可以不带参数。它在梯形图中以指令盒的形式编程。指令格式如表下表所列。在使能输入有效时,结束子程序的执行,返回主程序中(返回到调用此子程序的下一条指令)。梯形图中以线圈的形式编程,指令不带操作数。指令格式如表下表所列。(3)应用举例。如后图所示。使用说明:2).子程序的调用1)建立子程序(2)子程序返回指令无条件返回(RET):用于子程序结束。条件返回(CRET):只能用于子程序内部。表子程序调用指令格式指令子程序调用指令子程序返回指令LADSBR-0EN(RET)或STLCALLSBR_0RET或CRET网络1I0.0网络2I0.1
WYHENENSBR_0(a)梯形图LDI0.0//使能输入CALLWYH//调用子程序WYHLDI0.1//使能输入CALLSBR_0//调用子程序WYH(b)语句表返回图5-25所示的程序实现用外部控制条件分别调用两个子程序。(CRET)使用说明:CRET多用于子程序的内部,由判断条件决定是否结束子程序调用,RET用于子程序的结束。如果在子程序的内部又对另一子程序执行调用指令,则这种调用称为子程序的嵌套。子程序的嵌套深度最多为8级。当一个子程序被调用时,系统自动保存当前的堆栈数据,并把栈顶置1,堆栈中的其他值为0,子程序占有控制权。子程序执行结束,通过返回指令自动恢复原来的逻辑堆栈值,调用程序又重新取得控制权。累加器可在调用程序和被调用程序之间自由传递,所以累加器的值在子程序调用时既不保存也不恢复。返回3).带参数的子程序调用子程序最多可以传递16个参数。参数在子程序的局部变量表加以定义。参数包含下列信息:变量名、变量类型和数据类型。变量名变量名最多用8个字符表示,第一个字符不能是数字。变量类型变量类型是按变量对应数据的传递方向来划分的,可以是传入子程序(IN)、传入和传出子程序(IN/OUT)、传出子程序(OUT)和暂时变量(TEMP)等4种类型。4种变量类型的参数在变量表中的位置必须按照一定的先后顺序。数据类型局部变量表中还要对数据类型进行声明。数据类型可以是:能流、布尔型、字节型、字型、双字型、整数型、双整数型和实型。常数参数必须声明数据类型。输入或输出参数没有自动数据类型转换功能。参数在调用时必须按一定的顺序排列。(1)子程序参数(2)参数子程序调用的规则(3)变量表的使用按照子程序指令的调用顺序,参数值分配给局部变量存储器,起始地址是L0.0。使用编程软件时,地址分配是自动的。参数子程序调用指令格式:CALL子程序名,参数1,参数2,……参数n。(4)程序实例下图
为一个带参数调用的子程序实例,其局部变量分配如表下表所列。说明:下图中的STL程序并不是从下图中的LAD转换过来的,而是单独编写的。同样从图STL也转换不成图中的LAD。LDI0.0CALLSBR_1,I0.1,VB10,I1.0,&VB100,*AC1,VD200I0.0I0.1VB10I01.0*AC1SBR_1ENIN1IN2IN3IN4IN/OUT1OUT1VD200图带参数子程序调用举例L地址参数名参数类型数据类型说明无L0.0LB1LW7LD3LB2.0ENIN1IN2IN3IN4IN/OUT1ININININININ/OUTBOOLBOOLBOOLBYTEDWORDWORD指令使能输入参数第1个输入参数,布尔型第3个输入参数,布尔型第2个输入参数,字节型第4个输入参数,双字型第1个输入/输出参数,字型表局部变量表返回&VB100LD9OUTDWORD第1个输出参数,双字型OUT16与ENO指令ENO是LAD中指令盒的布尔能流输出端。如果指令盒的能流端有效,则执行没有错误,ENO就置位,并将能流向下传递。ENO可以作为允许位表示指令成功执行。STL指令没有EN输入,但对要执行的指令,其栈顶值必须为1。可用“与”ENO(AENO)指令来产生和指令盒中的ENO位相同的功能。指令格式:AENOAENO指令无操作数,且只在STL中使用,它将栈顶值和ENO位的逻辑进行与运算,运算结果保存到栈顶。AENO指令使用较少。AENO指令的用法如图3-27所示。图3-27AENO指令用法举例网络1与ENO使用举例I0.0ADD_IENENATCHENOENOIN1IN2INTEVNTINT_010VW204VW200VW204LDI0.0//使能输入+IVW200,VW204//整数加法,VW200+VW204=VW204AENO//与ENO指令ATCHINT_0,10//如果+I指令执行正确,则调用中断程序INT_0,中断事件号为10返回三、PLC初步编程指导1.梯形图编程的基本规则
梯形图编程的基本规则如下:(1)PLC内部元器件触点的使用次数是无限制的。(2)梯形图的每一行都是从左边母线开始,然后是各种触点的逻辑连接,最后以线圈或指令盒结束。触点不能放在线圈的右边。线圈连接时必须用并联,不能出现串联形式。如图所示。但如果是以有能量传递的指令盒结束的指令,可以使用AENO指令在其后面连接指令盒(较少使用),如图所示。3-273-28返回
(3)线圈和指令盒一般不能连接在左边的母线上。如需要的话可通过特殊的中间继电器SM0.0(常ON特殊中间继电器)完成,如图所示。(4)在同一程序中,同一编号的线圈使用两次及两次以上称为双线圈输出。双线圈输出非常容易引起误动作,所以应避免使用。S7-200PLC中不允许双线圈输出。如图所示。(5)内外触点的配合。在LAD中应正确选择设备所连的输入继电器的触点类型,使用常开触点还是常闭触点与外部触点有关。如图所示 (6)在手工编写梯形图程序时,触点应画在水平线上,从习惯和美观的角度来讲,不要画在垂直线上,如图。使用编程软件则不可能把触点画在垂直线上。3-293-303-293-35(7)不包括触点的分支线条应放在垂直方向,不要放在水平方向,以便于读图和图形的美观,如图所示。使用编程软件则不可能出现这种情况。(8)应把串联多的电路块尽量放在最上边,把并联多的电路块尽量放在最左边,这样一是节省指令,二是美观,如图所示。(9)图所示为梯形图的推荐画法。3-313-323-332.LAD和STL编程形式的区别利用PLC指令对梯形图编程时,可以把整个梯形图程序看成由很多网络块组成,每个网络块均起始于母线。所有的网络块组合在一起就是梯形图程序,这是S7-200PLC的特点。LAD程序可以通过编程软件直接转换为STL形式。S7-200PLC用STL编程时,如果也以每个独立的网络块为单位,则STL程序和LAD程序基本上是一一对应的,而且两者可以通过编程软件相互转换;如果不以每个独立的网络块为单位编程,而是连续编写,则STL程序和LAD程序不能通过编程软件相互转换。大家在使用时要注意。LAD是使用最多的编程语言,它非常直观易懂,对每个人都适用;特别老练的人在某些情况下会直接使用STL形式编程,用STL形式编写的程序简短,但不直观。
但不管怎么说,大家对这两种形式的程序都应该熟悉。特别是会用手工把一个LAD程序转换为STL程序,这对进一步理解PLC程序执行的原理有很大的帮助。下面的一个典型例子说明了从LAD到STL的转换步骤。对每一个独立的LAD网络块中的程序,可分成若干小块,对每个小块按照从左到右,从上到下的原则进行编程。然后将程序块连接起来,就完成了该网络块的STL编程。图详细介绍了语句表编程的步骤。3-34(a)错误(b)错误1243122344图3-28梯形图画法示例1返回45(c)正确1234445(a)错误(b)正确Q0.0SM0.0Q0.0返回图3-29梯形图画法示例2I0.0I0.1Q0.0PLC+24V()I0.0I0.1Q0.0Q0.0LLN启动停止I0.0I0.1Q0.0PLC+24V()I0.0I0.1Q0.0Q0.0LLN启动停止图3-35返回()…()M0.0M0.0I0.0I0.1返回(a)错误(b)正确图3-30梯形图画法示例3返回(a)不好(b)正确图3-31梯形图画法示例4返回(a)把串联多的电路块放在最上边(b)把并联多的电路块放在最左边图3-32梯形图画法示例5返回图3-33梯形图的推荐画法返回12345678910111213(1)(2)(3)(4)(8)(5)(6)(7)(9)(10)(11)(12)(1)LD1AN2(2)LD3A4(3)OLD(4)O5(5)LD6A7(6)LD8AN9(7)OLD(8)ALD(9)A10(10)=12(11)A11(12)=13(a)梯形图(b)语句表编写顺序示范图3-34语句表编写举例返回四、典型的简单电路编程
1延时脉冲产生电路
2瞬时接通/延时断开电路
3延时接通/延时断开电路
4脉冲宽度可控制电路
5计数器的扩展
6长定时电路
7闪烁电路
8报警电路
9抢答器电路
10多个传送带控制示例
1.延时脉冲产生电路
在有输入信号后,停一段时间产生一个脉冲。主要用于获取启动或关断信号。电路的程序及时序2瞬时接通/延时断开电路在输入信号有效时,马上有输出,而输入信号OFF后,输出信号延时后才OFF.电路的程序及时序3.延时接通/延时断开电路该电路要求有信号输入后,停一段时间输出信号才为ON,而输入信号OFF后,输出信号延时一段时间才OFF.电路的程序及时序4.脉冲宽度可控制电路在输入信号宽度不规范的情况下,要求每一个输入信号的上升沿产生一个宽度固定的脉冲,该脉冲的宽度可以调节。注意:如果输入信号的两个上升沿之间的距离小于脉冲的宽度,则忽略输入信号的第二个上升沿,电路的程序及时序5.计数器的扩展
一个计数器最大计数值为32767。实际应用中,如果计数范围超过该值,就需要对计数器进行扩展。计数器扩展电路的程序6长定时电路
S7-200PLC中的定时器最长定时时间不到1h,但在一些实际应用中,往往需要几小时甚至几天或更长时间的定时控制,这样仅用一个定时器就不能完成该任务。
在输入信号I0.0有效后,经过10h30min后将输出Q0.0置位。定时电路的梯形图程序7.闪烁电路也称为振荡电路,用在报警、娱乐等场合。闪烁电路实际上就是一个时钟电路。它可以是等间隔的通断,也可以是不等间的通断。闪烁电路的程序及时序图8.报警电路报警是电气自动控制中不可缺少的重要环节,标准的报警功能应该是声光报警。当故障发生时,报警指示灯闪烁,报警电铃或蜂鸣器鸣响。操作人员知道故障发生后,按消铃按钮,报电铃关掉,报警指示灯从闪烁变为长亮。故障消失后,报警灯熄灭。另外设置试灯、试铃按钮,用于平时检测报警指示灯和电铃的好坏。标准报警电路9试设计一个抢答器电路程序,出题人提出问题,3个答题人按动按纽,仅仅是最早按的人面前的信号灯亮。然后出题人按动复位按纽后,引出下一个问题。LADI0.0I0.1I0.2I1.0Q0.0Q0.1Q0.21L2L3L1M2M+24V+24V-24VLN-24V甲乙丙主持人甲灯乙灯丙灯PLC10多个传送带启动和停止示意如图下所示。初始状态为各个电机都处于停止状态。按下启动按纽后,电动机M1通电运行,行程开关SQ1有效后,电动机M2通电运行,行程开关SQ2有效后,M1断电停止。其它传动带动作类推。整个系统循环工作。按停止按纽后,系统把目前的工作进行完成后停止在初始状态。试设计出LAD。货车货车SQ1SQ2SQ3SQ4SQ5SQ6M1M2M2LAD网络1延时脉冲产生电路I0.0P()M0.0网络2()M0.1M0.0/Q0.0M0.1网络3T37()Q0.0INTONPT+20LDI0.0EU=M0.0LDM0.00M0.1ANQ0.0=M0.1TONT37,+20LDT37=Q0.0梯形图语句表注释时序图T372sI0.0M0.0T37Q0.0注释:时序图中利用脉冲指令在I0.0的上升沿产生一个计时启动脉冲接下来就是一个非常典型的环节。因为定时器没有瞬动触点,不可能用自身的触点组成自锁回路,所以必须用一个中间继电器M0.1组成延时逻辑。T33定时到时,产生一个宽度为一个扫描周期的脉冲Q0.0,然后Q0.0使T33复位。网络1瞬时接通/延时断开电路/I0.0Q0.0INTONPT+30网络2()Q0.0I0.0/T37Q0.0梯形图LDNI0.0AQ0.0TONT37,+30LDI0.0OQ0.0ANT37=Q0.0 语句表时序图I0.0Q0.0注释T373S注释:在时序图中,关键的问题是找出定时器T37的计时条件。在本例中T37的计时条件是I0.0为OFF且为ON。因为I0.0变为OFF后,Q0.0仍要保持通电状态3s,所以Q0.0的自锁触点是必须的。网络1延时接通/延时断开电路+30I0.0网络2/I0.0Q0.0()Q0.0网络3T37/T38Q0.0梯形图LDI0.0TONT37,+30LDNI0.0AQ0.0TONT38,+50LDT37OQ0.0ANT38=Q0.0语句表I0.0Q0.0注释时序图T373S5S
TONINPT
TONINPTT38+50注释:和瞬时接通/延时断开电路相比,该电路多加了一个输入延时。T37延时3s作为Q0.0的启动条件,T38延时5s作为Q0.0的关断条件。两个定时器配合使用实现该电路的功能。网络1脉冲宽度可控制电路()()()+20()INTONPTI0.0PSM0.0Q0.0M0.11/T37网络2M0.0M0.1网络3T37RQ0.01LDI0.0EUSQ0.0,1=M0.0LDM0.0OM0.1ANT37=M0.1TONT37,+20LDT37RQ0.0,1梯形图语句表I0.0Q0.0时序图注释T37注释:此例中,我们使用了上升沿脉冲指令和S/R指令。关键是找出Q0.0的开启和关断条件,使其不论在I0.0的宽度大于或小于2S时,都可使Q0.0的宽度为2s。定时器T37的计时输入逻辑在上升沿之间的距离小于该脉冲的宽度时,对后产生的上升沿脉冲无效。T37在计时到后产生一个信号复位Q0.0,然后自己复位。此例中,通过调节T37设定值PT的大小,就可控制Q0.0的宽度。该宽度不受I0.0接通时间长短的影响。计数器扩展电路网络1I0.0I0.1C20C20I0.1C21C21I0.1C22Q0.0网络2网络3网络4C20C21C22CURCTUPV+1000CUCTURPV+100CUCTURPV+2梯形图LDI0.0//计数脉冲输入LDI0.1//公共复位信号OC20//自复位逻辑CTUC20,+1000//增计数器,设定值1000LDC20//C21计数脉冲输入LDI0.1//公共复位信号OC21//自复位逻辑CTUC21,+100//增计数器,设定值100LDC21//C22计数脉冲输入LDI0.1//公共复位信号CTUC22,+2//增计数器,设定值2LDC22//总计数为200000时//C22位置为ON=Q0.0//输出语句表注释在电路中,计数信号为I0.0,它作为C20的计数端输入信号,每一个上升沿使C20计数1次;C20的常开触点作为计数器C21的计数输入信号,C20计数到1000时,使计数器C21计数1次;C21的常开触点作为计数器C22的计数输入信号,C21每计数到100时,计数1次。这样当C总1000*100*2=200,000时,即当I0.0的上升沿脉冲数到200000时,Q0.0才被置位。注意:计数器复位输入端逻辑的设计,要保证能准确及时复位。长延时电路网络11min定时器T37网络21h定时器C21网络3C22定时时间10h网络4在10h到时,C23再计时30min
网络510h30min到时,Q0.0输出INT37PTC21C22C23TON+600+60+10+30CURPVCTUCURPVCTUCURPVCTUI0.0T37/T37SM0.1I0.1C21SM0.1I0.1C21C22SM0.1I0.1T37C23Q0.0LDI0.0ANT37TONT37,+600LDT37LDSM0.1OI0.1OC21CTUC21,+60LDC21LDSM0.1OI0.1CTUC22,+10LDC22AT37LDSM0.1CTUC23,+30LDC23=Q0.0梯形图语句表注释
在电路中,T37每一分钟产生一个脉冲,所以是分钟计时器。C21每小时产生一个脉冲,故C21为小时计时器。当10h计时到时,C22为ON,这时C23再计时30min,则总的定时时间为10h30min,Q0.0置位成ON。/网络1网络2网络3I0.0T38T37T37Q0.0T37T38INTONPTINTONPT+20+10LDI0.0ANT38TONT37,20LDT37TONT38,10LDT37=Q0.0梯形图语句表注释:当I0.0有效时,T37就会产生一个1S通、2S断的闪烁信号。Q0.0和T37一样开始闪烁。闪烁电路I0.0T37T38Q0.0时序图I0.0I0.1I1.0I1.1Q0.0Q0.1Q0.71L2L3L1M2M+24V+24V-24VLN-24V故障1故障2消铃按纽试灯试铃报警灯1报警灯2电铃梯形图时序图启动条件Q0.0闪Q0.7闭I1.0闭Q0.0闭I0.0闭I1.1闭停止条件I0.0断Q0.0断Q0.7断I1.1断I1.0闭网络1闪烁电路网络2网络3故障指示灯网络4故障消铃逻辑网络5电铃标准报警电路INTONPTINTONPTT37T38/T38T37T37I0.0M0.0I1.1Q0.0I1.0I0.0M0.0I0.0/M0.0I1.1+10+20M0.0Q0.7梯形图LDN T38TON T37,+10LD T37TON T38,+20LD T37O M0.0A I0.0O I1.1= Q0.0LD I11.0O M0.0A I0.0= M0.0LD I0.0AN M0.0O I1.1= Q0.7语句表注释I0.0I1.0I1.1Q0.0Q0.7时序图标准报警电路中的输入/输出信号地址分配如下:输入信号 I0.0为故障信号;I1.0为消铃按钮;I1.1为试灯、试铃按钮。输出信号 Q0.0为报警灯;Q0.7为报警电铃。()I0.0I1.0Q0.0Q0.1Q0.2Q0.0I0.1I1.0Q0.1Q0.0Q0.2Q0.1()()I0.2I1.0Q0.2Q0.0Q0.1Q0.2M1M2M3启动按纽SQ1SQ3SQ6M1M2M3SQ2SQ4SQ5启动条件停止条件M2M1M3SQ1SQ2SQ3SQ4SQ5SQ6启动按纽停止按纽I0.0I0.1I0.2I0.3I0.4I0.5I0.6I0.7Q0.0Q0.1Q0.2Q0.0I0.0I0.3()()()(s)(R)Q0.0I0.7I0.2I0.5Q0.1Q0.1I0.4I0.6Q0.2Q0.2I0.11M0.11M0.1I0.0M0.1五、 PLC程序的简单设
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 委托转让公司协议
- 商超布展合作协议
- 《雅思阅读技巧》课件
- 2025版五星酒店厨师长职位竞聘与特聘合同书3篇
- 2025年全球及中国商用蘑菇杀菌设备行业头部企业市场占有率及排名调研报告
- 2025-2030全球便携式ALD系统行业调研及趋势分析报告
- 2025年全球及中国氧化铌蒸发材料行业头部企业市场占有率及排名调研报告
- 2025年全球及中国磁力锁支架行业头部企业市场占有率及排名调研报告
- 2025年全球及中国手语口译服务行业头部企业市场占有率及排名调研报告
- 2025年全球及中国非接触式26G高频雷达物位计行业头部企业市场占有率及排名调研报告
- 化学-河南省TOP二十名校2025届高三调研考试(三)试题和答案
- 智慧农贸批发市场平台规划建设方案
- 林下野鸡养殖建设项目可行性研究报告
- 2023年水利部黄河水利委员会招聘考试真题
- Python编程基础(项目式微课版)教案22
- 01J925-1压型钢板、夹芯板屋面及墙体建筑构造
- 欠电费合同范本
- 2024年新高考地区数学选择题填空压轴题汇编十八含解析
- 大型商场招商招租方案(2篇)
- 2022年袋鼠数学竞赛真题一二年级组含答案
- 英语主语从句省公开课一等奖全国示范课微课金奖课件
评论
0/150
提交评论