基本指令及应用_第1页
基本指令及应用_第2页
基本指令及应用_第3页
基本指令及应用_第4页
基本指令及应用_第5页
已阅读5页,还剩75页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第七章S7-200系列PLC基本逻辑指令及其程序编制学习目标:熟练掌握梯形图的编程方法,掌握基本指令中的常用指令,了解和会用其他指令。通过对本章的学习,做到可以根据需要编制出结构较简单的控制程序。第一节S7-200系列可编程控制器基本指令S7-200PLC的基本指令多用于开关量逻辑控制,本节着重介绍梯形图指令,并讨论基本指令的功能及编程方法。

编程时,应注意各操作数的数据类型及数值范围。CPU对非法操作数将生成编译错误代码。基本逻辑指令基本逻辑指令一般指位逻辑指令、定时器指令及计数器指令。位逻辑指令又含触点指令、线圈指令、逻辑堆栈指令、RS触发器指令等。这些指令处理的对象大多为位逻辑量,主要用于逻辑控制类程序中。位逻辑指令1.标准触点指令标准触点指令有LD、LDN、A、AN、O、ON、NOT、=指令(语句表)。这些指令对存储器位在逻辑堆栈中进行操作。由于堆栈存储单元数的限制,语句表中A、O、AN、ON指令最多可以连用有限次。同样,梯形图中,最多一次串联或并联的触点数也有一定限制,功能框图中AND和OR指令盒中输入的个数也不能超过这个范围

标准触点指令中如果有操作数,则为BOOL型,操作数的编址范围可以是:I、Q、M、SM、T、C、S、VL。(1)装入常开指令:LD

在梯形图中,每个从左母线开始的单一逻辑行、每个程序块(逻辑梯级)的开始、指令盒的输入端都必须使用LD和LDN这两条指令。以常开触点开始时用LD指令,以常闭触点开始时则用LDN指令。本指令对各类内部编程元件的常开触点都适用。指令格式:LDbit;例:LDI0.2(2)装入常闭指令:LDN每个以常闭触点开始的逻辑行都使用这一指令,各类内部编程元件的常闭触点都适用。指令格式:LDNbit;例:LDNI0.2(3)与常开指令:A即串联一个常开触点。由于堆栈存储器数量的限制,梯形图中,一次最多可以有七个常开触点串联。指令格式:Abit;

例:

AM2.4(4)与常闭指令:AN即在梯形图中串联一个常闭触点。在一个逻辑行中,最多可以连用六次。指令格式:ANbit;

例:

ANM2.4(5)或常开指令:O即并联一个常开触点。在梯形图中,一次最多可以有七个触点相互并联。指令格式:Obit;例:OM2.6(6)或常闭指令:ON即并联一个常闭触点。在梯形图中,一次最多可以连用六次。指令格式:ONbit;例:ONM2.6(7)输出指令:=将逻辑运算结果输出到指定存储器位或输出继电器对应的映像寄存器位,以驱动本位线圈。指令格式:=bit;例:=Q2.6程序实例:仔细比较不同编程工具的区别与联系。LDI0.0//装入常开触点OI0.1//或常开触点AI0.2//与常开触点=Q0.0//输出触点,

//如果本梯级中将I0.1的触点改

//为Q0.0的常开触点,则成为电

//机起动停止控制环节的梯形图

LDNI0.0//装入常闭触点ONI0.1//或常闭触点ANI0.2//与常闭触点=Q0.1///输出触点

LDI0.0//OI0.1//AI0.2//NOT//取非,即输出反相=Q0.3//LDI0.0//OI0.1//AI0.2//=Q0.0//

LDNI0.0//ONI0.1//ANI0.2//=Q0.1//

LDI0.0//OI0.1//AI0.2//NOT//=Q0.3//标准触点FBD例2.正负跳变指令

正负跳变指令在梯形图中以触点形式使用。用于检测脉冲的正跳变(上升沿)或负跳变(下降沿),利用跳变让能流接通一个扫描周期,即可以产生一个扫描周期长度的微分脉冲,常用此脉冲触发内部继电器线圈。(1)正跳变指令:EU正跳变触点检测到脉冲的每一次正跳变后,产生一个微分脉冲。指令格式:EU(无操作数)(2)负跳变指令:ED负跳变触点检测到脉冲的每一次负跳变后,产生一个微分脉冲。指令格式:ED(无操作数)正、负跳变触点指令编程举例如下图所示。

