首页 理论教育 S7-200系列PLC基本指令解析及应用

S7-200系列PLC基本指令解析及应用

时间:2023-06-27 理论教育 版权反馈
【摘要】:S7-200 PLC的指令丰富,软件功能强。2)并联的“=”指令可连续使用任意次。T和C也作为输出线圈,但在S7-200 PLC中输出时不是以使用“=”指令形式出现。S7-200 PLC的编程软件中规定的串联触点使用上限为11个。表4-27 立即指令的名称和使用说明立即指令的用法如图4-58所示。这是PLC使用率最高的一些基本指令,现列表于表4-28中,供读者对比分析记忆,灵活选择使用。

S7-200系列PLC基本指令解析及应用

S7-200 PLC的指令丰富,软件功能强。它可以使用56条基本的逻辑处理指令、27条数字运算指令、11条定时器/计数器指令、4条实时时钟指令、84条其他应用指令,总计指令数多达182条。但限于本书篇幅,这里只介绍机床控制中最常用的基本指令,有关功能指令及特殊功能指令等仅给出其概述列表,没做详尽介绍,使用时再查阅相关使用手册进行详尽开发应用。

1.S7-200 PLC的基本逻辑指令

(1)逻辑取和线圈驱动指令(3条)逻辑取和线圈驱动指令为LD、LDN和=。

LD(Load):取指令。用于网络块逻辑运算开始的常开触点与左母线的连接。

LDN(Load Not):取反指令。用于网络块逻辑运算开始的常闭触点与左母线的连接。

=(out):线圈驱动指令。LD、LDN和=三条指令的用法如图4-53所示。

使用说明:

1)LD、LDN指令不仅是用于网络块逻辑运算开始时与左母线相连的常开和常闭触点,在分支电路块的开始也要使用LD、LDN指令(与后面要讲解的ALD、OLD指令配合使用)。

2)并联的“=”指令可连续使用任意次。

3)在同一程序中不能使用双线圈输出,即同一个元器件在同一程序中只能使用一次“=”指令。

4)LD、LDN、=指令的操作数为I、Q、M、SM、T、C、V、S和L。T和C也作为输出线圈,但在S7-200 PLC中输出时不是以使用“=”指令形式出现(见定时器和计数器指令)。

(2)触点串联指令(2条)触点串联指令为A、AN。

A(AND):“与”指令。用于单个常开触点的串联连接。

AN(And Not):“与反”指令。用于单个常闭触点的串联连接。

978-7-111-39187-6-Chapter04-86.jpg

图4-53 LD、LDN和=三条指令的用法

a)梯形图 b)助记符

A、AN两条指令的用法如图4-54所示。

978-7-111-39187-6-Chapter04-87.jpg

图4-54 A、AN两条指令的用法

a)梯形图 b)助记符

使用说明:

1)A、AN是单个触点串联连接指令,可连续使用。S7-200 PLC的编程软件中规定的串联触点使用上限为11个。

2)图4-54所示的连续输出电路,可以反复使用“=”指令,但次序必须正确,不然就不能连续使用“=”指令编程了,如图4-55所示。

3)A、AN指令的操作数为I、Q、M、SM、T、C、V、S和L。

(3)触点并联指令(2条)触点并联指令为O、ON。

O(OR):“或”指令。用于单个常开触点的并联连接。

978-7-111-39187-6-Chapter04-88.jpg

图4-55 不能连续使用“=”指令的例子

a)梯形图 b)助记符

ON(OrNot):“或反”指令。用于单个常闭触点的并联连接。

O、ON两条指令的用法,如图4-56所示。

978-7-111-39187-6-Chapter04-89.jpg

图4-56 O、ON两条指令的用法

a)梯形图 b)助记符

使用说明:

1)单个触点的O、ON指令可连续使用。

2)O、ON指令应从上个相并联接点的左端开始,到上个相并联接点的右端结束。

3)O、ON指令的操作数为I、Q、M、SM、T、C、V、S和L。

(4)置位(Set,S)、复位(Reset,R)指令(2条)置位/复位指令的LAD和STL形式以及功能见表4-26。

表4-26 置位/复位指令的LAD和STL形式以及功能

978-7-111-39187-6-Chapter04-90.jpg

置位/复位指令的用法如图4-57所示。

978-7-111-39187-6-Chapter04-91.jpg

图4-57 置位/复位指令的用法

a)梯形图 b)助记符 c)时序图

使用说明:

1)对位元件来说一旦被置位,就保持在通电状态,除非对它复位;而一旦复位就保持在断电状态,除非再对它置位。

2)置位/复位指令可以互换次序使用,但由于PLC采用扫描工作方式,所以写在后面的指令具有优先权(即后面的一条指令会对前面的指令进行覆盖)。如图4-57中,只要I0.1为1(不管I0.0是什么),则Q0.0、Q0.1就处于复位状态而为0。

3)如果对计数器和定时器复位,则计数器和定时器的当前值被清零。

4)N的常数范围为1~244,N也可为VB、IB、QB、MB、SMB、SB、LB、AC、常数、∗VD、∗AC和∗LD。一般情况下使用常数。

5)置位/复位指令的操作数为I、Q、M、SM、T、C、V、S和L。

(5)立即指令(9条)立即指令是为了提高PLC对输入输出的响应速度而设置的,它不受PLC循环扫描工作方式的影响,允许对输入和输出点进行快速直接存取。当用立即指令读取输入点的状态时,对I进行操作,相应的输入映像寄存器中的值并不更新;当用立即指令访问输出点时,对Q进行操作,新值同时写到PLC的物理输出点和相应的输出映像寄存器。

立即指令的名称和使用说明见表4-27。

表4-27 立即指令的名称和使用说明

978-7-111-39187-6-Chapter04-92.jpg

立即指令的用法如图4-58所示。

978-7-111-39187-6-Chapter04-93.jpg

图4-58 立即指令的用法

a)梯形图 b)助记符 c)时序图

在理解本例的过程中,一定要注意哪些地方使用了立即指令,哪些地方没有使用立即指令,要理解输出物理触点和相应的输出映像寄存器是不一样的概念,并且要结合PLC工作方式的原理来看时序图。图4-58中,t为执行到输出点处程序所用的时间,Q0.0、Q0.1、Q0.2的输入逻辑是I0.0的普通常开触点。Q0.0为普通输出,在程序执行到它时,它的映像寄存器的状态会随着本扫描周期采集到的I0.0状态的改变而改变,而它的物理触点要等到本扫描周期的输出刷新阶段才改变;Q0.1、Q0.2为立即输出,在程序执行到它们时,它们的物理触点和映像寄存器同时改变;而对Q0.3来说,它的输入逻辑是I0.0的立即触点,所以在程序执行到它时,Q0.3的映像寄存器状态会随着I0.0即时状态的改变而立即改变,而它的物理触点要等到本扫描周期的输出刷新阶段才改变。

归纳总结上述单接点指令(6条)、立即接点指令(6条)、输出/置位/复位(3条)和立即输出/立即置位/立即复位(3条)指令,一共18条。这是PLC使用率最高的一些基本指令,现列表于表4-28中,供读者对比分析记忆,灵活选择使用。

表4-28 最常用的18条单接点和线圈指令

978-7-111-39187-6-Chapter04-94.jpg

(续)

978-7-111-39187-6-Chapter04-95.jpg

(6)逻辑堆栈操作指令(6条)堆栈是一组能够存储和取出数据的暂存单元,堆栈中的数据一般按“先进后出”的原则存取。S7-200使用一个9层堆栈来处理所有逻辑操作,它和计算机中的堆栈结构相同,栈顶用来存储逻辑运算的结果,下面的8位用来存储中间运算结果(见图4-59)。每一次进行入栈操作,新值放入栈顶,栈底值丢失;每一次进行出栈操作,栈顶值弹出,栈底值补进随机数。表4-29为逻辑堆栈结构。

978-7-111-39187-6-Chapter04-96.jpg

图4-59 S7-200堆栈示意图

表4-29 逻辑堆栈结构

978-7-111-39187-6-Chapter04-97.jpg

在简单梯形图逻辑电路图触点的串、并联操作中,执行LD指令时,将指令指定的位地址中的二进制数据装载入栈项。执行A(与)指令时,将指令指定的位地址中的二进制数和栈顶中的二进制数相“与”,结果存入栈顶。执行O指令时,将指令指定的位地址中的二进制数和栈顶中的二进制数相“或”,结果存入栈顶。在语句表指令系统中,其触点的串、并联关系可以用简单的与、或、非逻辑关系描述。

但在较复杂梯形图的逻辑电路图中,梯形图无特殊指令,绘制非常简单,但触点的串、并联关系不能全部用简单的与、或、非逻辑关系描述。语句表指令系统中设计了电路块的与操作指令、电路块的或操作指令(电路块指以LD为起始的触点串、并联网络)、逻辑入栈指令LPS、逻辑读栈指令LRD、逻辑出栈指令LPP、装载堆栈LDS n等解决此类问题。

西门子公司的系统手册中把ALD、OLD、LPS、LRD、LPP和LDS等指令都归纳入为堆栈指令,见表4-30。

表4-30 S7-200的堆栈指令

