王晓云
(安微省化工设计院,安微合肥230009)
DCS是分散控制系统 (Distributed Control System)的简称,国内一般习惯称为集散控制系统。它是一个由过程控制级和过程监控级组成的以通信网络为纽带的多级计算机系统,综合了计算机 (Computer)、通讯 (Communication)、显示(CRT)和控制(Control)等4C技术,其基本思想是分散控制、集中操作、分级管理、配置灵活、组态方便。工业炉控制系统涉及温度、转速、压力、流量等多点多类型物理量控制,因此非常适合DCS的应用。
RS485总线由于其组网方便、非常适用于工程集散控制系统的应用。RS-485采用平衡发送和差分接收方式实现通信:发送端将串行口的TTL电平信号转换成差分信号 A、B两路输出,经过线缆传输之后在接收端将差分信号还原成TTL电平信号。由于传输线通常使用双绞线,又是差分传输,所以有极强的抗共模干扰的能力,总线收发器灵敏度很高,可以检测到低至200 mV电压。故传输信号在千米之外都是可以恢复。RS-485最大的通信距离约为1 219 m,最大传输速率为10 Mb/s,传输速率与传输距离成反比,在100 kb/s的传输速率下,才可以达到最大的通信距离,如果需传输更长的距离,需加485中继器。RS-485采用半双工工作方式,支持多点数据通信。本系统就是基于RS485总线构建的工业窑炉集散控制系统。
控制系统硬件部分主要由工控机、温控仪、I/O模块、485电缆、变频器、电机、窑炉体等构成。
工控机为普通工业控制计算机,适用于工业现场较恶劣场合。主要功能采集现场数据、数据库记录、监控及参数设定功能。
导电SR94温度控制器,带RS485通讯功能,与上位工控机进行实时数据交互。
带有RS485通讯功能I/O模块用于采集和设定现场I/O数据,包括数字量和模拟量信号。
变频器通过RS485口发送和接受电机转速信息。
ROSEMOUNT 3411P型温度变送器,用于检测炉膛实际温度。
西门子SITRANSP系列压力变送器,检测炉膛压力。
E+H TMASS 65系列热式质量流量计,用于测量气体流量。
RS485/RS232转换模块,由于采用的工控机只有RS232接口,因此系统必须具有此转换装置。
图1为常用工业窑炉DCS控制系统框图。上位工控机通过485总线与下位控制仪表或模块连接,工控机通过485总线读取下位仪表参数状态并在监控软件中实时显示、分析和记录。另外,工控机还发送相应控制信号,下位机接受到指令进行运算处理,然后发出相应的信号控制现场被控对象,使其处于期望的状态。
图1 工业炉DCS控制系统示意框图
软件是数字控制系统的灵魂,其设计的优劣直接影响整个控制系统的性能。本系统采用VB.NET作为工具来开发监控软件。VB.NET是微软新推出具有完全面向对象功能的VB最新版本,用来开发运行于.NET框架环境下的应用程序,具有很好的移植性。.NET程序对运行环境是没有特别的要求的,只要安装了.Net framework,它就能在上面运行(不管是Windows系统,还是Linux系统,甚至是Window CE嵌入式系统)。微软的.NET和Sun公司的JAVA基本上类似,都是需要平台支持的,Java需要虚拟机,.NET程序需要.net framework。其编程思想实现了从过程式到面向对象的跨越,支持多线程应用程序开发。
面向对象的程序设计是软件系统设计和实现的重要方法,可以通过增加软件的可扩展性和可重用性,来控制软件开发和维护的复杂性与开销。
为了体现面向对象思想,软件按功能封装为如下几大类和模块,模块功能框图如图2。
(1)主界面类模块(ClassUI);
(2)温度控制仪表类(ClassTC),其主要负责读取下位仪表仪数据并送至UI模块显示;
(3)串口通讯类(ClassSerailPortComm),运用多态性实现不同类型通讯仪表的统一接口,该类应具有后期绑定动态联接特性。负责串口通讯;
(4)按钮类(ClassButton),可以继承标准按钮控件或自定义控件用来响应按钮事件;
(5)报警灯类(ClassA larm Lamp)实时获取和显示报警状态;
(6)变频器类(ClassFC),读取和设定网带速度;
(7)用户信息类(ClassUserInfo),该类为可串行化类,用于保存用户信息;
(8)数据记录类模块(ClassDataSetRecord),其主要负责记录数据到数据库;
(9)曲线记录类模块(ClassTermCurve),温度曲线的显示保存;
(10)应用程序配置类模块(ClassMyAppConfigure),为可串行化类;
(11)参数设置类模块(ClassTechnicsConfigure),负责工艺参数的设置与保存。
(12)网络通讯模块类(ClassNetComm),负责与外部网络或设备进行网络通讯。
(13)配置程序,用来修改配置文件。
图3 软件总体功能框图
上述各类和模块相互之间通过子类化、类的合成以及接口调用等方法进行通讯,将各个独立模块有机结合起来协调工作,实现系统所需功能。
多线程允许CPU同时独立执行多个任务,因而提高了资源的利用率以及应用程序的性能和灵敏度。自由线程提供非同步处理机制可以在不影响其他应用程序部分的前提下新建一个线程来进行一些长时间的任务、复杂的查询请求或者多块同步计算。
.NET框架中包含的System.Threading命名空间专门负责实现多线程功能,而且操作相当简单,只需要利用该命名空间中的Thread类,就具有了实现自由线程的属性和方法。按照本系统软件的功能要求,将程序划分为如下几个线程:
(1)主线程,为UI线程,负责处理消息响应,界面刷新。操控其他后台自由线程;
(2)通讯线程,主要负责工控机与下位智能仪表的数据通讯;
(3)数据记录线程,主要负责数据库连接和数据记录;
(4)网络通讯线程,与外部设备及网络进行通讯。
由于软件采用面向对象和多线程思想实现,因此程序运行效率较高、升级维护非常方便。例如:增加或减少温区数,只需增减温控仪类实例数即可;如更换相关器件,将相应类模块更改即可,由于面向对象封装的特性,不会影响到程序其他部分的正常功能;对于需要更改同类型的功能更多的仪表,只需通过继承一个新类,加入少量针对新增功能的代码就可以实现,充分体现面向对象思想中代码的重用性。
由于基于485串行总线,本系统硬件搭建便捷,通过很少的通讯线路即可组建DCS控制网络。监控软件采用VB.NET实现,运用面向对象思想以及多线程技术,系统响应快、效率高、后期维护升级非常方便。该系统已经成功应用于多种控制系统设备,实际运行效果较好。
[1](美)Katsuhiko Ogata.现代控制工程[M].北京:电子工业出版社,2000.
[2]唐树才等.VB.NET程序设计与应用[M].北京:电子工业出版社,2002
[3]张燕红.计算机控制技术[M].南京:东南大学出版社.2008.