PLC的基本逻辑指令及举例改_第1页
PLC的基本逻辑指令及举例改_第2页
PLC的基本逻辑指令及举例改_第3页
PLC的基本逻辑指令及举例改_第4页
PLC的基本逻辑指令及举例改_第5页
已阅读5页,还剩156页未读 继续免费阅读

下载本文档

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

文档简介

1、可编程序控制器可编程序控制器(PLC)第第5章章廖国华 中南大学信息学院自动化系第5章 可编程序控制器的基本指令及程序设计一、基本指令二、程序控制指令三、PLC 编程规则四、典型环节程序示例五、PLC程序的简单设计法 逻辑取及线圈驱动指令 触点串联指令 触点并联指令 串联电路块的并联连接指令 并联电路块的串联连接指令 置位复位指令 RS触发器指令 立即指令 边沿脉冲指令 逻辑堆栈操作指令 定时器 计数器 比较指令 NOT及NOP指令一、PLC的基本逻辑指令及举例一、PLC基本逻辑指令及举例 S7200系列PLC逻辑指令共有106条,厂家提供了梯形图(LAD)、语句表(STL)、功能块图(FBD

2、)和顺序流程图几种编程语言,其中LAD和STL是最基本的也是最常用的编程语言。本章以这两种语言为例介绍其应用。1. 装入触点指令及驱动指令 LD(LOAD):装入触点指令。用于网络块逻辑运算开始的常开触点与母线的连接。 LDN( LOAD NOT):取反指令。用于网络块逻辑运算开始的常闭触点与母线的连接。 (OUT):线圈的驱动指令 图31 为上面三条指令的用法n LD、LDN指令不只是用于网络块逻辑计算开始时与母线相连的常开和常闭触点,在分支电路块的开始也使用LD、LDN指令,与后面要讲的LD、OLD指令配合完成块电路的编程。 n 指令不能用于输入继电器。n 指令可连续使用任意次。n 在同一

3、线圈中不要使用双线圈输出。nLD、LDN操作数为I、Q、M、SM、T、C、V、S 的操作数为Q、M、S、V2. 触点串联指令A (And):与指令。用于单个常开触点的串联连接。AN(And Not):与反指令。用于单个常闭触点的串联连接。注意事项:n A、AN是单个触点串联连接指令,可连续使用,编程时只受到打印宽度和屏幕显示的限制。n 例中可以反复使用=指令,但次序必须正确。n A、AN指令的操作数为:I、Q、M、SM、T、C、V、S和L。(b)语句表( )( )M0.0M0.1Q0.0Q0.1LD M0.0LPS A M0.1= Q0.0LPP = Q0.13 . 触点并联指令 O(or)或

4、指令。用于单个常开触点的并联连接 ON(or not)或反指令。用于单个常闭触点的并联连接 单个触点的O、ON指令可连续使用 O、ON指令的操作数为:I、Q、M、SM、T、C、V、S、和L注意事项:M0.0M0.1M0.2I0.1I0.0Q0.0LD M0.0O M0.1ON M0.2A I0.0O I0.1= Q0.0(a)梯形图(b)语句表网络1 触点的并联电路举例4 串联电路块的并联连接指令 OLD(or load)或块指令:用于串联电路块的并联连接两个以上触点串联形成的支路叫串联电路块n 在电路块的开始也要使用LD、LDN指令n 每完成一次块电路的并联时要写上OLD指令n OLD指令无

5、操作数注意事项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)语句表网络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

6、 I0.1 LD M0.0A M0.1LD M0.2AN M0.3OLD ALD= Q0.0 (a)梯形图(b)语句表6. 置位、复位指令表1 置位复位指令的功能表( )( )网络1 置位网络2 复位 I0.0Q0.0I0.1S2Q0.0R2LD I0.0S Q0.0,2LD I0.1R Q0.1, 2(a)梯形图(b)语句表I0.0I0.1(c)时序图Q0.0,Q0.1n 对元件来说一旦被置位,就保持在通电状态,除非在对它复位;而一旦被复位,就保持在断电状态,除非在对它置位n S/R指令可以互换次序使用,但由于PLC采用扫描工作方式,所以写在后面的指令具有优先权n 如果对记数器和定时器复位,

7、则记数器和定时器的当前值被清零n N的常数范围为1-255,N也可为:VB、IB、QB、MB、SMB、SB、LB、AC、常数、*VD、*AC、*LD。一般情况下使用常数n S/R指令的操作数为:I、Q、M、SM、T、C、V、S、和L注意事项:7. RS触发指令 SR(set dominant bistable)置位优先触发指令。当置位信号和复位信号都为真时,输出为真 RS(reset dominant bistable)复位优先触发指令。当置位信号和复位信号都为真时,输出为假RS1SROUTbitR1SRSOUTbitRS触发器指令的真值表*19例例1:电机起停控制:电机起停控制已知:起动按钮

8、信号接入已知:起动按钮信号接入I0.0停止按钮信号接入停止按钮信号接入I0.1电机运行命令由电机运行命令由Q0.0输出输出M M3 3K KM M1 1F FR R1 1M M1 1Q QS SF FU UL L1 1 L L2 2 L L3 3S SB B1 1S SB B2 2K KK KM M1 1M M1 1F FR R1 1Q0.0K KM M1 1220VI0.0I0.1SB1SB2*20*21*22例例2:用单按钮实现电机起停控制:用单按钮实现电机起停控制已知:按钮信号接入已知:按钮信号接入I0.0电机运行命令由电机运行命令由Q0.0输出输出K KM M1 1Q0.0I0.022