978-7-111-39187-6-Chapter04-98.jpg

1)电路块连接指令(2条)

①串联电路块的并联连接指令。两个以上触点串联形成的支路叫串联电路块(或称串联电路分支)。

串联电路块(分支)的并联连接指令为OLD。其指令无操作数。

OLD(OrLoad):或块指令。用于串联电路块(分支)的并联连接。

OLD指令的用法如图4-60所示。

使用说明:

a)除在网络块逻辑运算的开始(左母线上)使用LD和/或LDN指令外,在块电路的开始(分支母线上)也要使用LD和/或LDN指令。

b)可以依次使用OLD指令并联多个串联逻辑块,每完成一次块电路的并联时都要写上OLD指令。

c)OLD指令无操作数。

②并联电路块的串联连接指令。两条以上支路并联形成的电路叫并联电路块。

并联电路块的串联连接指令为ALD。其指令无操作数。

ALD(AndLoad):与块指令。用于并联电路块的串联连接。

ALD指令的用法如图4-61所示。

978-7-111-39187-6-Chapter04-99.jpg

图4-60 OLD指令的用法

a)梯形图 b)助记符

978-7-111-39187-6-Chapter04-100.jpg

图4-61 ALD指令的用法

a)梯形图 b)助记符

使用说明:

a)除在网络块逻辑运算的开始(左母线上)使用LD和/或LDN指令外,在块电路的开始(分支母线上)也要使用LD和/或LDN指令。

b)可以依次使用ALD指令串联多个并联逻辑块,每完成一次块电路的串联连接时都要写上ALD指令。

c)ALD指令无操作数。

③OLD和ALD指令的逻辑操作。触点的串/并联指令只能将单个触点与其他触点或电路串/并联。要想将图4-62中由I3.2和T16的触点组成的串联电路与它上面的电路并联,首先需要完成两个串联电路块的内部“与”逻辑运算(即触点的串联),这两个电路块分别用LDN和LD指令表示电路块的起始触点。前两条指令执行完后,“与”运算的结果978-7-111-39187-6-Chapter04-101.jpg存放在栈顶,第3、4条指令执行完后,“与”运算的结果978-7-111-39187-6-Chapter04-102.jpg压入栈顶,原来在栈顶的S0被推到堆栈的第2层,第2层的数据被推到第3层,……,栈底的数据丢失。OLD指令用逻辑“或”操作对堆栈第l层和第2层的数据相“或”,即将两个串联电路块并联,并将运算结果S2=S0+S1存入堆栈的顶部,第3~9层中的数据依次向上移动一位。

图4-62中OLD后面的两条指令将两个触点并联,运算结果978-7-111-39187-6-Chapter04-103.jpg被压入栈顶,堆栈中原来的数据依次向下一层推移,栈底值被推出丢失。ALD指令用逻辑“与”操作对堆栈第1层和第2层的数据相“与”,即将两个电路块串联,并将运算结果S4=S2·S3存入堆栈的顶部,第3~9层中的数据依次向上移动一位。

978-7-111-39187-6-Chapter04-104.jpg

图4-62 OLD和ALD指令的逻辑操作

将电路块串/并联时,每增加一个用LD或LDN指令开始的电路块内部的运算结果,堆栈中就增加一个数据,堆栈深度加1;每执行一条ALD或0LD指令,堆栈深度就减1。

梯形图和功能块图编辑器自动地插入处理栈操作所需要的指令。在语句表中,必须由编程人员加入这些堆栈处理指令。

2)逻辑入栈LPS、逻辑读栈LRD和逻辑出栈LPP指令(3条)。这三条指令也称为多重输出指令,主要用于多个分支电路同时受一个或一组触点控制的复杂逻辑输出处理。

①逻辑入栈指令LPS(分支电路开始指令)。从梯形图的分支结构中可以形象地看出,它用于生成一条新的母线,其左侧为原来的“主”逻辑块,右侧为新的“从”逻辑块,因此可以直接编程。从堆栈使用的角度来讲,LPS指令的作用是把栈顶值复制后压入堆栈保存起来,防止丢失,以备恢复再用。

②逻辑读栈指令LRD。在梯形图分支结构中,当新母线左侧为“主”逻辑块时,LPS开始右侧的第一个“从”逻辑块编程,LRD开始第二个以后的“从”逻辑块编程。从堆栈使用的角度来讲,LRD指令的作用是只读取最近LPS压入堆栈的内容,即恢复最近保存的内容供编程使用;而堆栈本身不进行Pusn和Pop工作,即LPS压入堆栈的内容仍继续保存着没丢失,以备继续恢复再用。

③逻辑出栈指令LPP(分支电路结束指令)。在梯形图分支结构中,LPP用于LPS产生的新母线右侧的最后一个“从”逻辑块编程,它在读取完离它最近LPS压入堆栈内容的同时取消该条新母线。从堆栈使用的角度来讲,LPP把堆栈弹出一级,堆栈内存依次上移,即将LPS压入堆栈保存的内容弹出,不需要再保存了。

上述三条指令的用法如图4-63~图4-65所示。

使用说明:

a)逻辑入栈LPS、逻辑读栈LRD和逻辑出栈LPP指令可以嵌套使用,但受堆栈空间的限制,最多只能使用9次。

b)LPS和LPP必须成对出现,它们之间根据需要可以插入使用LRD指令。

c)LPS、LRD、LPP指令无操作数。

3)装载堆栈指令LDS n(Load Stack)(1条)。它的功能是复制堆栈中的第n个值到栈顶,而栈底值丢失。该指令在编程中使用较少。

指令格式:LDS n(n为0~8的整数)

例如,执行指令:LDS3。该指令使用说明见表4-31。

978-7-111-39187-6-Chapter04-105.jpg

图4-63 LPS、LRD、LPP三条指令的用法举例(一级堆栈)

a)梯形图 b)助记符

978-7-111-39187-6-Chapter04-106.jpg

图6-64 LPS、LRD、LPP三条指令的用法举例(二级嵌套)

a)梯形图 b)助记符

978-7-111-39187-6-Chapter04-107.jpg

图4-65 LPS、LRD、LPP三条指令的用法举例(多级嵌套)

a)梯形图 b)助记符

表4-31 LDS指令使用说明

978-7-111-39187-6-Chapter04-108.jpg

4)LPS、LRD、LPP、LDS的堆栈操作。LPS、LRD、LPP、LDS的堆栈操作如图4-66所示。

978-7-111-39187-6-Chapter04-109.jpg

图4-66 LPS、LRD、LPP、LDS的堆栈操作

(7)RS触发器指令(2条)RS触发器指令在编程软件Micro/WIN32V3.2版本中才有。它包括两条指令:

1)SR(SetDominantBistable):置位优先触发器指令。当置位信号(S1)和复位信号(R)都为1时,输出为1。

2)RS(ResetDominantBistable):复位优先触发器指令。当置位信号(S)和复位信号(R1)都为1时,输出为0。

RS触发器指令的梯形图程序和真值表见表4-32。bit参数用于指定被置为或者被复位的BOOL参数。

表4-32 RS触发器指令的梯形图程序和真值表

978-7-111-39187-6-Chapter04-110.jpg

RS触发器指令的用法如图4-67所示。

978-7-111-39187-6-Chapter04-111.jpg

图4-67 RS触发器指令的用法

a)梯形图 b)波形图

使用说明:

①触发器指令的语句表形式比较复杂,常使用梯形图形式。

②符号978-7-111-39187-6-Chapter04-112.jpg表示输出是一个可选的能流,可以级联或串联。

③S、R1、S1、R、OUT端的操作数包括I、Q、M、SM、T、C、V、S、L和能流。

④bit端的操作数为I、Q、V、M和S。

电动机启动的触发器指令程序如图4-68所示。由图可知,按下启动按钮I0.0,在I0.0信号的上升沿置位S1端为1,Q0.0得电,电动机开始运行;按下停止按钮I0.1,复位R端为1,Q0.0断电,电动机停止运行。

(8)边沿脉冲指令(2条)边沿脉冲指令为EU(Edge Up)、ED(Edge Down)。

边沿脉冲指令的使用及说明见表4-33。

978-7-111-39187-6-Chapter04-113.jpg

图4-68 电动机启动的触发器指令程序

表4-33 边沿脉冲指令的使用及说明

978-7-111-39187-6-Chapter04-114.jpg

边沿脉冲指令EU、ED的用法如图4-69所示。

978-7-111-39187-6-Chapter04-115.jpg

图4-69 边沿脉冲指令EU、ED的用法

a)梯形图 b)助记符 c)时序图

使用说明:

①EU、ED指令只有在输入信号发生变化时才有效,其输出信号的脉冲宽度为一个机器扫描周期。其作用是把一个长电平输入信号变成一个窄脉冲输出信号,常用于启动及关断条件的判定以及配合功能指令完成一些逻辑控制任务。

②对于开机时就为接通状态的输入条件,EU指令不被执行

③EU、ED指令无操作数。

