推广 热搜: 电机  PLC  变频器  服务机器人  培训  变送器  危化品安全,爆炸  西门子PLC  触摸屏  阀门 

WorldFIP总线控制系统组态软件的开发

   日期:2013-03-23     来源:工控之家网    作者:工控之家    浏览:27    评论:0    
摘 要:为了让WorldFIP用户对总线控制系统的网络配置与控制策略的组态更加方便快捷,本文开发了这种图形化的组态软件。在对总线协议和系统特点分析之后,本文采用了基于COM组件技术的三层客户/服务器结构对组态软件进行了整体设计。组态软件的中间件FipServer采用COM技术来设计和实现,文中给出了FipServer中的几个关键的接口函数。本文为功能块应用进程组态设计了良好图形界面,给出了主要类的UML静态类图。实验表明,该软件运行效果良好,并在开放性、连通性、稳定性上具有良好的性能。

关键词:WorldFIP; 组件软件; 三层结构; 组件技术

Abstract: For the convenience of configuring network and control strategy of WorldFIP fieldbus control system, this graphical configuration software is developed. After analyzing the bus protocol and WorldFip system, the architecture of this software is built in three-layer client/server model based on component technology. The middle-ware (FipServer) is designed with COM, whose several key interface functions are given. A graphical configuration interface is explored for function block application process, whose main classes are described with UML static class diagram. Experiment proves that this software can work normally with excellent performance in its openness, connectivity, stability, etc.

Keywords: WorlFIP; Configuration Software; Three-Layer Architecture; Component Technology;

引  言

  WorldFIP是现场总线IEC61158国际标准中的第七种类型,适用于工业控制现场。采用WorldFIP现场总线,既可以传输实时数据,又可以传输随机信息,是一种确定性的、可预测的、又是一种可与Internet无缝连接的现场总线。独特的物理层冗余设计使WorldFIP现场总线为控制系统的高可靠运行提供了强有力的保障。目前WorldFIP总线已广泛应用于国内外的核电、铁路、石油、化工等行业,但WorldFIP产品的应用与开发主要集中在监控级层次上,对现场层的WorldFIP应用研究还是一片空白。由此可见,开发一套完整的WorldFIP现场总线控制系统具有非常现实和积极的意义[1]。组态软件是WorldFIP总线控制系统中的上位软件部分,是用户和系统的接口,担负着设备管理、设备组态、网络组态、控制回路组态等任务,在整个系统中占有重要地位。

1 基于COM组件的三层组态软件的设计

  本文在组态软件的整体架构设计中,运用了组件技术,遵循客户/服务器设计原则和开发方法构建WorldFIP组态软件框架。组态软件按三层C/S结构划分为表示层的组态软件客户程序、业务层(中间件)的总线驱动FipServer和数据层的现场设备。客户端程序先与中间件FipServer通信,通过它再与现场设备进行通信。组态软件的整体结构如图1所示。

  组态软件客户程序作为组态软件的客户端,是用户与现场设备进行数据交互的工具,客户端软件根据WorldFIP网络特点分别设计相应的组态模块。通过客户程序,用户可以对现场设备的信息进行读取和写入,并对控制系统组态。客户程序包括以下几个功能模块:项目管理模块、功能块参数组态模块、功能块应用进程组态模块与调度信息组态模块。

  中间件FipServer负责组态软件与现场设备进行数据和信息的交互。这层采用了进程外COM组件技术进行设计,为客户端的请求提供透明式的总线访问服务和设备物理位置定位。现场设备相当于三层结构的数据层,组态软件根据设备的地址信息通过中间层对各个设备进行数据的读取和写入。


图1 组态软件整体结构图

2 FipServer的设计开发

  FipServer程序主要的作用是管理主机应用程序和WorldFIP网络的通信,它对WorldFIP通信协议服务进行了封装,使组态软件不用知道通信的细节。本文采用ATL技术来开发FipServer这个进程外COM组件。FipServer程序有自己的图形界面,如图2所示。图形界面可以显示网络上活动的WorldFIP设备的数目和FipServer服务状态,可让使用者观察FipServer程序的运行状态[2]。