9、0VM M3 3K KM M1 1F FR R1 1M M1 1Q QS SF FU UL L1 1 L L2 2 L L3 3*23例例3:正反转向电机起停控制:正反转向电机起停控制已知:正转向起动按钮信号接入已知:正转向起动按钮信号接入I0.0反转向起动按钮信号接入反转向起动按钮信号接入I0.11停止按钮信号接入停止按钮信号接入I0.2电机正转运行命令由电机正转运行命令由Q0.0输出、反转运行命令由输出、反转运行命令由Q0.0输出。输出。K KM M1 1Q0.0I0.0I0.2220VI0.1K KM M2 2Q0.1220VM M3 3K KM M1 1F FR R1 1M M1 1Q

10、 QS SF FU UL L1 1 L L2 2 L L3 3K KM M2 28. 立即指令(Immediately)立即指令是为了提高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)梯形图(b)语句表扫描周期nn+1n+2n+3Q0

11、.0映像寄存器Q0.1映像寄存器Q0.2映像寄存器Q0.3映像寄存器Q0.0物理触点Q0.1物理触点Q0.2物理触点Q0.3物理触点(c)时序图输入采样输出刷新I0.0注意:用立即输出指令访问输出点时,在输入采样时刻,对注意:用立即输出指令访问输出点时,在输入采样时刻,对Q进行进行操作,新值既写物理输出点,也写输出映像寄存器操作,新值既写物理输出点,也写输出映像寄存器tt9. 边沿脉冲指令PN10. 逻辑堆栈操作指令 LPS(logic push) 逻辑入栈指令 LRD(logic read) 逻辑读栈指令 LPP(logic pop) 逻辑出栈指令 LDS(load stack) 装入堆栈指

12、令s7-PLC 使用9层堆栈来处理所有的逻辑操作,逻辑堆栈指令主要完成对触点进行的复杂连接。分支电路开始指令。其作用是把栈顶值复制后压入堆栈开始第二个以后的从逻辑块的编程,其作用是读取最近LPS压入堆栈的内容,而本身不进行PUSH和POP工作分支电路结束指令。其作用把堆栈弹出一级,堆栈内容依次上移复制堆栈中的n个值到栈顶,而栈底丢失。STL: LDS n (n 为08的整数)串联堆栈。进栈时,数据由栈顶压入,堆栈中原数据行被串行下移一位,在栈底(STRCK8)是数据则丢失;出栈时,数据从栈顶被取出,所有数据向上串行名称说明STRCK8STRCK0STRCK1STRCK2STRCK3STRCK4

13、STRCK5STRCK6STRCK7第1级堆栈(栈顶)第9级堆栈(栈底)第2级堆栈第3级堆栈第4级堆栈 第5级堆栈第6级堆栈第7级堆栈第8级堆栈堆栈的结构一位,在栈底(STRCK8)中装入一个随机数据。 当所有触点呈简单的串联、并联关系时,可用前面介绍的逻辑指令。当所有触点呈比较复杂的连接关系时就要用到堆栈操作。因此,逻辑堆栈指令主要用来完成对触点进行复杂的连接。 PLC的堆栈是一组存取数据的临时存储单元,是由堆栈位存储器组成的串联堆栈。逻辑堆栈的操作原则是“先进后出”、“后进先出”。进栈时,数据堆栈的有关指令S0S8S7S6S5S4S3S2S1S0S1 XS8S7S6S5S4S3S2执行后执

14、行前S0S8S7S6S5S4S3S2S1S0+S1 XS8S7S6S5S4S3S2执行后执行前 栈装载与(ALD) 栈装载或(OLD) 由两以上支路并形成的电路块称为并联电路块。并联电路块与前面电路串联时要使用ALD指令 由两以上触点串形成的支路称为串联电路块。两个或两个以上的串联电路块并联时要使用OLD指令( )网络1I0.0Q6.0I0.1I1.0I1.1I2.0I2.1( )Q6.1I3.2I3.3I3.4I3.1网络2NETWORK1 LD I0.0A I0.1LD I1.0A I1.1LD I2.0A I2.1OLD = Q6.0两个或两个以上的串联电路块并联时要使用栈装载或(OLD

15、)指令NETWORK2 LD I3.1O I3.3LD I3.2O I3.4ALD = Q6.1并联电路块与前 面电路串联时要 使用栈装载与 (ALD)指令栈装载与、栈装载或指令举例逻辑读栈(LRD)S0S8S7S6S5S4S3S2S1 S1S8S7S6S5S4S3S2执行后执行前 S1 将堆栈中第2层的数据复制到栈顶第29层的数据不变,堆栈没有入栈或出栈操作,但原栈顶值被新的复制值取代。逻辑入栈(LPS)S0S8S7S6S5S4S3S2S1 S1S7S6S5S4S3S2执行后执行前 S0 S0 将栈顶值复制后压入堆栈,堆栈中原来各级的数据依次向下一层推移,栈底值被推出丢失。S8丢失S0被覆盖

