WCF技术在炼钢转炉二级过程控制系统的应用
2021-04-23胡桃英
胡桃英
(飞马智科信息技术股份有限公司,安徽马鞍山 243000)
引言
随着转炉检测技术的发展,生产现场一级冶炼信号越来越密集,对转炉冶炼过程信息的获取、传输与显示能力要求越来越强,传统的通信机制已经无法满足现有的自动化技术[1]。因此,选择合适的数据通讯方式尤为重要。针对系统数据传输的规模性、实时性以及通讯的可靠性、安全性,采用了WCF技术作为炼钢转炉二级控制系统的通信方式,并验证了其可行性。
1 WCF技术简介
WCF(Windows Communication Foundation) 是由微软开发的一系列应用程序之间进行数据通信的通用基础结构,是开发和部署在Windows环境中运行服务的开发工具和环境[2]。本系统是基于Win7操作系统,开发平台是Visual Studio2010。
WCF技术允许创建服务,可以跨进程、计算机和网络从其他应用程序访问这些服务。由服务类(Service Class)、宿主(Host)和终端点(Endpoints)组成。其中Endpoints是WCF核心技术要素,WCF Service由一个Endpoints集合组成,每个Endpoints就是用于通信的入口,客户端和服务器端通过Endpoints交换信息[3]。即通过配置和绑定,识别出要使用的服务和终端点,知道要使用的绑定和依从的协议后,就可以与WCF服务进行通信。
2 炼钢转炉二级控制系统
炼钢转炉二级控制系统根据一级冶炼信号自动生成炉次号,实时显示冶炼过程,包括:铁水,废钢加入量,枪位,氧流量,氧总量,底吹氩流量,各种散装料的添加量,测温和化验结果,模型计算的温度和成分曲线等;显示炉次处理的所有过程步骤以及时间;显示冶炼历史数据等。与多个模型系统进行通信,为模型提供必要的实时和历史数据,并接受模型计算结果。
3 WCF技术在炼钢转炉二级控制系统中的应用优势
炼钢转炉二级控制系统数据采集来自于多个不同系统,从基础自动化(一级冶炼)系统获取生产事件(如开吹、测温取样、出钢等),处理的过程信息(如枪位,氧流量,底吹氩流量等),物料消耗量(比如各类散装量和氧总量),能源介质消耗等;从MES(三级生产计划)系统获取生产计划内容等;从行车系统获取铁水包的包号(相应的获取了铁水来源、成分和温度),兑入量,兑铁时间,废钢的编号,出钢量和钢包号;从脱硫系统获取可用铁水的包号,来源,铁水成分,温度等;从检化验系统获取炉前快速化验结果和出钢成分等。系统将采集的数据存储于数据库,终端画面访问数据库,并实时显示冶炼过程和历史冶炼数据,实现生产现场数据采集与跟踪功能。庞大的数据量势必造成数据库访问和画面功能荷载过大,频繁的画面操作和数据库访问很可能导致系统崩溃。为了保证系统的实时性、稳定性、安全性和可靠性,放弃了传统的通信机制,采用了跨平台的分布式通信方式——WCF技术。WCF技术为我们提供了事件驱动机制,当数据发生变化时,通过订阅事件,消息通知客户端去访问数据库、刷新画面功能。
在数据量规模较小的情况下,一般通过设置定时器,每隔若干秒定时器触发访问数据库,根据获取的数据刷新画面功能。该技术最大的优点是实现起来非常方便,编程容易。但是本系统数据量庞大,无法保证系统的实时性和稳定性。并且有些数据,如:检化验数据,它的更新周期较长,一般为3~4 h。若每隔若干秒访问数据库,刷新界面,会无端加大数据库的访问荷载。
当然,针对本系统出现的问题,我们通常采用的技术是DCOM。DCOM也是微软创建的一种分布式通信机制,支持不同的两台计算机的组件间通信,也是采取服务器和客户端通信接口访问的方式。但是该技术早在2011年,微软停止了对其进行技术支持。
4 WCF技术在炼钢转炉二级控制系统应用中的设计与实现
4.1 WCF的创建与部署
以开发环境VS2010为例,在新建项目中选择“WCF”|“WCF服务库”,会自动生成一个WCF服务程序,客户端通过“添加引用”的方式实现服务的调用。
4.1.1 创建服务端
通过在接口上应用ServiceContractAttribute特性将一个接口定义为服务契约。定义服务契约主要是以接口的方法来实现,通过抽象接口和实现服务进行分离。以下是测试程序,修改接口文件名为MyIWcfService.cs,服务接口名为MyWcfService.cs。的接口代码:
当定义好了接口之后,便可以在服务页面实现具体的接口功能。代码如下:
WCF需要在宿主程序中寄宿,没有办法单独存在。宿主程序是为消息请求监听、消息处理、服务激活等操作提供一个运行环境。本系统WCF服务寄宿方式通过Windows服务部署。在部署服务之前需要配置相关参数,即修改配置文件app.config。右击app.config文件,选择“编辑WCF配置”。主要配置三个要数:地址、绑定和契约。配置好参数即可以部署服务。
4.1.2 创建客户端调用WCF服务
编写好客户端程序之后,就可以调用WCF服务。本系统WCF服务只有一个,可以通过“添加服务引用”的方式调用。调用地址:“net.tcp:// localhost:9988/WcfService/mex ”。如果服务部署在不同的计算机上,将“localhost:9988”替换成对应机器的IP地址即可。
4.2 系统功能实现
4.2.1 系统功能介绍
各系统的数据接口(如一级冶炼系统、三级MES系统、行车系统、检化验系统等)采集现场数据。当数据发生变化时,接口将数据存储于数据库服务器,同时将变化以消息的方式在WCF服务创建一个消息体。客户端根据需要不同系统的数据,向WCF服务订阅不同的事件,WCF服务返回对应的消息,即通知客户端对应系统数据是否发生变化,如果有变化,客户端再去访问数据库,获取最新的数据。本系统的主要结构如下图1所示。
图1 系统结构
4.2.2 监控WCF服务
由于本系统应用在传统钢铁厂炼钢区域,现场环境非常恶劣。为了进一步提高系统的稳定性和实时性,防止出现网络掉线等异常通信中断等情况。本系统开发了监控WCF服务机制,利用心跳技术有效避免长时间通信中断,导致事件订阅失败现象。监控程序中,设置定时器,每隔10秒扫描WCF服务的客户端数量,扫描发现某个订阅没有收到,心跳计数加1。若心跳计数超过一定值,很有可能出现通信中断事件,此时监听程序通知WCF重新启动订阅事件,若回调成功,心跳计数重设置为0。
5 结语
利用WCF技术为炼钢转炉二级控制系统提供了有效的解决方案,保证了系统的稳定性、安全性和可靠性。目前,本系统在生产实践中已经验证了方案的可行性。