图2 FipServer运行界面

  FipServer的COM接口类为CFipServer,内部封装了WorldFIP应用层和用户层协议,采用ATL技术实现。当主机应用程序调用CFipServer的函数时,CFipServer的函数就会调用相应协议的接口函数,下面介绍几个主要接口函数的主要功能。

  (1) SetPhTag(…)函数功能是设置网段唯一的设备标识号和设置网段唯一的功能块标识号。

  (2) EstablishBA(…)是建立并启动主站的一个新的BA(总线仲裁)表。主站初始状态会有一个BA表,主要包含非周期报文和变量通信窗口,用于基本设备的组态信息下载上传、设备存在、设备标识等服务。组态客户端生成或修改控制策略与调度时间时,相应的BA表也需更新,这时组态软件就会调用该函数来刷新主站的BA表。

  (3) GetDeviceList(…)接口获得在线活动设备的列表。当FipServer进程启动以后,就会周期地从主站设备读取在线设备的报告信息,并记录下在线设备的信息,具体信息包括物理地址和标识号(8字节)。当组态客户端调用该接口函数时就可以获得总线上的活动设备列表。

  (4) ReadObject(...)接口是FipServer提供的最重要的接口之一,它的功能主要是读取现场设备的各种信息,当主机应用程序需要获取设备对象字典中的数据时,可以调用该接口函数,函数根据传进来设备信息、对象字典索引就可以读取现场设备对象字典中的相应信息。函数主要是对设备访问代理协议中的Read服务进行了封装,函数根据传进来对象字典的索引和子索引的不同而调用不同的读服务。

  (5) WriteObject (...)接口也是FipServer提供的最重要的接口之一,它的功能主要是向现场设备写入各种信息。组态软件需要对设备对象字典中更新数据时,可以调用该接口函数,函数根据传进来设备标识和对象字典索引就可以向现场设备对象字典中的相应的位置写入信息,该函数主要是封装了设备访问代理的Write服务,根据传进来的对象字典的索引和子索引的不同而调用不同的写服务。

3 组态软件客户端软件的设计与实现

  组态软件客户端是组态软件与工程人员交互的组态图形系统,是总线工程系统的调度和控制中心,它在组态软件系统中起着极其重要的作用。本文首先采用了面向对象的建模技术,借助UML建模语言实现了系统建模,然后采用面向对象的编程方法,基于Windows的MFC技术,以C++为编程语言,以Visual C++6.0为工具,依据所建立的图形系统模型,实现了整个组态图形系统。组态软件的整体结构采用的单文档多视图的结构。即所有的数据结构由文档类CFipXConDoc来管理,所有模块从该文档中取得所需的数据,进行处理以后再保存到该文档中。在Windows操作系统中,组态软件的整体图形界面如图3所示。