16、用于生成一条新母线,其左侧为原来的主逻辑块,右侧为新的从逻辑块,LPS开始右侧的第1个从逻辑块编程。也叫分支电路开始指令当新母线左侧为主逻辑块时LRD开始右侧的第2个以后的从逻辑块编程。该指令在编程中使用较少。S0S8S7S6S5S4S3S2S1 S1 XS8S7S6S5S4S3S2执行后执行前逻辑出栈(LPP) 将栈顶的值弹出,堆栈中原来各级的数据依次向上一级推移,栈顶值从栈内丢失,原堆栈2级的值成为新的栈顶值。代表不确定值装载堆栈(LDS 3)S0S8S7S6S5S4S3S2S1 S1S7S6S5S4S3S2执行后执行前 S0 S3 将栈内底n级的值复制到栈顶,堆栈中原来各级的数据依次向下

17、一层推移,栈底值被推出丢失。这是第3级被装载哦!(LDS3)S0丢失S8丢失用于将LPS指令生成一条新的母线复位。因此也叫分支电路结束指令。堆栈指令使用时要注意: 由于受堆栈空间的限制(9级),故LPS、LPP指令连续使用时应少于9次; LPS和LPP必须成对使用,它们之间可以使用LRD指令; LPS、LRD和LPP指令无操作数。 入栈(LPS)、读栈(LRD)、出栈(LPP)指令举例( )网络1I0.0Q1.0I0.1I0.2NETWORK1 LD I0.0LPSLD I0.1O I0.2ALD= Q1.0LRDLD I0.3O I0.4ALD = Q1.1LPPA I0.5= Q1.2 (

18、 )I0.3I0.4Q1.1 ( )I0.5Q1.2在梯形图分支结构中,LPS开始右侧的第1个从逻辑块编程并联电路块与前面电路串联时要 使用ALD指令在梯形图分支结构中,LRD开始第2个以后的从逻辑块编程LPP复位新母线,与PLS成对出现梯形图指令表11. 定时器1)种类 定时器可分为2)分辨率与定时时间的计算 单位时间的时间增量称为定时器的分辨率。 定时器定时时间T的计算:T=PTS T:实际定时时间 PT:定时时间 S:分辨率 PT数据类型为INT型,操作数可为:VW、IW、QW、MW、SW、SMW、LW、AIW、T、C、AC、VD、 AC、LD和常数3)定时器的编号 定时器的编号用定时器

19、的名称和它的常数编号(最大为255)。即TXXX,如T40 定时器的编号包含两方面的信息:定时器位和定时器当前值。 定时器位:当定时器的当前值达到设定值PT时,定时器的触点动作。 定时器当前值:存储定时器当前所累计的时间,它用16位符号的整数来表示,最大计数值为32767 使能输入:BOOL型,可以是I、Q、M、SM、T、C、V、S、L接通延时定时器(TON)有记忆接通延时定时器(TONR)断开延时定时器(TOF)1ms10ms100msINPTTXTXXXTXXXTXXX 11 定时器指令 1) 定时器的种类 定时器是对PLC内部的时钟脉冲进行计数。S7-200 PLC为用户提供了三种类型的

20、定时器:通电延时定时器(TON)、 有记忆的通电延时定时器(TONR)和失电延时定时器(TOF)。 ) 定时器的分辨率、编号和定时时间的计算分辨率:单位时间的时间增量定时器时间的计算:TPT*S 实际定时时间设定值分辨率例:TON指令使用T97的定时器,设定值为100,则时间时间为 T=100*10ms=1000ms ) 定时器的指令格式 T XXXPTIN TON T XXXPTIN TONRTON T X X X ,PTTONR T X X X ,PT梯形图指令表工作过程和用途1)首次扫描时,定时器位为OFF,当前值为02)当使能输入(IN)接通时,定时器位为TON从0开始计时3)当前值设

21、定值时,定时器被置位,即定时器状态位为 ON,定时器动合触点闭合,动断触点断开4)定时器累计值达到设定值后继续计数,一直达到最大 值327675)当使能输入(IN)断开时,定时器复位,即定时器状态位 为OFF,当 前值为0。也可用复位指令对计数器复位6)用于单一时间间隔的定时1)首次扫描时,定时器位为OFF,当前值保持在断电前 的值2)当IN接通时,定时器为为OFF,TONR从0开始计时3)当前值设定值时,定时器位为ON4)定时器累计值达到设定值后继续计时,一直达到最大 值327675)当使能输入(IN)断开时,定时器的当前值被保持, 定时器状态位不 变6)当IN再次接通时,定时器的当前值从原

22、保持值开始向上 计时,因此可累计多次输入信号的接通时间7)此定时器必须用复位(R)指令清除当前值8)用于许多间隔的累计定时 T XXXPTIN TOFTOF T X X X ,PT梯形图指令表工作过程和用途1)首次扫描时,定时器位为OFF,当前值为02)当IN接通时,定时器位即被置为ON,当前值为03)当输入端由接通到断开时,定时器开始计时4)当前值设定值时,定时器状态位为OFF,当前值等于 预设值,并停止计时5)可用R指令对定时器复位,定时器位为OFF,当前值为06)定时器复位后,如输入端IN从ON转到OOF时,定时器 可再次启动7)用于关掉或故障事件后的时间延时定时器中各参数的意义 T X

23、XXPTIN T定时器号 T XXX定时器编号定时器标志定时器名称通电延时定时器标志 TONONR 记忆通电延时OF 失电延时使能输入端设定值梯形图记忆通电延时ONRT T X X X PT 定时器标志通电延时ON失电延时OF设定值定时器编号定时器标志指令表 定时器指令的有效操作数 定时器指令的操作数有3个,即编号、预设值和导通条件(使能输入)。 (1)定时器编号(TXXX)决定了定时器的分辨率,同时还包含定时器状态位和定时器当前值。 定时器状态位:当定时器当前值达到预设值PT时,该位被置为1,即ON。 定时器当前值:存储定时器当前所累计的时间用16位符号整数来表示。最大计数值为32767。

