
顺序功能图
上海花冠-二冬声律启蒙
2023年2月19日发(作者:钟面)第5章基于顺序功能图的控制程序设计
PLC的程序设计方法有许多,有些设计者喜欢采用经验编程,通过对逻辑关系的直接
翻译来实现,有些设计者则会采用较为严谨的组合逻辑分析方法完成,前者较为直观,后者
较为缜密。但是,对于这些设计方法并无统一的设计规范,而且当控制系统工艺较为复杂时,
程序的逻辑交织将十分复杂,结构也晦涩难懂,一旦需要改动,都将导致程序的大变动,牵
一发而动全身。
多数系统的控制常可以流程形式体现,即便是复杂的大型系统,也有细分的空间,对
于这些流程及划分,都需要建立在系统工艺基础上的,而控制系统设计的第一个步骤,也就
是对系统的控制任务进行分析,建立工艺流程图。PLC在程序设计时,存在这么一种方法
——基于顺序功能图的程序设计,它为设计者提供了一种设计规范,通过对系统工艺流程图
的转换,采用顺序功能图来替代,再以顺序功能图所对应的编程方式完成编程,方法简单,
结构清晰,同时也能大幅度提高编程效率。下面章节将首先介绍顺序功能图的画法,接着通
过几个例子阐述不同结构顺序功能图的程序设计。
5.1用顺序功能图实现控制程序设计概述
5.1.1顺序功能图的基本元素
S0
S1
S2
C1
C2
S3
动作1动作2
C4
C3
C5
S4S5
C6
S6S7
C7
C8
S8
C9
C10
S9
C11
步
初始步
方向线
转换条件
动作内容
选择分支
同步分支
选择合并
同步合并
S10
C12
图顺序功能图例
对于生产工艺为顺序执行的控制任务,采用顺序功能图来表征其控制过程十分合适,
如图所示为一典型的顺序功能图例,它与系统的工艺流程图较为相似,所不同的是它由一系
列标准的元素和机构组成,更为直观明确。下面将介绍顺序功能图中所包含的元素。
1.步
图中以矩形框表示,其中标示有“S*”的即为一个步,顺序功能图中用一个步来表征
控制任务中的一步工序,也用来记录当前系统所处的状态。例如第四章中果汁调配例子中,
加入果汁粉、加入牛奶粉、加热搅拌都可以用一个步来表示,控制任务中的一道工序,一种
状态,能被独立划分并且有进入和结束条件的,都可以被定义为一个步。在程序编写过程中
常以一个全局存储位来标识这个步,最为常用的是M存储区,例如M10.0,表示格式如图
所示,当进入该步时将其置位,结束该步时将其复位,该状态下的动作,也便可用M10.0
条件来驱动。
M10.0
图步的表示格式
2.初始步
初始步以双矩形框表示,一般采用“S0”标示,用来表示系统的初始状态,作为进入
系统控制流程的第一步。该步通常处于等待系统启动的一种静止状态,在该步中可完成一些
初始化操作。初始步的表示格式如图所示,将初始步激活后即可进入系统控制任务。
M0.0
图初始步的表示格式
3.方向线
方向线用来指明工序的流程方向,一方面作为各步关系的连接,另一方面也指明各步的
动作方向。一般对于至上而下的方向线可以省略箭头,对于分支、循环之类的方向线,要求
用箭头来标明流程方向。
M0.1
M0.2
图方向线的表示格式
4.转换条件
步与步连接的方向线上都要求有转换条件,可以是来自外部输入的信号变化,也可以来
至PLC内部变化,如定时器、计数器。转换条件是区分不同工序步的关键,在定义步时就
应当明确这些转换条件内容,一般转换条件采用布尔代数来表示,当然也可以有“↑”或“↓”
表示边沿检测信号,除此之外还有“>”、“<”等,如图所示,最重要的是让设计者能够清
晰的辨识。
M0.1
M0.2
T0
I0.0+I0.1
I0.2·I0.3
I1.0
图转换条件的表示格式
5.动作内容
区分不同步的目的,就是要在不同步中完成不同的操作,这些操作可以用动作内容表示。
动作内容在矩形框中表示,它与对应的步相关联,动作内容可以是输出一些信号,也可以是
操作定时器、计数器等等,根据具体要求由设计者标明,其表示格式可如图所示。需要注意
的是,这里所标明的动作一般都仅限于该步有效,如果希望动作在后续工序步中仍有效,需
采用置位指令,如图中的“SQ0.3”,或在后续步的动作中继续标明该操作。动作的内容当
然还会包括其他复杂的内容,表示的格式也没有特定规范,只要清晰明了即可。
M10.0Q0.1SQ0.3T0
T0
图动作内容的表示格式
6.选择分支与选择合并
选择分支用来表示存在着选择条件,可以通过不同条件转换至不同步中,分支产生于步
后,转换条件前,可以为双分支也可以为多分支,要注意的是每个选择分支上都应该有步或
者转换条件,选择分支处只允许其中一路的执行,也就是说哪一路的转换条件优先满足,则
优先执行该路,其他支路不允许执行,这是选择分支最大的特点。选择分支最终需要汇合的,
选择合并指的就是各选择分支的汇合,从汇合处开始,选择分支又回到了统一的工序步中。
M0.1
M0.2
M0.4
M0.3
图选择分支与选择合并的表示格式
7.同步分支与同步合并
当任务中有几个步需要同时执行,就需要用到同步,其中同步分支是指在满足同一个转
换条件后,同时执行不同的步,同步合并是指当几个步同时执行时,在满足同一个转换条件
后,同时结束,同步分支与同步合并的表示格式如图所示。这里要注意的是,与选择分支和
选择合并不同,同步分支各支路是同时被执行的,转换条件满足后,图中M1.0和M2.0将
同时被激活,然后独立执行,直至M1.7和M2.6同时激活且满足转换条件后,才会产生同
步合并。
M1.0
M1.7
M2.0
M2.6
„
„„
图同步的表示格式
5.1.2顺序功能图的基本结构
顺序功能图的组成元素如上一节所述,设计者采用顺序功能图设计前,首先就需要根
据生产工艺,将流程用顺序功能图来表示。由于生产工艺往往是复杂的,设计者所绘出的顺
序功能图结构也是多种多样。但是再复杂的顺序功能图,其基本结构也不外乎四类:单序列、
选择序列、并行序列及循环序列,下面将分别对这四种序列进行介绍。
1.单序列
单序列是指仅由一个方向有向线构成的序列,它的特点是没有分支与合并,步是由前往
后相继执行,步与步之间仅有一个转换条件,也称为顺序序列,其结构如图所示,运行遵循
S0->S1->S2->S3->S4的顺序。
S0
S1
S2
S3
S4
C1
C2
C3
C4
图单序列结构
2.选择序列
存在选择分支与选择合并的顺序功能图称之为选择序列,其结构如图所示,选择序列可
以是双分支或多分支,图中所示为3分支,选择分支产生于步后,到达S1步后才被选择执
行,每个分支序列的进入都需要有转换条件,分支序列中的步则可有可无。选择序列的最大
特点是在分支处只允许执行一条分支序列,图中C2、C5、C7哪个条件先满足则执行哪路,
其余支路不被执行。
S0
S1
S2
S3
S4
C1
C2
C3
C4
S2
C5
C6
C7
图选择序列结构
3.并行序列
存在同步分支与同步合并的顺序功能图称之为并行序列,其结构如图所示,并行序列
可以是双分支或多分支,图中为3分支,当S0步后的转换条件C1满足时,同步分支后的
步S1、S3、S4都将被激活,接着各并行序列将同步并列运行,直到同步合并时,S2、S3
和S5同时被激活且转换条件C4满足,则同步合并后的S6步被激活,S2、S3和S5步被复
位。
S1
S2
S4
S5
S3
S6
C1
C2C3
C4
S0
图并行序列结构
4.循环序列
针对一些需要循环执行的工艺,需要通过有向线将最后一个步引至所需重复执行的步
中,只要转换条件满足即可不断循环执行序列,这类顺序功能图结构被称为循环序列,其结
构如图所示。图中可以看出,每一次的运行以S3步作为结束,此后只要当转换条件C4满
足后,即可从S1步接着重复执行。这里要注意的是,循环一般不会从初始步开始,因为初
始步被认为用来进行初始化操作,在进入系统控制前只被执行一次。
S0
S1
S2
S3
C1
C2
C3
C4
C5
S4
图循环序列结构
5.1.3顺序功能图设计的常见问题
顺序功能图的设计并非千篇一律,实际的生产工艺是千变万化的,设计者在设计过程
中会遇到许多问题,可能有些复杂问题并不能完全用顺序功能图实现,但是顺序功能图作为
其中部分设计方法还是可行的。下面将对设计过程中的一些常见问题进行说明。
1.顺序功能图的开始和结束
顺序功能图开始必须以初始步作为起点,该步的激活可用来启动某个顺序控制,初始步
的激活可以在上电初始化OB100中完成,也可以由系统中某个条件来触发。
顺序功能图的结束也应该由一个步作为结束,当满足某个结束条件时,将进入最后一个
步,如上图,当C4满足后,顺序功能图不再循环,将达到S4步,最后一个步其实表征了
顺序控制的结束,也即顺序功能图中各状态要复位,因此达到最后一个步时,要立即将该部
进行复位,退出此顺序控制功能图。
2.顺序功能图的状态保持
顺序功能图在执行过程中,很有可能会被打断,例如CPU从RUN模式进入STOP模式、
CPU掉电、发生中断、发生故障等情况,对于被中断的顺序功能图,一般有两种恢复方式,
一种是保持当前步继续运行,另一种是直接从顺序功能图中退出,等待下一次激活初始步再
进入。对于需要恢复的顺序功能图,可使用能保持状态的存储空间进行步的标识,例如将采
用所设定的掉电不丢失的M存储区;对于退出顺序功能图的情况,需保证退出后各状态皆
复位,需注意的是设计者应当保证任意步的退出产生的结果都应该是在安全考虑范围内的。
3.顺序功能图状态的确定性
顺序功能图对各步的划分是明确的、也是独立的,这就要求在运行过程中各个步的运行
情况要明确,每个时刻只允许一个步运行,步于步的转换需依照方向线指示。在程序设计过
程中,设计者是通过存储空间来表示一个步,例如M0.1表示S1,M0.2表示S2,对于这些
使用的存储位,设计者要保证其状态的确定性,例如不要误操作这些位,或通过一些逻辑组
合来限制对这些位的修改等,这些存储位直接关系系统的控制效果及运行安全。
5.2单序列控制的编程方法——喷烤漆单元
5.2.1控制任务描述
图喷漆单元设备图
S1—托盘检测
S2—止动气缸至位
S3—止动气缸复位
HEAT—电加热器
M—传送电机
FAN—烘干风扇
YV1—喷漆电磁阀
RTD—Pt100铂热电阻
HL1—红色指示灯
HL2—绿色指示灯
C—止动气缸
YV2—止动气缸电磁阀
HEAT
S1
RTD
FAN
YV2
HL1HL2
S2S3
C
M
图喷烤漆单元结构图
喷烤漆单元属于自动化柔性系统中的一个环节,其外观如图所示,用来对装配完成的
工件进行喷漆和烤漆操作。
喷烤漆单元的结构图如图所示,工件置于托盘中,由传送电机M送入喷烤漆房,此时
由止动气缸C控制的挡板将托盘挡住,S1检测托盘,检测到托盘后绿色指示灯HL2将亮
起,延迟3s后开启喷漆电磁阀YV1维持0.5s后关闭,紧接着开启电加热器至70%,当温
度达到60℃时,开启排风扇FAN并维持5s,5s后关闭加热器和风扇,止动气缸电磁阀YV2
闭合10s,挡板将被移除,托盘继续前进,红色指示灯亮HL1也亮10s,10s后挡板复归原
位,气缸收回,红色指示灯灭,系统停止运行。
5.2.2硬件分配表
输入、输出硬件资源分配表如图所示,在加热部分包含了模拟量的输入和输出,本例
中采用8位分辨率的模拟量通道。
输入输出
名称代号地址名称代号地址
托盘检测
S1I0.0
止动气缸电磁阀
YV2Q0.0
止动气缸至位
S2I0.1
喷漆电磁阀
YV1Q0.1
止动气缸复位
S3I0.2
烘干风扇
FANQ0.2
启动按钮
SB1I0.3
传送电机
MQ0.3
停止按钮
SB2I0.4
绿色指示灯
HL2Q0.4
红色指示灯
HL1Q0.5
Pt100铂热电阻
RTDIW10
电加热器
HEATQW10
5.2.3绘制顺序功能图
M0.0
M0.1
I0.3
M0.2
Q0.3
Q0.5
SQ0.4
T1:3s
I0.0
M0.3
Q0.1
T2:0.5s
T1
M0.4
T2
SQW105600H
M0.5
IW≥1C00H
Q0.2
T3:5s
T3
M0.6
SQW100000H
Q0.0,Q0.3,T4:10s
M0.7
T4
RQ0.4
起始步;
启动信号;
启动电机,点亮红灯;
检测托盘;
持续点亮绿灯,等待3s;
等待3s时间到;
开启喷漆电磁阀,计时0.5s;
等待0.5s时间到;
设定加热器开度为70%;
直到温度达到60℃;
打开风扇,计时5s;
等待5s时间到
关闭加热器;
开启止动气动阀、传送电机,计
时10s;
等待10s时间到;
关闭红灯
图顺序功能图
顺序功能图设计如图所示,将系统工序分为7个步,分别用M存储区中M0.0~M0.7表
示,M0.0根据需要进行激活,然后依次执行,对于没有标明“S”进行置位的输出,仅表示
在该步中进行输出操作,退出该步自动复位,在到达最后一道工序M0.7时,执行完相应操
作,例如复位Q0.4后,M0.7也将自动复位,退出此喷漆控制流程。
5.2.4程序设计
转换条件
当前步
下一步
图步转换程序实现
顺序功能图的程序设计方法也有特定的范例可以参考,对于一个步,关键步骤在于步
的进入和退出,对于梯形图程序设计,常采用自保持的方法来实现上述两种功能,程序编写
方式可如图所示。转换条件作为自保持的触发条件,例如此处的I0.3的上升沿,对于步的
退出,通过下一个步触发后,切断当前步的自保持,例如M0.2步进入,切断M0.1步的自
保持。
图步动作程序实现
对于步动作,可直接用步对应的存储位来控制,如图所示。需要注意的是,对于同一
线圈输出,应当将对同一线圈操作的步进行或运算后控制该线圈输出,例如M0.1步和M0.6
步均可需操作Q0.3,以避免误操作。如果采用置位和复位操作,置位、复位线圈可分开操
作。
控制程序如下所示,包含两大部分,前一部分属于步的转换程序,后一部分属于步的
动作程序。需注意的是步转换顺序与程序编写顺序是相反的,例如步的转换从初始步至结束,
而程序则按M0.7到M0.0转换编写,这是由于PLC程序是至上而下执行,当进入某一步时,
按步顺序的反方向编程,在同一周期内可直接将前一步切断,例如M0.7接通,下一条程序
即可将M0.6切断,如此可避免同一周期内两个步同时接通,防止两个步同时产生动作,对
于动作要求严格的控制程序,需要十分注意。
M0.7属于结束步,M0.7步
会将Q0.4复位,复位后,M0.7
步自动退出。
M0.1步和M0.6步同时控制
传送点击Q0.3动作,采用或关
系。
初始步由M1.0信号控制进
入,该信号可在OB100中产生,
或由此顺序操作处的使能操作处
产生。
绿色指示灯Q0.4采用置位
线圈控制方式,定时器采用接通
延时定时器,当计时时间到后产
生“ON”信号,作为下一个步的
转换条件。
5.3选择及循环序列的编程方法——工件检测单元
图检测单元设备图
S1S3S5S4S2M1YM1HL1
HL2
S1—托盘检测
S2—上盖检测
S3—标签检测
S4—销钉检测
S5—材质检测
M1—传送电机
YM1—直流电磁吸铁
HL1—红色指示灯
HL2—绿色指示灯
图检测单元结构图
5.3.1控制任务描述
检测单元属于自动化柔性系统中的一个环节,外观如图所示,主要功能是运用各类检
测传感装置对装配好的工件成品进行全面检测,通过PLC产生检测结果,以此作为后续分
捡单元的分捡依据。
初始状态下直线传送电机M1处于静止状态,直流电磁吸铁YM1竖起禁行,工作指示
灯HL1和HL2熄灭。
系统启动运行后,M1驱动传送带开始运转且始终保持运行状态。当托盘检测S1检测
工件进入本站后,绿色指示灯HL2点亮,延时3秒HL2熄灭,示意工件到位;系统通过上
盖检测S1(上盖为1/无上盖为0)、销钉材质检测S5(金属为1/非金属为0)、标签检测S3
(贴签为1/未贴签为0)、销钉检测S5(穿销为1/未穿销为0),持续2s时间检测,判别工
件是否装配完整;如果工件装配完整,HL2闪烁2s;如果工件装配不完整,红色指示灯HL1
闪烁4s,发出警示。
HL1、HL2闪烁指示结束后,YM1落下放行工件,延时4s后,YM1恢复原位,系统
回到启动运行状态,等待工件再次到来;系统将依次循环运行,直至按下停止按钮。
5.3.2硬件分配表
输入、输出硬件资源分配表如表所示。
表I/O分配表
输入输出
名称代号地址名称代号地址
托盘检测
S1I0.0
传送电机
M1Q0.0
上盖检测
S2I0.1
直流电磁吸铁
YM1Q0.1
标签检测
S3I0.2
红色指示灯
HL1Q0.2
销钉检测
S4I0.3
绿色指示灯
HL2Q0.3
材质检测
S5I0.4
启动按钮
SB1I0.5
停止按钮
SB2I0.6
5.3.3绘制顺序功能图
M0.0
M0.1
I0.5
M0.2
SQ0.0
Q0.3
T1:3s
I0.0
M0.3T2:2s
T1
T2·I0.1·I0.2·I0.3·I0.4
M0.5M0.4
T2·I0.1·I0.2·I0.3·I0.4
Q0.2闪
T4:4s
Q0.3闪
T3:2s
T3T4
M0.6
Q0.1
T5:4s
T5
5.3.4程序设计
步的切换也可采用RS指令实现,通过M指令表示各个不同步,通过进入条件
起始步;
等待启动信号;
传送电机M1持续运行;
等待托盘检测S1检测工件到来;
绿色指示灯HL2亮;
持续点亮3s;
开始检测,保持2s时间检测;
若此时S2、S3、S4、S5信号均检测到,
HL2闪烁2s;
若此时S2、S3、S4、S5信号未能完全
检测到,HL1闪烁4s,指示检测错误;
闪烁结束后,电磁铁YM1吸合,放行
工件;
4s放行时间到后,系统将回复启动状
态;
5.4并行序列的编程方法——物料混合控制
粉料仓液料仓
粉料
称重斗
液料
称重斗
搅拌料斗
V1
V2
V3
M1
S1
V4
S2
S1—粉料称料斗称重传感器
S2—液料称料斗称重传感器
V1—粉料仓排料电磁挡板
V2—液料仓排料电磁阀门
V3—粉料称料斗电磁挡板
V4—液料称料斗电磁挡板
V5—搅拌料斗排料电磁阀门
M1—搅拌电机
V5
图物料混合装置结构
5.4.1控制任务描述
图中的物料混合装置用来将粉末状的固体物料(粉料)和液体物料(液料)按一定的
比例混合在一起,经过一定时间的搅拌后便得到成品。粉料和液料用量均采用电子称来计
量。
初始状态时粉料称料斗、液料称料斗和搅拌器都是空的,它们底部的排料通道V3、V4、
V5均关闭;液料仓的排料阀V2、粉料仓下排料挡板V1关闭,搅拌机的电机M1停转。
系统启动后,粉料仓和液料仓将分别下料,下料量由二者称料斗中称重传感器S1、S2
检测;当粉料下料量达5kg,V1关闭,开启V3下料,直至重量低于0.5kg后关闭;当液料
下料量达40kg,V2关闭,开启V3下料,直至重量低于0.5kg后关闭;当下料均完成后,
搅拌电机M1启动,搅拌2分钟后,停止运行,开启V5,排料1分钟后关闭。
搅拌并排料完成后,系统将循环运行,直至按下停止按钮。
5.4.2硬件分配表
输入、输出硬件资源分配表如图所示,在称重传感器采用12位分辨率的模拟量输入通
道。
表I/O分配表
输入输出
名称代号地址名称代号地址
粉料称料斗称重传感器
S1I0.0
粉料仓排料电磁挡板
V1Q0.0
液料称料斗称重传感器
S2I0.1
液料仓排料电磁阀门
V2Q0.1
启动按钮
SB1I0.2
粉料称料斗电磁挡板
V3Q0.2
停止按钮
SB2I0.3
液料称料斗电磁挡板
V4Q0.3
搅拌料斗排料电磁阀门
V5Q0.4
搅拌电机
M1Q0.5
5.4.3绘制顺序功能图
下图为物料混合顺序功能图,其中粉料称重重量转换后由MD10中值表示,液料称重
重量由MD14值表示。
M0.0
I0.2
M0.1
MD10>5.0
Q0.0
MD10<0.5·MD14<0.5
M0.2Q0.2
M0.3
MD14>40.0
Q0.1
M0.4Q0.3
M0.5
Q0.5
T1:2min
T1
M0.6
Q0.4
T2:1min
I0.3T2
起始步,所有输出关闭
等待启动信号到来;
启动后,V1开启进粉料,直至粉料大于5kg后
关闭;进料完成后,V3开启出料;
与此同时,V2开启进液料,直至液料大于40kg
后关闭;进料完成后,V4开启出料;
当称料斗中粉料重量小于0.5kg且液料重量小
于0.5kg,开启M1运行2分钟搅拌;
搅拌完成后,开启V5出料1分钟;
若执行过程中按下停止按钮,物料混合过程将
结束,回到初始步;
若搅拌完成后未要求停机,物料混合将重新开
始进料。