PLC 编程方法、方式研究

2021-09-08 07:53史腾虎李少波于丽娅
自动化仪表 2021年7期
关键词:顺序控制继电器编程

史腾虎,李少波,于丽娅,周 鹏

(贵州大学机械工程学院,贵州 贵阳 550025)

0 引言

可编程序逻辑控制器( programmable logic controller,PLC)是一种基于数字运算的电子操作系统,专为工业环境而设计,它因1969 年美国数字设备公司(digital equipment corporation, DEC) 为通用汽车(general motors,GM)公司开发汽车生产流水线而出现[1-2]。 到目前为止,PLC 不仅拥有丰富的逻辑指令,还具有强大的运算能力和通信功能,在现代工业的各个领域都有它的应用,已成为自动化控制的核心。 为更好地推动工业自动化的发展、提高编程的效率,有必要系统论述自PLC 诞生以来,在工业界广泛应用的几种主要的编程方法和编程方式,对比它们各自的特点和适用的工程范围,从而揭示从简单工程到复杂工程之间的逻辑主线,为广大工程人员的工业应用提供必要的参考。

1 PLC 编程方法

PLC 编程方法是指编排工程逻辑关系的一种设计。 根据这种设计,可以快速、准确地编写出满足相应功能要求的程序。 虽然目前PLC 已经形成了五大编程语言:语句表(statement list,STL)、梯形图(ladder diagram,LAD)、功能块图(function block diagram,FBD)、顺序功能图(sequential function chart,SFC)、结构化文本(structured text,ST)[3-4],但无论哪一种语言都可以依据本文所论述的方法实现快速、准确的编程。因LAD 语言更为广大电气工程人员所接受,所以本文以此为例进行编程方法的展示。

1.1 经验设计法

经验设计法是依据工程人员的先验知识而直接编程的一种方法,多针对较简单工程。 因其运行逻辑关系简单而能够直接构思出来,所以为节约网络数,多采用起保停编程方式进行程序的编写。 同时,当顾客的要求发生改变时,富有经验的工程人员可以现场改编程序并直接将其投入生产。

案例1:单击开始按钮I0.0,电机1(Q0.0)立即启动;间隔15 s(T37)后,电机2(Q0.1)启动;再间隔20 s(T38)后,电机3(Q0.2)启动。 单击停止按钮I0.1,电机3 立即停止;间隔25 s(T39)后,电机2 停止;再间隔10 s(T40)后电机1 停止。

此工程运行逻辑关系比较简单,可以直接构思出来,所以通常凭借编程经验直接采用起保停的编程方式进行编写。

案例1 的程序如图1 所示。

图1 案例1 的程序图Fig.1 Procedure diagram of Case 1

PLC 价格昂贵且功能强大,将其应用于简单工程会浪费内部极其丰富的软元件资源。 因此,针对这类工程,目前大都是用交流接触器、中间继电器、时间继电器等硬件直接组成并行的硬件逻辑电路[5-6],总体成本比直接使用PLC 低很多。 案例1 的并行硬件逻辑电路如图2 所示。

图2 案例1 的并行硬件逻辑电路Fig.2 Parallel hardware logic circuit of Case 1

图2 中:FU 为熔断器;BB 为热保护器;KF 为时间继电器;SF 为按钮;QA 为电机的交流接触器。 与图1中的软元件的对应关系为:KF1~KF4 对应于T37~T40;SF1~SF2 对应于I0.0~I0. 1;QA1~QA3 对应于Q0.0~Q0.2。

1.2 时序图设计法

时序图设计法是针对较复杂工程而采用的一种编程方法。 这类工程因涉及并行、循环等分支,单凭借编程经验,一般难以厘清各机构之间的运行逻辑关系,因此需要一定的编程方法。

时序图是专为描述这类工程而开发的流程展示图,是在波形图的基础上演变而来的[7]。 时序图利用波形图的高电平表示输出点的ON 状态、低电平表示输出点的OFF 状态;跳变位置表示触发条件,而跳变与跳变之间的距离则表示运行时间上的间隔。 因此,时序图清晰地表示出了工程的运行逻辑关系,十分有利于据此编写程序。

案例2:单击启动按钮(I0.0),南北红灯亮25 s,这期间,东西绿灯先亮20 s(T37),再以1 Hz 的频率闪烁3 次(C0),接着东西黄灯亮2 s(T38)。 25 s 后,南北红灯熄灭30 s,东西红灯开始亮30 s,南北绿灯先亮25 s(T39),然后以1 Hz 的频率闪烁3 次(C1),接着南北黄灯亮2 s(T40)。 之后循环运行,单击停止按钮(I0.1),所有灯熄灭。 根据以上所述,案例2 的时序图如图3 所示。

图3 案例2 的时序图Fig.3 Sequence diagram of Case 2

