基于虚拟DPU技术的仿真DCS的设计

分享到:
点击量: 200839

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

  1 虚拟DPU技术

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

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

  3 软件封装与测试

  为了对模块进行测试,采用对话框形式的图形操作界面建立一个测试环境。在这个测试环境中,以实际系统可能出现的各种情况对模块进行初始化和赋值,以实际系统相同的时间片调用模块,使测试环境尽量接近于实际的系统。

  测试的重点在:1)模块接口——模块能否被正确的初始化和赋值,能否正确地输出数据;2)异常处理——软件对异常情况的特殊处理是否到位,是否能够达到准确无误。

  测试方法采用黑盒测试和白盒测试。黑盒测试即已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求。它意味着测试要在软件的接口处进行。白盒测试即已知产品的内部工作过程,可以通过测试证明每种内部操作是否符合设计规格要求,所有内部成分是否已经过检查。它是对软件的过程性细节做细致的检查。

  组态图完成后,首先对组态图下载,然后运用所编的软件一步步执行,得出结果,于实际DPU的运行结果相对照,看虚拟DPU系统能否做到设备的正确启停,对变化及事故的处理能否做出正确响应。其次观察其调试速度是否与真是DPU相同。通过多次的反复测试、调试使其仿真软件能够正确可靠地运行,这样就完成了软件的开发。