(9)定时器指令(3条)定时器是PLC中最常用的元器件之一。用好、用对定时器对PLC程序设计非常重要。定时器编程时要预置定时值,在运行过程中当定时器的输入条件满足时,当前值从0开始按一定的单位增加;当定时器的当前值到达设定值时,定时器发生动作,从而满足各种定时逻辑控制的需要。下面从几个方面来详细介绍定时器的使用。

1)几个基本的概念

①种类。S7-200 PLC为用户提供了3种类型的定时器:接通延时定时器(TON)、有记忆接通延时定时器(TONR)和断开延时定时器(TOF)。

分辨率与定时时间的计算。单位时间的时间增量称为定时器的分辨率(时基)。S7-200PLC定时器有3个分辨率等级:1ms、10ms和100ms。

定时器定时时间T的计算:T=PT×S。式中:T为实际定时时间,PT为设定值,S为分辨率。例如:TON指令使用T97(为10ms的定时器),设定值为100,则实际定时时间为

T=100×10ms=1000ms

定时器的设定值PT,数据类型为INT型。操作数可为VW、IW、QW、MW、SW、SMW、LW、AIW、T、C、AC、∗AC、∗LD和常数,其中常数最为常用。

③定时器的编号。定时器的编号用定时器的名称和它的常数编号(最大数为255)来表示,即T×××,如T40。

定时器的编号包含两方面的变量信息:定时器位和定时器当前值。

定时器位:与其他继电器的输出相似,当定时器的当前值达到定时值PT时,定时器的触点动作。

定时器当前值:存储定时器当前所累计的时间,它用16位符号整数来表示,最大计数值为32767。

定时器的分辨率和编号见表4-34。

表4-34 定时器的分辨率和编号

978-7-111-39187-6-Chapter04-116.jpg

从表4-34可以看出,TON和TOF使用相同范围的定时器编号。需要注意的是,在同一个PLC程序中绝不能把同一个定时器号同时用做TON和TOF。例如在程序中,不能既有接通延时(TON)定时器T32,又有断开延时(TOF)定时器T32。

2)定时器指令使用说明

①接通延时定时器TON(On-Delay Timer)。接通延时定时器用于单一时间间隔的定时。上电周期或首次扫描时,定时器作为OFF,当前值为0。输入端接通时,定时器位为OFF,当前值从0开始计时,当前值达到设定值时,定时器位为ON,当前值仍连续计数到32767。输入端断开,定时器自动复位,即定时器位为OFF,当前值为0。接通延时定时器程序与时序图如图4-70所示。

②断开延时定时器TOF(Off-Delay Timer)。断开延时定时器用于断电后的单一间隔时间计时。上电周期或首次扫描时,定时器位为OFF,当前值为0。输入端接通时,定时器位为ON,当前值为0。当输入端由接通到断开时,定时器开始计时。当达到设定值时定时器为OFF,当前值等于设定值,停止计时。输入端再次由OFF→ON时,TOF复位,这时TOF的位为ON,当前值为0。如果输入端再从ON→OFF,则TOF可实现再次启动。断开延时定时器程序与时序图如图4-71所示。

978-7-111-39187-6-Chapter04-117.jpg

图4-70 接通延时定时器程序与时序图

a)梯形图程序及指令表 b)时序图

978-7-111-39187-6-Chapter04-118.jpg

图4-71 断开延时定时器程序与时序图

a)梯形图程序及指令表 b)时序图

③记忆接通延时定时器TONR(Retentive On-Delay Timer)。记忆接通延时定时器具有记忆功能,它用于对许多间隔的累计定时。上电周期或首次扫描时,定时器为OFF,当前值保持在掉电前的值。当输入端接通时,当前值从上次的保持值继续计时;当累计当前值达到设定值时,定时器位为ON,当前值可继续计数到32767。需要注意的是,TONR定时器只能用复位指令R对其进行复位操作。TONR复位后,定时器位为OFF,当前值为0。掌握好对TONR的复位及启动是使用TONR指令的关键。记忆接通延时定时器程序与时序图如图4-72所示。

978-7-111-39187-6-Chapter04-119.jpg

图4-72 记忆接通延时定时器程序与时序图

a)梯形图程序及指令表 b)时序图

3种定时器指令的LAD、STL格式及功能见表4-35。

表4-35 3种定时器指令的LAD、STL格式及功能

978-7-111-39187-6-Chapter04-120.jpg

使用说明:

a)T×××表示定时器号,IN表示输入端,PT端的取值范围是1~32767。

b)接通延时定时器输入电路断开时,定时器自动复位,即当前值被清零,定时器位变为OFF。

c)TON与TOF指令不能共用同一个定时器号,即在同一程序中,不能对同一个定时器同时使用TON与TOF指令。

d)断开延时定时器TOF可以用复位指令进行复位。

e)保持型接通延时定时器只能用复位指令进行复位,即当前值被清零,定时器位变为OFF。

f)保持型接通延时定时器可实现累计输入端接通时间的功能。

g)结合时序图分析程序,有助于更好地理解定时器指令的应用。

3)应用举例。使用定时器控制电动机正/反转的梯形图程序如图4-73所示。其工作过程如下:

按下系统总启动按钮I1.0,系统启动。如果先按下正转启动按钮I0.1,定时器T37开始得电计时,2s后Q0.1得电,电动机开始正转;如果先按下反转启动按钮I0.2,定时器T38开始得电计时,2s后Q0.2得电,电动机开始反转;程序中M0.1和M0.2线圈起自锁作用,保证定时器输入端接通。

978-7-111-39187-6-Chapter04-121.jpg

图4-73 使用定时器控制电动机正/反转的梯形图程序

4)定时器的刷新方式和正确使用

①定时器的刷新方式。在S7-200系列PLC的定时器中,1ms、10ms、100ms定时器的刷新方式是不同的,从而在使用方法上也有很大的不同。这和其他PLC是有很大区别的。使用时一定要注意根据使用场合和要求来选择定时器。

a)1ms定时器。1ms定时器由系统每隔1ms刷新一次,与扫描周期及程序处理无关。它采用的是中断刷新方式。因此,当扫描周期大于1ms时,在一个周期中可能被多次刷新。其当前值在一个扫描周期内不一定保持一致。

b)10ms定时器。10ms定时器由系统在每个扫描周期开始时自动刷新,由于是每个扫描周期只刷新一次,故在一个扫描周期内定时器位和定时器的当前值保持不变。

c)100ms定时器。100ms定时器在定时器指令执行时被刷新,因此,如果100ms定时器被激活后,不是每个扫描周期都执行定时器指令或在一个扫描周期内多次使用定时器指令,则都会造成计时失准,所以在后面讲到的跳转指令和循环指令段中使用定时器时,要格外小心。100ms定时器仅用在定时器指令在每个扫描周期执行一次的程序中。

②定时器的正确使用。图4-74所示为正确使用定时器的一个例子。它用来在定时器计时时间到时产生一个宽度为一个扫描周期的脉冲。

结合各种定时器的刷新方式规定,从图中可以看出:

a)对1ms定时器T32,在使用错误方法时,只有当定时器的刷新发生在T32的常闭触点执行以后到T32的常开触点执行以前的区间时,Q0.0才能产生宽度为一个扫描周期的脉冲,而这种可能性是极小的。在其他情况,这个脉冲产生不了。

b)对10ms定时器T33,在使用错误方法时,Q0.0永远也产生不了这个脉冲。因为定时器计时到时,定时器在每次扫描开始时刷新。该例中T33被置位,但执行到定时器指令时,定时器将被复位(当前值和位都被置0)。当常开触点T33被执行时,T33永远为OFF,Q0.0也将为OFF,即永远不会被置位为ON。

978-7-111-39187-6-Chapter04-122.jpg

图4-74 定时器正确使用举例

a)1ms定时器的使用 b)10ms定时器的使用 c)100ms定时器的使用

c)100ms定时器在执行指令时刷新,所以当定时器T37到达设定值时,Q0.0肯定会产生这个脉冲。改用正确使用方法后,把定时器到达设定值产生结果的元器件的常闭触点用作定时器本身的输入,则不论哪种定时器,都能保证定时器达到设定值时,Q0.0产生宽度为一个扫描周期的脉冲。所以,在使用定时器时,要弄清楚定时器的分辨率,否则,一般情况下不便把定时器本身的常闭触点作为自身复位条件。在实际使用中,为了简单,100ms的定时器常采用自复位逻辑,而且100ms定时器也是使用最多的定时器。

(10)计数器指令(3条)计数器用来累计输入脉冲的次数,在实际应用中用来对产品进行计数或完成复杂的逻辑控制任务。计数器的使用和定时器基本相似,编程时输入它的计数设定值,计数器累计它的脉冲输入端信号上升沿的个数。当计数达到设定值时,计数器发生动作,以便完成计数控制任务。

1)几个基本概念

①种类。S7-200系列PLC的计数器有3种:加(增)计数器CTU、减计数器CTD和加减计数器CTUD。

②编号。计数器的编号用计数器名称和数字(0~255)组成,即C×××,如C60。

计数器的编号包含两方面的信息:计数器的位和计数器当前值。

计数器位:计数器位和继电器一样是一个开关量,表示计数器是否发生动作的状态。当计数器的当前值等于设定值时,该位被置位为1。

