一种改进的DCS通信接口方案及应用

2011-09-19 13:24段文伟付俊杰李平康
自动化仪表 2011年8期
关键词:汽包通信协议测点

蔡 钧 段文伟 付俊杰 李平康

(北京交通大学机械与电子控制工程学院1,北京 100044;内蒙古大唐国际托克托第二发电有限责任公司2,内蒙古 托克托 010206)

0 引言

分散控制系统(DCS)广泛应用于火电、化工等工业生产中,随着人们对节能环保和生产效率方面要求的不断提高,如何对DCS的功能进行改进与扩展成为了新的研究方向。Matlab软件有着强大的仿真与计算功能,且提供了许多现成的先进控制算法工具箱,操作人员可以方便地进行被控对象的建模与仿真。因此,实现DCS与Matlab的整合是对现有DCS进行功能扩展的较为理想的途径。国电智深研制的EDPF-NT plus分散控制系统是国内应用较为广泛的 DCS产品[1]。在直接调用组态软件动态链接库的基础上,文献[1]提出了利用OPC技术实现Matlab对这套DCS系统数据库进行读取的方法。

本文研究了EDPF-NT plus系统以及Matlab软件的通信特性,设计了两者之间的双向数据通信接口方案。同时,给出了利用这种通信接口方案,将Matlab模糊控制工具箱引入DCS系统,实现汽包水位控制系统PID参数的模糊在线整定。

1 系统通信实现

1.1 通信接口方案

整个通信接口方案示意图如图1所示。

图1 通信接口方案示意图Fig.1 Diagram of communications interface solution

DCS与仿真优化计算机的数据通信建立在DCS自带通信接口的基础上,避免了对DCS系统运行的独立性和可靠性的影响。EDPF-NT plus系统的接口站以用户数据报协议(user datagram protocol,UDP)的形式对外发送DCS测点的实时信息,同时在DCS组态中建立COM通信模块,通过Modbus通信协议读取外部设备中的数据。整个通信接口方案的硬件部分由仿真优化计算机、EDPF-NT plus系统(配有接口站以及COM模块)、路由器、网线以及双绞线组成。Matlab具有良好的扩展性,但对于Modbus和UDP通信协议软件只提供了串口对象以及UDP对象的创建函数。为了实现数据的接收与发送,还需要编写Matlab环境下的通信客户端程序。

1.2 通信协议简介

用户数据报协议UDP是一种简单的面向数据报的传输层协议。由于只负责将数据在网络上进行发送而无需客户端做出应答,因此UDP协议的传输速度较快[2],可以及时地将DCS中的测点实时数据发送到Matlab软件中。

Modbus协议是一种可靠而有效的通用串行通信协议,它由Modicon公司于1979年提出,现已成为工业领域通信协议标准,是工业电子设备之间常用的连接方式。其通信采用主从方式,通过查询/回应的方式实现数据的传输。Modbus协议有ASCII模式和RTU模式两种数据传输方式,EDPF-NT plus系统的COM通信模块采用的是后者。

1.3 UDP通信的实现

UDP报文的结构一般由头部与数据区两部分组成。在EDPF-NT plus系统中,头部固定16 B,依次为:域号、站号、字节数、数据包类型、数据包时间、数据包中测点个数和点名列表文件版本号。数据区中,每个测点信息占用12 B,最多包含100个测点,即最大长度为1 200 B。

在EDPF-NT plus系统中实现UDP数据包发送需要先通过EDPF-NT plus系统接口站运行目录configmmi下的配置文件dip.ini,对客户端数量、IP地址以及最长发送间隔进行设置。设置完成后,将待发送测点的列表文件dip_pnt.csv存放在同一个目录下。然后启动接口站,待发送测点的信息就会以UDP数据包的形式发送到指定IP地址。

Matlab软件提供了UDP对象的创建函数,本文在此基础上根据EDPF-NT plus系统发送的UDP数据包格式编写了数据读取程序,并将得到的数据存入工作空间以便其他程序调用。创建UDP对象的命令为:udpB=udp(ipA,portA,‘LocalPort’,portB),其中 ipA和portA分别为DCS系统接口站的IP地址及端口号,portB为本地端口号。