正、负跳变触点指令编程一个扫描周期长度

3.置位和复位指令

置位即置1,复位即置0。置位和复位指令可以将位存储区的某一位开始的一个或多个(最多可达255个)同类存储器位置1或置0。这两条指令在使用时需指明三点:操作性质、开始位和位的数量。各操作数类型及范围如下表所示。

置位和复位指令操作数类型及范围

操作数范围

类型

位bitI,Q,M,SM,TC,V,S,LBOOL型

数量NVB,IB,QB,MB,SMB,LB,SB,AC,*VD,*AC,*LDBYTE型(最大255)(1)置位指令:S将位存储区的指定位(位bit)开始的N个点置位。指令格式:Sbit,N;例:SQ0.0,1(2)复位指令:R将位存储区的指定位(位bit)开始的N个点复位。当用复位指令时,如果是对定时器T位或计数器C位进行复位,则定时器或计数器位被复位,同时,定时器或计数器的当前值被清零。指令格式:Rbit,N;例:RQ0.2,3置位和复位指令应用编程序举例如下图所示。立即操作指令立即指令允许对输入和输出点进行快速和直接存取。当用立即指令读取输入点的状态时,相应的输入映像寄存器中的值并未发生更新;用立即指令访问输出点时,访问的同时,相应的输出寄存器的内容也被刷新。只有输入继电器I和输出继电器Q可以使用立即指令。1.立即触点指令

在每个标准触点指令的后面加“I”。指令执行时,立即读取物理输入点的值,但是不刷新相应映像寄存器的值。这类指令包括:LDI、LDNI、AI、ANI、OI和ONI。下面以LDI指令为例。指令格式:LDIbit(bit只能是I类型)例:LDII0.22.立即输出指令=I,立即输出指令。用立即指令访问输出点时,把栈顶值立即复制到指令所指定的物理输出点,同时,相应的输出映像寄存器的内容也被刷新。指令格式:=Ibit(bit只能是Q类型)例:=IQ0.23.立即置位指令SI,立即置位指令。用立即置位指令访问输出点时,从指令所指出的位(bit)开始的N个(最多为128个)物理输出点被立即置位,同时,相应的输出映像寄存器的内容也被刷新。指令格式:SIbit,N;

例:SIQ0.0,24.立即复位指令RI,立即复位指令。用立即复位指令访问输出点时,从指令所指出的位(bit)开始的N个(最多为128个)物理输出点被立即复位,同时,相应的输出映像寄存器的内容也被刷新。各操作数类型及范围如表5-9所示。指令格式:RIbit,N;例:RIQ0.0,1表5-10

立即置位和立即复位指令操作数类型及范围

操作数范围

类型

位bitQBOOL型

数量NVB,IB,QB,MB,SMB,LB,SB,AC,*VD,*AC,*LD,常数

BYTE型(最大128)应用举例:

LDI0.0//装入常开触点

=Q0.0//输出触点,非立即

=IQ0.1//立即输出触点

SIQ0.2,1//从Q0.2开始的1个触点被立即置1

LDII0.0//立即输入触点指令

=Q0.3//输出触点,非立即立即指令程序STL指令对较复杂梯形图的描述方法在较复杂梯形图中,触点的串、并联关系不能全部用简单的与、或、非逻辑关系描述。在语句表指令系统中设计了电路块的与操作和电路块的或操作指令,以及栈操作指令,下面对这类指令进行分析。逻辑堆栈指令S7-200可编程序控制器使用一个逻辑堆栈来分析控制逻辑,用语句表编程时要根据这一堆栈逻辑进行组织程序,用相关指令来实现堆栈操作,用梯形图和功能框图时,程序员不必考虑主机的这一逻辑,这两种编程工具自动地插入必要的指令来处理各种堆栈逻辑操作。S7-200可编程序控制器的主机逻辑堆栈结构如表7-1所示。逻辑堆栈结构是由九个堆栈存储器位组成的串联堆栈,栈顶用于存储逻辑运算的结果,下面的8位用于存储中间运算结果。堆栈中的数据按“先进后出”的原则存取。进栈时,数据由栈顶压入,堆栈中原来所存的数据被串行下移一格,如果原来STACK(堆叠)8中存有数据,则这数据被推出堆栈而自动丢失。出栈时,数据从栈顶被取出,所有数据串行上移一格,STACK8中随机地装入一个数值。表7-1