24、通过定时器号既可以读去定时器的当前值,也可以用来读取定时器的状态位。 (2)预设值PT:数据类型为INT型,即字(16),与分辨率的乘积就是定时时间。 (3)使能输入(导通条件):BOOL型,寻址范围见后表。 输入/输出数据类型操作数T X X XINPT字(word)位(BOOL)整数(INT)常数(T0T225)I、Q、V、M、SM、S、T、V、L、能流IW、QW、VW、MW、SMW、T、C、LW、AC、AIW、常数定时器指令的有效操作数表如下:) 定时器应用举例 T33INPTTON网络1300( )Q0.0T33I0.2NETWORK1LD I0.2 TON T33,300 NETWO

25、RK2LD T33= Q0.0网络2Q0.0I0.23sT33PT梯形图指令表时序图通电(接通)延时定时器(TON)I0.23sT33 当前值PTQ0.03sPT3s最大值=32767时序图T33INPTTON网络1300( )Q0.0T33I0.2NETWORK1LD I0.2 TON T33,300 NETWORK2LD T33= Q0.0网络2梯形图指令表T33分辨率为10msT3INPTTONR网络1100( )Q0.0T3I0.0NETWORK1LD I0.0 TONR T3,100 NETWORK2R T3,1NETWORK3LD T3 = Q0.0网络2Q0.0I0.0T3当前值

26、梯形图指令表时序图( )I0.1T3R1网络3t2PT设定值t1+t2=1sI0.1分辨率(时基):10ms 设定时间值=100*10ms=1000ms=1s有记忆通电(接通)延时定时器(TONR) 断电(断开)延时定时器(TOF)以及不同分辨率定时器的刷新方式自己总结t1 1s5).5).定时器的刷新方式和正确使用定时器的刷新方式和正确使用(1)定时器的刷新方式1ms定时器:1ms定时器由系统每隔1ms刷新一次,与扫描周期及程序处理无关。它采用的是中断方式。10ms定时器:10ms定时器由系统在每个扫描周期开始时自动刷新,由于每个扫描周期只刷新一次,故在一个扫描周期内定时器位和定时器的当前值

27、保持不变。100ms定时器:100ms定时器在定时器指令执行时被刷新,它仅用在定时器指令在每个扫描周期执行一次的程序中。(2)定时器的正确使用定时器的正确使用这是在最新版本的CPU中增加的有特殊功能的定时器,说是定时器,其实是2条指令。使用这2条指令可以记录某一信号的开通时刻以及开通延续的时间。PLC停电后,停止记录。触发时间间隔(BITIM,Beginning Interval Time) 该指令用来读取PLC中内置的1毫秒计数器的当前值,并将该值存储于OUT。双字毫秒值的最大计时间隔为2的32次方,即49.7天。计算时间间隔(CITIM,Calculate Interval Time) 该

28、指令计算当前时间与IN所提供时间的时间差,并将该差值存储于OUT。双字毫秒值的最大计时间隔为2的32次方,即49.7天。2条指令的有效操作数为:IN和OUT端均为双字。时间间隔定时器时间间隔定时器时间间隔定时器举例12 计数器1.几种基本概念几种基本概念(1)种类 S7200系列PLC的计数器有3种: 增计数器CTU,增减计数器CTUD,减计数器CTD。(2)编号 计数器的编号用计数器名称和数字组成,如C6。 计数器的编号包含两方面的信息:计数器的位和计数器当前值。 计数器位:表示计数器是否发生动作的状态。 计数器当前值:用来存储计数器当前所累计的脉冲数,用16位符号整数表示,最大值为3276

29、7。 计数器的指令1)首次扫描时,计数器位为OOF,当前值为02)当CU端在每一个上升沿接通时,计数器计数1次,当前 值增加1个单位3)当前值达到设定值PV时,计数器置位为ON,当前值持续 计数至327674)当复位输入端R接通时,计数器复位OFF,当前值为01)有两个输入端,CU用于递增计数,CU用于递减计数2)首次扫描时,计数器位为OFF,当前值为03)当CU在上升沿接通时,计数器当前值增加1个单位;当 CD在上升沿接通时,计数器当前值减少1个单位4)当前值达到设定值PV时,计数器被置位为ON5)当复位输入端R接通时,计数器复位为OFF,当前值为01)首次扫描时,计数器位为OFF,当前值等

30、于预设值2)当CD端在每一个上升沿接通时,计数器减小1个单位, 当前值递减至0时,停止计数,该计数器置位为ON3)当复位端LD接通时,计数器复位为OFF,并把预设值 PV装入计数器,即当前值为预设值而不是0CTU C X X X ,PVCTUD C X X X ,PV梯形图指令表工作过程和用途 C XXXRCU CTUPV C XXXCDCU CTUDRPV C XXXLDCD CTDPVCTD C X X X ,PV PLC计数器的设定值和定时器的设定值不仅可以用程序设定,也可以通过PLC内部的模拟电位器或PLC外接的拨码开关方便、直观地随时修改。输入/输出数据类型操作数C X X X CU

