欢迎来到天天文库
浏览记录
ID:13439679
大小:825.00 KB
页数:38页
时间:2018-07-22
《第3章__s7-200系列plc的基本指令及应用》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
第3章S7-200系列PLC的基本指令及应用3.1.2S7-200指令基本格式下面介绍S7-200编程中常用的梯形图(以下简称LAD)和语句表(以下简称STL)指令表示方法。1.LAD指令LAD(梯形图)使用类似于电气控制形式的符号来描述指令要执行的操作,以符号上的数据表示需要操作的数据。I0.1Q1.0Q1.0例如:该指令表示当输入位(常开按钮控制)I0.1闭合时,输出位(线圈驱动)Q1.0为ON(得电)。2.STL指令STL指令一般由助记符和操作数组成,其格式如下:助记符操作数助记符表示指令要执行的功能操作;操作数表示指令要操作的数据。例如:LDI0.1//LD:取指令操作码;I0.1:输入位操作数.=Q1.0//"=":输出操作码;Q1.0:输出位操作数.3.操作数的表示方法指令中的操作数一般由两部分组成:标识符和参数。●标识符指出操作数的存储区域及操作数的位数;●参数则表示该操作数在存储区的具体位置。例如:操作数I0.1中的I表示输入映像寄存器,0.1表示I寄存器0字节中的第1位输入点。操作数Q1.0中的Q表示输出映像寄存器,1.0表示Q寄存器1字节中的第0位输出位。字节地址8位数据(字节)变量存储器区域操作数:VB200字节地址16位数据(字)变量存储器区域操作数:VW20083 字节地址32位数据(双字)变量存储器区域操作数:VD2003.2基本逻辑指令基本逻辑指令是PLC中最基本最常用的指令,主要用来完成基本的位逻辑运算及控制。主要包括触点输入/线圈驱动输出指令、位逻辑指令、置位/复位指令、立即指令、边沿触发指令及堆栈操作指令等。3.2.1触点输入/线圈驱动输出指令1.LD、LDN指令1)LD(Load):取指令。指令格式:bitLDbit梯形图语句表bit:触点位地址(下同)。指令功能:启动梯形图任何逻辑块的第一条指令时,对应输入端点连接开关导通,触点bit闭合;对应输入端点连接开关断开,触点bit断开。一般用于连接动合(常开)触点。2)LDN(LoadNot)取反指令。指令格式:bitLDNbit梯形图语句表指令功能:启动梯形图任何逻辑块的第一条指令时,对应输入端点连接开关导通,触点bit断开;对应输入端点连接开关断开,触点bit闭合。2.=(Out)指令指令格式:bit()=bit梯形图语句表指令功能:线圈驱动指令(输出指令),在梯形图中必须放在最右端。该类指令的梯形图及语句表示例对照如图3-1所示。83 梯形图语句表网络2Q1.1LDLDN==I0.0I0.1Q1.0Q1.1//I0.0连接常开触点//驱动输出线圈Q1.0//驱动输出线圈Q1.1//I0.1连接常闭触点Q1.0网络1I0.0I0.1图3-1LD、LDN及“=”指令梯形图及语句表示例注意:●LD、LDN指令操作数区域为:I、Q、M、T、C、SM、S、V;●“=”指令的操作数区域为:M、Q、T、C、SM、S;●同一程序中,“=”指令后的线圈只能使用1次。这里特别需要指出,PLC不识别外部连接的是常开按钮还是常闭按钮,PLC只识别外部开关是接通状态还是断开状态。例如,设图3-1程序中的I0.0由PLC外接常开按钮控制,I0.1由外接常闭按钮控制,如图3-2所示。Q1.0I0.1I0.0Q1.1KM1SB1SB2KM2COMCOM24V24VPLC图3-2PLC外接电路在执行图3-1指令后,图3-2电路工作过程如下:●当输入常开按钮SB1闭合时,执行LD指令,I0.0为?ON,Q1.0为?ON,输出线圈KM1?得电;●当输入常闭触点SB2未按下(闭合)时,由于执行LDN指令,常闭位I0.1为OFF,Q1.1为OFF,输出线圈KM2?失电;●当输入常闭触点SB2按下(断开)时,则常闭位I0.1为?ON,Q1.1为?ON,输出线圈KM2得电;由此可以看出:当SB2按下断开时,KM2得电工作;当SB2未按下接通时时,KM2失电。83 3.2.2逻辑与指令1.逻辑“与”指令A逻辑“与”指令A(And):用于动合触点的串联连接(串联在一起的所有触点全部闭合时输出才有效)。2.逻辑“与非”指令AN逻辑“与非”指令AN(AndNot):用于动断触点的串联连接。该类指令的梯形图及语句表示例对照如图3-3所示。//使用逻辑“与”指令=ANLD=Q0.0M0.0I0.2Q1.1//驱动输出继电器Q0.0//驱动输出继电器Q0.1//使用逻辑“与非”指令AI0.1//使用逻辑“与”指令AM0.1M0.0网络1网络2I0.1Q0.0Q0.1I0.0I0.2LDI0.0M0.1图3-3A和AN指令梯形图及语句表示例注意:●A和AN指令的操作数区域为:I、Q、M、SM、T、C、S、V、L。●单个触点可以连续串联使用,最多为11个。3.2.3逻辑或指令1.逻辑“或”指令O逻辑“或”指令O(Or):用于动合触点的并联连接(并联在一起的所有触点有一个闭合输出有效)。2.逻辑“或非”指令ON逻辑“或非”指令ON(OrNot):用于动断触点的并联连接。该类指令的梯形图及语句表示例对照如图3-4所示。M0.1M0.0I0.0Q0.0网络1OLD=M0.0I0.0Q0.0//驱动输出继电器Q0.0//使用逻辑“或”指令ONM0.1//使用逻辑“或非”指令图3-4O和ON指令梯形图及语句表示例注意:●O和ON指令的操作数区域为:I、Q、M、SM、T、C、S、V、L。83 ●单个触点可以连续并联使用。3.2.4逻辑块与指令逻辑块“与”指令ALD(AndLoad):用于并联电路块的串联连接。逻辑块是指以LD或LDN起始的一段程序,两条以上支路并联形成的电路叫并联逻辑块。如果将两个并联逻辑块串联在一起则需要使用ALD指令。该指令的梯形图及语句表示例对照如图3-5所示。图3-5ALD指令梯形图及语句表示例在图3-5中,第一逻辑块实现I0.0与I0.1逻辑或操作;第二逻辑块实现M0.0与M0.1(常闭)逻辑或操作;然后实现这两个逻辑块的逻辑与操作,驱动Q0.0。注意:●逻辑块是以LD或LDN起始的一段程序,直至再次遇到LD或LDN,则表示上一逻辑段结束,新的逻辑段开始。●该指令总是对其上方最近的两个逻辑块进行串联连接。●经连接的逻辑块仍为逻辑块,可以嵌套使用逻辑块指令。●ALD指令无操作数。3.2.5逻辑块或指令逻辑块“或”指令OLD(OrLoad):用于串联电路块的并联连接。两个以上触点串联形成的电路叫串联逻辑块,如果将两个串联逻辑块并联在一起则需要使用OLD指令。该指令的梯形图及语句表示例对照如图3-6所示。(a)梯形图(b)语句表图3-6OLD指令梯形图及语句表示例在图3-6中,第一逻辑块实现I0.0与M0.0逻辑与操作;第二逻辑块实现I0.1与M0.1(常闭)逻辑与操作;然后实现这两个逻辑块的逻辑或操作,驱动Q0.1。83 注意:●ALD指令无操作数。●该指令总是对其上方最近的两个逻辑块进行并联连接。●经连接的逻辑块仍为逻辑块,可以嵌套使用逻辑块指令。3.2.6置位/复位指令1.置位指令S置位指令S(SET)的STL指令格式如下:Sbit,N功能:从bit(位)开始的N个元件(位)置1并保持。其中,N的取值为1~255。2.复位指令R复位指令R(RESET)的STL指令格式如下:Rbit,N功能:从bit(位)开始的N个元件(位)置0并保持。其中,N的取值为1~255。置位和复位指令的梯形图及语句表示例如图3-7所示。图3-7置位、复位指令梯形图及语句表示例在图3-7程序中:当I0.1常开触点接通时,则Q0.1被置位“1”,之后即使I0.1触点断开,Q0.1仍保持该状态不变;当I0.2接通或I0.3闭合,则Q0.1被复位“0”。S和R指令的操作数为:I、Q、M、SM、T、C、S、V和L。3.2.7立即指令立即指令(Immediate)不受PLC扫描工作方式的限制,可以对输入、输出点进行立即读写操作并产生其逻辑作用。立即指令又称加I指令,其格式为在LAD符号内或STL的操作码后加入“I”。STL指令格式如下:LDIbit立即取LDNIbit立即取非指令OIbit立即“或”指令ONIbit立即“或非”指令AIbit立即“与”指令83 ANIbit立即“与非”指令=Ibit立即输出指令SIbit,N立即置位指令RIbit,N立即复位指令立即指令的梯形图及语句表示例如图3-8所示。图3-8立即指令梯形图及语句表示例3.2.8边沿触发指令边沿触发指令又称微分指令,分为上升沿微分和下降沿微分指令。1.上升沿微分指令上升沿微分指令的STL格式:EU//(EdgeUP)上升沿微分指令的LAD格式由常开触点中加入符号“P”构成。指令功能:当其执行条件从OFF变为ON时,其作用是在上升沿产生一个扫描周期的脉冲。2.下降沿微分指令下降沿微分指令的STL格式:ED//(EdgeDown)下降沿微分指令的LAD格式由常开触点中加入符号“N”构成。指令功能:当其执行条件从ON变成OFF时,其作用是在下降沿产生一个扫描周期的脉冲。该类指令无操作数。边沿触发指令梯形图、语句表示例如图3-9所示、时序图如图3-10所示。I0.3I0.3网络1网络2Q0.0Q0.1EULD==I0.3Q0.0Q0.1//检测I0.3的上升沿LDI0.3ED//检测I0.3的下降沿PN图3-9边沿触发指令梯形图及语句表示例83 TTT-扫描周期I0.3Q0.0Q0.1图3-10边沿触发指令示例时序图3.2.9堆栈操作指令1.堆栈及其操作堆栈是一组能够按照先进后出、后进先出进行存取数据的连续的存储器单元,主要用来暂存一些需要临时保存的数据。把数据存入堆栈,称为压栈,其数据存入栈顶单元;把数据从栈顶取出,称为弹出,其数据从栈顶单元弹至目标单元。S7-200有一个9位的堆栈,栈顶用来存储逻辑运算的结果,下面的8位用来存储中间运算结果。应该注意到,在S7-200系统中,对于不同的指令,系统将自动对其执行堆栈操作,以暂存某些数据以备后用;或从栈顶弹出数据以供操作。例如,执行LD指令时,系统自动将指令指定的位地址中的二进制数据压入栈顶,以备后续指令(如逻辑与或输出等指令)使用。例如,执行A指令时,将指令指定的位地址中的二进制数和栈顶中的二进制数(自动弹出后)相“与”,结果自动压入栈顶。图3-11OLD指令对堆栈的影响例如,执行输出指令“=”时,系统自动将栈顶值复制到对应的映像寄存器。例如:执行OLD指令时,首先对栈顶第1层存放的逻辑块结果(S1)和第2层存放的另一逻辑块结果(S0)弹出进行逻辑块或操作,其结果S2存入栈顶,栈的深度减1,堆栈操作如图3-11所示。2.堆栈操作指令堆栈操作指令包含:LPS、LRD、LPP、LDS。各命令功能描述如下:1)LPS(LogicPush):逻辑入栈指令(分支电路开始指令)。在梯形图中,该指令就是生成一条新的母线,该母线的左侧为原来的主逻辑块,右侧为新生成的从逻辑块。2)LRD(LogicRead):逻辑读栈指令。在梯形图中,当新母线生成后,LPS开始右侧第一个从逻辑块的编程;LRD则开始右边第二个及其后的从逻辑块的编程。该母线的左侧为原来的主逻辑块,右侧为新生成的逻辑块。3)LPP(LogicPop):逻辑出栈指令(分支电路结束指令)。在梯形图中,该指令用于新母线右侧最后一个从逻辑块的编程。83 4)LDS(LogicStack):装入堆栈指令。该指令复制堆栈中第n(n=1~8)层的值到栈顶,栈中原来的数据依次向下一层推移,栈底推出丢失。指令格式:LDSn//n=(1~8)注意:lLPS、LPP指令必须成对出现。lLPS、LPP、LRD无操作数。【例3.1】利用堆栈指令建立多级从逻辑块。见图3-12所示。LDI0.0LPS//升成新母线1AM0.0LPS//新母线2AM0.1=Q0.0LPP//母线2右侧最后的从逻辑块AM0.2=Q0.1LPP//母线1右侧最后的从逻辑块AM0.3LPS//新母线3AM0.4=Q0.02LPP//母线3右侧最后的从逻辑块AM0.5=Q0.3I0.0M0.4M0.3.M0.2M0.0M0.1Q0.0M0.5Q0.1Q0.2Q0.3新母线1.新母线2.新母线3.(a)梯形图(b)语句表图3-12堆栈操作梯形图及语句表示例指令3.2.10取反指令/空操作指令1.取反指令NOT:取反指令,其功能为将其左边的逻辑运算结果取反,指令本身没有操作数。取反指令梯形图、语句表示例如图3-13所示。图3-13NOT指令梯形图及语句表示例2.空操作指令NOP:空操作指令,不影响程序的执行。指令格式如下:NOPN//N=0~255,为执行空操作的次数。83 3.3定时器指令3.3.1基本概念及定时器编号定时器是PLC常用的编程元件之一。在PLC系统中,定时器主要用于:在满足一定的输入控制条件后,从当前值按一定的时间单位进行增加操作,直至定时器的当前值达到由程序设定的定时值时,定时器位发生动作,以满足定时位控的需要。●定时器种类S7-200系列PLC提供了三种类型的定时器,即:通电延时定时器(TON)、断电延时定时器(TOF)和保持型通电延时定时器(TONR)。●定时器分辨率S7-200系列PLC定时器分辨率(S)可分为三个精度等级:1ms、10ms和100ms。●定时时间定时器定时时间T为定时器的分辨率S与定时器设定值PT的乘积。即T=S×PT其中设定值PT为INT型,一般可设为常数。●定时器类别编号在S7-200系列PLC中,是通过对定时器编号来使用定时器的。定时器的编号格式为:Tn(n为常数)例如:T0、T33、T255。其中常数n范围为0~255。定时器编号可提供用户定时器位(输出触点)的状态及定时器当前所累计的定时时间。定时器类别及编号见表3-1。表3-1定时器类别及编号类型分辨率(ms)最大定时值(s)编号保持型通电延时定时器TONR132.767T0、T6410327.67T1-T4、T65-T681003276.7T5-T31、T69-T95通电/断电延时定时器TON/TOF132.767T32、T9610327.67T33-T36、T97-T1001003276.7T37-T63T101-T2553.3.2.接通延时型定时器TON(On-DelayTimer)接通延时型定时器(TON)用于通电后单一时间间隔的计时。指令格式如下:TnTONTONTn,PTSTL指令PTIN`LAD指令83 TON:接通延时定时器指令助记符;Tn:定时器编号;IN:定时器定时输入控制端;PT:定时设定值输入端。输入端(IN)接通时,定时器位为OFF,定时器开始从当前值0(加1)开始记时,当前值大于等于设定值时(PT=1~32767),定时器位变为ON,定时器对应的常开触点闭合,长闭触点断开。达到设定值后,当前值仍继续计数,直到最大值32767为止。输入端断开时,定时器复位,即当前值被清零,定时器位为OFF。【例3.2】接通延时型定时器梯形图、语句表指令示例如图3-14所示,时序图如图3-15所示。INPTTONT39网络1网络2Q0.0LDLDTON=I0.1T39T39,4Q0.0//使用接通延时定时器//使用定时器触点4LADSTLI0.1T39图3-14通电延时定时器指令梯形图及语句表示例I0.1T39Q0.04设定值4图3-15通电延时定时器指令时序图本例中,由表3-1可知编号T39为接通延时型定时器,其分辨率S=100ms,指令中设定值PT=4,定时时间T=100×4=400ms,其工作过程如下:1)I0.1接通时,T39开始从当前值0开始(加1)计时;2)当前值>=设定值(PT=4)时,T39常开位触点闭合,Q0.0为ON;3)当前值达到设定值4后,当前值仍继续计数,直到最大值32767为止;4)I0.1断开时,定时器T39复位,即当前值被清零,定时器位为OFF,Q0.0失电。3.3.3.断开延时定时器TOF(Off-DelayTimer)断开电延时定时器(TOF)用于断电后的单一时间间隔计时。指令格式如下:TnTOF83 TOFTn,PTSTL指令PTIN`LAD指令TOF:断开延时定时器指令助记符;Tn:定时器编号;IN:定时器定时输入控制端;PT:定时设定值输入端。输入端(IN)接通时,定时器位为ON,当前值为0;当输入端由接通到断开时,定时器从当前值0(加1)开始计时,定时器位仍为ON,只有在当前值等于设定值(PT)时,输出位变为OFF,当前值保持不变,停止计时。定时器可用复位指令R复位,复位后定时器位为OFF,当前值为零。【例3.3】断开延时型定时器梯形图、语句表指令示例如图3-16所示、时序图如图3-17所示。INPTT33网络1网络2Q0.0LDLDTOF=I0.1T33T33,+8Q0.0//使用断电延时定时器//使用定时器触点+8TOFLADSTLI0.0T33图3-16断开延时定时器示例8I0.0T33当前值T33位Q0.0设定值8图3-17断开延时定时器示例工作时序本例中,由表3-1可知编号T33为断开延时型定时器,其分辨率S=10ms,指令中设定值PT=8,定时时间T=10×8=80ms,其工作过程如下:1)I0.0接通时,T33为ON,Q0.0为ON。2)I0.0断开时,T33仍为ON并开始从当前值0开始(加1)计时;3)当前值=设定值(PT=8)时,当前值保持,T33变为OFF,常开位触点断开,Q0.0为OFF;83 4)I0.1再次接通时,当前值复位清零,定时器位为ON。3.3.4保持型接通延时定时器TONR(RetentiveOn-DelayTimer)保持型接通延时定时器TONR用于对许多间隔的累计定时,具有记忆功能。指令格式如下:TnTONRTONRTn,PTSTL指令PTIN`LAD指令TONR:保持型接通延时定时器指令助记符;Tn:定时器编号;IN:定时器定时输入控制端;PT:定时设定值输入端。当输入端(IN)接通时,定时器当前值从0开始(加1)计时,当输入IN无效时,当前值保持;IN再次有效时,当前值在原保持值基础上继续计数;当累计当前值大于等于设定值(PT)时,定时器位置ON;TONR定时器可用复位指令R复位,复位后定时器定时器位为OFF、当前值清零。【例3-4】保持型接通延时定时器梯形图、语句表指令示例如图3-18所示、时序图如图3-19所示。INPT网络1网络2T2LDLDTONRRI0.0I0.3T2,+10T2,1//T2定时器//复位定时器10R1T2TONRLADSTLI0.3I0.0图3-18保持型接通延时定时器示例I0.0T2当前值0I0.310保持设定值10图3-19保持型接通延时定时器示例工作时序本例中,由表3-1可知编号T2为保持型接通83 延时型定时器,其分辨率S=10ms,指令中设定值PT=10,定时时间T=10×10=100ms,其工作过程如下:1)I0.0接通后,T33开始从当前值0开始(加1)计时;2)I0.0断开后,T33当前值保持不变;3)I0.0再次接通,T33继续计时,直至当前值>=设定值(PT=10)时,T2为ON。4)当I0.3接通时,执行T2复位指令,即当前值被清零,定时器位为OFF。3.3.5定时器当前值刷新方式在S7-200PLC的定时器中,由于定时器的分辨率不同,其刷新方式是不同的,在使用时一定要注意根据使用场合和要求来选择定时器。常用的定时器的刷新方式有1ms、10ms、100ms三种。(1)1ms定时器1ms定时器由系统每隔1ms对定时器和当前值刷新一次,不与扫描周期同步。扫描周期较长时,定时器在一个周期内可能多次被刷新,或者说,在一个扫描周期内,其定时器位及当前值可能要发生变化。(2)10ms定时器10ms定时器执行定时器指令时开始定时,在每一个扫描周期开始时刷新,每个扫描周期只刷新一次。在一个扫描周期内定时器位和定时器的当前值保持不变。(3)100ms定时器100ms定时器在执行定时器指令时,才对定时器的当前值进行刷新。因此,如果启动了100ms定时器,但是没有在每一个扫描周期都执行定时器指令,将会造成时间的失准。如果在一个扫描周期内多次执行同一个100ms定时器指令,将会多计时间。所以,应保证每一扫描周期内同一条100ms定时器指令只执行一次。【例3-5】为了实现定时器计时时间在Q0.0输出宽度为一个扫描周期的脉冲,则分别使用1ms、10ms、100m定时器梯形图和语句表程序如图3-20所示。INPTTONT32网络1网络2Q0.0300Q0.0T32INPTTONT33网络1网络2Q0.030Q0.0INPTTONT37网络1网络2Q0.03Q0.0T371ms定时器10ms定时器100ms定时器T33图3-20定时器使用示例本例中,使用了定时器位的常开触点T32/T33/T37分别控制输出位Q0.0,并将Q0.0的常闭触点作为定时器的输入控制位,则在定时时间到时,都能使Q0.0输出宽度为一个扫描周期的脉冲。【例3-6】使用定时器设计占空比可调的脉冲源。设计一周期约为1s、占空比为50%的方波脉冲,可使用100m接通延时定时器2个,梯形图程序如图3-21所示。83 该程序使用分辨率为100ms的定时器T37、T38,其工作过程如下:1)I0.1为ON时,T37启动开始计时,T37状态为OFF。当T37的当前值等于设定值PTINPTTONT375I0.1TONT37T385PTQ1.0网络1网络2T38T37图3-21利用定时器输出脉冲梯形图程序(500ms)时,T37状态变为ON,T37常开触点闭合,T38被启动开始计时,同时Q1.0输出1;2)T38的当前值等于设定值PT(500ms),T38状态即变为ON,T38常闭触点断开,使T37复位为0,T37常开触点释放,使T38瞬时复位为0,同时Q1.0输出0;3)T38的复位使T38常闭触点闭合,T37又重新启动,开始下一个运行周期。4)周而复始,T37状态位脉冲信号控制Q1.0输出周期为1s的方波。3.4计数器指令3.4.1基本概念及计数器编号在PLC系统中,计数器主要用于对计数脉冲个数的累计。当计数器所累计脉冲的个数(当前值)等于计数设定值时,计数器位发生动作(由OFF变为ON),以满足计数控制的需要。●计数器种类S7-200PLC提供了三种类型的计数器,递增计数器CTU、递减计数器CTD、增减计数器CTUD。●计数器编号在S7-200PLC中,是通过对计数器的编号来使用计数器的。计数器的编号格式为:Cn(n为常数)其中常数n范围为0~255。例如:C50。计数器编号在程序中可作为计数器位(输出触点)的状态及计数器当前所累计的计数脉冲个数,其最大计数值为32767。注意:不同类型计数器不能共用同一计数器编号。●计数器设定值为INT型,寻址范围:VW、IW、QW、MW、SW、SMW、LW、AIW、T、C、AC、*VD、*AC、*LD和常数,一般可设为常数。83 3.4.2递增计数器CTU(CountUp)递增计数器指令格式如下:CnCTUCTUCn,PVSTL指令RCU`PVLAD指令CTU:递增计数器指令助计符;Cn:计数器编号;CU:计数脉冲输入端;R:复位输入端;PV:设定值。当复位输入(R)无效时,计数器开始对计数脉冲输入(CU)的上升沿进行加1计数,若计数当前值大于等于设定值(PV)时,计数器位被置ON,计数器继续计数直到32767;当复位输入(R)有效时,计数器复位,计数器位变为OFF,当前值清零。【例3.7】递增计数器梯形图、语句表指令示例如图3-22所示、时序图如图3-23所示。I0.1I0.0LADSTLCURPVCTUC1网络1LDCTULDI0.0C1,3I0.13//计数脉冲信号//计数器复位信号//使用递增计数器图3-22递增计数器示例I0.0C1当前值C1位12345I0.1图3-23递增计数器示例时序图本例中,由编号C1为递增计数器,指令中设定值PV=3,其工作过程如下:83 1)当复位输入控制端I0.1接通为ON时,计数器复位,计数器位C1变为OFF,C1当前值清零;2)当复位输入(R)无效,即I0.1断开为OFF时,在计数脉冲输入端I0.0接通的上升沿,C1开始从当前值(0)开始(加1)计数;3)当前值=PV时,计数器位C1由OFF变为ON,计数器继续计数;4)当I0.1再次接通,C1复位,即计数器位为OFF,当前值被清零。3.4.3递减计数器CTD(CountDown)递减计数器指令格式如下:CnCTDCTDCn,PVSTL指令LDCDPVLAD指令CTD:递减计数器指令助计符;Cn:计数器编号;CD:减计数脉冲输入端;LD:复位脉冲输入端;PV:设定值当复位端LD无效时,计数器对减计数脉冲输入端(CD)的上升沿从当前值开始减1计数,减到0时,停止计数,计数器位被置ON。复位输入(LD)为ON时,计数器复位,计数器当前值被置为设定值PV,计数器位为OFF。【例3.8】递减计数器梯形图、语句表指令示例如图3-24所示、时序图如图3-25所示。C5I0.2I0.1LADSTLCDLDPVCTDC5网络1LDCTDLDI0.1C5,3I0.2//使用递减计数器3//计数脉冲信号//计数器复位信号网络2Q0.0=LDQ0.0C5//使用计数器触点图3-24递减计数器指令示例I0.1I0.2Q0.0C5当前值012323083 图3-25递减计数器指令示例工作时序本例中,由编号C5为递增计数器,指令中设定值PV=3,其工作过程如下:1)当复位输入控制信号I0.2接通为ON时,计数器复位,计数器位C5变为OFF,C5当前值被置为设定值3。2)当复位输入(LD)无效,即I0.2断开为OFF时,在计数脉冲输入端I0.1接通的上升沿,C1开始从当前值开始(减1)计数;3)当前值=0时,计数器位C5由OFF变为ON,其C5常开触点闭合,Q0.0=1。4)当I0.2再次接通,C5复位,即计数器位为OFF,当前值被置为设定值3。3.4.4增减计数器CTUD(CountUP/Down)指令格式如下:STLLADCDCnCURPVCTUDCn,PVCTUDCTUD:增减计数器指令助计符;Cn:计数器编号;CU:加计数脉冲输入端;CD:减计数脉冲输入端;R:复位输入端;PV:设定值;计数范围:-32768~32767。在加计数器脉冲输入(CU)的上升沿,计数器当前值加1;在减计数脉冲输入(CD)的上升沿,计数器的当前值减1;当前值大于等于设定值(PV)时,计数器置位ON;复位输入(R)有效时,计数器复位,复位时当前值为0;当前值PV为最大值32767时,下一个CU输入的上升沿使当前值变为最小值-32768;当前值为-32768时,下一个CD输入的上升沿使当前值变为最大值32767。【例3.9】增减计数器梯形图、语句表指令示例如图3-26所示、时序图如图3-27所示。83 I0.2I0.1I0.0C50I0.2网络1LDCTUDLDI0.1C50,+4//使用增减计数器//减计数脉冲信号//计数器复位信号网络2Q1.0=LDQ1.0C50//使用计数器触点CDRPVCTUDC50+4LDI0.0//加计数脉冲信号CUSTLLAD图3-26增减计数器示例0123453445I0.0I0.1I0.2C50当前值Q1.图3-27增减计数器示例时序图本例中,编号C50为增减计数器,指令中设定值PV=4,其工作过程如下:1)当复位输入(R)无效,即I0.2断开为OFF时,在加计数脉冲输入端I0.1接通的上升沿,C50开始从当前值(0)开始(加1)计数;2)当前值=设定值4时,计数器位C50由OFF变为ON,其C50常开触点闭合,线圈Q1.0通电,计数器继续计数,C50保持ON状态。3)在减计数脉冲输入端I0.1接通的上升沿,C50开始从当前值(5)开始(减1)计数,当前值<设定值4时,计数器位C50由ON变为OFF,其C50常开触点断开,线圈Q1.0失电。4)当I0.2接通,C50复位,即计数器位为OFF,当前值清0。【例3.10】利用递增计数器实现单个按钮启动、停止功能,与PLC连接原理图如图3-28所示;梯形图、语句表指令如图3-29所示。控制按钮83 Q0.02Q0.1I0.1COMDC负载ACCOMPLC图3-28单个按钮启动、停止连接图C1Q0.1Q0.2Q0.1I0.1RPVCTUC1LDI0.0EU=Q0.1LDQ0.1LDC1CTDC1,2LDQ0.1OQ0.2ANC1=Q0.22网络1CUQ0.1PP网络2网络3Q0.2C1STLLAD图3-29递增计数器实现单按钮启动、停止程序本例中,由编号C1为递增计数器,指令中设定值PV=2,其工作过程如下:1)当控制按钮按下I0.1接通为ON时,Q0.1产生通电(ON)脉冲,该脉冲使其常开触点闭合,一方面置Q0.2通电(ON)且自锁,启动负载工作,另一方面作为计数器的计数输入控制信号,使计数器计1;2)当再次按下控制按钮时,Q0.1再次产生通电(ON)脉冲,计数器计数为2,达到计数器设定值2,计数器C1的常闭断开,Q0.2失电,负载停止工作,同时C1的常开位闭合,致计数器复位。3.5比较指令3.5.1比较指令运算符比较指令用来比较两个数IN1和IN2的大小。在梯形图中,满足比较关系式给出的条件时,触点接通。83 比较运算符有:=(比较IN1等于IN2?)<>(比较IN1不等于IN2?)>(比较IN1大于IN2?)<(比较IN1小于IN2?)>=(比较IN1大于等于IN2?)<=(比较IN1小于等于IN2?)3.5.2比较数据类型在比较指令应用时,被比较的两个数的数据类型要相同,数据类型可以是字节、整数、双整数或浮点数(即实数)。字节比较指令用来比较两个字节(无符号)的大小,指令助记符中用B表示字节;整数比较指令用来比较两个整数字的大小,LAD指令助记符中用I表示整数,STL指令助记符中用W表示整数;双整数比较指令用来比较两个双字的大小,指令助记符中用D表示双整数;实数比较指令用来比较两个实数的大小,指令助记符中用R表示实数。有符号整数比较的数据范围为:16#8000~16#7FFF有符号双字比较的数据范围为:16#80000000~16#7FFFFFFF实数(32位浮点数)比较的数据范围:负实数为-1.175495E-38~3.402823E+38正实数为+1.175495E-38~+3.402823E+383.5.3比较指令格式比较指令是通过取指令LD、逻辑与指令A、逻辑或指令O操作码分别加上数据类型符号B、I(W)、D、R进行组和实现编程的。表3-2列出的是两实数大于等于比较指令一般格式。表3-2比较指令格式LADSTL功能IN1>=RIN2LDR>=IN1,IN2实现操作数IN1和IN2(实数)的比较,当IN1>=IN2时,该比较指令触点接通例如,1)字节比较(STL):LDB=IN1,IN2//字节比较相等输入指令(该触点直接与左母线连接);AB=IN1,IN2//字节比较相等逻辑与指令(该触点串联实现逻辑与);OB=IN1,IN2//字节比较相等或指令(该触点并联实现逻辑或)。字节比较(LAD):IN2IN1==B83 2)整数比较(STL):LDW<=IN1,IN2//整数比较小于等于输入指令;AW<=IN1,IN2//整数比较小于等于逻辑与指令;OW<=IN1,IN2//整数比较小于等于逻辑或指令。整数比较(L;AD):IN2IN1<=I3)双整数比较(STL):LDD<>IN1,IN2//整数比较不等于输入指令;AD<>IN1,IN2//整数比较不等于逻辑与指令;OD<>IN1,IN2//整数比较不等于逻辑或指令。双整数比较(LAD):IN2IN1<>D4)实数比较(STL):LDR=IN1,IN2//实数比较相等输入指令;AR=IN1,IN2//实数比较相等逻辑与指令;OR=IN1,IN2//实数比较相等逻辑或指令。实数比较(LAD):IN2IN1==R【例3.10】比较指令梯形图、语句表示例及时序图如图3-30所示。图3-30比较指令应用示例本例工作过程如下:83 网络1:整数比较取指令,IN1为计数器C5的当前值,IN2为常数20,当C5的当前值大于等于20时,比较指令触点闭合,M0.0=1。网络2:实数比较逻辑与指令,IN1为双字存储单元VD1的数据,IN2为常数100.7,当VD1小于100.7时,比较指令触点闭合,该触点与I0.1逻辑与置M0.1=1。网络3:字节比较逻辑或指令,IN1为字节存储单元VB10的数据,IN2为字节存储单元VB11的数据,当VB10的数据大于VB11的数据时,比较指令触点闭合,该触点与I0.2逻辑或置M0.2=1。3.6程序控制指令前面所介绍的指令可以实现简单顺序控制逻辑功能的编程,但对于一些较复杂的程序设计,如程序转移、循环执行等,则需要使用程序控制指令。程序控制指令不仅可以控制程序的流程,而且可以用来优化程序结构,提供编程效率。程序控制指令包括:跳转、循环、看门狗、停止、结束及子程序调用等指令。3.6.1跳转指令跳转指令又称转移指令,程序中使用跳转指令可以根据对不同条件的判断,选择不同的程序段执行程序。跳转指令由跳转指令JMP和标号指令LBL组成,JMP指令在梯形图中以线圈形式编程。跳转指令格式:xxJMPn…LBLnnJMPLBLnLADSTLLDxx功能:当控制条件满足时,执行跳转指令JMPn,程序转移到标号n指定的目的位置执行,该位置由标号指令LBLn确定。n的范围为:0~255。使用跳转指令时注意:1)JMP和LBL指令必须在同一程序段中,如同一主程序、子程序或中断程序等,即不能从一个程序段跳到另一个程序段。2)执行跳转指令后,在JMP~LBL之间程序段中的计数器停止计数,其计数值及计数器位状态不变。3)执行跳转指令后,在JMP~LBL之间程序段中的输出Q、位存储器M及顺序控制继电器S的状态不变。4)执行跳转指令后,在JMP~LBL之间程序段中,分辨率为1ms、10ms的定时器,保持原来的工作状态及功能;分辨率为100ms的定时器则停止工作,当前值保持在跳转时的值不变。【例3.11】跳转指令梯形图、语句表示例如图3-31所示83 网络1LDJMPI1.06LDI1.1=Q0.0…//跳转到标号6网络3LBL6//标号66JMPLBL6Q0.0网络2I1.0I1.1图3-31跳转指令示例本例中工作过程如下:1)当输入端I0.1接通时,执行跳转指令JMP,程序跳过网络2,转移至标号6位置执行。2)被跳过的网络2,其输出Q0.0状态保持跳转前的状态不变。3.6.2循环指令在需要反复执行若干次相同功能程序时,可以使用循环指令,以提高编程效率。循环指令由循环开始指令FOR、循环体和循环结束指令NEXT组成。指令格式如下:STLLADFORFORINDX,INIT,FINALNEXTINDXFINALINIT循环体循环体ENENONEXTNEXTFOR指令表示循环的开始,NEXT指令表示循环的结束,中间为循环体;EN:循环控制输入端;INDX:设置指针或当前循环次数计数器;INIT:计数初始值;FINAL:循环计数终值。功能:在循环控制输入端有效时且逻辑条件INDX
此文档下载收益归作者所有
举报原因
联系方式
详细说明
内容无法转码请点击此处