逻辑堆栈结构堆栈结构名称说明S0STACK0第一个堆栈

S1STACK1第二个堆栈S2STACK2第三个堆栈S3STACK3第四个堆栈S4STACK4第五个堆栈S5STACK5第六个堆栈S6STACK6第七个堆栈S7STACK7第八个堆栈S8STACK8第九个堆栈栈顶1、ALD指令(栈装载与)AndLoad栈装载与指令对堆栈中第一层及第二层的值进行逻辑与操作,结果放入栈顶。执行完该指令后,堆栈深度减1.2、OLD(栈装载或指令)ORLoad栈装载或指令对堆栈中第一层及第二层的值进行逻辑或操作,结果放入栈顶。执行完该指令后,堆栈深度减1。(1)块“或”操作指令格式:OLD(无操作元件)块“或”操作,是将梯形图中相邻的两个以LD起始的电路块并联起来。(2)块“与”操作指令格式:ALD(无操作元件)块“与”操作是将梯形图中相邻的两个以LD起始的电路块串联起来。栈装载与指令和栈装载或指令的操作过程如下图所示,图中“x”表示不确定值。

栈装载与指令和栈装载或指令的操作过程

3.LPS(逻辑推入栈指令)LogicPushLPS,逻辑推入栈指令(分支或主控指令)。用于复制栈顶的值并将这个值推入栈顶,原堆栈中各级栈值依次下压一级。在梯形图中的分支结构中,用于生成一条新的母线,左侧为主控逻辑块时,第一个完整的从逻辑行从此处开始。注意:使用LPS指令时,本指令为分支的开始,以后必须有分支结束指令LPP。即LPS与LPP指令必须成对出现。4、LPP(逻辑弹出栈指令)LogicPop

LPP,逻辑栈弹出指令(分支结束或主控复位指令)。堆栈作弹出栈操作,将栈顶值弹出,原堆栈中各级栈值依次上弹一级,堆栈第二级的值成为新的栈顶值。在梯形图中的分支结构中,用于将LPS指令生成的一条新母线进行恢复。应注意,LPS与LPP必须配对使用。5、LRD(逻辑读栈指令)LogicRead

LRD,逻辑读栈指令。把堆栈中第二级的值复制到栈顶。堆栈没有推入栈或弹出栈操作,但原栈顶值被新的复制值取代。在梯形图中的分支结构中,当左侧为主控逻辑块时,开始第二个和后边更多的从逻辑块。应注意,LPS后第一个和最后一个从逻辑块不用本指令。6.LDS(装入堆栈指令)编程时使用较少LDS,装入堆栈指令。复制堆栈中的第N级的值到栈顶。原栈中各级栈值依次下压一级,栈底值丢失。指令格式:LDSn例:LDS5LPS、LRD、LPP、LDS指令操作过程如下图所示。

LPS、LRD、LPP、LDS指令的操作过程LDI0.0//装入常开触点OI2.2//或常开触点LDI0.1//被串的块开始LDI2.0//被并路开始AI2.1//与常开触点OLD//栈装载或,并路结束ALD//栈装载与,串路结束=Q5.0//输出触点LDI0.0//装入常开触点LPS//逻辑推入栈,主控AI0.5//与常开触点=Q7.0//输出触点LRD//逻辑读栈,新母线LDI2.1//装入常开触点OI1.3//或常开触点ALD//栈装载与=Q6.0//输出触点LPP//逻辑弹出栈,母线复原LDI3.1//装入常开出触点OI2.0//或常开触点ALD//栈装载与=Q1.3//输出触点

取非触点指令和空操作指令1.取非触点指令NOT,取非触点指令。用来改变能流的状态。能流到达取非触点时,能流就停止;能流未到达取非触点时,能流就通过。在语句表中,取非触点指令对堆栈的栈顶作取反操作,改变栈顶值。栈顶值由0变为1,或者由1变为0。取非触点指令无操作数。2.空操作指令NOP,空操做指令。使能输入有效时,执行空操作指令。空操做指令不影响用户程序的执行,操作数N是标号,是一个0~225的常数。LDI0.0//使能输入NOP30//空操作指令,标号为30