31、、CD、R、LDPV位(BOOL)实数(INT)C0C255I、Q、V、M、SM、S、T、V、L、能流IW、QW、VW、MW、SMW、LW、T、C、AC、AIW、*LD、*AC、常数计数器指令的有效操作数表如下:常数 2.计数器指令使用说明 (1)增计数器CTU (Count Up)RCUPVCTUCXXXCXXXCXXXCU:脉冲输入端R:复位信号端PV:预设定端计数值计数器位CXXX:计数器编号首次扫描,计数器位为OFF,当前值为0。在计数脉冲输入端CU的每个上升沿,计数器计数一次,当前值增加一个单位。当前值达到设定值时,计数器位ON,当前值可继续计数到32767 后停止计数。复位输入端有

32、效,计数器自动复位,计数器位为OFF,当前值为0。STL指令格式: CTU CXXX, PV例 CTU C20, 3 计数器应用举例 C4CUR CTU网络14( )Q0.0C4I2.4NETWORK1LD I2.4LD I2.5 CTU C4,4 NETWORK2LD C4= Q0.0网络2加计数器PV I2.53241567I2.4I2.5C4当前值C4位Q0.0梯形图指令表时序图(a)梯形图(b)语句表LD I0.0 /计数脉冲信号输入LD I0.1 /复位脉冲信号输入CTU C20,+3 /增计数,设定计数值LD C20 /计数值为3时输出 Q0.0I0.0I0.1C20 当前值C20

33、 位(c)时序图CDCURCTUDCXXXCXXXCXXXPVCU:脉冲递增计数输入端CD:脉冲递减计数输入端R:复位信号端PV:预设定端计数值计数器位CXXX:计数器编号首次扫描时,计数器位为OFF,当前值为0。CU输入的每个上升沿计数器当前值增加一个单位,CD输入的每个上升沿,计数器当前值减少一个单位,当前值达到设定值时,计数器位置位为ON。32768327670CUCDSTL指令格式: CTUD CXXX, PV例 CTUD C30, 5(3)减计数器CTD (Count Down)LD CD PVCTD CXXXCXXXCXXXCD:脉冲递减输入端LD:复位输入端 PV:预设定端首次扫

34、描,计数器位为OFF,当前值等于预设值PV。计数器检测到CD输入端的上升沿时,计数器当前值减少一个单位,当前值减为0时,计数器位为ON。复位输入端有效时,计数器位为OFF,当前值为PV。STL指令格式: CTD CXXX, PV例 CTD C40, 4注意:注意:以上三种计数器如果将计数器位作为复位输入信号,则可实现循环计数。 13 比较触点指令 ) 比较指令 比较指令是将两个操作输入(IN1、IN2)按指定的比较关系进行比较,比较关系成立时则比较触点闭合。 在梯形图中,比较指令是以动合触点的形式编程的,在动合触点中间注明比较参数和比较运算符。当两个数的比较结果为真时,该动合触点闭合,即接通或

35、截断能流。 在语句表中,比较指令与基本逻辑指令LD、A、O进行组合后编程,当比较结果为真时,将栈顶值置为1。) 指令格式X XIN1IN2X XLDIN1,IN2比较触点接起始母线IN1X XIN2X X AIN1,IN2LD IN比较触点的与IN1X XIN2X X OIN1,IN2LD IN比较触点的或梯形图指令表功能(1)“X X” 表示 操作数IN1、 IN2 所满足的条 件, 它们有: = 等于 = 大于等于= 小于等于 大于 小于 不等于B:字节比较I: 整数比较D:双字整数比较R:实数比较S:字符串比较(2)“ ”表示操作数IN1、IN2的数据类型即范围,其中:说明:IN1和IN

36、2的数据要匹配哦(3) IN1与IN2 的寻址范围:I、QV、MSM、ST、CL、常数注意:不同数据类型的比较在LAD和STL中的表现方式是不同的使用是查表确定字符串比较指令只有和两种注意:n 对于LAD的=, 在STL为=; 对于LAD的整数比较,数据类型为I,而STL为W;) 应用举例 某轧钢厂的成品库可存放钢卷1000个,因为不断有钢卷入库、出库,需要对库存的钢卷进行统计。当库存低于下限100时,指示灯HL1亮;当库存大于900时,指示灯HL2亮;当达到库存上限1000时报警器HA响,停止入库。C0CUCD 网络1 库存统计1000I0.0网络2 库存情况提示和报警PV I0.1梯形图选

37、用元件入库、出库数量可用增/减计数器(CTUD)进行统计入库、出库标志可用内部标志存储器(M)实现指示灯和报警器可用输出线圈寄存器(Q)实现CTUDI1.2R( )C0 I100Q1.0( )( ) C0 = I1000C0 I900Q1.1Q1.2SM0.0PLC在RUN方式时SM0.0总为1通过计数器编号可访问计数器的当前值/ HL1,库存低于100/ HL2,库存高于900/ HA,库存高于上限1000 加1 减1 复位整数比较NETWORK1LD I0.0LD I0.1 CTUD C0,1000 NETWORK2LD SM0.0LPSAW C0,100= Q1.0LRDAW C0,90

38、0 Q1.1LPPAW C0,1000 Q1.2指令表增/减计数器设定值1000入栈,分支线路开始指令读栈,分支线路第2个以后的从逻辑块编程出栈,分支线路结束指令钢卷数低于下限100时,指示灯HL1亮钢卷数大于900时,指示灯HL2亮钢卷数大于上限1000时,报警器HA响整数比较Q0.2Q0.1Q0.0网络1网络3网络2I0.0I0.1C30 =I +30 VD1 B VB2 梯形图语句表LDW= C30,+30 = Q0.0 LD I0.0 AR VB1,VB2 = Q0.214 NOT 及NOP指令1).取反指令取反指令NOT 将复杂逻辑结果取反,为用户使用反逻辑提供方便。该指令无操作数,

