第5章(PLC)接触器控制系统(1).ppt
S7-200PLC指令系统,第五章,指令分类按形式分,2.功能块,1.继电器,触点,线圈,,,,,Enable,,输入参数,,IN1,,IN2,,N,输出参数,OUT,功能数据类型,地址,条件,长度,EN,4.1.2基本逻辑指令,基本逻辑指令在语句表语言中是指对位存储单元的简单逻辑运算,在梯形图中是指对触点的简单连接和对标准线圈的输出。一般来说,语句表语言更适合于熟悉可编程序控制器和逻辑编程方面有经验的编程人员。用这种语言可以编写出用梯形图或功能框图无法实现的程序。选择语句表时进行位运算要考虑主机的内部存储结构。,1.标准触点指令,(1)LD装入常开触点(LoaD)(2)LDN装入常闭触点(LoaDNot)(3)A与常开触点(And)(4)AN与常闭触点(AndNot)。(5)O或常闭触点(Or)(6)ON或常闭触点(OrNot)(7)NOT触点取非(输出反相)(8)输出指令,,一、基本逻辑指令,,,,,,逻辑关系梯形图助记符,,,,,,I0.0,I0.1,LDI0.0AI0.1Q0.0,LDI0.0OI0.1Q0.0,LDNI0.1Q0.0,AND,OR,NOT,当I0.0与I0.1都“ON”时,则输出Q0.0“ON”1。,当I0.0或I0.0“ON”时,则输出Q0.0“ON”1,当I0.1“OFF”时则输出Q0.0“ON”1,,,,,,,,,,,,,Q0.0,I0.0,I0.1,Q0.0,Q0.0,I0.1,I0.0,*,*,,I0.1,Q0.0,注意与、或、非运算均是对从该指令前面的ST指令到该指令的前一个指令处的结果进行运算。,X2是与图中A点处的结果(即X0与X1的结果)相或,而不是与X1相或。,Q0.0,,,,逻辑关系梯形图助记符,LDX0OX1LDX2OX3ALDQ0.0,,LDX0AX1LDX2ANX3OLDQ0.0,当“X0或X1”与“X2或X3”都“ON”时,则输出Q0.0“ON”。,ALD(AndStack),OLD(OrStack),当“X0与X1”或“X2与X3非”“ON”时,则输出Q0.0“ON”。,,Q0.0,,,,,,,,,,,X0,X2,,,,,X1,X3,,,,,,,Q0.0,例1直接启动停车控制,继电器控制电路图,I/O分配I0.0停车I0.1启动Q0.1KM,梯形图,语句表LDI0.1OQ0.1ANI0.0Q0.1,启动优先,停止优先,,,,,,,,,,,,Q0.1,I0.0,Q0.1,I0.1,,I/O分配决定PLC的端子接线图,PLC的端子接线方式又决定编程语言,I/O分配I0.0停车I0.1启动Q0.1KM,,,,,,,,,,,,Q0.0,I0.0,Q0.0,I0.1,,置位、复位指令,,,立即I/O指令立即输入,直接读取物理输入点的值,输入映象寄存器内容不更新。指令操作数仅限于输入物理点的值。,立即I/O指令立即输出,,执行立即输出指令时,则将结果同时立即复制到物理输出点和相应的输出映象寄存器,立即I/O指令立即置位和复位指令,须指出立即I/O指令是直接访问物理输入输出点的,比一般指令访问输入输出映象寄存器占用CPU时间要长,因而不能盲目地使用立即指令,否则,会加长扫描周期时间,反而对系统造成不利影响。,,,,空操作,正跳变,负跳变,能流到达取非触点时,能流就停止;能流未到达取非触点时,能流就通过。,检测到每一次正跳变(信号后,让能流通过一个扫描周期的时间,检测到每一次负跳变信号后,让能流通过一个扫描周期的时间,取非,,,,输入映象寄存器I0.0,输出映象寄存器Q0.0,输出映象寄存器Q0.1,输出映象寄存器Q0.2,,,,,,一个周期,,,,,一个周期,空操作指令(NOPN)不影响程序的执行。操作数N是常数0255,编程中应注意的几个问题,,,,,,,,,,,,,X0,Y0,X1,Y0,,,,,,,,,,X1,Y0,X0,Y0,,,一、用电路变换简化程序减少指令的条数),二、逻辑关系应尽量清楚避免左轻右重,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,X3,X2,X5,X4,X6,X8,X7,Y0,X9,,,,,,,,,,,,,,,,,,X3,X2,X5,X4,X6,X8,X7,Y0,X9,,,,,,X5,X6,,,X2,X2,,LDX2ANX3AX4LDX2AX5ANX6AX7,LDX2AX5ANX6AX8ANX9OLDY0ED,,,,,,三、避免出现无法编程的梯形图,X5,,,,,,,,,X1,X3,X2,Y1,,,,X4,Y2,,,,,LDX3AX5OX1ANX2Y1LDX1AX5OX3ANX4Y2ED,定时器及定时器指令,输入接点,设定值132767,定时器号码(0~255),,,,,,,,IN,PT,,T37,TON,,定时器分辨率(时基)有三种1ms、10ms、100ms。定时器的分辨率由定时器号决定,定时器的实际设定时间T设定值PT分辨率,1.接通延时定时器,TON,接通延时定时器指令。用于单一间隔的定时。上电周期或首次扫描,定时器位OFF,当前值为0。使能输入接通时,定时器位为OFF,当前值从0开始计数时间,当前值达到预设值时,定时器位ON,当前值连续计数到32767。使能输入断开,定时器自动复位,即定时器位OFF,当前值为0。指令格式TONTxxx,PT例TONT120,8,TS1200*0.1120S,延时接通定时器TON,其工作波形图如下,,I0.1,Q0.1,计时值,,,,,,,设定值,,,,TS,T38,,,,,TON,,PT,IN,I0.1,120,,,,T38,Q0.1,2.有记忆接通延时定时器,TONR,有记忆接通延时定时器指令。用于对许多间隔的累计定时。上电周期或首次扫描,定时器位OFF,当前值保持。使能输入接通时,定时器位为OFF,当前值从0开始计数时间。使能输入断开,定时器位和当前值保持最后状态。使能输入再次接通时,当前值从上次的保持值继续计数,当累计当前值达到预设值时,定时器位ON,当前值连续计数到32767。TONR定时器只能用复位指令进行复位操作。指令格式TONRTxxx,PT例TONRT20,63,,,有记忆接通定时器TONR,其工作波形图如下,,输入端,Q0.1,当前值,,,,,,设定值,,,,TS,,,,,,,,,,,,,,,,,TS120*10ms,T4,M0.1,,,,TONR,PT,IN,I0.1,120,T4,,,,T4,Q0.1,,最大值,32767,120,,,3.断开延时定时器,TOF,断开延时定时器指令。用于断开后的单一间隔定时。上电周期或首次扫描,定时器位OFF,当前值为0。使能输入接通时,定时器位为ON,当前值为0。当使能输入由接通到断开时,定时器开始计数,当前值达到预设值时,定时器位OFF,当前值等于预设值,停止计数。TOF复位后,如果使能输入再有从ON到OFF的负跳变,则可实现再次启动。指令格式TOFTxxx,PT例TOFT35,6,延时断开定时器TOF,其工作波形图如下,,I0.1,Q0.1,,,,,计时值,,,,,设定值,,,,,,,,,,,,,,TS,设定值,使能输入,,TOF,,,PT,IN,T38,,,,,TOF,,PT,IN,I0.1,120,T38,,,,T38,Q0.1,TS1200*0.1120S,①1ms分辩率定时器每隔1ms刷新一次,刷新定时器位和定时器当前值,在一个扫描周期中要刷新多次,而不和扫描周期同步。,②10ms分辩率定时器10ms分辩率定时器启动后,定时器对10ms时间间隔进行计时。程序执行时,在每次扫描周期的开始对10ms定时器刷新,在一个扫描周期内定时器位和定时器当前值保持不变。,③100ms分辨率定时器100ms定时器启动后,定时器对100ms时间间隔进行计时。只有在定时器指令执行时,100ms定时器的当前值才被刷新。,,,定时器的刷新方式,自复位式的定时器,T33,T33,T33,错误,正确,4.应用举例,例1图4.12是介绍3种定时器的工作特性的程序片断,其中T35为通电延时定时器,T2为有记忆通电延时定时器,T36为断电延时定时器。,,,图4.12定时器特性,本梯形图程序中输入输出执行时序关系如图4.13所示。,图4.13定时器时序,,例2用TON构造各种类型的时间继电器触点。有的厂商的PLC只有TON定时器,因此,在这种情况下可以利用TON来构造断电延时型的各种触点。图4.14是用TON构造TOF作用的触点。其时序图与TOF的时序完全相同。本程序实现的功能是用输入端I0.0控制输出端Q0.0,当I0.0接通后,过3个时间单位Q0.0端输出接通,当I0.0断开后,过6个时间单位Q0.0断开。,,图4.14定时器应用,,图4.14定时器应用,,图4.15定时器应用,图4.15用通电延时定时器与输出继电器组成带瞬动触点的定时器。,,图4.16定时器应用,返回本节,图4.16是利用常开触点实现通电和断电都延时的触点作用。,,图4.18电机顺序起动,计数器用来累计输入脉冲的次数。计数器也是由集成电路构成,是应用非常广泛的编程元件,经常用来对产品进行计数。计数器指令有3种增计数CTU、增减计数CTUD和减计数CTD。指令操作数有4方面编号、预设值、脉冲输入和复位输入。,计数器指令,计数器,定时器是对PLC内部的时钟脉冲进行计数,而计数器是对外部的或由程序产生的计数脉冲进行计数。,当前值计数器累计计数的当前值(16位有符号整数),它存放在计数器的16位(bit)当前值寄存器中。,每个计数器只有一个16位的当前值寄存器地址。在一个程序中,同一计数器号不要重复使用,更不可分配给几个不同类型的计数器。,1.增计数器,CTU,增计数器指令。首次扫描,定时器位OFF,当前值为0。脉冲输入的每个上升沿,计数器计数1次,当前值增加1个单位,当前值达到预设值时,计数器位ON,当前值继续计数到32767停止计数。复位输入有效或执行复位指令,计数器自动复位,即计数器位OFF,当前值为0。指令格式CTUCxxx,PV例CTUC20,3,增计数器,设定值-3276832767,,CU,PV,,C20,CTU,R,,复位,,计脉冲数,,,程序实例图为增计数器的程序片断和时序图,,图4.19增计数程序及时序,2.增减计数器,CTUD,增减计数器指令。有两个脉冲输入端CU输入端用于递增计数,CD输入端用于递减计数。指令格式CTUDCxxx,PV例CTUDC30,5,,增/减计数器,,增计数,减计数,复位,,,,,C0255,当前值,程序实例如图所示为增减计数器的程序片断和时序图。,图4.20增减计数程序及时序,,3.减计数器,CTD,增减计数器指令。脉冲输入端CD用于递减计数。首次扫描,定时器位OFF,当前值为等于预设值PV。计数器检测到CD输入的每个上升沿时,计数器当前值减小1个单位,当前值减到0时,计数器位ON。复位输入有效或执行复位指令,计数器自动复位,即计数器位OFF,当前值复位为预设值,而不是0。指令格式CTDCxxx,PV例CTDC40,4。,减计数器,,,CU,PV,,C0255,CTD,LD,,复位,装设定值,,计脉冲数,,,,,,2,1,计数器当前值等于0时,停止计数,同时计数器位被置位“1”,设定值,,程序实例如图为减计数器的程序片断和时序图,图4.21减计数程序及时序,,例5.计数器应用举例产品数量检测,(每24个产品机械手动作1次),机械手动作后,延时2秒,将机械手电磁铁切断,同时将C20复位。C20复位后,T37也复位,电机起动后,上升沿脉冲指令产生宽度为一个扫描周期的正脉冲,使C20和T37复位,起、停传送带电机,计数器应用举例产品数量检测,,,,,,,Q0.0,Q0.0,I0.2,,24,,,,C20,,T37,,,20,C20,Q0.1,每检测到一个产品,I0.2产生一个正脉冲,使C20计一个数,C20每计24个数,机械手动作一次,机械手动作后,延时2秒,将机械手电磁铁切断,同时将C20复位。C20复位后,Q0.1和T37也复位,,,I0.0,,,,I0.1,C20,,,IN,PT,,TON,T37,T37,,,P,,,,Q0.0,比较指令,该指令是将两个数值或字符按指定条件进行比较,条件成立,触点闭合。是一种位指令。分类1.字节比较2.整数比较3.双字整数比较4.实数比较5.应用举例,1.字节比较,字节比较用于比较两个字节型整数值IN1和IN2的大小,字节比较是无符号的。比较式可以是LDB、AB或OB后直接加比较运算符构成。如LDB、AB、OB等。整数IN1和IN2的寻址范围VB、IB、QB、MB、SB、SMB、LB、*VD、*AC、*LD和常数。指令格式例LDBVB10,VB12ABMB0,MB1OB等。整数IN1和IN2的寻址范围VW、IW、QW、MW、SW、SMW、LW、AIW、T、C、AC、*VD、*AC、*LD和常数。指令格式例LDWVW10,VW12AWMW0,MW4OWAC2,1160,3.双字整数比较,双字整数比较用于比较两个双字长整数值IN1和IN2的大小,双字整数比较是有符号的(双字整数范围为1680000000和167FFFFFFF之间)。指令格式例LDDVD10,VD14ADMD0,MD8ODHC0,*AC0,4.实数比较,实数比较用于比较两个双字长实数值IN1和IN2的大小,实数比较是有符号的(负实数范围为-1.175495E-38和-3.402823E38,正实数范围为1.175495E-38和3.402823E38)。比较式可以是LDR、AR或OR后直接加比较运算符构成。指令格式例LDRVD10,VD18ARMD0,MD12OR*AC1,VD100,5.应用举例,控制要求一自动仓库存放某种货物,最多6000箱,需对所存的货物进出计数。货物多于1000箱,灯L1亮;货物多于5000箱,灯L2亮。其中,L1和L2分别受Q0.0和Q0.1控制,数值1000和5000分别存储在VW20和VW30字存储单元中。本控制系统的程序如图4.23所示。程序执行时序如图4.24所示。,,图4.23程序举例,,,图4.24时序图,,返回本节,5.2程序控制类指令,5.2.1空操作5.2.2结束及暂停5.2.3看门狗5.2.4跳转5.2.5子程序指令5.2.6程序循环5.2.7与ENO指令,返回本章首页,5.2.1空操作,NOP,空操作指令。使能输入有效时,执行空操作指令。空操作指令不影响用户程序的执行,操作数N是标号,是一个0255的常数。指令格式NOPN例NOP30程序如下图5.1所示。,,返回本节,5.2.2结束及暂停,1.结束指令结束指令有两条END和MEND。两条指令在梯形图中以线圈形式编程。END,条件结束指令。使能输入有效时,终止用户主程序。MEND无条件结束指令。无条件终止用户程序的执行,返回主程序的第一条指令。用Micro/Win32编程时,编程人员不需手工输入MEND指令,而是由软件自动加在主程序结尾。指令格式END(无操作数),2.暂停指令STOP,暂停指令。使能输入有效时,该指令使主机CPU的工作方式由RUN切换到STOP方式,从而立即终止用户程序的执行。STOP指令在梯形图中以线圈形式编程。指令不含操作数。指令的执行不考虑对特殊标志寄存器位和能流的影响。指令格式STOP(无操作数),返回本节,5.2.3看门狗,WDR,看门狗复位指令。当使能输入有效时,执行WDR指令,每执行一次,看门狗定时器就被复位一次。用本指令可用以延长扫描周期,从而可以有效避免看门狗超时错误。指令格式WDR(无操作数)程序实例指令STOP、END、WDR的应用如图5.2所示。,,图5.2停止、结束、看门狗指令,返回本节,5.2.4跳转,1.跳转指令与跳转相关的指令有下面两条(1)跳转指令JMP,跳转指令。使能输入有效时,使程序流程跳到同一程序中的指定标号n处执行。执行跳转指令时,逻辑堆栈的栈顶值总是1。(2)标号指令LBL,标号指令。标记程序段,作为跳转指令执行时跳转到的目的位置。操作数n为0255的字型数据。,程序实例如右图5.3所示。用增减计数器进行计数,如果当前值小于500,则程序按原顺序执行,若当前值超过500,则跳转到从标号10开始的程序执行。,,返回本节,,图5.3程序跳转实例,5.2.5子程序指令,建立子程序子程序调用3.带参数的子程序调用,1.建立子程序,可用编程软件Edit菜单中的Insert选项,选择Subroutine,以建立或插入一个新的子程序,同时在指令树窗口可以看到新建的子程序图标,默认的程序名是SBR_n,编号n从0开始按递增顺序生成,可以在图标上直接更改子程序的程序名。在指令树窗口双击子程序的图标就可对它进行编辑。,2.子程序调用,(1)子程序调用和返回指令子程序调用子程序条件返回(2)注意事项(3)应用实例,图5.4所示的程序实现用外部控制条件分别调用两个子程序。,,图5.4子程序调用举例,(1)子程序参数变量名用八个以下字符表示,第一个为非数字。变量类型IN;IN/OUT;OUT。数据类型能流,布尔型,字节型,字型,双字型------(2)参数子程序调用的规则(3)变量表使用(4)指令格式CALL子程序名,参数1,参数2,...程序实例,3.带参数的子程序调用,以上面指令为例,局部变量表分配如表5.1所示,程序段如图5.5所示。,表5.1局部变量表例,,图5.5带参数的子程序调用,返回本节,5.2.6程序循环,循环开始循环结束3.程序实例,,图5.6程序循环1,返回本节,,,图5.6程序循环2,5.2.7与ENO指令,AENO,与ENO指令。ENO是梯形图和功能框图编程时指令盒的布尔能流输出端。如果指令盒的能流输入有效,同时执行没有错误,ENO就置位,将能流向下传递。当用梯形图编程时,且指令盒后串联一个指令盒或线圈,语句表语言中用AENO指令描述。指令格式AENO(无操作数),,图5.8与ENO指令,AENO指令只能在语句表中使用,将栈顶值和ENO位的逻辑与运算,运算结果保存到栈顶。程序如图5.8所示。,返回本节,PLC梯形图语言的编程原则,1、梯形图由多个梯级组成,每个线圈可构成一个梯级,每个梯级有多条支路,每个梯级代表一个逻辑方程;2、梯形图中的继电器、接点、线圈不是物理的,是PLC存储器中的位1ON;0OFF;编程时常开/常闭接点可无限次引用,线圈输出只能是一次;3、梯形图中流过的不是物理电流而是“概念电流”,只能从左向右流;4、用户程序的运算是根据PLC的输入/输出映象寄存器中的内容,逻辑运算结果可以立即被后面的程序使用;5、PLC的内部继电器不能做控制用,只能存放逻辑控制的中间状态;6、输出线圈不能直接驱动现场的执行元件,通过I/O模块上的功率器件来驱动。,,梯形图程序编写规则,,1.输入“继电器”的状态由外部输入设备的开关信号驱动,程序不能随意改变它。2.梯形图中同一编号的“继电器线圈”只能出现一次,通常不能重复使用,但是它的接点可以无限次地重复使用。3.几个串联支路相并联,应将触点多的支路安排在上面;几个并联回路的串联,应将并联支路数多的安排在左面。按此规则编制的梯形图可减少用户程序步数、缩短程序扫描时间,如下页图所示。4.程序的编写按照从左到右,从上到下的顺序。一个梯形始于左母线,终于右母线。线圈与右母线直接相连。,梯形图的合理画法,,,