三、定时器指令

S7-200系列PLC的定时器是对内部时钟累计时间增量计时的。每个定时器均有一个16位的当前值寄存器用以存放当前值(16位符号整数);还有一位状态位,反应其触点的状态。

一.工作方式分类

S7-200系列PLC定时器按工作方式分为三大类。通电延时型(TON)、有记忆的通电延时型(保持型)(TONR)、断电延时型(TOF)等三类。二.时基标准分类定时器的计时设定与定时器的分辨率有关。从工作机理上讲,定时器实际上是对时间间隔计数的计数器,时间间隔的长短形成了定时器的分辨率(时基)。按时基脉冲分为1ms、10ms、100ms三种类型,不同的时基标准,定时精度、定时范围和定时器的刷新方式不同。表7-3定时器号和分辨率(时基)定时器类型分辩率/ms计时范围/s定时器号TONTOF132.767T32,T9610327.67T33~T36,T97~T1001003276.7T37~T63,T101~T255TONR132.767T0,T6410327.67T1~T4,T65~T681003276.7T5~T31,T69~95定时时间的计算:T=PT☓S‑‑‑(T为实际定时时间,PT为预设值,S为分辨率等级)例如:TON指令用定时器T33,预设值为125,则实际定时时间T=125☓10=1250ms三.定时器指令格式通电延时定时器:TONTXX,PT有记忆的通电延时定时器:TONRTXX,PT断电延时定时器:TOFTXX,PT1.通电延时定时器

通电延时定时器在使能输入IN接通时开始计时,当前值线性增大。当定时器的当前值大于等于PT端的设定值时,该定时器位被置位。当前值达到设定值后,定时器继续计时,一直计到最大值32767。当使能输入IN断开时,定时器自动复位,当前值被清零,定时器位被复位。INTONPTT37I0.0T37()Q0.0Network1Network210T37(当前值)当前值=10T37(位)

Q0.01s最大值32767I0.0LDI0.0TONT37,10LDT37=Q0.02.有记忆的通电延时定时器

有记忆的通电延时定时器在使能输入IN接通时开始计时,当前值线性增大。当定时器的当前值大于等于PT端的设定值时,该定时器位被置位。当使能输入IN断开时,其当前值保持不变。使能输入再次接通时,当前值从上次的保持值继续计数,当前值达到设定值后,定时器继续计时,一直计到最大值32767。只能用复位指令(R)来复位TONR,使它的当前值变为0。INTONRPTT1I0.0T1()Q0.0Network1Network2100T1(当前值)当前值=10T1(位)

Q0.0I0.0LDI0.0TONRT1,100LDT1=Q0.0LDI0.1RT1T1(R)I0.1Network311s0.7s0.3sI0.1(复位)3.断电延时定时器指令

断电延时定时器用于在使能输入IN断开后延时一段时间断开输出。当使能输入IN接通时,定时器位立即接通,并把当前值设为0。当输入断开时,从输入信号断开的负跳变启动计时,当定时器的当前值大于等于PT端的设定值时,定时器位断开,且停止当前值计时。

INTOFPTT33I0.0T33()Q0.0Network1Network2100T33(位)

Q0.0T33(当前值)当前值=1001sI0.0LDI0.0TOFT33,100LDT33=Q0.0例1:用定时器设计输出脉冲的周期和占空比可调的振荡电路(闪烁电路)。例2:电动机星形-三角形降压启动SB1I0.0停止按钮SB2I0.1启动按钮KM1Q0.1定子电源KM2Q0.2星形KM3Q0.3三角形I/O端子表时序图I0.1I0.0Q0.1Q0.2Q0.3梯形图Q0.1例2:某锅炉鼓风机和引风机的控制时序如下图,要求鼓风机比引风机晚8s启动,引风机比鼓风机晚18s停机,请设计梯形图控制程序。I0.0I0.1Q0.1Q0.28s18s启动停止引风机鼓风机作业:设计一个3台电动机的顺序控制程序(1)启动操作:按启动按钮SB1,电动机M1启动,10s后电动机M2自动启动,有经过8s,电动机M3自动启动。(2)停止操作:按停止按钮SB2,电动机M3立即停车;5s后,电动机M2自动停车,又经过4s,电动机M1自动停车。应用定时器指令应注意的几个问题①不能把一个定时器号同时用作断开延时定时器(TOF)和接通延时定时器(TON)。②使用复位(R)指令对定时器复位后,定时器位为“0”,定时器当前值为“0”。③有记忆接通延时定时器(TONR)只能通过复位指令进行复位。④对于关断延时定时器(TOF),需要输入端有一个负跳变(由on到off)的输入信号启动计时。⑤不同精度的定时器,它们当前值的刷新周期是不同的,具体情况如下:1)1ms分辨率定时器系统每隔1ms刷新一次,与扫描周期及程序处理无关,即采用中断刷新方式。

