PLC编程语言梯形图与结构化文本的比较
   来源:中国科技博览     2018年03月16日 03:45

陈世委

[摘 要]本文结合开化华埠污水厂自控编程中遇见的实际情况,举例研究了常用的梯形图语言和结构化文本在顺序控制逻辑以及数据算法中的实现,并对它们的优缺点进行了分析与总结。

[关键词]PLC编程语言;梯形图;结构化文本

中图分类号:TP273 文献标识码:A 文章编号:1009-914X(2017)08-0179-02

0 引言

可编程控制器(Programmable Logic Controller)简称PLC,它是一种用编程来改变控制功能的控制器。最早在20世纪60年代,由美国率先研发成功,伴随着计算机技术、软件技术、芯片技术、互联网技术的发展,PLC的软硬件性能均得到了较大的提高。随着工业技术的发展,特别是中国制造业的兴起以及机器换人等工业化进程的深入,PLC的应用越来越广泛,产生的经济价值也越来越明显。

在PLC发展过程中,国际电工委员会(简称IEC)于1993年指定并公布了PLC的相关标准,称为IEC61131。在IEC61131标准的第三部分,阐述规范了PLC的编程语言,该部分標准为IEC61131-3。该标准规范了PLC编程语言的五种类型,分别为:顺序功能图(SFC)、梯形图(LAD)、功能块图(FBD)、指令表(IL)、结构化文本(ST),PLC编程语言均有各自的优劣,如何合理选用PLC编程语言将直接影响到PLC程序的编辑与执行效率。

1 PLC编程语言

IEC61131-3标准规范了PLC的五种编程语言,具体如下:

1、顺序功能图提供了一种组织程序的图形方法,用来描述开关量控制系统的功能,根据它可以很容易地画出顺序控制梯形图程序。

2、梯形图是使用得最多的PLC图形编程语言。梯形图与继电器控制系统的电路图很相似,直观易懂,很容易被工厂熟悉继电器控制的电气人员掌握。

3、功能块图是一种类似于数字逻辑门电路的编程语言,有数字电路基础的人很容易掌握。

4、指令表是一种与微机的汇编语言中的指令相似的助记符表达式。指令表程序较难阅读,其中的逻辑关系很难一眼看出。早期使用手持式编程器时应用较多。

5、结构化文本(ST)是IEC6113-3标准创建的一种专用的高级编程语言。与梯形图相比,它能实现复杂的数学运算,编写的程序非常简洁和紧凑。

在水行业的PLC控制功能编程过程中,应用最多的是梯形图与结构化文本两种语言。下文对两种编程语言进行深入的探讨。

1.1 梯形图

梯形图语言是PLC程序设计中最早,也是最常用的编程语言。它是与继电器线路类似的一种编程语言。PLC的起源就是替代维护、升级较为复杂的继电器回路。由于电气设计人员对继电器控制较为熟悉,因此,梯形图编程语言得到了广泛的欢迎和应用。梯形图编程语言的特点是:与电气操作原理图相对应,具有直观性和对应性;与原有继电器控制相一致,电气设计人员易于掌握。

1.2 结构化文本

结构化文本语言是用结构化的描述文本来描述程序的一种编程语言。它是类似于高级语言的一种编程语言。结构化文本编程语言与BASIC语言、PASCAL语言或C语言等高级语言相类似,但为了应用方便,在语句的表达方法及语句的种类等方面都进行了简化。结构化文本编程语言的特点:采用高级语言进行编程,可以完成较复杂的控制运算;需要有一定的计算机高级语言的知识和编程技巧,对工程设计人员要求较高。

2 梯形图与结构化文本语言的比较

在PLC编程过程中选用哪种编程语言不是绝对的,大部分的程序控制功能梯形图与结构化文本均能实现,但在不同情况下,不同的编程语言将展现出不同的优劣,我们通过几个例子来分析。本文PLC程序案例基于GE的PAC3i系列,硬件环境为PAC3i的IC695CPE310 CPU模块,编程环境为Proficy Machine Edition(简称ME)。