1.3 顺序功能图设计法

由于复杂工程往往涉及选择、跳转、嵌套等复杂分支,时序图一般难以描述,需要新的设计方法。 顺序功能图设计法是针对复杂工程而采用的一种编程方法。

顺序功能图以通用辅助继电器(M)作为运行环节的中心,以十字线条作为流程的导向和触发条件,以方框表示每一个环节应该运行的软元件种类和数量。 通过线框组合,可清晰地描述出复杂工程的运行逻辑关系。 当工程要求发生变化时,可在图上直接进行修改。

案例3:按下启动按钮,GP1、GP2、GP3 泵分别将碱、聚合物、水抽入1#、2#、3#容器,抽满后分别发出信号,GP1、GP2、GP3 泵关闭。 此时若接通I1.4,则GP4、GP6 泵分别将1#、3#抽到4#容器;若接通I1.5,则GP5、GP6 泵分别将2#、3#抽到4#容器。 同时启动搅拌器60 s,4#满或者1#、2#、3#容器空,则GP4、GP5、GP6 泵关闭。搅拌时间到后,检测均匀程度:若不合格,则再次搅拌60 s;若合格,GP7 将4#抽到5#,直至4#空或者5#容器满,GP7 泵关闭。 至此,一个循环完成。 按启动按钮后,新一轮循环开始。 案例3 的示意图如图4 所示。

图4 案例3 的示意图Fig.4 Schematic diagram of Case 3

与经验设计法、时序图设计法不同,功能图设计法多应用于复杂工程。 在编排相应的顺序功能图之前,必须首先定义好相应的输入、输出点地址,才能够设计出逻辑关系清晰的功能图。 针对案例3,输入、输出点地址分配如表1 所示。

表1 输入、输出点地址分配Tab.1 Address assignment of input and output points

根据案例3 的描述,以及相应的输入、输出点地址分配,编排工程的整体流程。 案例3 的顺序功能如图5 所示。

图5 案例3 的顺序功能图Fig.5 Sequence function diagram of Case 3

图5 中:SM0.1 为初始扫描到ON;M 为通用辅助继电器;“=1”指上面并行条件同时满足时成立;“*”为“与”条件;“+”为“或”条件。

2 PLC 编程方式

编程方式是将编程方法具象化的手段。 就目前而言,PLC 主要有三种编程方式:起保停编程方式、置复位编程方式和顺序控制指令编程方式。 每种编程方式都有其优缺点,综合应用才能够达到最佳的编程效果。

2.1 起保停编程方式

起保停编程方式以步为中心,与传统的并行硬件逻辑电路相似。 其也正是由此演化而来的[8-10],所以这种编程方式最为广大电气工程人员所接受。 图1 程序采用了起保停编程方式进行编写,可以和图2 并行硬件逻辑电路图作对比。 这里有两点需要注意。 一是PLC 内部没有如硬件时间继电器的即通电即保持接通/断开的触点,所以需要利用通用辅助继电器(M)来作为自锁的供电电路。 二是PLC 中的时间继电器(T)只有在分辨率为100 ms 的情况下才可用自身常闭触点断自己的供电,而分辨率为10 ms 和1 ms 的时间继电器则不可。 这与不同分辨率的时间继电器在PLC内部具有不同的刷新方式有关。

2.2 置复位编程方式

交通灯的置复位编程方式如图6 所示。

图6 交通灯的置复位编程方式Fig.6 Set/reset programming mode for traffic lights

置复位编程方式是在起保停编程方式基础上改进的一种编程方式。 起保停编程方式每一步不仅需要考虑自身网络,还需要考虑与上、下网络之间的联系[11-13],因此每一步编程都需要跨越3 个网络。 而置复位编程方式只需要考虑自身网络情况,逻辑关系更加清晰。 所以,在同等工程量下,置复位编程方式一般比起保停编程方式所用到的软元件总量要少。

如1.2 节中所述工程:根据图3,按照从左到右、从上到下的顺序依次编程(并规定东西绿灯闪烁用M0.1,南北绿灯闪烁用M0.0,T37~T40 自锁供电用M0.2~M0.5);用置复位编程方式进行程序的编写,则如图6 所示(文中只给出Q0.1、Q0.4、T37~T40 的程序)。

图6 中:SM0. 5 为时钟脉冲,通0. 5 s,断0. 5 s。实际编程按下降沿计数,所以绿灯长亮的编程时间均应比工程规定的时间少0.5 s,即计数值应为4 而非3。

2.3 顺序控制指令编程方式

以1.3 节所举的工程为例,用三种编程方式进行其前七步中心环节的编程。

三种编程方式的比较如图7 所示。

图7 三种编程方式的比较Fig.7 Comparison of three programming methods

