技术频道

浅析虚拟DPU技术在仿真DCS中的应用

引言

在计算机信息网络技术的促进下,为适应对大型工业过程及其控制系统的分析、优化和训练的需求,集散控制系统DCS的全范围仿真正在向所谓“虚拟”技术方向发展。目前,虚拟DCS的实现主要包括三种方式,激励型DCS、仿真DCS和虚拟DCS。[1]其中基于虚拟DPU(分散处理单元)技术的虚拟DCS介于另外两者之间,其控制参数和算法完全来自于下载文件,使用与实际DPU相同的算法、模块、时间片、位号等,可以同步修改更新,软件功能逼真度较高,实现成本低。[2]因此,虚拟DPU技术能够真正有效、经济和广泛地应用于人员培训、在线检测、故障诊断和设计调试DPU,满足火力发电等过程工业“数字化”的需求。

1 虚拟DPU技术

SYMPHONY集散控制系统和其他DCS控制系统一样,主要有DPU来完成,虚拟DPU技术将实际DCS系统中的DPU的处理功能移植到虚拟DPU的软件上,脱离硬件设备,采用软件仿真在计算机上实现一个或多个DPU工作过程的模拟。这样就可以直接运行设计人员组态好的文件,执行其控制策略。然后,通过与操作员站人机界面(HMI)的通讯接口相连,就可以完成整个DCS流程动态数学模型仿真系统。

下图(图1)为虚拟DPU在整个DCS工作过程中的位置。

图1虚拟DPU在整个DCS中的位置


从图中可以看出虚拟DPU完全取代了真实的DPU,对下载好的组态文件进行处理,然后在操作员站显示出执行的结果。这样既能完成设计调试、人员培训等离线功能,又能进行在线检测和诊断。

2 虚拟DPU仿真软件的实现

结合华北电力大学仿真与控制技术实验室引进的Symphony系统,运用虚拟DPU技术对Symphony集散控制系统实现模型仿真。

2.1面向对象方法

面向对象方法(Object-Oriented Method)是一种把面向对象的思想应用于软件开发过程中,指导开发活动的系统方法,简称OO(Object-Oriented)方法,是建立在“对象”概念基础上的方法学。对象是由数据和容许的操作组成的封装体,与客观实体有直接对应关系,一个对象类定义了具有相似性质的一组对象。继承性是对具有层次关系的类的属性和操作进行共享的一种方式。所谓面向对象就是基于对象概念,以对象为中心,以类和继承为构造机制,来认识、理解、刻画客观世界和设计、构建相应的软件系统。

面向对象方法支持三种基本的活动:识别对象和类,描述对象和类之间的关系,以及通过描述每个类的功能定义对象的行为。面向对象的第一个原则是把数据和对该数据的操作都封装在一个类中,在程序设计时要考虑多个对象及其相互间的关系。有些功能并不一定由一个程序段完全实现,可以让其它对象来实现,面向对象的另外一个好处是实现代码的重复使用。

2.2虚拟DPU控制算法模块

Symphony分散控制系统包含255种软件模块,即255个功能码。这些功能码可以分为四种类型,执行块、系统常数块、输入/输出块、用户可组态块。[3][4] 它们主要完成五大功能:1. 输入输出。完成模拟量、逻辑量和脉冲量等输入输出功能。2.模拟控制。完成模拟量的运算及其控制。3.逻辑控制。完成逻辑量的运算及其控制。4.顺序控制。完成提供设备的自动手动顺序切换等功能。5.特殊计算。提供特殊的计算功能。根据对其算法、模块、时间片、位号等的分析,对虚拟DPU控制算法模块进行开发。在VC++中,采用面向对象的模块编程技术,创建虚拟DPU基类库。这五个大模块在运行过程中,通过不同的功能调用,完成了DPU的基本功能。同时,五大模块下层又有一些小模块来辅助其实现该功能。

2.3虚拟DPU智能编译部分

智能编译部分主要是对DPU组态后下载文件的代码进行扫描解释,然后建立完整的虚拟DPU组态语义库。结合控制算法模块,把控制算法模块以库文件的形式与扫描得到的代码编译链接,得到虚拟DPU控制程序。

2.3.1组态文件的结构

ABB公司推出的Symphony分散控制系统是通过其系统工程工具Composer进行DCS组态的。对Composer编译后的下载文件结构的分析,不同模块有着不同的二进制结构,但大体上有着相似性。它们都是先标明该模块所占的字节数,接着依次是块地址、常数块号、输入地址、输入值、输出地址、输出值等(如图2)通过对这些二进制结构的识别,进行进一步的编译工作。

图2下载文件的一般格式

2.3.2编译部分的实现

编译部分在整个虚拟DPU的过程中,主要的作用是连接组态文件和算法类库,把二者对应起来,然后得出显示的结果。如图3是对这几个部分所在位置和功能的说明。

图3编译部分在整个程序中所在的位置

3 软件封装与测试

为了对模块进行测试,采用对话框形式的图形操作界面建立一个测试环境。在这个测试环境中,以实际系统可能出现的各种情况对模块进行初始化和赋值,以实际系统相同的时间片调用模块,使测试环境尽量接近于实际的系统。[5]
测试的重点在:1)模块接口——模块能否被正确的初始化和赋值,能否正确地输出数据;2)异常处理——软件对异常情况的特殊处理是否到位,是否能够达到准确无误。

测试方法采用黑盒测试和白盒测试。黑盒测试即已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求。它意味着测试要在软件的接口处进行。白盒测试即已知产品的内部工作过程,可以通过测试证明每种内部操作是否符合设计规格要求,所有内部成分是否已经过检查。它是对软件的过程性细节做细致的检查。[6]
组态图完成后,首先对组态图下载,然后运用所编的软件一步步执行,得出结果,于实际DPU的运行结果相对照,看虚拟DPU系统能否做到设备的正确启停,对变化及事故的处理能否做出正确响应。其次观察其调试速度是否与真是DPU相同。通过多次的反复测试、调试使其仿真软件能够正确可靠地运行,这样就完成了软件的开发。

4 结束语
  
虚拟DPU 由于它使用与真实 DPU 相同的算法,模块,时间片和位号。因此具有更高的软件逼真度。它能够和真实DPU 相联网运行,实现机组的性能计算,在线诊断,优化运行等高级功能。相信虚拟DPU技术将在大型工业过程仿真中有着越来越广泛的应用。

文章版权归西部工控xbgk所有,未经许可不得转载。