模块化编程思想应用于自动化程序开发及实践

时间:2022-08-12 04:30:08

模块化编程思想应用于自动化程序开发及实践

【摘 要】本文介绍了计算机高级语言的模块化编程思想应用于自动化程序开发,以及我公司的脱硫系统自动化程序开发实践。

【关键词】模块化;编程;自动化;控制

0 概述

自动化程序开发代表性的语言是梯形图和功能块两种,具有方便简单、易学易懂的特点,通过搭接梯形图和功能块可实现数据处理、逻辑运算等功能,通过逐行扫描方式控制工厂现场设备运转,但编程者水平不一、梯形图或功能块编程没有统一标准,大多数编程者过多地依赖自己的从业经验,编程随意性过大,不同的编程人员难以看懂对方的程序,修改和利用别人的程序有较大困难,这种传统的经验法不适合自动化大中型系统的开发。

1 模块化

计算机高级语言(C语言、JAVA语言等)模块化编程思想就是将一个大型的复杂的目标任务通过精细合理地划分成多个相对独立又相互联系的任务模块,通过主程序对各个模块(子程序)反复调用以实现目标任务的功能,模块化编程具有结构清晰,避免重复性编程的优点,计算机软件开发中,模块化是解决软件复杂问题的手段,有助于降低软件系统的复杂性,提高可靠性和可维护性,对问题求解的大量实验进一步表明,将一个复杂的问题分解成几个较小的问题,能够减小解题所需要的总工作量。用数学式来表示,可以写成:C(P1+P2)>C(P1)+C(P2); E(P1+P2)>E(P1)+E(P2),其中P1,P2系问题P1+P2分解而得,C为问题的复杂性,E为解题需要的工作量[1]。将计算机高级语言模块化编程思想应用于自动化程序开发中,不但可以弥补传统自动化编程的缺陷,对于大中型自动化程序开发效率显著提高。

以西门子PLC的STEP7-5.4编程软件为例,将需实现的功能(如模拟量信号处理、调节阀控制、变频泵控制等)封装成FB块(功能块)通过背景数据库DB进行参数和值的传递,每一段工序可建为一个FC块视需要分别调用这些FB块,如果现场有六十个调节阀、十台变频泵,只需要分别调用调节阀控制FB块六十次、变频泵控制FB块十次即可,大大地减轻了编程人员的工作量,主程序分别调用各段工序FC块,如此则程序的条理性清晰。

2 应用

我公司年产120万吨球团配套设施再生胺法脱硫工艺系统(已申请专利,专利号:CN102350194A)采用了模块化编程思想的PLC程序开发,该系统按工艺流程(如图1)分为:预洗涤及SO2吸收子系统、SO2解吸系统、贫胺液过滤回收系统组成:

图1

2.1 预洗涤及SO2吸收子系统

球团尾气由主抽风机引入脱硫区域的喷淋塔,与喷淋塔循环泵送入的洗涤液进行剧烈的气液两相物质交换和热量交换。烟气中的烟尘被洗涤液带走,烟气中少量的SO3也溶解在洗涤液中。贫胺液(未吸收SO2的胺液)由贫胺液抽出泵送入SO2吸收塔,与逆向进入的烟气进行吸收反应。脱除了SO2的烟气进入脱硫尾气烟囱达标排放。吸收了SO2的富胺液自SO2吸收塔底经富胺液输送泵送去SO2解吸塔。

2.2 SO2解吸子系统

在SO2吸收塔中吸收了SO2的富胺液通过富胺液输送泵,先送入贫富胺液热交换器,与SO2解吸塔外排的高温贫胺液进行换热,将富胺液温度升高到一定温度进入SO2解吸塔,富胺液在塔内至上而下通过填料层,它与从塔底部上升的蒸汽接触。蒸汽提供的热量使吸收反应逆转并将SO2变回到气相(解吸工艺)。气态的SO2被蒸汽带着一同上升到塔顶并最后在SO2解吸塔顶部排出。解吸塔塔底再生后的高温贫胺液冷却后通过贫胺输送泵送往SO2吸收塔进行SO2吸收。在贫胺液输送管道上设有支管将少部分胺液送往胺液过滤及净化部分

2.3 贫胺液过滤回收子系统

通过压滤机设备除去胺液中富集的超细粉尘,使得SO2吸收塔及解吸塔不会因胺液的粉尘富集而堵塞填料层,造成填料塔运行阻力上升而影响系统的正常运行,再通过离子交换树脂用氢氧化钠溶液置换出胺液中富集的热稳定性盐,如硫酸盐、氯化盐、氟化盐等,对贫胺液进行净化, 处理后的贫胺液返回贫胺液贮罐循环使用。

综上所述,按工艺流程划分的三个子系统可编写成三个FC(功能),其中,预洗涤与SO2吸收子系统、SO2解吸子系统调节阀控制液位、变频泵控制流量较多,可编写独立的调节阀PID控制液位的FB模块、变频泵PID控制FB模块、以及流量累积FB模块,而贫胺液过滤回收子系统则侧重切断阀控制较多,可编写利用8421码思想循环有规律地控制切断阀的FB模块,只需要调用相应模块,从而有序地控制阀门的开关。再设公共的模拟信号处理FB、报警信号处理FB、联锁控制FB等模块供各FC和FB块调用。

3 结束语

计算机编程模块化思想的核心就是将一个复杂的项目通过内聚和耦合规则合理地分解成小的模块,降低工程量和程序复杂度,采用自顶向下设计逐层分解,从而将一个复杂的项目分解成若干个模块,将这种思想应用于自动化编程,也同样能降低梯形图或功能块的编程的难度,提高程序的可读性和移植性。化工厂工艺流程中涉及到很多联锁、PID控制等复杂程序。采用模块化思想对于大中型自动化系统程序开发显然更加合适方便。

【参考文献】

[1]史济民,顾春华,李昌武,等.软件工程-原理、方法与应用[M].北京:高等教育出版社,2002.

[2]张博,王志信.模块化思想在PLC系统中的应用[J].化工及自动化仪表,2013,03-0416-03.

上一篇:控制棒驱动机构电源系统的谐波磁势分析 下一篇:基于总线架构的民机驾驶舱控制面板通讯架构研...