图3 组态软件的主窗口

  图中左边视图是项目管理模块,用于对整个控制系统的组态项目进行整体的管理,网段、主站、基本设备和功能块的增删改查都在这里进行。右边工作区多视图是各种组态模块的视图,图中所示的视图分别是功能块参数组态模块和功能块应用进程组态模块。

  3.1 数据结构的设计

  根据现场总线结构的分布式和层次结构的特点,软件中采用以设备为对象的数据结构设计,关于设备信息的数据结构保持在文档类中。设备信息分别保存在设备基类(CFipBasDevice)、派生类网关设备类(CFipBridge)和派生类从设备类(CFipSlaDevice)中。设备基类从CObject派生,并重载了Serialize(CArchive& ar)函数。这些设备类主要记录设备的基本信息,如设备的DeviceID、设备的物理地址、设备标识、设备中的功能块列表,功能块数量等信息,以及对设备类的操作方法。设备以设备列表的形式组织,具体结构采用MFC指针数组模板类CtypedPtrArray实例化的CFipDevArray。

  每个设备包含有多个功能块,功能块类保存了功能块的各种信息。本文为功能块类设计了一个基类CFunBlkBase,其他具体功能块的类都从它派生,如CAIBlk、CPIDBlk、CAOBlk等。基类从CObject类派生,并且重载了Serialize(CArchive& ar)函数。同样,设备类也定义一个动态数组CFunBlkArray保存它的功能块。

  3.2 功能块应用进程图形化组态的设计与实现

  功能块应用进程的编辑采用图形化方法来组态,功能块应用进程编辑的界面如图2所示。用矩形框图代表功能块,引脚代表功能块的输入和输出,引脚间的连线代表功能块参数间的关联。编辑功能块应用进程时,用鼠标选取组成功能块应用进程所需的功能块并创建功能块框图,并用鼠标在引脚间画线来建立功能块之间的连接关系。

  本组态界面系统主要由图元类库和图形操作工具类库构成。在图元类库中,类CDrawObj是抽象基类,定义了所有图元类具有的共同属性和操作接口,是其它图元类的父类。CDrawFunBlock是功能块框图类,由它派生出具体功能块绘图类,如CAIDrawBlk等。CDrawLinkPLine是连接线类,CTextObj是文本类。图形操作工具类是将用户在界面上的操作翻译成对工程画面上图元的操作的辅助类,主要功能表现在对图元的操作控制功能,如图元的生成编辑撤销、移动和选择等。根据所操作的图元对象的种类,视图类选择相应的工具类来编辑图元对象。在工具类库中,类CDrawTool是其他工具类的基类。类CSelectTool定义了对图元的选中操作,类CDrawPLineTool定义了对连接线类的连接操作,类CFunBlkTool定义了对功能块类的创建和移动,图4描述了这个界面系统的静态类和相互之间的关系[3]。


图4 功能块应用进程图形组态的UML静态类图

  当用户进行功能块连接组态时,每完成一次功能块之间的连接,根据连线对象的输入和输出所指的功能块之间的关联关系,创建相应的链接对象(CLinkObj)并给予赋值。链接对象内容主要包括服务类型、设备地址、周期变量编号、本地索引、远方索引等内容。为了让功能块之间的连接都与链接对象相对应,程序定义了连接类(CLink),连接类主要记录了这对输入和输出参数的链接对象。在功能块应用进程编辑视图中,每进行一次功能块之间的连接编辑,就生成一个功能块之间的连接,也就生成了两个链接对象。下载链接对象时,程序遍历CDrawLinkPLine对象,通过调用COM接口程序FipServer的写服务将链接对象下载到指定设备中[4]。

4 结束语

  本文搭建了一个简单的实际的总线控制系统来测试组态软件,本系统由一个温度变送器、一个总线-电流变送器(FI)、一个网关(主站)、一个加热炉和一台PC机构成。策略组态配置了温变运行AI功能块、FI的PID功能块和一个AO功能块,形成一个闭环回路将加热炉内的温度控制为一个给定值。整个测试按照5个用例依次进行,结果表明:组态软件通过主站成功读取了现场设备信息,并获取视图数据和功能块信息,组态软件成功将组态信息下载到现场设备并对其组态。现场设备运行正常,并实现基本控制功能。

  本文的创新点在于:在充分分析了WorldFIP协议和总线系统特点之后,率先设计开发出了一套方便实用的面向功能块的WorldFIP现场总线控制系统组态软件。这套软件是在中文Windows2000环境下以VC++6.0为平台实现的。这套软件采用了三层C/S模式的软件结构,具有很好的开放性和扩展性。软件具有友好的人机界面,可为用户提供直观方便的对本FCS系统的组态配置。

参考文献

  [1]史学玲.WorldFIP现场总线技术[J].工业控制计算机,2001,14(2):29-30

  [2]张剑清,张齐.基于COM的组态软件I/O设备驱动程序设计[J].微计算机信息,2007,2-1:293-295

  [3]王亚民,陈青,刘畅生,王水平.组态软件的设计与开发[M].西安电子科技大学出版社,2003

  [4]张建华,战明,于海斌.FF现场总线仪表及组态技术[J].微计算机信息,2006,6-1:175-176

 
打赏
 
更多>同类环保知识
0相关评论

推荐图文
推荐环保知识
点击排行
网站首页  |  免责声明  |  联系我们  |  关于我们  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  RSS订阅  |  违规举报  |  鲁ICP备12015736号-1
Powered By DESTOON