2)10ms分辨率定时器系统在每个扫描周期开始时自动刷新,由于每个扫描周期只刷新一次,故在每次程序处理期间,其当前值为常数。

3)100ms分辨率定时器

在定时器指令执行时被刷新。

例:在图a中,T32定时器1ms更新一次。当定时器当前值100在图示A处刷新,Q0.0可以接通一个扫描周期,若在其他位置刷新,Q0.0则用永远不会接通。而在A处刷新的概率是很小的。若改为图b,就可保证当定时器当前值达到设定值时,Q0.0会接通一个扫描周期。图a同样不适合10ms分辨率定时器。

1ms定时器编程在子程序和中断程序中不易使用100ms定时器。子程序和中断程序不是每个扫描周期都执行的,那么在子程序和中断程序中的100ms定时器的当前值就不能及时刷新,造成时基脉冲丢失,致使计时失准;在主程序中,不能重复使用同一个100ms的定时器号,否则该定时器指令在一个扫描周期中多次被执行,定时器的当前值在一个扫描周期中多次被刷新。这样,定时器就会多计了时基脉冲,同样造成计时失准。因而,100ms定时器只能用于每个扫描周期内同一定时器指令执行一次,且仅执行一次的场合。100ms定时器的编程例子如下图所示。

100ms定时器的应用2.计数器指令计数器用来累计输入脉冲的次数。计数器也是由集成电路构成,是应用非常广泛的编程元件,经常用来对产品进行计数。计数器与定时器的结构和使用基本相似,编程时输入它的预设值PV(计数的次数),计数器累计它的脉冲输入端电位上升沿(正跳变)个数,当计数器达到预设值PV时,发出中断请求信号,以便PLC作出相应的处理。计数器指令有3种:增计数CTU、增减计数CTUD和减计数CTD。指令操作数有4方面:编号、预设值、脉冲输入和复位输入。(1)编号:用计数器名称和它的常数编号(最大255)来表示,即Cxxx,如:C6。C6不仅仅是计数器的编号,它还包含两方面的变量信息:计数器位和计数器当前值。计数器位:表示计数器是否发生动作的状态,当计数器的当前值达到预设值PV时,该位被置为“1”。计数器当前值:存储计数器当前所累计的脉冲个数,它用16位符号整数(INT)来表示,故最大计数值为32767。(2)预设值PV:数据类型为INT型。寻址范围可以是VW、IW、QW、MW、SW、SMW、LW、AIW、T、C、AC、*VD、*AC、*LD和常数。

(3)脉冲输入:BOOL型,可以是I、Q、M、SM、T、C、V、S、L和能流。

(4)复位输入:与脉冲输入同类型和范围(1)增计数器指令:CTU

首次扫描,定时器位OFF,当前值为0。在增计数器的计数输入端(CU)脉冲输入的每个上升沿,计数器计数1次,当前值增加1个单位,当前值达到预设值时,计数器位ON,当前值继续计数到32767停止计数。复位输入有效或执行复位指令,计数器自动复位,即计数器位OFF,当前值为0。

指令格式:CTUCxxx,PV;例:CTUC20,3填“计数器器号”,如:C30LDI0.0//计数脉冲信号输入端LDI0.1//复位信号输入端CTUC20,+3//增计数,计数设定值为3个脉冲

LDC20//装入计数器触点=Q0.0//输出触点增计数程序及时序(2)增减计数器指令:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论