由于在Matlab中通过UDP对象直接读取的数据默认为十进制,而DCS发送来的测点实时值是32位浮点数。因此,还需要加入一段将十进制数转化为浮点数的程序,才能正确读取DCS测点实时值。程序的原理是先将每个十进制数转化为8位二进制数,不足8位的用0补足;然后将4个8位二进制数连接成1个32位二进制数并通过数字编码器转化为浮点数。数据转换的主要程序为:bin=strcat(bin1,bin2,bin3,bin4);q=quantizer(‘float’,[32 8]);out=bin2num(q,bin)。其中bin1、bin2、bin3、bin4 是4个8位二进制数。

1.4 Modbus通信的实现

Modbus的数据帧由头部、数据区以及校验码组成。从站设备产生回应数据帧中的功能代码与主站发送的功能代码保持一致,数据区则存放主站设备请求的数据,帧尾的校验码用于判断网络传输是否正确[3]。

以DCS系统的COM模块为主站设备,运行Matlab软件的计算机为从站设备,选取Modbus功能码03(读取从站设备保持寄存器中的数据),实现DCS系统从Matlab软件中获取数据的功能。由于EDPF-NT plus系统的COM通信模块本身就支持Modbus通信协议,所以只需用Windows中的超级终端设置模块通信口的参数、建立通信任务列表,COM通信模块就能开始工作[4]。Matlab端的Modbus通信程序实现了创建串口对象并进行数据帧读取、识别主站请求、计算校验码、生成并发送回应数据帧。创建串口对象的主要语句为[5]:s=serial(‘COM1’,‘Baudrate’,9 600,‘DataBits’,8,‘StopBits’,1,‘Parity’,‘none’,‘FlowControl’,‘none’)

2 汽包水位模糊PID控制实现

2.1 汽包水位控制系统描述

汽包给水控制回路是火力发电厂DCS系统中非常重要的控制回路,保证锅炉汽包的正常水位是汽包锅炉和汽轮机安全运行的重要条件之一。汽包水位受到蒸汽流量、给水流量、汽包压力、温度和燃烧工况等多个参数的影响,是具有多变量、大滞后强耦合及非线性的对象,且系统参数具有时变性,难以建立精确的数学模型。应用传统方法整定的PID控制器在负荷变动等动态的情形下难以实现比较好的控制效果[6]。

模糊控制算法是一种对被控对象的非线性适应性好、鲁棒性较强的控制算法。在DCS汽包水位控制系统中引入模糊控制算法,在线整定PID控制器的参数能够改善控制系统的动态性能,同时不影响系统的稳态精度[7]。利用本文提出的通信方案,将Matlab中提供的Fuzzy工具箱与EDPF-NT plus分散控制系统相结合,可以方便地实现DCS汽包水位控制系统PID参数的在线模糊整定。

2.2 PID参数的在线模糊整定

在DCS汽包水位串级3冲量控制组态的基础上,通过与Matlab软件的通信引入了一个二维模糊控制器[8],对主回路中PID控制器的参数进行在线整定。模糊控制器的输入变量为水位的偏差e以及偏差变化率ec,输出为PID控制器3个控制参数的偏置值Δkp、Δki、Δkd。当水位的偏差e以及偏差变化率ec随着工况不同而变化时,模糊控制器输出PID参数的偏置值Δkp、Δki、Δkd,对原 PID 参数进行在线整定,从而改善汽包水位控制系统的动态性能。

模糊自整定PID汽包水位控制系统的结构如图2所示。

图2 控制系统结构图Fig.2 Structure diagram of control system

各个量的模糊集均为{NB,NM,NS,ZO,PS,PM,PB},分别表示“负大”,“负中”,“负小”,“零”,“正小”,“正中”,“正大”,论域为|e|和|ec|。Δkp={ -3,-2,-1,0,1,2,3},Δki={ -0.6,-0.4,-0.2,0,0.2,0.4,0.6},Δkd={ -3,-2,-1,0,1,2,3}。建立|e|、|ec|与Δkp、Δki、Δkd之间的模糊关系规则表此处略[9]。

为了保证数据通信以及模糊运算的实时性,在Matlab程序中采用2个定时器对通信程序和模糊控制器进行定时调用。定时器创建命令为:

tp=timer(‘TimerFcn’,{@timerCallback1,handles.text_p,handles.text_s,handles.text_fsetting,handles.text_domain,handles.text_drop,handles.axes1},‘ExecutionMode’,‘fixedDelay’,‘Period’,0.5);