计数器当前值:其值是一个存储单元,它用来存储计数器当前所累计的脉冲个数,用16位符号整数来表示,最大值为32767。

③计数器的输入端和操作数。设定值输入的数据类型为INT型。寻址范围为VW、IW、QW、MW、SW、SMW、LW、AIW、T、C、AC、∗VD、∗AC、∗LD和常数。一般情况下使用常数作为计数器的设定值。

2)计数器指令使用说明

①加计数器CTU(Count Up)。首次扫描时,计数器位为OFF,当前值为0。在计数脉冲输入端CU的每个上升沿,计数器计数1次,当前值增加一个数值。当前值达到设定值时,计数器位为ON,当前值可继续计数到32767后停止计数。当复位输入端有效或对计数器执行复位指令时,计数器自动复位,即计数器位为OFF,当前值为0。加计数程序与时序图如图4-75所示。

978-7-111-39187-6-Chapter04-123.jpg

图4-75 加计数程序与时序图

a)梯形图程序及指令表 b)时序图

②减计数器CTD(Count Down)。首次扫描时,计数器位为OFF,当前值为预设定值PV。在计数脉冲输入端CD的每个上升沿计数器计数1次,当前值减小一个数值。当前值减小到0时,计数器位置位为1(ON),其后一直为1。当复位输入端有效或对计数器执行复位指令时,计数器自动复位,即计数器位为OFF,当前值为设定值PV。减计数程序与时序图如图4-76所示。

③加/减计数器CTUD(Count Up/Down)。加/减计数器有两个计数脉冲输入端:CU输入端用于递增计数,CD输入端用于递减计数。首次扫描时,计数器位为OFF,当前值为0。CU输入的每个上升沿,都使计数器当前值增加一个数值。CD输入的每个上升沿,都使计数器当前值减小一个数值。当前值达到设定值时,计数器位置位为1(ON)。

加/减计数器当前值计数到32767(最大值)时,下一个CU输入的上升沿将使当前值跳变为最小值(-32767);当前值达到最小值-32767后,下一个CD输入的上升沿将使当前值跳变为最大值32767。复位输入端有效或只用复位指令对计数器执行复位操作后,计数器自动复位,即计数器位为OFF,当前值为0。加/减计数据程序与时序图如图4-77所示。

978-7-111-39187-6-Chapter04-124.jpg

图4-76 减计数程序与时序图

a)梯形图程序及指令表 b)时序图

978-7-111-39187-6-Chapter04-125.jpg

图4-77 加/减计数据程序与时序图

a)梯形图程序及指令表 b)时序图

3种计数器指令的LAD、STL格式及功能见表4-36。

表4-36 3种计数器指令的LAD、STL格式及功能

978-7-111-39187-6-Chapter04-126.jpg

使用说明:

a)3种计数器号的范围都是0~255,设定值PV端的取值范围都是1~32767。

b)可以使用复位指令对计数器进行复位。

c)减计数器的装载输入端LD为ON时,计数器位被复位,设定值被装入当前值;对于加计数器与加减计数器,当复位输入端R为ON或执行复位指令时,计数器位被复位。

d)对于加减计数器,当前值达到最大值32767时,下一个CU的正跳变将使当前值变为最小值-32767;反之亦然。

e)结合时序图分析程序,有助于更好地理解计数器指令的应用。

3)应用举例。用计数器扩大定时器的定时范围,如图4-78所示。

978-7-111-39187-6-Chapter04-127.jpg

图4-78 用计数器扩大定时器的定时范围

a)梯形图 b)时序图

开始时I0.2断开,T37复位不计时,其当前值变为0,PT值设定为3000(0.1s×3000=300s=5min)。当I0.2接通并保持时,T37线圈通电开始计时,当其当前值等于设定值3000,即300s的定时时间到时,T37位被置1,其常闭触点断开,使T37复位,当前值变为0,同时常闭触点又复位接通,T37线圈通电开始计时。T37周而复始地工作,直到I0.2断开。T37产生的300s(5min)时钟脉冲送给C4计数,计满12000个数字后,C4的当前值等于设定值,其计数器位被置1,常开触点闭合,Q0.0得电接通。

T37为100ms定时器,经过C4扩大后,其总的定时时间为TΣ=0.1KTKC=0.1s×3000×12000=1000h。

(11)NDT及NDP指令(2条)

1)取反指令NOT。将复杂逻辑结果取反,为用户使用反逻辑提供方便。该指令无操作数,其LAD和STL形式为:

STL形式:NOT

LAD形式:978-7-111-39187-6-Chapter04-128.jpg

2)空操作指令NOP(No Operation)。该指令很少使用,甚至在西门子公司的系统手册中都未介绍。该指令主要在跳转指令的结束处或在调试程序中使用。该指令对用户程序的执行没有影响,其LAD和STL形式如下:

STL形式:NOP N

LAD形式:978-7-111-39187-6-Chapter04-129.jpg

N的范围:0~244。

(12)结束及暂停指令(2条)结束指令END及暂停指令STOP的LAD、STL格式及功能见表4-37。

表4-37 结束指令及暂停指令的LAD、STL格式及功能

978-7-111-39187-6-Chapter04-130.jpg

结束指令分为有条件结束指令(END)和无件结束指令(MEND)。两条指令在梯形图中以线圈形式编程,无操作数。执行完结束指令后,系统结束主程序,返回主程序起点。

使用说明:

①结束指令只能用在主程序中,不能在子程序和中断程序中使用。而有条件结束指令可用在无件结束指令前结束主程序。

②在调试程序时,在程序的适当位置插入无条件结束指令可实现程序的分段调试。

③可以利用程序执行的结果状态、系统状态或外部设置切换条件来调用有条件结束指令,使程序结束。

④使用Micro/Win32编程时,编程人员不需手工输入无条件结束指令,该软件会自动在内部加上一条无条件结束指令到主程序的结尾。

(13)数据的比较指令 在实际的控制过程中,可能需要对两个操作数进行比较,比较条件成立时完成某种操作,从而实现某种控制。比如初始化程序中,在VW10中存放着数据100,模拟量输入AIW0中采集现场数据。当AIW0中数值小于或等于VW10中数值时Q0.0输出;当AIW0中数值大于VW10中数值时Q0.1输出;如何操作?这就要用到数据比较指令。(www.xing528.com)

1)数据比较指令。数据比较指令是将两个操作数(数值及字符串)按指定的条件进行比较,操作数可以是整数,也可以是实数,在梯形图中用带参数和运算符的触点表示比较指令。比较触点可以装入,也可以串/并联。比较指令为上下限控制及数值条件判断提供了极大的方便。

比较指令的类型有字节比较、整数比较、双字整数比较、实数比较和字符串比较。

比较指令的LAD、STL格式及功能见表4-38;其方式见表4-39。

使用说明:

①数据比较运算符有=、<、<=、>、>=和<>六种指令格式,字符比较运算符只有=和<>两种指令格式。

②字整数比较指令,梯形图是I,语句表是W;双字整数比较指令。

③数据比较IN1、IN2操作数的寻址范围为I、Q、M、SM、V、S、L、AC、VD、LD和常数。

表4-38 比较指令的LAD、STL格式及功能

978-7-111-39187-6-Chapter04-131.jpg

表4-39 比较指令的方式

978-7-111-39187-6-Chapter04-132.jpg

字节比较用于比较两个字节型整数值IN1和IN2的大小,字节比较是无符号的。整数比较用于比较两个一个字长的整数值IN1利IN2的大小,整数比较是有符号的,其范围是16#80000000~16#7FFFFFFF。

实数比较用于比较两个以双字长整数值INl和IN2的大小。它们的比较也是有符号的,其范围为-1.174494E-38~-3.402823E+38,正实数范围为+1.174494E-38~+3.402823E+38。

字符串比较用于比较两个字符串数据是否相同。字符串的长度不能超过244个字符。

978-7-111-39187-6-Chapter04-133.jpg

图4-79 数据比较的梯形图程序

2)数据比较的梯形图程序。前述初始化程序中的数据比较,可以通过图4-79中的梯形图程序来完成

3)其他几种数据比较指令的编程举例。其他几种数据比较指令的编程举例见表4-40。

表4-40 其他几种数据比较指令的编程举例

978-7-111-39187-6-Chapter04-134.jpg

注意在尝试使用比较指令之前,要给相应的变量赋值

4)数据比较的应用实例

例4-1:用定时器和数据比较指令组成占空比可调的脉冲时钟

M0.0和100ms定时器T37组成脉冲发生器,数据比较指令用来产生宽度可调的方波,脉宽的调整由数据比较指令的第二个操作数实现。其梯形图程序和脉冲波形如图4-80所示。

978-7-111-39187-6-Chapter04-135.jpg

图4-80 梯形图程序和脉冲波形

例4-2:模拟调整电位器的应用梯形图程序

调整模拟调整电位器0,改变SMB28字节数值。实现:当SMB28数值小于或等于50时,Q0.0输出;当SMB28数值在50和150之间时,Q0.1输出;当SMB28数值大于150时,Q0.2输出。其梯形图程序如图4-81所示。

例4-3:三台电动机分时启动控制应用梯形图程序