39、其LAD和STL形式如下。 STL形式:NOT LAD形式:| NOT |2).空操作指令NOP (No Operation) 该指令用在跳转指令结束处,或在调试程序中使用。其对用户程序的执行无影响,其LAD和STL形式如下。 STL形式:NOP N N的范围:0255 LAD形式:NOPN 二 程序控制指令 结束、停止、看门狗复位指令梯形图指令表操作数功能( END )( END )( WDR )( STOP )ENDMENDSTOPWDR无无无无有条件结束主程序无条件结束主程序暂停程序执行警戒时钟刷新 (1)有条件结束指令END:执行条件成立(左侧逻辑值为1)是结束主程序,返回到主程序的第

40、一条指令执行。在梯形图中该指令不能连接在左侧母线上、END只能用在主程序中,不能用在子程序和中断程序中。 (2)无条件结束指令MEND:无条件结束主程序,返回到主程序的第一条指令执行。在梯形图中该指令直接连接在左侧母线上。 (3)在允许输入有效时立即终止程序的执行,CPU的工作方式由运行(RUN)模式进入停止(STOP)模式。在中断程序中执行STOP指令,该中断立即终止,并忽略全部等待执行的中断,继续执行主程序的剩余部分,并在主程序结束时完成从运行模式到停止模式的转换。 (4)警戒时钟刷新指令WDR(看门狗复位指令):为了保证系统可靠运行,PLC内部都设置了系统监控定时器WDT,用于监控扫描周

41、期是否超时。当扫描到定时器WDT时,定时器WDT将复位。 定时器WDT有一个设定值(100300ms),系统正常工作时,所需扫描时间小于WDT的设定值,WDT被及时复位。 系统出现故障时,扫描时间大于WDT的设定值,WDT不能及时复位,则会出现报警并停止CPU运行,同时复位输入、输出。 这种故障称为WDT故障,以防止系统故障或程序进入死循环而引起扫描周期过长。 STOP和END指令通常在程序中用来对突发紧急事件进行处理。网络1 STOP、END、WDR使用举例SM5.0(STOP)I0.3网络2I0.5(END)网络3M0.4(WDR)LD SM5.0 / 检查I/O错误O SM4.3 / 运

42、行时检查编程O I0.3 / 外部切换开关STOP / 条件满足,由RUN切换到 / STOP方式LD I0.5 / 外部停止控制ENDLD M0.4 / 用触点重新触发WDR / 看门狗定时器图 结束、停止及看门狗指令举例SM4.3 跳转及标号指令 (1)跳转及标号指令概念 跳转指令使程序跳转到指定标号n处的程序分支执行。标号指令标记跳转目的地的位置n。 (2)跳转及标号指令nJMP nLBL n当输入端有效时,把程序的执行跳转到指定的标号处指定跳转的目标标号,操作数0244功 能梯形图指令表(JMP)nLBL(3)指令举例 手动与自动电路的转换 3JMP( )I0.0 LBL LBL34手

43、动程序( ) 4JMPI0.0自动程序LD I0.0JMP 3LBL 3LDN I0.0JMP 4LBL 4 /若I0.0为ON,跳转到LBL3处/执行“自动程序”/若I0.0为OFF,程序顺序执行/“手动程序”后,跳转到LBL4处 循环指令 (1)指令格式梯形图指令表说 明FORENINDXINITFINALENOFOR INDX,INIT,FINAL循环体开始EN:使能输入端INDX:循环计数器INIT:初值FINAL:终值( NEXT)NETX循环体结束操作数INDX:VW、T、C、IW、QW、MW、SMW、AC、*AC、*AD、SWINIT、FINAL :VW、T、C、IW、QW、MW

44、、SMW、AC、AIN、 常数、*AC、*AD、SW (2)指令工作过程 使能输入端(EN)有效,循环体开始执行,执行到NEXT指令时返回。每 执行一次循环体,当前计数器加1,达到终值(FINAL)时,结束循环。 (3)使用说明 (A)FOR和NEXT必须成对使用 (B)必须给FOR指令指定循环计数器(INDX)、初值(INIT)和 终值(FINAL)。 (C)FOR和NEXT之间的程序步称为循环体,每执行一次循环体,计数器加1,并将其结果与循环终止比较,如果大于终值则停止循环。 (D)FOR和NEXT指令可以嵌套,但最多嵌套8层,但各嵌套层不可交叉。 (E)如初值大于终值时,循环体不被执行。

45、 (4) 指令举例FORENINDXINITFINALENOFORENINDXINITFINALENOI0.0I0.1VW100+1100VW220+15(NEXT)(NEXT)12LD I0.0FOR VW100,1,100LD I0.1FOR VW220,1,5NEXTNEXT 子程序操作指令 (1) 子程序的概念:在程序的实际应用中,有些程序内容可能被反复使用,对这些被反复使用的程序可编成一个单独的程序块。执行程序时可随时调用这些程序块,这类程序块叫做子程序。(2)子程序操作指令梯形图指令表 功 能SBR-nENCALL SBR-n子程序调用( CRET)CRET子程序条件返回 数据范围