其中‘Period’参数是计时器的周期,即通信程序调用的周期。DCS一般的采样周期是1 s,本文将通信周期设为0.5 s,保证了DCS数据的实时获取。程序流程图如图3所示。

图3 程序流程图Fig.3 Flowchart of the program

2.3 数据通信试验

针对给水流量作用下汽包水位传递函数[10]和蒸汽流量作用下汽包水位传递函数,选取采样时间为0.1 s,采用模糊在线整定PID控制器对水位系统进行控制,其实现过程介绍如下。

①在使用EDPF-NT plus分散控制系统的某火电厂DCS汽包水位控制组态中添加PID参数偏置量测点并作为变参数调节的PID控制器算法模块的输入。

②设置DCS中接口站和COM模块的通信参数。

③打开Matlab端的GUI界面,完成通信参数的设置后,界面中将会显示汽包水位相关测点的实时值以及汽包水位的实时趋势曲线。

④ 单击“开始优化”按钮,Matlab将会运行PID参数模糊整定程序,在 GUI界面中显示 Δkp、Δki、Δkd的实时值。此时,工作状态一栏将显示“优化中”,但这只表示Matlab中的模糊控制器正在运行,要将模糊整定得到的参数应用于实际PID控制器还需要在DCS过程画面中进行操作。

⑤打开DCS的工程师站PID参数优化窗口,能够观察到汽包水位趋势曲线以及PID参数的初始值和优化值。单击“开始模糊优化”按钮,将出现10 s的操作确认窗口,确认之后优化状态一栏将显示绿底色的“模糊优化”字样,表明此时汽包水位控制主回路中的PID控制器已采用模糊整定之后的优化值。若要停止优化,则单击“停止模糊优化按钮”并进行操作确认,此时状态栏显示“优化停止”。

3 结束语

本文提出的EDPF-NT plus分散控制系统与Matlab软件的通信方案具有易于实现、不影响DCS系统运行的独立性和可靠性的特点。基于Modbus和UDP通信协议的数据通信接口方案在数据通信过程中无需对DCS内部数据库进行操作,可保证DCS运行的独立性与可靠性。建立的DCS与Matlab软件之间的实时数据连接,为改进和扩展现有DCS系统的功能提供了新的思路。

[1]张洁浩,李平康.基于OPC技术的控制系统PID参数优化[J].自动化仪表,2009,30(11):54 -56,60.

[2]王金东.基于UDP通信的感应电机调速方法研究[D].北京:北京交通大学,2009.

[3]曹祁,王晓萍,郭振武.Modbus协议在数据采集仪中的实现[J].机电工程,2004,21(6):49 -50.

[4]杜秀霞,张伟,李平康.基于DCS与MATLAB的车辆传动系统仿真平台数据通信的实现[J].测控技术,2008,27(7):67 -68,71.

[5]王明伟,李茜,汤伟.基于MATLAB串口通信的数据采集系统的设计[J].微计算机信息,2005,21(8-1):89 -90.

[6]Xu Min,Li Shaoyuan,Cai Wenjian.Cascade generalized predictive control strategy for boiler drum level[J].ISA transactions,2005,44(3):399 -411.

[7]罗猎勇.模糊-PID在工业锅炉汽包水位控制中的应用[J].计算机应用与软件,2009,26(1):200 -202.

[8]张国良,曾静,柯熙政,等.模糊控制及其Matlab应用[M].西安:西安交通大学出版社,2002:79 -84.

[9]Li Pingkang,Irwin G W,Kruger U.A recursive rule base adjustment algorithm for a fuzzy logic controller[J].Fuzzy Sets and Systems,2005,156(2):267 -284.

[10]海山.锅炉汽包水位的智能控制研究[D].内蒙古:内蒙古大学,2008.

猜你喜欢
汽包通信协议测点
非常规吊装火电厂锅炉汽包
基于CATIA的汽车测点批量开发的研究与应用
锅炉汽包蒸汽品质波动问题模拟分析及改造
基于Wireshark的列控中心以太网通信协议解析器的研究与实现
某废钢渣车间落锤冲击振动特性研究
余热锅炉冬季汽包水位控制存在的问题及改进措施
关于电力物联网信息模型及通信协议的设计要点分析
动量轮诊断测点配置与资源占用度成本评价
基于风险分析的安全通信协议简化研究
RSSP-I、RSSP-Ⅱ及SAHARA三种安全通信协议实现技术简介