控制要求:按下启动按钮后,三台电动机每隔2s分别依次启动;按下停止按钮,三台电动机每隔2s后依次停止。

首先进行I/O口地址分配,其I/O口地址分配见表4-41。

978-7-111-39187-6-Chapter04-136.jpg

图4-81 调整模拟调整电位器0的梯形图程序

表4-41 三台电动机分时启动控制的I/O口地址分配

978-7-111-39187-6-Chapter04-137.jpg

根据控制要求,利用比较指令,编写出三台电动机分时启动控制应用梯形图程序,如图4-82所示。

978-7-111-39187-6-Chapter04-138.jpg

图4-82 三台电动机分时启动控制应用梯形图程序

(14)数据的移位指令 在实际的控制过程中,可能会遇到数据的移位控制。比如制作一个彩灯控制器,要求是:8个彩灯由左向右以1s的速度依次点亮,保持任意时刻只有一个彩灯亮;到达最右端后再由左向右以1s的速度依次点亮,如此循环;按下停止按钮后,彩灯循环停止。如何实现?数据的移位指令提供了更加简捷的方法。

1)移位指令。移位指令的作用是将存储器中的数据按要求进行移位。在控制系统中可用于数据的处理、跟踪、步进控制等。

移位指令分为左/右移位、循环左/右移位、寄存器移位三类。前两类移位指令按移位数据的长度又分为字节型、字型、双字型三种。移位指令最大移位位数N小于等于数据类型对应的位数。N为字节型数据。

移位指令的类型、格式及功能见表4-42和表4-43。

表4-42 移位指令的类型

978-7-111-39187-6-Chapter04-139.jpg

表4-43 移位指令格式及功能

978-7-111-39187-6-Chapter04-140.jpg

(续)

978-7-111-39187-6-Chapter04-141.jpg

使用说明:

①对左移位指令,使能输入有效时,将输入的无符号数字节、字或双字左移N位后,移出位自动补0,将结果输出到OUT指定的存储单元中。如果移位次数大于0,最后一次移出位保存在溢出存储器位SM1.1。如果移位结果为0,零标识位SM1.0置1。

②对右移位指令,使能输入有效时,将输入的无符号数字节、字或双字左移N位后,移出位自动补0,将结果输出到OUT指定的存储单元中。最后一次移出位保存在SM1.1。

③对循环移位指令,将输入IN中的各位向左或向右循环移动N位后,送给输出OUT。循环移位是环形的,即被移出来的位将返回到另一端空出来的位置。移出来的最后一位的数值放在溢出存储器位SM1.1。

④对移位寄存器指令,SHRB是移位长度可调的移位指令,将从DATA端输入的二进制数值移入移位寄存器中。SBIT为寄存器的最低位地址。字节型变量N为移位寄存器的长度(1~64),N为正值时表示左移位,输入数据(DATA)移入移位寄存器的最低位(SBIT),并移出移位寄存器的最高位,移出的数据被放置在溢出内存位(SM1.1)中。N为负值时表示右移位,输入数据移入移位寄存器的最高位中,并移出最低位(SBIT),移出的数据被放置在溢出内存位(SM1.1)中。

2)彩灯控制器的实现。8个彩灯分别接在Q0.0~Q0.7上。可以采用字节的循环移位指令进行循环移位控制。置彩灯的初始状态为QB0=1,即左边的第一盏彩灯亮;接着彩灯由左向右以1s的速度依次点亮,即要求字节QB0中的“1”用循环左移位指令每隔1s钟移动一位,因此需在ROLB指令的EN端接一个1s的移位脉冲。其彩灯控制器的梯形图程序如图4-83所示。

978-7-111-39187-6-Chapter04-142.jpg

图4-83 8彩灯控制器的梯形图程序

3)移位指令编程举例

①SHLW指令编程举例见表4-44。

表4-44 SHLW指令编程举例

978-7-111-39187-6-Chapter04-143.jpg

②SHRB指令编程举例见表4-45。

表4-45 SHRB指令编程举例

978-7-111-39187-6-Chapter04-144.jpg

4)数据的移位指令应用实例

例4-4用I0.0控制16个彩灯循环移位,由左向右以2s的速度依次2个为一组点亮,保持任意时刻只有2个彩灯点亮;到达最右端后,再由左向右依次点亮,如此循环;按下停止按钮后,彩灯循环停止。

16个彩灯分别接在Q0.0~Q1.7上。可以采用字节的循环移位指令,进行循环移位控制。置彩灯的初始状态为QB0=3,即左边的第1、2盏彩灯亮;接着彩灯由左向右以2s的速度依次点亮,即要求字节QB0中的“11”用循环左移位指令每隔2s钟移动一位,因此需在ROLB指令的EN端接一个1s的移位脉冲。其彩灯控制器的梯形图程序如图4-84所示。

例4-5:用PLC构成对喷泉的控制。喷泉的12个喷水柱用L1~L12表示,喷水柱的布局如图4-85所示。控制要求:按下启动按钮后,L1喷0.5s后停;接着L2喷0.5s后停;接着L3喷0.5s后停;接着L4喷0.5s后停;接着L5、L9喷0.5s后停;接着L6、L10喷0.5s后停;接着L7、L11喷0.5s后停;接着L8、L12喷0.5s后停;又接着第二轮L1喷0.5s后停;……;如此循环下去,直至按下停止按钮才停止喷泉。

978-7-111-39187-6-Chapter04-145.jpg

图4-84 16彩灯循环控制梯形图程序

978-7-111-39187-6-Chapter04-146.jpg

图4-85 喷泉控制示意图

首先进行PLC的I/O口地址分配。其I/O口地址分配见表4-46。

表4-46 PLC的I/O口地址分配

978-7-111-39187-6-Chapter04-147.jpg

根据控制要求,利用移位寄存器指令,编写出喷泉控制的梯形图程序,如图4-86所示。在移位寄存器指令SHRB中,EN连接移位脉冲T37,每来一个脉冲上升沿,移位寄存器移动一位。M10.0为数据输入端DATA。按照控制要求,每次只有一个输出,因此只需要在第一个移位脉冲到来时由M10.0送入移位寄存器SBIT位(Q0.0)一个“1”,第2个脉冲至第8个脉冲到来时由M10.0送入Q0.0的值均为“0”,这在程序中由定时器T38延时0.5s导通一个扫描周期实现;第8个脉冲到来时Q0.7置位为“1”,同时通过与T38并联的Q0.7常开触点使M10.0置位为“1”;第9个脉冲到来时由M10.0送入Q0.0的值又为“1”,如此循环下去,直至按下停止按钮才停止。

2.S7-200PLC的顺控步进指令

(1)顺序控制和顺序功能图 顺序控制是在各个输入信号的作用下,按照生产工艺的过程顺序,各执行机构自动有秩序地进行控制操作。

顺序功能图就是使用图形方式将生产过程表现出来。以图4-87中的波形给出的锅炉风机引风机的控制要求为例,其工作过程是:按下启动按钮I0.0后,引风机开始工作,5s后鼓风机再开始工作;按下停止按钮I0.0后,鼓风机停止工作,5s后引风机再停止工作。其顺序功能图如图4-88所示。

1)顺序功能图的组成元件。顺序功能图主要用来描述系统的功能。将系统的一个工作周期根据输出量的不同划分为各个顺序相连的阶段,这些阶段称为步。使用内部位存储器M或顺序控制继电器S代表各步,在图4-88中用矩形方框表示。方框中可以用数字表示该步的编号,也可以用代表该步的编程元件的地址作为步的编号。在任何一步中,各输出量ON/OFF状态不变,但是相邻两步输出量的状态是不同的。任何系统都有等待启动命令的相对静止初始状态。与系统该初始状态相对应的步称为初始步,用双线方框表示。根据输出量的状态,图4-88中的一个工作周期可以划分为包括初始步在内的4步,分别用M0.0~M0.3代表。当系统处于某一步所在的阶段时,该步称为“活动步”,其前一步称为“前级步”,后一步称为“后续步”,其他各步称为“不活动步”。

978-7-111-39187-6-Chapter04-148.jpg

图4-86 喷泉控制的梯形图程序

978-7-111-39187-6-Chapter04-149.jpg

图4-87 锅炉鼓/引风机的顺控要求图

978-7-111-39187-6-Chapter04-150.jpg

图4-88 锅炉鼓/引风机控制的顺序功能图

系统处于某一步可以有多个动作,也可以无动作,这些动作之间无顺序关系。如果某一步需要完成一定的“动作”,用矩形方框将“动作”与步相连。可以使用修饰词对动作进行修饰,常用的动作修饰词见表4-47。

表4-47 常用的动作修饰词

978-7-111-39187-6-Chapter04-151.jpg

(续)

978-7-111-39187-6-Chapter04-152.jpg

顺序功能图中,代表各步的方框按照它们成为活动步的先后次序顺序排列,并用有向连线将它们连接起来,步与步之间活动状态的进展按照有向连线规定的路线和方向进行。有向连线在从上到下或由左向右方向上的箭头可以省略,其他方向上的箭头必须标明。为了易于理解,在可以省略箭头的方向上也可以加上箭头。

