摘 要:本文介绍了WISENTBASE软件开发平台的设计和功能。其主要包括:.NET framework系统下的进程间通信、日志管理、消息和报警管理、面向对象的分布式结构设计、外部通讯系统设计、数据字典管理、HMI结构设计、数据库访问的代码封装等。此开发平台大大提高了软件开发的质量和效率。
关键词:进程间通讯;过程控制;数据字典管理
1.引言
大型生产线的自动控制系统,根据控制范围、功能划分、系统功能的抽象层次,可被分为多个层级,其中生产过程控制系统,位于生产管理系统和基础自动化系统之间。随生产线自动化程度的提高、生产的计算机自动化管理的深入和精细,过程控制系统在大型冶金自动化生产线上,成为不可或缺的部分。过去,完备的过程控制系统的底层开发平台,只有国外大型电气公司拥有,国内电气公司在该领域普遍缺乏深入开发和技术积累。
过程控制系统,总的来说是一个具有软实时性特征的实时系统,能实现以下主要功能:同外部系统通讯、原料数据管理、成品数据和质量数据管理、物料跟踪、工艺参数管理、生产设定值计算、人机操作界面、生产过程监控和数据收集分析等功能。过程控制系统的特点是面向对象的分布式系统架构,使各功能由多个不同进程实现,进程间通讯成为最常用和最关键的基础功能。
本文以WISENTBASE开发平台为蓝本,介绍一种先进的过程控制开发平台的设计—基于.net平台的过程控制系统开发平台设计。
2.设计思想和总体框架
按软件功能的实现层次,过程控制系统结构,按面向对象的分布式系统架构设计,整个软件由核心到外围分成三层:核心业务逻辑层、外部通讯适配层、外部通讯层。
核心业务逻辑层实现最核心和最重要的过程控制业务逻辑,如:物料跟踪、过程数据收集、设定值计算等。外部通讯层,实现和各种外部系统的通讯,如:基础自动化通讯、生产管理系统通讯、各种单体设备通讯。这部分要实现各种不同的通讯协议和数据格式转换。每条生产线的外部通讯内容和格式都不尽相同,为实现具体生产线的通讯内容差异和核心业务逻辑的解耦,需要外部通讯适配层来实现隔离。
核心业务逻辑层和外部通讯适配层的实现技术相同;外部通讯层实现技术特殊,定制内容和变化多。所有软件层都是由一个或多个进程组成,每个进程都需要实现相同的基本功能,如:配置信息管理、进程间通讯系统的初始化和关闭释放、日志系统、消息和报警系统、错误捕捉等。这些功能间的耦合性也很高,在开发平台的设计上,这些功能也被紧密结合在一起,采用Framework模式。
WISENTBASE平台,从结构上看,被分成三个层次:核心库、扩展库、辅助工具。其中,核心库实现了基本的应用程序框架,并封装了每个进程必须实现的基本功能的完整实现,定义了每个进程必须实现的对外服务接口和常用接口,并提供了这些接口的基本功能实现。为方便应用开发人员和扩展库开发人员为基本库添加和修改功能,基本库中留出了扩展点。核心库还封装了常用Win32 API调用的.NET封装和常用工具类,方便应用开发人员使用这些功能。
辅助工具,有如下几个:进程管理、HMI框架配置工具、数据字典管理工具、日志查看工具、各种文档生成工具、报文和通讯测试工具、消息和报警管理工具等。这些工具大部分不直接参与应用程序的运行、数据管理脚本等。
基于.net平台的过程控制系统开发平台设计主要包括以下几个方面:核心功能和结构设计、外围功能和扩展设计、HMI系统设计、辅助工具设计和数据库访问设计。
3.核心功能和结构设计
核心库实现功能:实现应用程序框架、配置信息管理、进程间通讯、日志功能、多个接口的定义、封装各种常用工具类和Win32调用。核心部分是应用程序框架类,通过该类的派生类,可使用其它所有功能。
WISENTBASE开发库的核心库中,提供了应用程序框架类Application,该类是一个抽象类,每个应用程序必须派生自己的Application子类,并重载部分函数,完成相应功能。
Application类完成功能:初始化参数系统、日志系统、进程间通讯服务系统、发布对外通用服务、调用用户定制的初始化代码、进入消息循环、关闭所有服务和运行环境、调用用户定制关闭代码。
WISENTBASE开发平台提供了三种进程间通讯手段:远程过程调用、通过共享内存进行数据共享、通过互斥量、事件对象实现同步、互斥操作和事件。
远程过程调用分为双向调用和单向调用,这两种调用方式可满足进程间消息传递、数据报文和带返回值的远程过程调用通讯要求。
.Net framework的远程过程调用规范叫Remoting.NET,可支持多种串行化格式和底层通讯协议。考虑到性能和可靠性,WISENTBASE开发库支持IPC和TCP/IP通讯协议,串行化格式采用二进制编码。
WISENTBASE封装了远程过程调用的底层实现细节,通讯协议、各程序的监听地址和端口等信息,通过配置文件保存,对上层应用程序部分完全透明。
过程控制系统,一般都处于无人值守状态,运行日志成为过程控制系统必须具有的辅助功能。WISENTBASE核心库中,实现了日志功能。缺省情况下,日志输出目的地有两个:控制台窗口和日志文件目录。日志文件,可根据配置信息,按一定规则自动切换,并删除陈旧文件。为方便管理和查看日志文件,WISENTBASE辅助工具中,提供了专门的日志查看工具。
WISENTBASE提供的日志功能,包括:按类别输出运行日志、格式化日志消息、跟踪程序执行轨迹、输出调用堆栈详细信息、对异常进行统一处理和日志输出、通过代码注入和调用拦截自动为远程过程调用生成日志和性能记录。
生产过程控制系统,稳定性要求很高。如果发生进程出错而退出、逻辑错误进入死循环或死锁,要求能够自动强制杀死失去响应的进程并重启该进程。
WISENTBASE核心库的框架中,提供了进程的自我监控。辅助工具中,提供了看门狗程序和进程监视管理工具。看门狗程序根据配置信息,自动监视同一台计算机上的需要被监视的进程。当发现某进程失去响应或退出,看门狗程序将自动强行杀死失去响应的进程,在一定时间间隔后重新启动该进程。
进程监视工具通过看门狗程序,显示每个被监视进程的状况,并提供操作界面,供操作人员管理单个进程,如:关闭进程、启动进程、设置进程为被管理、为进程设置日志输出的过滤级别,查看每个进程处理的消
息线索号。
WISENTBASE的扩展库部分,包括多种外部通讯代理和HMI开发基础库。这些扩展库都是针对具体应用功能,利用核心库提供的功能,对核心库进行的扩展。
过程控制系统,需要提供人机操作界面,供生产线操作人员和系统管理人员使用。HMI主要功能:原料数据管理、成品数据管理、生产设定值和工艺参数管理、生成过程数据管理、生产线数据监视、数据查询和报表、消息和报警、操作权限管理等。其中,部分数据是纯粹数据库中的数据,变化慢;部分数据是基础自动化上传的数据和过程控制系统的运行数据,数据变化快;还有一部分数据,是和基础自动化系统的监控系统共享的。
在.NET framework中,数据库访问采用ADO.NET技术。WISENTBASE开发库中,支持类型化的数据集和Entity Framework,对数据库操作进行封装。支持数据库:Oracle和MS SQL Server。
4.总结
WISENTBASE开发平台自开发出来后,成功应用于几十条生产线的过程控制系统中,其稳定、高性能、易于使用的特点,大大提高了软件开发的质量和效率,特别是方便现场调试,缩短了软件开发和系统投入周期,为公司和最终用户节约了成本。
参考文献:
.2007年。