46、N:063(3) 指令使用说明 (A)主程序可以用CALL指令来调用一个子程序,该指令把程序控制权 交给子程序n。 (B)当执行子程序时,子程序将执行全部指令直至满足返回条件才返回,或执行到子程序末尾而返回。 (C)子程序返回时,返回到原主程序出口的下一条指令执行,继续往下扫描程序。 (D)在中断程序、子程序这可以调用子程序,但子程序不能调用自己。子程序的嵌套深度为8层。子程序的调用还可以带参数。CPU226XM:127 子程序调用指令举例SBR_0EN( )( )( )网络1 SBR_0I0.1Q0.0网络1 主程序网络2I0.2I0.3网络3CRETQ0.1/主程序LD I0.0 /当I0

47、.0=1时CALL SBR_0 /调用子程序SBR_0/子程序LD I0.1 = Q0.0LD I0.2 /当I0.2=1时CRET /立即返回主程序LD I0.3= Q0.1梯形图指令表 子程序返回指令无条件返回无条件返回(RET):用于子程序结束。:用于子程序结束。条件返回(条件返回(CRET):只能用于子程序内部。):只能用于子程序内部。4) .带参数的子程序调用子程序最多可以传递16个参数。参数在子程序的局部变量表加以定义。参数包含下列信息:变量名、变量类型和数据类型。变量名 变量名最多用8个字符表示,第一个字符不能是数字。变量类型 变量类型是按变量对应数据的传递方向来划分的,可以是传

48、入子 程序(IN)、传入和传出子程序 (IN/OUT)、传出子程序(OUT)和暂时变量(TEMP)等4种类型。4种变量类型的参数在变量表中的位置必须按照一定的先后顺序。数据类型 局部变量表中还要对数据类型进行声明。数据类型可以是:能流、布尔型、字节型、字型、双字型、整数型、双整数型和实型。常数参数必须声明数据类型。输入或输出参数没有自动数据类型转换功能。参数在调用时必须按一定的顺序排列。(1) 子程序参数(2) 参数子程序调用的规则(3) 变量表的使用按照子程序指令的调用顺序,参数值分配给局部变量存储器,起始地址是L0.0。使用编程软件时,地址分配是自动的。参数子程序调用指令格式:CALL 子

49、程序名,参数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地址参数名参数类型数据类型说明无L0.0LB1LW7LD3LB2.0ENIN1IN2IN3IN4IN/OUT1ININININ

50、ININ/OUTBOOLBOOLBOOLBYTEDWORDWORD指令使能输入参数第1个输入参数,布尔型第3个输入参数,布尔型第2个输入参数,字节型第4个输入参数,双字型第1个输入/输出参数,字型表 局部变量表返回&VB100LD9OUTDWORD第1个输出参数,双字型OUT16 与ENO指令ENO是LAD中指令盒的布尔能流输出端。如果指令盒的能流端有效,则执行没有错误,ENO就置位,并将能流向下传递。ENO可以作为允许位表示指令成功执行。STL指令没有EN输入,但对要执行的指令,其栈顶值必须为1。可用“与”ENO(AENO)指令来产生和指令盒中的ENO位相同的功能。指令格式:AENO

51、AENO指令无操作数,且只在STL中使用,它将栈顶值和ENO 位的逻辑进行与运算,运算结果保存到栈顶。AENO指令使用较少。AENO指令的用法如图5-27所示。图5-27 AENO 指令用法举例网络1 与ENO使用举例I0.0ADD_IENENATCHENOENOIN1IN2INTEVNTINT_010VW204VW200VW204LD I0.0 /使能输入+I VW200,VW204 /整数加法,VW200+VW204=VW204AENO /与ENO指令ATCH INT_0,10 /如果+I指令执行正确,则调用中断程序 INT_0,中断事件号为10返回三 编程语言及程序结构 IEC 1131

52、-3指令集支持完全数据检查梯形图(LAD)功能块图(FBD)不支持完全数据检查梯形图(LAD)功能块图(FBD)语句表(STL)SIMATIC指令集 S7200的指令集 梯形图(LAD):由触点、线圈或功能块组成。梯形图左边一条竖线称为左母线,右边一条称为右母线(在S7-200中省略)。触点代表逻辑输入条件,线圈代表逻辑输出结果,功能块用来表示定时器、计数器或数学运算等附加指令。梯形图中编程元件的“动合”或“动断”其本质是PLC内部某一存储器数据“位”的状态;线圈代表CPU对存储器的写操作;连线代表指令处理的顺序关系(从左到右,从上到下)。梯形图流向清楚、简单、直观、易懂,很适合电气工程人员使

53、用。是第一用户语言。组成元素含义代表元件触点线圈输入条件输出结果功能块附加指令开关、按钮、内部条件外部负载或内部输出定时器、计数器及隔着运算( )5INPTTONT33I0.0T33M0.0M0.0I0.0常开触点常闭触点输出线圈功能块梯形图左母线 能流:假想的电流,从左到右,从上到下。触点导通“能流”通过,触点断开,“能流”不能通过。主要用来分析PLC的控制过程。 网络:触点和线圈构成的具有独立功能的电路。T33INPTTONnetwork1300( )Q0.0T33I0.2network2梯形图网络1网络2注释延时输出网络编号:PLC是通过网络编号来识别网络的 语句表(STL):是利用助记