与步和步之间有向连线垂直的短横线代表转换,其作用是将相邻的两步分开。旁边与转换对应的参量称为转换条件。转换条件是系统由当前步进入下一步的信号,分为三种类型:一是外部的输入条件,例如按钮、指令开关、限位开关的接通或断开等;二是PLC内部产生的信号,例如定时器、计数器等触点的接通;三是若干个信号“与”、“或”、“非”的逻辑组合。顺序功能图中,只有当某一步的前级步是活动步时,该步才有可能变成活动步。如果使用没有断电保持功能的编程器件代表各步,进入RUN工作方式时,它们均处于OFF状态,必须用初始化脉冲SM0.1作为转换条件,将各步预置为活动步,否则因为顺序功能图中没有活动步,系统将无法工作。

2)顺序功能图的基本结构。顺序功能图的基本结构包括单序列、选择序列和并行序列,如图4-89所示。

978-7-111-39187-6-Chapter04-153.jpg

图4-89 顺序功能图的基本结构

a)单序列 b)选择序列 c)并行序列

①单序列。单序列由一系列相继激活的步组成,每一个转换后也只有一个步,如图4-89a所示。

②选择序列。当系统的某一步激活后,满足不同的转换条件能够激活不同的步,这种序列称为选择序列,如图4-89b所示。选择序列的开始称为分支,其转换符号只能标在水平连线下方。选择序列中如果步4是活动步,满足转换条件c时,步5是活动步;满足转换条件f时,步7是活动步。选择序列的结束称为合并,其转换符号只能标在水平连线上方。如果步6是活动步且满足转换条件e时,步9是活动步;如果步8是活动步且满足转换条件h时,步9是活动步。

978-7-111-39187-6-Chapter04-154.jpg

图4-90 某剪板机的生产工艺示意图

③并行序列。当系统的某一位活动后,满足转换条件能够同时激活几步,这种序列称为并行序列,如图4-89c所示。并行序列的开始称为分支,为强调转换的同步实现,水平连线用双线,水平双线上只允许有一个转换符号。

并行序列中当步10是活动步,满足转换条件i时,转换的实现将导致步11和步13是活动步。并行序列的结束称为合并,在表示同步的水平双线之下只允许有一个转换符号。当步12和步14同时是活动步且满足转换条件m时,步15才能变成活动步。

某剪板机的生产工艺示意图如图4-90所示。开始时压钳和剪刀在上限位,限位开关I0.0和I0.1为ON,按下启动按钮I1.0,其工作过程如下:首先板料右行(Q0.0为ON并保持)至限位开关I0.3动作;然后压钳下行(Q0.1为ON并保持),压紧板料后,压力继电器I0.4为ON,压钳保持压紧;接着剪刀开始下行剪料(Q0.2为ON),当剪断板料后,I0.2变为ON,压钳和剪刀同时上行(Q0.3和Q0.4为ON,Q0.1和Q0.2为OFF);当它们分别碰到限位开关I0.0和I0.1后,停止上行,都停止后,又开始下一周期的工作;最终剪完10块后停止在初始状态。其剪板机的顺序功能图如图4-91所示。图中三种序列全有。步M0.0是初始步,加计数器C0用来控制剪板料的次数,每次工作循环后C0的当前值加1。没有剪完10块板料时,C0的当前值小于设定值10,其常闭触点闭合,满足转换条件C0,将返回步M0.1处开始下一次循环。剪完10块板料时,C0的当前值等于设定值10,其常开触点闭合,满足转换条件C0,即已剪完10块板料将返回初始步M0.0,等待下一次启动命令。

步M0.5、M0.7是等待步,用来同时结束并行序列,只要步M0.5、M07都是活动步,当满足转换条件C0时,步M0.1将变成活动步;当满足转换条件C0时,步M0.0将变成活动步。

978-7-111-39187-6-Chapter04-155.jpg

图4-91 某剪板机的顺序功能图

3)顺序功能图转换实现的条件

①转换实现的条件。顺序功能图中,转换的实现完成了步的活动状态的进展。转换实现必须同时满足以下两个条件:

a)该转换所有的前级步都是活动步。

b)相应的转换条件都得到满足。

这两个条件是缺一不可的。假设在剪板机中取消了第一个条件,在板料被压住的时候误操作按下了启动按钮,这时也会使步M0.1变成活动步,板料可能右行,因此会造成设备的误动作。

②实现转换的操作。实现转换应完成以下两个操作:

a)使所有由有向连线与相应转换符号相连的后续步都变为活动步。

b)使所有由有向连线与相应转换符号相连的前级步都变为不活动步。

以上规则适用于任意结构中的转换。其区别是:对于单序列,一个转换仅有一个前级步和一个后续步;对于选择序列,分支处与合并处一个转换实际上只有一个前级步和一个后续步,但是一个步可能有多个前级步或多个后续步;对于并行序列,分支处转换有几个后续步,在转换实现时应同时将它们对应的编程元件置位,其合并处转换有几个前级步,在转换实现时应将它们对应的编程元件全部复位。

③绘制顺序功能图时的注意事项。绘制顺序功能图时应注意以下事项:

a)两个步绝对不能直接相连,必须用一个转换将它们分隔开。

b)两个转换也绝对不能直接相连,必须用一个步将它们分隔开。

c)初始步必不可少,一方面因为该步与其相邻步相比,从总体上说输出变量的状态各不相同;另一方面,如果没有该步,无法表示初始状态,系统也无法返回等待其动作的停止状态。

d)顺序功能图是由步和有向连线组成的闭环,即在完成一次工艺过程的全部操作之后,应从最后一步返回初始步,系统停留在初始状态;在连续循环工作方式时,应从最后一步返回下一工作周期开始运行的第一步。

4)应用实例

例4-6:冲床的顺序功能图

冲床的生产工艺过程示意图如图4-92所示。初始状态时机械手在最左边,I0.4为ON;冲头在最上面,I0.3为ON;机械手松开,Q0.0为OFF。按下启动按钮I0.0,Q0.0变为ON,工件被夹紧,2s后Q0.1变为ON,机械手右行,直到碰到限位开关I0.1。以后顺序完成以下动作:冲头下行、冲头上行、机械手左行、机械手松开(Q0.0被复位为OFF),延时2s后,系统返回初始状态。各限位开关和定时器提供的信号是相应步之间的转换条件。试画出该冲床控制系统的顺序功能图。

根据控制要求,可画出该冲床控制系统的顺序功能图,如图4-93所示。该冲床控制系统的顺序功能图是由一系列相继活动的步组成的单序列结构。

978-7-111-39187-6-Chapter04-156.jpg

图4-92 冲床的生产工艺过程示意图

978-7-111-39187-6-Chapter04-157.jpg

图4-93 冲床控制系统的顺序功能图

例4-7:液体混合装置的顺序功能图

液体混合装置的生产工艺过程示意图如图4-94所示。上限位、中限位、下限位液位传感器被液体淹没时为1状态;阀门A、阀门B和阀门C为电磁阀,线圈通电时阀门打开,线圈断电时阀门关闭。开始时容器是空的,各阀门均关闭,各液位传感器均为0状态。按下启动按钮后,打开阀门A,液体A流入容器;当液面到达中限位时,中限位液位传感器变为ON,关闭阀门A,打开阀门B,液体B流入容器;当液面到达上限位时,上限位液位传感器变为ON,关闭阀门B,电动机M开始运行,搅拌液体。30s后停止搅拌,打开阀门C,放出混合液体。当液面下降到下限位时,下限位液位传感器变为ON,之后5s容器放空,关闭阀门C,打开阀门A,又开始下一周期的操作。按下停止按钮,当前工作周期的操作结束后,才停止操作,返回并停留在初始状态。

根据控制要求,该液体混合装置的顺序功能图,如图4-95所示。

978-7-111-39187-6-Chapter04-158.jpg

图4-94 液体混合装置的生产工艺过程示意图

978-7-111-39187-6-Chapter04-159.jpg

图4-95 液体混合装置的顺序功能图

对于按下停止按钮,当前工作周期的操作结束后才停止操作的控制要求,在顺序功能图中用M1.0实现。当系统处于步M0.5时,按下停止按钮,系统满足M1.0∗T38的转换条件,将返回到初始状态步M0.0处;如果没有按下停止按钮,系统满足M1.0∗T38的转换条件,将回到步M1.0处,开始下一个工作周期。系统处于任何一个阶段按下停止按钮时,都将进行到步M00.5处满足转换条件,当前工作周期才能结束。

例4-8:某专用钻床的顺序功能图

某专用钻床的生产工艺过程示意图如图4-96所示,该专用钻床使用两只钻头同时钻两个孔。在开始自动钻孔之前,两只钻头都在最上面初始位置,上限位开关I0.3和I0.5均为ON。放好工件后,按下启动按钮I0.0,工件被夹紧后两只钻头同时开始钻孔,钻到由限位开关I0.2和I0.4设定的深度位置时分别上行;返回到由限位开关I0.3和I0.5设定的起始位置时分别停止上行。两只钻头都到位后,工件被松开,松开到位后,一个工作周期结束,系统返回初始状态。