顺序控制指令是PLC 生产厂家专为便于工程人员编写顺序控制程序而开发出的指令[14-15]。 由于顺序控制指令由各个PLC 生产厂家提供,因此每个厂家规定的指令形式、数量及使用方法都有所不同[16-20],不像前两种编程方式,在任何品牌PLC 中都通用。

以S7-200 PLC 为例,SIEMENS 公司提供了四条顺序控制指令:顺序状态开始(SCR)、顺序状态转换(SCRT)、顺序状态结束(SCRE)、条件顺序状态结束(CSCRE)[21-23]。 需要注意的是:用顺序控制指令进行编程时,中间继电器不再是通用辅助继电器(M),而是顺序控制继电器(S)[24-26],否则程序无法运行。

3 编程方法、方式的比较

3.1 编程方法的比较

针对不同类型的工程,采用适配的编程方法,才能达到最佳的编程效果。 针对简单工程,因其运行逻辑关系简单而能够直接构思出来,所以常采用经验设计法。 因为工程逻辑关系简单,将主要精力集中在单个网络集成度上,反而使得起保停编程方式在简单工程中更具有优势。

针对较复杂工程,若直接采用顺序功能图设计法,步骤较为繁琐,反而会导致开发效率的降低,故时序图设计法是更优的设计方法。

复杂工程运行分支的复杂性,使顺序功能图设计法成为唯一适用的设计方法。 也正因为这个特点,顺序功能图设计法能够向下兼容所有的工程类型。 但研究发现,顺序功能图设计法是三种编程方法中设计步骤较为繁琐的。 遵循“能用简单,不用复杂”的原则,是保证开发效率的基础。

3.2 编程方式的比较

通过图1、图6 和图7 的比较分析,本文提出考核编程方式的两个重要指标:单个网络集成度、逻辑关系清晰度。 单个网络集成度以一个网络内具有的软元件总量多少作为评判标准,逻辑关系清晰度以本网络与上下网络间的联系程度作为评判标准,因此可以得出编程方式特点的比较,如表2 所示。

由表2 可知:起保停编程方式单个网络集成度最高、逻辑关系清晰度最低、在简单工程中网络数最少,所以最适合简单工程;顺序控制指令编程方式单个网络集成度最低、逻辑关系清晰度较高、在所有工程中网络数最多,所以最适合复杂工程;置复位编程方式单个网络集成度适中、逻辑关系清晰度达到顺序控制指令编程方式的等级、在所有工程中网络数均适中,所以适用于所有的工程类型,整体最有优势。 同时,通过对图1、图6 和图7 的进一步分析可以得出,随着工程复杂度的提高,编程时,其逻辑关系清晰度的重要性远大于单个网络集成度。

表2 编程方式特点的比较Tab.2 Feature comparison of programming modes

此外,置复位编程方式以转换条件为中心,而起保停编程方式以步为中心进行编程[25],因此置复位编程方式可以直接处理如图8(a)所示的两步闭环操作,而起保停编程方式则不可。 若想运用起保停编程方式,必须将图8(a)改为图8(b)。 这样无疑将增加程序的复杂度和网络数。

图8 两步闭环功能图的比较Fig.8 Comparison of two-step closed loop function diagrams

4 结论

本文系统论述了PLC 在工业界广泛应用的三种主要的编程方法和编程方式,并进行了详细的比较。随着工程复杂度的提高,其逻辑关系清晰度的重要性远大于单个网络集成度,从而揭示了从简单工程到复杂工程之间的逻辑主线,并得出了顺序功能图设计法可以兼容所有工程类型,置复位编程方式在三种编程方式中整体最优的结论。

虽然PLC 已广泛应用于现代工业的各个领域,经过几十年的发展有了长足的进展,但仍有以下问题要解决。 ①虽然PLC 已经形成了五大编程语言,但即使是同一种编程语言,各PLC 生产厂家所规定的指令形式、使用方法仍有较大不同,这给工程人员带来了困扰。 ②尽管PLC 已经形成了主程序调用子程序、中断程序的工作模式,但仍然无法满足一些复杂工程中的应用场景,如大型系统之间程序的无缝配合、脉冲中断程序的及时响应等。

PLC 没有可视化窗口,需要另外搭配相应的触摸屏设备。 因此,将触摸屏和PLC 进行集成,或提高计算机的可靠性来代替PLC,以及研发通用的高级编程语言,可能是今后的发展方向。

猜你喜欢
顺序控制继电器编程
顺序控制在智能变电站中的应用
编程,是一种态度
元征X-431实测:奔驰发动机编程
编程小能手
继电器控制及诊断在电动汽车动力电池包的应用
纺织机上诞生的编程
便携式继电器测试台的研制和应用
PLC顺序控制设计方法的深入探析
智能变电站中顺序控制的功能分析与实现
继电器在电气工程及其自动化低压电器中的作用