54、符来表达PLC的各种控制功能的。类似于计算机的汇编语言,直观、易懂、简单,一般与梯形图语言配合使用。熟悉PLC和逻辑编程的有经验的程序员最适合使用语句表编程。但注意不同厂家的PLC语句表使用的助记符是不相同的。 S7-200 系列PLC的程序结构 S7-200 系列PLC的程序由三部分组成:用户程序 + 数据块 + 参数块 用户程序是必选项,可以管理其他块。用户程序由三个基本元素构成: 主程序子程序1子程序m中断程序1中断程序n程序结构图主程序:主程序是程序的主体,每个项目都必须有并只能有一个主程序。在主程序中可以调用子程序和中断程序。主程序控制整个程序的执行,每次CPU扫描都要执行一次主程序

55、。子程序:子程序是一个可选的指令集合,仅在被其他程序调用时才执行。同一子程序可在不同的地方被多次调用,使用子程序可以简化程序和减少扫描时间。中断程序:中断程序是指令的一个可选集合,中断程序不是被主程序调用,它们在中断事件发生时由PLC的操作系统调用。中断程序用来处理预先规定的中断事件,应为不能预指中断事件何时发生,因此不允许中断程序改写可能在其他程序中使用的存储器。主程序 + 子程序(可选)+ 中断程序(可选)四 、编程注意事项1 .梯形图编程的基本规则 梯形图编程的基本规则如下: (1)PLC内部元器件触点的使用次数是无限制的。 (2)梯形图的每一行都是从左边母线开始,然后是各种触点的逻辑连

56、接,最后以线圈或指令盒结束。触点不能放在线圈的右边。线圈连接时必须用并联,不能出现串联形式。如图 所示。但如果是以有能量传递的指令盒结束的指令,可以使用AENO指令在其后面连接指令盒(较少使用),如图 所示。返回 如需要的话可通过特殊的中间继电器SM0.0(常ON特殊中间继电器)完成,如图 所示。 双线圈输出非常容易引起误动作,所以应避免使用。S7-200PLC中不允许双线圈输出。如图 所示。 ( )( )M0.0M0.0I0.0I0.1在LAD中应正确选择设备所连的输入继电器的触点类型,使用常开触点还是常闭触点与外部触点有关。如图 所示I0.0I0.1Q0.0PLC+24V( )I0.0I0

57、.1Q0.0Q0.0LLN启动启动停止停止I0.0I0.1Q0.0PLC+24V( )I0.0I0.1Q0.0Q0.0LLN启动启动停止停止图图 535(7) (9) 图5-34所示为梯形图的推荐画法。2. LAD和STL编程形式的区别 利用PLC指令对梯形图编程时,可以把整个梯形图程序看成由很多网络块组成,每个网络块均起始于母线。所有的网络块组合在一起就是梯形图程序,这是S7-200PLC的特点。LAD程序可以通过编程软件直接转换为STL形式。S7-200PLC用STL编程时,如果也以每个独立的网络块为单位,则STL程序和LAD程序基本上是一一对应的,而且两者可以通过编程软件相互转换;如果不

58、以每个独立的网络块为单位编程,而是连续编写,则STL程序和LAD程序不能通过编程软件相互转换。大家在使用时要注意。 LAD是使用最多的编程语言,它非常直观易懂,对每个人都适用;特别老练的人在某些情况下会直接使用STL形式编程,用STL形式编写的程序简短,但不直观。 但不管怎么说,大家对这两种形式的程序都应该熟悉。特别是会用手工把一个LAD程序转换为STL程序,这对进一步理解PLC程序执行的原理有很大的帮助。下面的一个典型例子说明了从LAD到STL的转换步骤。 对每一个独立的LAD网络块中的程序,可分成若干小块,对每个小块按照从左到右,从上到下的原则进行编程。然后将程序块连接起来,就完成了该网络

59、块的STL编程。图 5-35 详细介绍了语句表编程的步骤。四、典型的简单电路编程四、典型的简单电路编程 1 延时脉冲产生电路延时脉冲产生电路 2 瞬时接通瞬时接通/延时断开电路延时断开电路 3 延时接通延时接通/延时断开电路延时断开电路 4 脉冲宽度可控制电路脉冲宽度可控制电路 5 计数器的扩展计数器的扩展 6 长定时电路长定时电路 7 闪烁电路闪烁电路 8 报警电路报警电路 9 抢答器电路抢答器电路10 多个传送带控制示例多个传送带控制示例 1. 延时脉冲产生电路延时脉冲产生电路 在有输入信号后,停一段时间产生一个脉冲。在有输入信号后,停一段时间产生一个脉冲。主要用于获取启动或关断信号。主要

60、用于获取启动或关断信号。电路的程序及时序电路的程序及时序2 瞬时接通瞬时接通/延时断开电路延时断开电路 在输入信号有效时,马上有输出,而输入信号在输入信号有效时,马上有输出,而输入信号OFF后,输出信号延时后才后,输出信号延时后才OFF.电路的程序及时序电路的程序及时序3. 延时接通延时接通/延时断开电路延时断开电路该电路要求有信号输入后,停一段时间输出信号才该电路要求有信号输入后,停一段时间输出信号才为为ON,而输入信号,而输入信号OFF后,输出信号延时一段时间后,输出信号延时一段时间才才OFF.电路的程序及时序电路的程序及时序4. 脉冲宽度可控制电路脉冲宽度可控制电路在输入信号宽度不规范的情况下,要求每一

温馨提示

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

评论

0/150

提交评论