根据控制要求,专用钻床的顺序功能图如图4-97所示。从顺序功能图中可以看出:该系统由大小两只钻头和各自的限位开关组成了两个子系统。这两个子系统在钻孔过程中同时工作,形成并行序列。如果不使用并行序列,由于两个钻头的工作并不能绝对同步,会对限位开关造成冲击,形成安全隐患,因此必须使用并行序列进行编程。

978-7-111-39187-6-Chapter04-160.jpg

图4-96 某专用钻床的生产工艺过程示意图

978-7-111-39187-6-Chapter04-161.jpg

图4-97 专用钻床的顺序功能图

在顺序功能图中步M0.4和M0.7是两个等待步,用于保证两个钻头同步工作。其后的转换条件“=1”表示转换条件总是满足,只要步M0.4和M0.7都变为活动步,就能使M1.0变为活动步。

类似的顺序控制在生产中不胜枚举。

(2)顺序功能图的梯形图程序 学会画顺序功能图只不过是顺序控制设计法的第一步辅助性工作,它能给人们提供清晰的编程思路,但S7-200系列PLC提供的编程软件并不能直接使用顺序功能图进行编程,还需要将其转换成编程软件能够使用的梯形图程序。对于上述所介绍的几个控制系统顺序功能图,如何转换为梯形图程序呢?利用前面所学的与触点和线圈有关的基本逻辑指令来编程是一种通用的编程方法,也是本节需要掌握的主要内容。

1)锅炉鼓/引风机顺序功能图的梯形图程序。设计顺序功能图的梯形图程序的关键是找出启动条件和停止条件。由图4-88,根据转换实现的基本原则,转换实现的条件是它的前级步为活动步,并且满足相应的转换条件。如果步M0.1要变成活动步,条件是它的前级步M0.0为活动步,且转换满足转换条件I0.0。利用与触点和线圈有关的PLC控制指令,可将代表前级步M0.0的常开触点和代表转换条件I0.0的常开触点串联,作为控制M0.1的启动电路;当步M0.1为活动步且满足转换条件T37时,步M0.2变为活动步;这时M0.1应变为不活动步,因此可以将M0.2为1作为使步M0.1变为不活动步的停止条件。所有的步都可以用这种方法编程。再以初始步M0.0为例,其前级步是M0.3,转换条件是T38的常开触点,所以启动电路是M0.3和T38的常开触点串联。在PLC第一次执行程序时,应使用SM0.1的常开触点将M0.0变为活动步,所以启动电路要并联SM0.1的常开触点,再并联M0.0的常开触点作为保持条件;上述电路再串联M0.1的常闭触点作为停止条件。

对于步的动作中输出量的处理分为两种情况:

①某一输出量仅在某步中为ON时,可以将它的线圈与对应步的存储器位的线圈并联。

②某一输出量在几步中都为ON时,则将代表各有关步的存储器位的常开触点并联后一起驱动该输出的线圈。如果某些输出在连续的几步中均为ON,可以用置位与复位指令进行控制。

按照上述方法可得到锅炉鼓/引风机顺序功能图的梯形图程序如图4-98所示。

978-7-111-39187-6-Chapter04-162.jpg

图4-98 锅炉鼓/引风机顺序功能图的梯形图程序

2)液体混合控制系统的梯形图程序。按照上述所介绍方法编写的图4-95所示液体混合系统顺序功能图的梯形图程序如图4-99所示。梯形图程序中M1.0用来实现在按下停止按钮后不会马上停止工作,而是在当前工作周期的操作结束后才停止运行。步M0.1之前是选择的合并。当步M0.0为活动步并且满足I0.3的转换条件或者步M0.5为活动步并且满足M1.0∗T38的转换条件时,步M0.1都能变为活动步。因此,步M0.1的启动电路由M0.0、I0.3或者M0.5、M1.0、T38的常开触点串联而成。

3)专用钻床控制系统的梯形图程序。按照上述所介绍方法编写的图4-97所示专用钻床控制系统顺序功能图的梯形图程序如图4-100所示。当步M0.1为活动步时,Q0.0线圈得电,夹紧电磁阀通电夹紧工件。当压力达到一定程度时,压力继电器I0.1的常开触点接通即满足转换条件,这时步M0.1变为不活动步,而步M0.2和M0.5同时变为活动步,Q0.1和Q0.3线圈得电,大小钻头同时向下运动进行钻孔。

当两个孔钻完,大、小钻头分别碰到各自的下限位开关I0.2和I0.4后,步M0.3和步M0.6变为活动步,Q0.2和Q0.4线圈得电,两个钻头分别向上运动,碰到各自的上限位开关I0.3和I0.5后停止上行,两个等待步M0.4和M0.7变为活动步。只要M0.4和M0.7变为活动步,步M1.0马上变为活动步,同时M0.4和M0.7变为不活动步,线圈Q0.5得电,工件被松开,限位开关I0.7变为ON,系统返回初始状态。

978-7-111-39187-6-Chapter04-163.jpg

图4-99 液体混合系统顺序功能图的梯形图程序

978-7-111-39187-6-Chapter04-164.jpg

图4-100 专用钻床控制系统的梯形图程序

4)剪板机控制系统的梯形图程序。根据图4-91剪板机的顺序功能图设计剪板机控制系统的梯形图程序如图4-101所示,需要注意的是对顺序功能图中选择序列和并行序列的分支、合并处的处理。

对于选择序列的分支,如果某一步后有一个由N条分支组成的选择序列,该步可能转换到不同的N步去,则将这N个后续步对应的存储器位的常闭触点与该步的线圈串联,作为结束该步的条件。例如,步M0.5后的任何一步变为活动步时,该步都应变为不活动步,所以该步的停止条件应该是将M0.0和M0.1的常闭触点进行串联。

对于选择序列的合并,如果某一步之前有N个转换,即有N条分支进入该步,则控制代表该步存储器位的启保停电路的启动条件由N条支路并联而成,各支路由某一前级步对应的存储器位的常开触点与相应转换条件对应的触点或电路串联形成。例如,步M0.1之前是一个选择序列的合并,当步M0.5和步M0.7为活动步且满足C0常闭触点的条件或步M0.0为活动步且满足I1.0∗I0.1∗I0.0的转换条件时,步M0.1都应变为活动步,所以对于步M0.1,其启动条件是M0.0与I1.0、I0.1、I0.0常开触点串联或者M0.5、M0.7与C0常闭触点串联。

由此而得到的剪板机控制系统的梯形图程序如图4-101所示。

5)编写图4-102所示顺序功能图的梯形图程序。图4-102中在步M0.0后有一个选择序列的分支。当M0.0为活动步且满足I0.0的转换条件时,步M0.1变为活动步;当M0.0为活动步且满足I0.2的转换条件时,步M0.2变为活动步。无论哪个后续步变为活动步,M0.0都应变为不活动步,所以应将M0.1和M0.2的常闭触点与M0.0的线圈串联作为其停止条件。

在M0.2之前是选择序列合并。当步M0.1为活动步且满足I0.1的转换条件或者在M0.0为活动步且满足I0.2的转换条件时,M0.2都能变为活动步。所以步M0.2的启动条件由M0.1∗I0.1和M0.0∗I0.2并联构成。

图4-102顺序功能图的梯形图程序如图4-103所示。

978-7-111-39187-6-Chapter04-165.jpg

图4-101 剪板机控制系统的梯形图程序

(3)使用SCR指令设计顺序功能图的梯形图程序顺序控制指令(简称顺控指令)是PLC生产厂家为用户提供的可使功能图编程简单化和规范化的指令。顺序控制指令可将顺序功能图转换成梯形图程序,顺序功能图是设计梯形图程序的基础。

1)顺序功能图。顺序功能图SFC(Se-quential Function Chart)又称为功能流程图或功能图,它是描述控制系统的控制过程功能和特性的一种图形,也是设计PLC的顺序控制程序的有力工具。

978-7-111-39187-6-Chapter04-166.jpg

图4-102 顺序功能图

顺序功能图主要由步、转移、动作及有向线段等元素组成。如果适当运用组成元素,就可得到控制系统的静态表示方法,再根据转移出发规则模拟系统的运行,就可以得到控制系统的动态过程。

①步。将控制系统的一个周期划分为若干个顺序相连的阶段,这些阶段称为步,并用编程元件来代表各步。步的符号如图4-104a所示。矩形框中可写上该步的编号或代码。

a)初始步:与系统初始状态相对应的步称为初始步。初始状态一般是系统等待启动命令的状态,一个控制系统至少要有一个初始步。初始步的图形符号为双线的矩形框,如图4-104b所示。在实际使用时,有时也画成单线矩形框,有时画一条横线表示功能图的开始。

b)活动步:当控制系统正处于某一步所在的阶段时,该步处于活动状态,称为活动步。步处于活动状态时,相应的动作被执行;处于不活动状态时,相应的非存储型的动作被停止执行。

c)与步对应的动作或命令:在每个稳定的步下,可能会有相应的动作。动作的表示方法如图4-104c所示。

②转移。用来说明从某一个步到另一个步的转变,即用一个方向线段来表示转变的方向。在两个步间的有向线段上再用一段横线表示这一转移。转移的符号如图4-105所示。