2.1 水泵自锁逻辑

水泵自锁启停逻辑是PLC编程学习过程中最常用的案例,也是在水处理行业设备控制中使用最广泛的逻辑。

具体要求为:当设备处于远程状态时,可由上位机设置设备的运行状态为中控控制或者自动控制。在中控控制模式下,由上位机鼠标操作设备的启动或者停止,在自动控制模式下,由PLC逻辑程序控制设备的启停。

梯形图编程实现如图1:

标签名注释如表1:

梯形图编程实现上述功能简单明了,程序逻辑在此不做分析。

结构化文本实现如下:

IF rem AND ((PC AND (start OR OutQ) AND NOT stop) OR (auto AND auto_start)) AND NOT fault THEN

OutQ:=1;

ELSE

OutQ:=0;

END_IF;

结构化文本虽然也实现了设备不同控制模式下的启停控制功能,但是控制逻辑不够直观,甚至较难理解。当设备故障查询时,较难发现故障点的存在。

上述例子可以发现,在设备的顺序控制逻辑中,梯形图较为直观、简洁,查询处理故障时,较为方便。结构化文本较为复杂、逻辑形式抽象,查询处理故障时,难以入手,直观性和操作性较差。

2.2 模拟量平均值信号处理

在信号采集过程中,由于各种因素的影响,造成模拟量信号的波动,当信号波动时,除了硬件上消除信号干扰的存在,软件上通常也使用多种滤波程序来实现信号采集的稳定,平均值计算是常用的一种方法。

以流量为例,要求利用最近五次采集的瞬时流量的平均值,做为瞬时流量的信号。

梯形图编程实现如图2:

标签名注释如表2:

以上程序分三部分功能组成:

1、每个扫描周期将存储的改周期的流量值赋值给上一个扫描周期的流量值,利用MOVE REAL块功能实现;

2、将五个扫描周期的流量值累加,利用ADD REAL块功能实现;

3、计算五个扫描周期流量累加值的平均值,利用DIV REAL 块功能实现。

结构化文本编程实现如下:

//將本扫描周期流量值赋值给上一个扫描周期

for i:=0 to 3 do

FET[i+1]:=FET[i];

end_for;

FET[0]:=FET_OR;

//计算总值

for i:=0 to 4 do

FET_SUM:=FET[i]+FET_SUM;

end_for;

//计算平均值

FET_AVG:=FET_SUM/5.0;

结构化文本与梯形图实现逻辑基本相似,但结构化文本使用了高级计算机语言的for循环来实现,梯形图只能使用较为原始的赋值、相加、相除等功能块来实现。由于现在PLC的扫描周期是毫秒甚至是微秒级的,如果要实现100个扫描周期的模拟量平均值计算,使用梯形图编程则要不断的叠加,程序将变得异常庞大与复杂。而使用结构化文本,只需要简单修改for循环的次数就可以实现100个扫描周期的平均值计算,不仅修改方便,程序长度几乎没有变化,计算逻辑简洁明了。

3 结论

通过上述两种PLC常用功能程序的分析,我们用梯形图和结构化文本分别编程并做了相关分析,可以很清晰的分辨出:当实现顺序控制逻辑时,使用梯形图编程可以使得程序变得逻辑明确,检修维护较为方便;当实现数值计算、算法处理时,使用结构化文本可以发挥高级计算语言的优势,简单明了的实现较为复杂的数据计算、算法实现。

在实际应用过程中,只有熟悉掌握了不同的PLC编程语言,并深刻了解它们之间的优缺点,才能合理利用PLC编程语言,编写出结构简单、逻辑明确、高效可靠的PLC程序。

参考文献

[1] 娄勇.PLC常用三种编程语言的比较[J].魅力中国,2010,09(下):77.

[2] 邬建新.一种基于PLC梯形图的结构化程序设计方法[J].电工技术,2006(8):56.

文章 文本 逻辑