1、第三章的基本逻辑指令及举例第三章的基本逻辑指令及举例 逻辑取及线圈驱动指令逻辑取及线圈驱动指令 触点串联指令触点串联指令 触点并联指令触点并联指令 串联电路块得并联连接指令串联电路块得并联连接指令 并联电路块得串联连接指令并联电路块得串联连接指令 置位复位指令置位复位指令 RSRS触发器指令触发器指令 立即指令立即指令 边沿脉冲指令边沿脉冲指令 逻辑堆栈操作指令逻辑堆栈操作指令 定时器定时器 计数器计数器 比较指令比较指令 NOTNOT及及NOPNOP指令指令一、PLC得基本逻辑指令及举例一、一、一、一、PLCPLC基本逻辑指令及举例基本逻辑指令及举例基本逻辑指令及举例基本逻辑指令及举例 S7
2、S7200200系列系列PLCPLC逻辑指令共有逻辑指令共有106106条条,厂家提供了梯形图厂家提供了梯形图(LAD)LAD)、语句表、语句表(STL)STL)、功能块图功能块图(FBDFBD)与顺序流程图几种编程语言与顺序流程图几种编程语言,其中其中LADLAD与与STLSTL就是最基本得也就是最常用得就是最基本得也就是最常用得编程语言。本章以这两种语言为例介绍其应用。编程语言。本章以这两种语言为例介绍其应用。1 1、装入触点指令及驱动指令装入触点指令及驱动指令 LDLD(LOADLOAD):):装入触点指令。用于网络块逻辑运算开始得常开触点与母线得连接。装入触点指令。用于网络块逻辑运算开
3、始得常开触点与母线得连接。LDNLDN(LOAD NOTLOAD NOT):):取反指令。用于网络块逻辑运算开始得常闭触点与母线得连接。取反指令。用于网络块逻辑运算开始得常闭触点与母线得连接。(OUTOUT):):线圈得驱动指令线圈得驱动指令 图图3 31 1 为上面三条指令得用法为上面三条指令得用法注意事项注意事项:3n LD、LDN指令不只就是用于网络块逻辑计算开始时与母线相连得常开与常闭触点,在分支电路块得开始也使用LD、LDN指令,与后面要讲得LD、OLD指令配合完成块电路得编程。n 指令不能用于输入继电器。n 指令可连续使用任意次。n 在同一线圈中不要使用双线圈输出。nLD、LDN操
4、作数为I、Q、M、SM、T、C、V、S 得操作数为Q、M、S、V2 2、触点串联指令触点串联指令触点串联指令触点串联指令A(And)A(And):与指令。用于单个常开触点得串联连接。与指令。用于单个常开触点得串联连接。ANAN(And Not)And Not):与反指令。用于单个常闭触点得串联连接。与反指令。用于单个常闭触点得串联连接。注意事项:n A、AN就是单个触点串联连接指令,可连续使用,编程时只受到打印宽度与屏幕显示得限制。n 例中可以反复使用=指令,但次序必须正确。n A、AN指令得操作数为:I、Q、M、SM、T、C、V、S与L。()()M0.0M0.1Q0.0Q0.1LD M0、0
5、LPS A M0、1=Q0、0LPP =Q0、1网络1I0、0M0、1网络2 连续输出 I0、2Q0、0M0、3T5Q0、3M0、4Q0、1LD I0、0 A M0、0 =Q0、0LD M0、1AN I0、2=M0、3A T5=Q0、3 AN M0、4=Q0、1(a)梯形图(b)语句表M0、03、触点并联指令 O(or)或指令。用于单个常开触点得并联连接 ON(or not)或反指令。用于单个常闭触点得并联连接n n单个触点得O、ON指令可连续使用n nO、ON指令得操作数为:I、Q、M、SM、T、C、V、S、与L注意事项:M0、0M0、1M0、2I0、1I0、0Q0、0LD M0、0O M0
6、、1ON M0、2A I0、0O I0、1=Q0、0(a)梯形图(b)语句表网络1 触点得并联电路举例4 串联电路块得并联连接指令 OLD(or load)或块指令:用于串联电路块得并联连接两个以上触点串联形成得支路叫串联电路块n 在电路块得开始也要使用LD、LDN指令n 每完成一次块电路得并联时要写上OLD指令n OLD指令无操作数注意事项大家学习辛苦了,还是要坚持继续保持安继续保持安静静I0、0I0、1I0、2M0、0M0、1M0、2M0、3Q0、0LD I0、0A M0、0LD I0、1AN M0、1OLDLDN I0、2A M0、2OLDA M0、3=Q0、0(a)梯形图(b)语句表网
7、络1 OLD指令使用举例5 并联电路块得串联连接指令 ALD(And Load)与块指令。用于并联电路块得串联连接 两条以上支路并联形成得电路叫并联电路块注意事项n 在块电路开始时要使用LD与LDN指令n 在每完成一次块电路得串联连接后要写上ALD指令n ALD指令无操作数网络1 ALD指令使用举例I0、0I0、1M0、0M0、2M0、1M0、3Q0、0LD I0、0 O I0、1 LD M0、0A M0、1LD M0、2AN M0、3OLD ALD=Q0、0 (a)梯形图(b)语句表6、置位、复位指令LADLADSTLSTL功能功能置位指令置位指令 bit bit S S N NS bitS
8、 bit,N N从从bitbit开始得开始得N N个元件置个元件置1 1并并保持保持复位指令复位指令 bit bit R R N NR bitR bit,N N从从bitbit开始得开始得N N个元件清零并个元件清零并保持保持表1 置位复位指令得功能表()()网络1 置位网络2 复位 I0、0Q0、0I0.1S2Q0.0R2LD I0、0S Q0、0,2LD I0、1R Q0、1,2I0、0I0、1(a)梯形图(b)语句表(c)时序图Q0、0,Q0、1n对元件来说一旦被置位,就保持在通电状态,除非在对它复位;而一旦被复位,就保持在断电状态,除非在对它置位nS/R指令可以互换次序使用,但由于PL
9、C采用扫描工作方式,所以写在后面得指令具有优先权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注意事项:7、RS触发指令 SR(set dominant bistable)置位优先触发指令。当置位信号与复位信号都为真时,输出为真 RS(reset dominant bistable)复位优先触发指令。当置位信号与复位信号都为真时,输出为假RS1SROUTbitR1SRSOUTbit 指令
10、指令S1S1R R输出输出(bitbit)置位优先触发指令置位优先触发指令(SRSR)0 00 0保持前一状态保持前一状态0 01 10 01 10 01 11 11 11 1 指令指令S SR1R1输出输出(bitbit)复位优先触发指令复位优先触发指令RSRS)0 00 0保持前一状态保持前一状态0 01 10 01 10 01 11 11 10 0RS触发器指令得真值表S1RSROUTSR1RSOUT网络1网络2I0、0I0、1I0、0I0、1Q0、0Q0、1I0.0I0.1Q0.0Q0.1(a)梯形图(b)时序图8、立即指令(Immediately)n nRI bitRI bitn n
11、立即复位立即复位1.1.BitBit只能为只能为Q Q2.2.N N的范围:的范围:1-1281-1283.3.N N的操作数同的操作数同S/RS/R指令指令n nSI bitSI bitn n立即置位立即置位n nBitBit只能为只能为Q Qn n=I bit=I bitn n立即输出立即输出n nANI bitANI bitn n立即与反立即与反n nAI bitAI bitn n立即与立即与n nONI bitONI bitn n立即或反立即或反n nOI bitOI bitn n立即或立即或LDNI LDNI bitbitn n立即取反立即取反n nBitBit只能为只能为I ILD
12、I LDI bitbitn n立即取立即取n n使用说明使用说明n nLADLADn nSTLSTL指令名称指令名称bitIIbitbitISINbitbitNRI立即指令就是为了提高PLC对输入输出得响应速度而设置,不受PLC循环工作方式得影响,允许对输入与输出点进行快速直接存取。对I 操作,相应得输入映像寄存器得值并未更新;当用立即指令访问输出点时,对Q操作,新值同时写到PLC得物理输出点与相应得输出映像寄存器。网络1 立即指令举例网络2I0.0Q0.0IQ0.11SIQ0.2Q0.3II0.0LD I0、0=Q0、0=I Q0、1SI Q0、2,1LDI I0、0=Q0、3(a)梯形图(
13、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、边沿脉冲指令指令名称指令名称LADLADSTLSTL功能功能说明说明上升沿脉上升沿脉冲冲EUEU在上升沿在上升沿产生脉冲产生脉冲无操作无操作数数下降沿脉下降沿脉冲冲EDED在下降沿在下降沿产
14、生脉冲产生脉冲PNQ0.0R1PN网络1 边沿脉冲指令举例网络2网络3网络4I0、0M0、0I0、1M0、1M0、1M0、0LD I0、0EU=M0、0LD M0、0S Q0、0,1LD I0、1ED=M0、1LD M0、1R Q0、0,1I0、0M0.0I0.1M0.1Q0.0(a)梯形图(b)语句表(c)时序图Q0.0S110、逻辑堆栈操作指令 LPS(logic push)逻辑入栈指令 LRD(logic read)逻辑读栈指令 LPP(logic pop)逻辑出栈指令 LDS(load stack)装入堆栈指令使用举例1使用举例2使用举例3s7-PLC 使用9层堆栈来处理所有得逻辑操作
15、,逻辑堆栈指令主要完成对触点进行得复杂连接。注意事项分支电路开始指令。其作用就是把栈顶值复制后压入堆栈开始第二个以后得从逻辑块得编程,其作用就是读取最近LPS压入堆栈得内容,而本身不进行PUSH与POP工作分支电路结束指令。其作用把堆栈弹出一级,堆栈内容依次上移复制堆栈中得n个值到栈顶,而栈底丢失。STL:LDS n (n 为08得整数)网络1 LPS、LRD、LPP指令使用举例1M1、2Q0、3M1、1Q0、2M1、0M0、5M0、4Q0、1M0、3M0、2M0、1Q0、0M0、0I0、0LD I0、0LPSLD M0、0O M0、1ALD=Q0、0LRDLD M0、2A M0、3LDN M
16、0、4A M0、5OLDALD=Q0、1LPPA M1、0=Q0、2LD M1、1ON M1、2ALD =Q0、3(a)梯形图(b)语句表BACK网络1 LPS、LRD、LPP指令使用举例2Q0、0Q0、1Q0、2Q0、3M0、3M0、6M0、5M0、4M0、2M0、1M0、0LD 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、3M0.3M0.2Q0.0Q0.1M0.1Q0.2Q0.3M0.0网络1 LPS、LRD、LPP指令使用举例3LD M0、0LP
17、S A M0、1LPSA M0、2LPSA M0、3=Q0、0LPP=Q0、1LPP=Q0、2LPP=Q0、3(a)梯形图(b)语句表注意事项注意事项注意事项注意事项n n受堆栈空间得限制受堆栈空间得限制(9(9层堆栈层堆栈),LPS),LPS、LPPLPP指令连续使用时指令连续使用时应少于应少于9 9次。次。n nLPSLPS与与LPPLPP指令必须成对使用指令必须成对使用,它们之间可以使用它们之间可以使用LRDLRD指令。指令。n nLPSLPS、LRDLRD、LPPLPP指令无操作指令无操作数。数。入栈前入栈前入栈后入栈后iv0iv0iv3iv3iv1iv1iv0iv0iv2iv2iv1
18、iv1iv3iv3iv2iv2iv4iv4iv3iv3iv5iv5iv4iv4iv6iv6iv5iv5iv7iv7iv6iv6iv8iv8iv7iv7LDS 指令使用举例例:LDS 3 1111、定时器定时器定时器定时器接通延时定时器(TON)有记忆接通延时定时器(TONR)断开延时定时器(TOF)1 1)种类种类 定时器可分为定时器可分为2 2)分辨率与定时时间得计算分辨率与定时时间得计算 单位时间得时间增量称为定时器得分辨率。单位时间得时间增量称为定时器得分辨率。定时器定时时间定时器定时时间T T得计算得计算:T=PTST=PTS T:T:实际定时时间实际定时时间 PTPT:定时时间定时时
19、间 S S:分辨率分辨率 PTPT数据类型为数据类型为INTINT型型,操作数可为操作数可为:VWVW、IWIW、QWQW、MWMW、SWSW、SMWSMW、LWLW、AIWAIW、T T、C C、ACAC、VDVD、ACAC、LDLD与常数与常数3 3)定时器得编号定时器得编号 定时器得编号用定时器得名称与它得常数编号定时器得编号用定时器得名称与它得常数编号(最大为最大为255)255)。即。即TXXX,TXXX,如如T40T40 定时器得编号包含两方面得信息定时器得编号包含两方面得信息:定时器位与定时器当前值。定时器位与定时器当前值。定时器位定时器位:当定时器得当前值达到设定值当定时器得当
20、前值达到设定值PTPT时时,定时器得触点动作。定时器得触点动作。定时器当前值定时器当前值:存储定时器当前所累计得时间存储定时器当前所累计得时间,它用它用1616位符号得整数来表位符号得整数来表 示示,最大计数值为最大计数值为3276732767 使能输入使能输入:BOOLBOOL型型,可以就是可以就是I I、Q Q、MM、SMSM、T T、C C、V V、S S、L L1ms10ms100msINPTTXTXXXTXXXTXXX定时器类型定时器类型分辨率分辨率/ms/ms当前最大值当前最大值/s/s定时器编号定时器编号 TONR TONR1 13232、767767T0,T64T0,T6410
21、10327327、6767T1T4,T65T68T1T4,T65T6810010032763276、7 7T5T31,T69T95T5T31,T69T95TON,TOFTON,TOF1 13232、767767T32,T96T32,T961010327327、6767T33T36,T97T100T33T36,T97T10010010032763276、7 7T37T61,T101T255T37T61,T101T255定时器得分辨率与编号定时器得分辨率与编号定时器得分辨率与编号定时器得分辨率与编号4)、定时器指令使用说明定时器指令使用说明(1)接通延时定时器 TON(On-Delay Timer
22、)接通延时定时器用于单一时间间隔得定时。其LAD符号:STL格式:TON TXXX,PT;如:TON T120,8;(8100ms)INPTTONTXXXTXXXTXXXINTXXX位T(2)记忆接通延时定时器 TONR(Retentive On-Delay Timer)记忆接通延时定时器具有记忆功能,它用于对许多间隔得累计定时。上电周期或者首次扫描时,定时器位为OFF,当前值保持在掉电前得 值。当输入接通时,当前值从上次所保持值继续计时,当累计当前 值达到设定值 时,定时器为ON,当前值可继续计数到32767。需注意TONR定时器只能用复位指令R对其进行复位操作。INPTTONRTXXXTX
23、XXTXXXLAD:STL:TONR TXXX,PT 如 TONR T20,63INTXXX位T(3)断开延时定时器断开延时定时器 TOF(Off-Delay Timer)断开延时定时器用于断电后得单一间隔时间计时。断开延时定时器用于断电后得单一间隔时间计时。上电周期或首次扫描上电周期或首次扫描,定时器位为定时器位为OFF,当前值为当前值为0。输入接通时。输入接通时,定时定时器位为器位为ON,当前值为当前值为0,当输入端由接通到断开时当输入端由接通到断开时,定时器开始计时定时器开始计时,当达当达到设定值时到设定值时,定时器位为定时器位为OFF,当前值等于设定值当前值等于设定值,停止计时。输入端
24、再次停止计时。输入端再次由由OFFON时时,TOF复位复位,如果如果,输入端再从输入端再从ONOFF,则则TOF可实现再次可实现再次启动。启动。INPTTOFTXXXTXXXTXXXLAD:STL:TOF TXXX,PT 如 TOF T35,6INTXXX位TI0.0INT35TONPT+4T2 INPT+10T36INPT+3TONRTOF(a)梯形图(b)语句表LD I0、0 TON T35,+4 /接通延时定时器 TONR T2,+10 /有记忆接通延时定时器 TOF T36,+3 /断电延时定时器 应用举例5)5)5)5)、定时器得刷新方式与正确使用定时器得刷新方式与正确使用定时器得刷
25、新方式与正确使用定时器得刷新方式与正确使用(1 1)定时器得刷新方式定时器得刷新方式n n1ms1ms定时器定时器:1ms1ms定时器由系统每隔定时器由系统每隔1ms1ms刷新一次刷新一次,与扫描周期及与扫描周期及程序处理无关。它采用得就是中断方式。程序处理无关。它采用得就是中断方式。n n10ms10ms定时器定时器:10ms10ms定时器由系统在每个扫描周期开始时自动刷定时器由系统在每个扫描周期开始时自动刷新新,由于每个扫描周期只刷新一次由于每个扫描周期只刷新一次,故在一个扫描周期内定时故在一个扫描周期内定时器位与定时器得当前值保持不变。器位与定时器得当前值保持不变。n n100ms100
26、ms定时器定时器:100ms100ms定时器在定时器指令执行时被刷新定时器在定时器指令执行时被刷新,它仅它仅用在定时器指令在每个扫描周期执行一次得程序中。用在定时器指令在每个扫描周期执行一次得程序中。(2)定时器得正确使用定时器得正确使用错误正确T32T32T32T32T32Q0.0300300Q0.0Q0.0ININTONTONPTPT1 ms定时器得使用错误正确ININT33T33T33T33Q0.0T33Q0.0Q0.03030TONTONPTPT10 ms定时器得使用100 ms定时器得使用正确最好ININT37TONTONPTPTQ0.0T37T37Q0.0Q0.033T37T371
27、2 12 计数器计数器计数器计数器1、几种基本概念几种基本概念(1)种类 S7200系列PLC得计数器有3种:增计数器CTU,增减计数器CTUD,减计数器CTD。(2)编号 计数器得编号用计数器名称与数字组成,如C6。计数器得编号包含两方面得信息:计数器得位与计数器当前值。计数器位:表示计数器就是否发生动作得状态。计数器当前值:用来存储计数器当前所累计得脉冲数,用16位符号整数表示,最大值为32767。2 2、计数器指令使用说明计数器指令使用说明计数器指令使用说明计数器指令使用说明 (1 1)增计数器增计数器CTU(Count Up)CTU(Count Up)RCUPVCTUCXXXCXXXC
28、XXXCU:脉冲输入端R:复位信号端PV:预设定端计数值计数器位CXXX:计数器编号首次扫描,计数器位为OFF,当前值为0。在计数脉冲输入端CU得每个上升沿,计数器计数一次,当前值增加一个单位。当前值达到设定值时,计数器位ON,当前值可继续计数到32767 后停止计数。复位输入端有效,计数器自动复位,计数器位为OFF,当前值为0。STL指令格式:CTU CXXX,PV例 CTU C20,3I0、0I0、1C20Q0、0C20CUCTU+3RPV(a)梯形图(b)语句表LD I0、0 /计数脉冲信号输入LD I0、1 /复位脉冲信号输入CTU C20,+3 /增计数,设定计数值LD C20 /计
29、数值为3时输出 Q0、0I0.0I0.1C20 当前值C20 位(c)时序图举例举例举例举例(2)增减计数器CTUD(Count Up/Down)CDCURCTUDCXXXCXXXCXXXPVCU:脉冲递增计数输入端CD:脉冲递减计数输入端R:复位信号端PV:预设定端计数值计数器位CXXX:计数器编号首次扫描时,计数器位为OFF,当前值为0。CU输入得每个上升沿计数器当前值增加一个单位,CD输入得每个上升沿,计数器当前值减少一个单位,当前值达到设定值时,计数器位置位为ON。32768327670CUCDSTL指令格式:CTUD CXXX,PV例 CTUD C30,5(3)减计数器CTD(Cou
30、nt Down)LD CD PVCTD CXXXCXXXCXXXCD:脉冲递减输入端LD:复位输入端 PV:预设定端首次扫描,计数器位为OFF,当前值等于预设值PV。计数器检测到CD输入端得上升沿时,计数器当前值减少一个单位,当前值减为0时,计数器位为ON。复位输入端有效时,计数器位为OFF,当前值为PV。STL指令格式:CTD CXXX,PV例 CTD C40,4I0.0I0.1C40Q0.0C40CDCTD+4LDPV(a)梯形图(b)语句表LD I0、0 /减计数脉冲信号输入LD I0、1 /复位脉冲信号输入CTD C40,+4 /减计数,设定计数值LD C40 /计数值为0时输出 Q0
31、、0注意:以上三种计数器如果将计数器位作为复位输入信号,则可实现循环计数。13 13 比较指令比较指令比较指令比较指令 比较指令类型:字节比较,整数比较,双字节比较,实数比较与字符串比较。数值比较指令得运算符:,与等6种,而字符串比较指令只有与两种。对比较指令可进行LD,A与O编程。LAD:IN1IN2XXTXX:比较关系符(,=,=,=,;注意:n 对于LAD得=,在STL为=;n 对于LAD得整数比较,数据类型为I,而STL为W;Q0.2Q0.1Q0.0网络1网络3网络2I0.0I0.1C30=I+30 VD1 B VB2 BACK梯形图语句表LDW=C30,+30 =Q0、0 LD I0
32、、0 AR VB1,VB2 =Q0、214 NOT 14 NOT 及及及及NOPNOP指令指令指令指令1)1)、取反指令取反指令取反指令取反指令NOTNOT 将复杂逻辑结果取反将复杂逻辑结果取反,为用户使用反逻辑提供方便。该指令无为用户使用反逻辑提供方便。该指令无操作数操作数,其其LADLAD与与STLSTL形式如下。形式如下。STLSTL形式形式:NOTNOT LAD LAD形式形式:|NOT|NOT|2)2)、空操作指令空操作指令NOP(No Operation)NOP(No Operation)该指令用在跳转指令结束处该指令用在跳转指令结束处,或在调试程序中使用。其对用户或在调试程序中使
33、用。其对用户程序得执行无影响程序得执行无影响,其其LADLAD与与STLSTL形式如下。形式如下。STLSTL形式形式:NOP N NNOP N N得范围得范围:0255 0255 LAD LAD形式形式:NOPN使用说明:(1)结束指令只能用在主程序中,不能在子程序与中断程序中使用。而有条件结束指令可用在无条件结束指令前结束主程序。(2)在调试程序时,在程序得适当位置插入无条件结束指令可实现程序得分段调试。(3)可以利用程序执行得结果状态、系统状态与外部设置切换条件来调用有条件结束指令,使程序结束。(4)使用Micro/Win32编程时,编程人员不需手工输入无条件结束指令,该软件会自动在内部
34、加上一条无条件结束指令到主程序得结尾。STOP指令有效时,可以使主机CPU得工作方式由RUN切换到STOP,从而立即中止用户程序得执行。STOP指令可以用在主程序、子程序与中断程序中。LAD:(STOP);STL:STOP结束指令与停止指令得用法如下图所示:1)、结束指令 END(有条件结束指令)与MEND(无条件结束指令)LAD:(END)或 (MEND);STL:END或MEND二二 、程序控制指令、程序控制指令1 结束及暂停指令2)、停止指令STOPSTOP与END指令通常在程序中用来对突发紧急事件进行处理。网络1 STOP、END、WDR使用举例SM5、0(STOP)I0、3网络2I0
35、、5(END)网络3M0、4(WDR)LD SM5、0 /检查I/O错误O SM4、3 /运行时检查编程O I0、3 /外部切换开关STOP /条件满足,由RUN切换到 /STOP方式LD I0、5 /外部停止控制ENDLD M0、4 /用触点重新触发WDR /瞧门狗定时器图 结束、停止及瞧门狗指令举例SM4、32 瞧门狗指令WRD(Watchdog Reset)称为瞧门狗复位指令,也称为警戒时钟刷新指令。它可以把警戒时钟刷新,即延长扫描周期,从而有效地避免瞧门狗超时错误。使用WDR指令时要特别小心,如果因为使用WDR指令而使扫描时间拖得过长(如在循环结构中使用WDR),那么在中止本次扫描前,
36、下列过程将被禁止:(1)通信(自由口I/O除外);(2)I/O 刷新(直接I/O除外);(3)强制刷新;(4)SM 位刷新(SM0、SM5-SM29得位不能被刷新);(5)运行时间诊断;(6)扫描时间超过25s时,使10ms与100ms定时器不能正常计时;(7)中断程序中得STOP指令。返回 3 跳转及标号指令跳转指令可以使PLC编程得灵活性大大提高,使主机可根据对不同条件得判断,选择不同得程序段执行程序。跳转指令 JMP(Jump to Label):当输入端有效时,使程序跳转到标号处执行。标号指令 LBL (Label):指令跳转得目标标号。操作数N为0-255。(1)跳转指令与标号指令必
37、须配合使用,而且只能使用在同一程序块中,如主程序、同一个子程序或同一个中断程序。(2)执行跳转后,被跳过程序段中得各元件状态为:a.Q、M、S、C 等元件得位保持跳转前得状态;b.计数器 C 停止计数,当前值存储器保持跳转前得计数值;c.对定时器来说,因刷新方式不同而工作状态不同。跳转指令得使用方法如下图所示。使用说明使用说明N(JMP )LAD:STL:JMP NLBLNLAD:STL:LBL NI0、03(JMP)3LBL LD I0、0JMP 3、LBL 3图 跳转指令使用举例4 循环指令1、)循环指令循环开始指令 FOR:用来标记循环体得开始。循环结束指令NEXT:用来标记循环体得结束
38、。无操作数。FOR与NEXT之间得程序段称为循环体,每执行一次循环体,当前计数值增1,并且将其结果同终值作比较,如果大于终值,则终止循环。循环指令得引入为解决重复执行相同功能得程序段提供了极大得方便,并且优化了程序结构。特别就是在进行大量相同功能得计算与逻辑处理时,循环指令非常有用。循环指令得LAD与STL形式如图FORENENOINDXINITFINAL(NEXT)FOR INDX,INIT,FINAL、NEXT图 循环指令得LAD与STL形式2、)参数说明从图中可以瞧出,循环指令盒中有三个数据输入端:当前循环计数INDX(index value or current loop count)
39、、循环初值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)每次使能输入(EN)
40、重新有效时,指令将自动复位各参数。(4)初值大于终值时,循环体不被执行。(5)注意在循环体中对INDX得控制。循环指令使用举例如下图所示。网络5I1、0FORENENOINDXINITFINALVW1001100ABFORENENOINDXINITFINALVW22512网络10I1、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得指令系统具有简单、方便、灵活得子程序调用
41、功能。与子程序有关得操作有:建立子程序、子程序得调用与返回。建立子程序就是通过编程软件来完成得。对于CPU226XM,最多可以有128个子程序,对其余得CPU,最多有64个子程序。(1)子程序调用指令(CALL)在使能输入有效时,主程序把程序控制权交给子程序。子程序得调用可以带参数,也可以不带参数。它在梯形图中以指令盒得形式编程。指令格式如表下表所列。在使能输入有效时,结束子程序得执行,返回主程序中(返回到调用此子程序得下一条指令)。梯形图中以线圈得形式编程,指令不带操作数。指令格式如表下表所列。(3)应用举例。如后图所示。使用说明:2)、子程序得调用 1)建立子程序(2)子程序返回指令无条件
42、返回无条件返回(RET):用于子程序结束。用于子程序结束。条件返回条件返回(CRET):只能用于子程序内部。只能用于子程序内部。表 子程序调用指令格式指令子程序调用指令子程序返回指令LADSBR-0EN(RET)或STLCALL SBR_0RET 或CRET网络1I0、0网络2I0、1WYHENENSBR_0(a)梯形图LD I0、0 /使能输入CALL WYH /调用子程序WYH LD I0、1 /使能输入CALL SBR_0 /调用子程序WYH(b)语句表返回图5-25 所示得程序实现用外部控制条件分别调用两个子程序。(CRET)使用说明:a.CRET 多用于子程序得内部,由判断条件决定就
43、是否结束子程序调用,RET 用于子程序得结束。b.如果在子程序得内部又对另一子程序执行调用指令,则这种调用称为子程序得嵌套。子程序得嵌套深度最多为8级。c.当一个子程序被调用时,系统自动保存当前得堆栈数据,并把栈顶置1,堆栈中得其她值为0,子程序占有控制权。子程序执行结束,通过返回指令自动恢复原来得逻辑堆栈值,调用程序又重新取得控制权。d.累加器可在调用程序与被调用程序之间自由传递,所以累加器得值在子程序调用时既不保存也不恢复。返回3)、带参数得子程序调用子程序最多可以传递16个参数。参数在子程序得局部变量表加以定义。参数包含下列信息:变量名、变量类型与数据类型。a.变量名 变量名最多用8个字
44、符表示,第一个字符不能就是数字。b.变量类型 变量类型就是按变量对应数据得传递方向来划分得,可以就是传入子 程序(IN)、传入与传出子程序(IN/OUT)、传出子程序(OUT)与暂时变量(TEMP)等4种类型。4种变量类型得参数在变量表中得位置必须按照一定得先后顺序。c.数据类型 局部变量表中还要对数据类型进行声明。数据类型可以就是:能流、布尔型、字节型、字型、双字型、整数型、双整数型与实型。a.常数参数必须声明数据类型。b.输入或输出参数没有自动数据类型转换功能。c.参数在调用时必须按一定得顺序排列。(1)子程序参数(2)参数子程序调用得规则(3)变量表得使用按照子程序指令得调用顺序,参数值
45、分配给局部变量存储器,起始地址就是L0、0。使用编程软件时,地址分配就是自动得。参数子程序调用指令格式:CALL 子程序名,参数1,参数2,参数n。(4)程序实例下图 为一个带参数调用得子程序实例,其局部变量分配如表 下表所列。说明:下图中得STL程序并不就是从下图中得LAD转换过来得,而就是单独编写得。同样从图STL也转换不成图中得LAD。LD I0、0CALL SBR_1,I0、1,VB10,I1、0,&VB100,*AC1,VD200I0.0I0.1VB10I01.0*AC1SBR_1ENIN1IN2IN3IN4IN/OUT1OUT1VD200图 带参数子程序调用举例L地址参数名参数类型
46、数据类型说明无L0、0LB1LW7LD3LB2、0ENIN1IN2IN3IN4IN/OUT1ININININININ/OUTBOLLBOLLBOLLBYTEDWORDWORD指令使能输入参数第1个输入参数,布尔型第3个输入参数,布尔型第2个输入参数,字节型第4个输入参数,双字型第1个输入/输出参数,字型表 局部变量表返回&VB100LD9OUTDWORD第1个输出参数,双字型OUT16 与ENO指令ENO就是LAD中指令盒得布尔能流输出端。如果指令盒得能流端有效,则执行没有错误,ENO就置位,并将能流向下传递。ENO可以作为允许位表示指令成功执行。STL指令没有EN输入,但对要执行得指令,其栈
47、顶值必须为1。可用“与”ENO(AENO)指令来产生与指令盒中得ENO位相同得功能。指令格式:AENOAENO指令无操作数,且只在STL中使用,它将栈顶值与ENO 位得逻辑进行与运算,运算结果保存到栈顶。AENO指令使用较少。AENO指令得用法如图3-27所示。图3-27 AENO 指令用法举例网络1 与ENO使用举例I0、0ADD_IENENATCHENOENOIN1IN2INTEVNTINT_010VW204VW200VW204LD I0、0 /使能输入+I VW200,VW204 /整数加法,VW200+VW204=VW204AENO /与ENO指令ATCH INT_0,10 /如果+I
48、指令执行正确,则调用中断程序 INT_0,中断事件号为10三、PLC初步编程指导1、梯形图编程得基本规则 梯形图编程得基本规则如下:(1)PLC内部元器件触点得使用次数就是无限制得。(2)梯形图得每一行都就是从左边母线开始,然后就是各种触点得逻辑连接,最后以线圈或指令盒结束。触点不能放在线圈得右边。线圈连接时必须用并联,不能出现串联形式。如图 所示。但如果就是以有能量传递得指令盒结束得指令,可以使用AENO指令在其后面连接指令盒(较少使用),如图 所示。3-273-28 (3)(3)线圈与指令盒一般不能连接在左边得母线上。如线圈与指令盒一般不能连接在左边得母线上。如需要得话可通过特殊得中间继电
49、器需要得话可通过特殊得中间继电器SM0SM0、0 0(常常ONON特殊特殊中间继电器中间继电器)完成完成,如图如图 所示。所示。(4)(4)在同一程序中在同一程序中,同一编号得线圈使用两次及两次以同一编号得线圈使用两次及两次以上称为双线圈输出。双线圈输出非常容易引起误动作上称为双线圈输出。双线圈输出非常容易引起误动作,所以应避免使用。所以应避免使用。S7-200PLCS7-200PLC中不允许双线圈输出。中不允许双线圈输出。如图如图 所示。所示。(5)(5)内外触点得配合。在内外触点得配合。在LADLAD中应正确选择设备所连中应正确选择设备所连得输入继电器得触点类型得输入继电器得触点类型,使用
50、常开触点还就是常闭触使用常开触点还就是常闭触点与外部触点有关。如图点与外部触点有关。如图 所示所示 (6)(6)在手工编写梯形图程序时在手工编写梯形图程序时,触点应画在水平线上触点应画在水平线上,从习惯与美观得角度来讲从习惯与美观得角度来讲,不要画在垂直线上不要画在垂直线上,如图如图 。使用编程软件则不可能把触点画在垂直线上。使用编程软件则不可能把触点画在垂直线上。3-29A3-303-29B3-35 (7)(7)不包括触点得分支线条应放在垂直方向不包括触点得分支线条应放在垂直方向,不不要放在水平方向要放在水平方向,以便于读图与图形得美观以便于读图与图形得美观,如如图图 所示。使用编程软件则不