转移是一种条件,当此条件成立,称为转移使能。当前条件如果能使步发生转移,则称为触发。一个转移能够触发必须满足:步为活动步及转移使能。转移条件是指使系统从一个步向另一个步转移的必要条件,通常用文字、逻辑语言及符号来表示。

③功能图的绘制规则。控制系统功能图的绘制必须满足以下规则:

a)步与步不能相连,必须用转移分开。

b)转移与转移不能相连,必须用步分开。

c)步与转移、转移与步间的连接采用有向线段。从上向下画时,可以省略箭头;当有向线段从下往上画时,必须画上箭头,以表示方向。

d)一个功能图至少要有一个初始步。

978-7-111-39187-6-Chapter04-167.jpg

图4-103 图4-102顺序功能图的梯形图程序

978-7-111-39187-6-Chapter04-168.jpg

图4-104 步及步所对应的动作

a)步 b)初始步 c)动作

978-7-111-39187-6-Chapter04-169.jpg

图4-105 转移的符号

2)顺序控制指令(3条)。顺序控制指令包含3部分:段开始指令LSCR、段转移指令SCRT和段结束指令SCRE。

①段开始指令LSCR(Load Sequence Control Relay)。段开始指令的功能是标记一个顺序控制程序段(或一个步)的开始,其操作数是状态继电器Sx.y(如S0.0),Sx.y是当前顺序控制程序段的标志位,当Sx.y为1时,允许该顺序控制程序段工作。

②段转移指令SCRT(Sequence Control Relay Transition)。段转移指令的功能是将当前的顺序控制程序段切换到下一个顺序控制程序段,其操作数是下一个顺序控制程序段的标志位Sx.y(如S0.1)。当允许输入有效时,进行切换,即停止当前顺序控制程序段工作,启动下一个顺序控制程序段工作。

③段结束指令SCRE(Sequence Control Relay End)。段结束指令的功能是标记一个顺序控制程序段(或一个步)的结束,每一个顺序控制程序段都必须使用段结束指令来表示该顺序控制程序段的结束。

在梯形图中,段开始指令以功能框的形式编程,段转移指令和段结束指令以线圈形式编程,指令格式见表4-48。

表4-48 顺序控制指令格式

978-7-111-39187-6-Chapter04-170.jpg

3)顺序控制指令的特点

①顺序控制指令仅仅对元件S有效,顺序控制继电器S也具有一般继电器的功能。

②顺序控制程序段的程序能否执行取决于S是否被置位,SCRE与下一个LSCR指令之间的指令逻辑不影响下一个顺序控制程序段程序的执行。

③不能把同一个元件S用于不同程序中,例如,如果在主程序中用了S0.1,则在子程序中就不能再使用它。

④在顺序控制程序段中不能使用JMP和LBL指令,就是说不允许跳入、跳出或在内部跳转,但可以在顺序控制程序段的附近使用跳转指令。

⑤在顺序控制程序段中不能使用FOR、NEXT和END指令。

⑥在步发生转移后,所有的顺序控制程序段的元件一般也要复位,如果希望继续输出,可使用置位/复位指令。

⑦在使用功能图时,顺序控制继电器的编号可以不按顺序安排。

4)顺序控制指令的编程。顺序功能图中除了使用内部位存储器M代表各步外,还可以使用顺序控制继电器S代表各步。使用S代表各步的顺序功能图设计梯形图程序时,需要用SCR指令。使用SCR指令时顺序功能图中的步用S-bit表示,其顺序功能图如图4-106所示。它与前面所述的顺序功能图完全相似,所不同的是要将代表各步的内部位存储器M换成顺序控制继电器S。

978-7-111-39187-6-Chapter04-171.jpg

图4-106 使用SCR指令的顺序功能图

对图4-106,使用SCR指令编程时,在SCR段中使用SM0.0的常开触点驱动该步中的输出线圈,使用转换条件对应的触点或电路驱动转换到后续步的SCR指令。虽然SM0.0一直为1,但是只有当某一步活动时相应的SCR段内的指令才能执行。相应的梯形图程序如图4-107所示。

5)编程举例

①使用SCR指令编写图4-95液体混合系统的梯形图程序。使用SCR指令的液体混合系统顺序功能图如图4-108所示,其梯形图程序如图4-109所示。在步S0.5之后是选择序列分支。当S0.0为1时,对应的SCR段被执行,如果满足978-7-111-39187-6-Chapter04-172.jpg的转换条件,将转换到步S0.0处;如果满足M1.0∗T38的转换条件,将转换到步S0.1。

978-7-111-39187-6-Chapter04-173.jpg

图4-107 使用SCR指令编写的梯形图程序

978-7-111-39187-6-Chapter04-174.jpg

图4-108 使用SCR指令的液体混合 系统顺序功能图

②使用SCR指令编写图4-110所示顺序功能图的梯形图程序。在图4-110所示顺序功能图中,步S0.0之后是一个选择序列分支。当该步活动时,满足I0.0的转换条件时,步S0.1变为活动步;满足I0.2的转换条件时,步S0.2变为活动步。在梯形图程序中,当S0.0的SCR段被执行时,如果满足I0.0的转换条件,执行程序段中的“SCRT S0.1”指令,转换到步S0.1对应的SCR段;如果满足I0.2的转换条件,执行程序段中的“SCRT S0.2”指令,转换到步S0.2对应的SCR段。

步S0.3之前是选择序列合并。当步S0.1为活动步且满足I0.1的转换条件或者步S0.2为活动步且满足I0.3的转换条件时,步S0.3都能变为活动步。在对应的SCR段中,分别用I0.1和I0.3驱动“SCRT S0.3”指令,实现选择序列合并。

978-7-111-39187-6-Chapter04-175.jpg

图4-109 使用SCR指令的液体混合系统梯形图程序

步S0.3之后是并行序列分支,当S0.3步活动且满足I0.4的转换条件时,步S0.4和步S0.6同时变为活动步,在S0.3对应的SCR段中使用I0.4驱动“SCRT S0.4”和“SCRT S0.6”指令,实现并行序列分支。

步S1.0之前是并行序列合并。因为转换条件为1总是能够被满足,转换实现的条件是所有的前级步S0.5和S0.7都是活动步。在梯形图程序中,用S0.5和S0.7的常开触点串联置位、复位指令实现步S1.0变为活动步和步S0.5、S0.7变为不活动步。

图4-110所示顺序功能图对应的梯形图程序如图4-111所示。

3.S7-200 PLC功能指令的归纳列表

一般的逻辑控制系统用软继电器、定时器、计数器及基本指令就可以实现。利用功能指令可以开发出更复杂的控制系统,以至构成网络控制系统。这些功能指令实际上是厂商为满足各种客户的特殊需要而开发的通用子程序。功能指令的丰富程度及其合用的方便程序是衡量PLC性能的一个重要指标。

978-7-111-39187-6-Chapter04-176.jpg

图4-110 选择/并行序列的顺序功能图

S7-200的功能指令很丰富,大致包括算术与逻辑运算、传送、移位与循环移位、程序流控制、数据表处理、PID指令、数据格式变换、高速处理、通信以及实时时钟等。

功能指令的助记符与汇编语言相似,略具计算机知识的人学习起来也不会有太大困难。但S7-200系列PLC功能指令毕竟太多,一般读者不必准确记忆其详尽用法,需要时可查阅产品手册。这里仅对S7-200系列PLC的功能指令作列表归纳,不再一一说明。

978-7-111-39187-6-Chapter04-177.jpg

图4-111 选择/并行序列的SCR指令程序

(1)四则运算指令(见表4-49)

表4-49 四则运算指令

978-7-111-39187-6-Chapter04-178.jpg

(续)

978-7-111-39187-6-Chapter04-179.jpg

(续)

978-7-111-39187-6-Chapter04-180.jpg

(2)逻辑运算指令(见表4-50)

表4-50 逻辑运算指令

978-7-111-39187-6-Chapter04-181.jpg

(续)

978-7-111-39187-6-Chapter04-182.jpg

(3)数据传送指令(见表4-51)

表4-51 数据传送指令

978-7-111-39187-6-Chapter04-183.jpg

(续)

978-7-111-39187-6-Chapter04-184.jpg

(4)移位与循环的位指令(见表4-52)

表4-52 移位与循环移位指令

978-7-111-39187-6-Chapter04-185.jpg

(续)

978-7-111-39187-6-Chapter04-186.jpg

(5)交换和填充指令(见表4-53)

表4-53 交换和填充指令

978-7-111-39187-6-Chapter04-187.jpg

(6)表操作指令(见表4-54)

表4-54 表操作指令

978-7-111-39187-6-Chapter04-188.jpg

(7)数据转换指令(见表4-55)

表4-55 数据转换指令

978-7-111-39187-6-Chapter04-189.jpg

(续)

978-7-111-39187-6-Chapter04-190.jpg

(8)特殊指令 特殊指令见表4-56。PLC中一些实现特殊功能的硬件需要通过特殊指令来使用,可实现特定的复杂的控制目的,同时程序的编制非常简单。

表4-56 特殊指令

978-7-111-39187-6-Chapter04-191.jpg

(续)

978-7-111-39187-6-Chapter04-192.jpg

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