基于WCF的综合自动化系统联动控制模式

李勇

(中煤科工集团重庆研究院有限公司, 重庆 400039)

摘要:结合综合自动化在煤矿企业的实际应用,对联动控制模式的类型和特点进行了归纳和分类,提出了基于WCF的综合自动化系统联动控制模式,并实现了联动控制接口的规范。该模式将WCF服务寄宿于采集模块中,为平台终端提供联动控制服务,由采集模块实现平台终端和被控制子系统之间交互信息的传递和转换,遵循了原有平台架构,充分利用了采集模块的专职职能。

关键词:综合自动化; 联动控制;WCF; 插件; 接口规范

网络出版地址:http://www.cnki.net/kcms/detail/32.1627.TP.20160429.1135.019.html

0 引言

目前我国大中型煤矿企业大多已经建立了各类监控系统和生产过程管理系统,有些已经建立了综合信息集成平台。随着信息的集成和共享,生产过程控制与策略优化、智能调度协同管理与指挥、应急救援与模拟等协同控制[1]应用要求逐渐被提出来。因此,实现联动控制成为解决这些应用要求的新课题。

WCF(Windows Communication Foundation)是基于SOA (Service-Oriented Architecture,面向服务的架构)的网络通信API(Application Programming Interface,应用程序编程接口)。WCF统一了现有的多种Microsoft分布式技术,提供了对跨供应商互操作性的支持,显式的面向服务特性使其成为Microsoft新一代分布式开发的核心技术[2]WCF具有统一性、互操作性、兼容性、安全与可信赖的特点,适用于构建跨平台、安全、可靠和支持事务处理的企业级互联应用解决方案。

1 控制模式分析比较

在综合自动化系统平台出现之前,各子系统之间是相互独立的,信息交互时存在很大的局限性。为了实现子系统之间的信息交互,出现了各种各样的桥接程序或接口,但不统一、不规范,效果也参差不齐。平台出现后,利用其基础服务,可为所有接入的子系统提供信息交互标准协议和接口,实现了各子系统之间的数据无缝连接。

1.1 应用分类

综合自动化系统实现联动控制的情况基本分为3类:

(1) 全自动:在管理员进行配置后,由数据处理后台自动分析和执行联动,无需人工干涉。

(2) 半自动:在管理员进行配置后,由数据处理后台自动分析和提示可能的联动操作,管理员根据提示项选择操作。

(3) 手动:综合自动化系统平台对各子系统进行实时监测和显示,管理员根据显示内容分析判断,手动控制相关系统。

1.2 控制模式比较

综合自动化系统的5种联动控制模式如图1所示。

A模式B模式C模式D模式E模式

图1 综合自动化系统的5种联动控制模式

A模式:由子系统提供控制,供平台集成用于手动控制。该模式虽然简便,但由于各个子系统提供的Web页面风格不统一,且由于插件限制,在多浏览器使用上存在问题。

B模式:由WinCC集成每个子系统的数据,然后由WinCC为每个子系统提供Web控制界面,供平台集成用于手动控制。该模式增加了集成交互的复杂度和工作量。

C模式:通过消息队列来传递控制命令数据,手动或半自动控制时Web终端将命令传给解析软件,由解析软件写入下发控制命令的消息队列中,然后由采集软件读取并执行。该方案虽然事务性高,但由于传递环节多和异步执行的特点,导致控制命令的及时性得不到保证。

D模式:由解析程序为每个子系统提供个性化的WCF控制接口,并直接写控制命令给子系统。该模式违反了规范和统一的要求。

E模式:由子系统的采集转换模块为平台提供适用的个性化WCF控制接口,直接写控制命令给子系统。该模式的优点在于采集转换模块本来就是实现数据转换的环节,不会为整个系统带来过多负担。

在实际的项目应用中,应当根据实际情况采取适合的模式来实现。总的来说,首先得保证及时性、可靠性和事务性,且从技术上来讲较容易实现,其次再考虑界面风格统一和美观。5种控制模式性能比较见表1。

表1 5种控制模式性能比较

模式控制命令传递环节控制命令及时性/可靠性事务性人机界面可靠性人机界面风格技术实现A模式很少高—低很难统一简单B模式较少高—低差异较大工作量大C模式较多低中中统一复杂D模式一般较高高高统一工作量大E模式一般较高高高统一难度较小

2 基于WCF的联动控制模式

以瓦斯监测参数超限时需要进行的一系列联动控制为例进行分析,并提出设计方案。

2.1 联动控制数据流

当平台监测到胶带运输巷的瓦斯超限时,需要通过人员定位卡发出警告,通知相关人员紧急避险;通过广播系统播放预先设置好的语音预案内容;局部可能需要停止胶带。这里假设矿方设定的联动方案里出现这个情况时,希望综合自动化系统能自动对局部胶带系统进行停止运行操作,通过半自动的方式通知管理员进行人员定位紧急避险报警,通过广播播放语音预案。基于WCF的联动控制模式数据流如图2所示。

图2 基于WCF的联动控制模式数据流

考虑到不同系统由不同厂家提供,包括数据交互方式、数据结构等都不一样。因此,本文提出以下设计思路:由负责从每个具体子系统采集和转换数据的适配插件[3]来完成平台与子系统的联动控制交互,针对每个子系统个性化的联动控制交互特点,提供定制化的WCF接口给上层的解析和Web终端调用;采集插件提供的WCF接口尽量从数据结构、交互接口、交互方式方面进行规范。

2.2 联动控制接口规范

联动控制接口规范主要从系统的角度去规范数据结构和交互接口,具体实现代码如下。

/// 联动控制接口

public interface ILinkageControl

{

/// 〈summary

/// 发送命令

/// 〈/summary

/// 〈param name="identity"〉发送者标志〈/param

/// 〈param name="conmmand"〉发送的命令数据〈/param

/// 〈returns〉采集模块接收命令是否成功〈/returns

bool Send(string identity, ControlCommand conmmand);

/// 〈summary

/// 查询控制结果

/// 〈/summary

/// 〈param name="identity"〉发送者标志〈/param

/// 〈param name="ID"〉要查询的控制记录ID,为Send接口传递的ControlCommand对象的ControlCommandID 字段〈/param

/// 〈returns〉返回联动控制命令操作的结果〈/returns

ControlResult Inquiry(string identity, Guid ID);

}

/// 联动控制数据

public class ControlCommand

{

/// 控制命令记录标志

public Guid ControlCommandID { get; set; }

/// 控制对象

public string Target { get; set; }

/// 控制命令

public string Command { get; set; }

/// 控制优先级。0-高优先级;1-普通优先级;2-低优先级

public int Priority { get; set; }

/// 命令发送时间戳

public DateTime TimeStamp { get; set; }

}

/// 联动控制数据

public class ControlResult

{

/// 控制命令记录标志

public Guid ControlCommandID { get; set; }

/// 处理状态:0-未接收到对应控制命令;1-准备操作;2-正在操作;3-操作完成

public uint State { get; set; }

/// 处理结果:在State为3时有效。0-操作失败;1-操作成功;2-不能确认操作结果

public uint Result { get; set; }

/// 处理结果描述,在State为3时有效。用于描述处理结果,返回正常或异常错误信息

public string ResultDescribe { get; set; }

/// 处理结束时间。在State为3时,为处理结束时间;其他为查询结果时间

public DateTime TimeStamp { get; set; }

}

2.3 采集端联动控制WCF设计

在采集端根据每个子系统的特点,并在与厂家沟通协商的基础上,为子系统实现一个联动控制WCF服务,而且该服务必须继承和实现ILinkageControl接口。ILinkageControl接口从一定程度上规范了数据结构和交互方式,为平台的自动、半自动和手动控制提供了一个较为规范的操作方式,减小了系统耦合性。在ControlCommand类中的控制对象(Target)和控制命令(Command)都是string类型,每个具体的系统可能会采用不同格式,这个由采集模块规范后提供给平台上层,由解析和Web终端按照具体系统的格式调用传输命令。采集端联动控制序列如图3所示。

图3 采集端联动控制序列

采集端联动控制WCF主要完成3项工作:① 通过Send接口接收命令,并进行身份验证,再将通过验证的控制命令记录放置到命令列表。② 从命令列表里按命令记录的优先级和排队顺序取命令(高优先级的将被优先执行),根据子系统具体控制协议进行控制。③ 处理通过身份验证的解析和终端的Inquiry接口,以查询联动控制结果状态。

2.4 解析和Web终端的调用

在解析端实现自动控制,或在Web终端实现半自动或手动控制时,都需要根据每个具体的子系统联动控制业务设计界面、流程和展现方式,通过用户的配置调用采集端的WCF接口,进行联动控制命令的下发和控制状态的查询。

在下发命令的ControlCommand对象中,TargetCommand属性的格式需要遵循具体实现的联动控制WCF接口的说明。

3 结语

介绍了综合自动化系统联动控制应用的几种模式,并加以比较分析,提出了基于WCF的异构系统联动控制模式,采用服务的模式将所有子系统联动交互挂接到采集模块上,从而从系统角度对联动控制的数据接口和交互方式进行了规范和统一,减少了与子系统之间的耦合性,为综合自动化系统联动控制提出了一种可行的实现方案。

参考文献:

[1] 许金.基于物联网的煤矿安全监控系统体系架构研究[J].工矿自动化,2013,39(12):97-100.

[2] 陈茹.WCF框架下分布式系统的集成技术研究[D].大连:大连海事大学,2010.

[3] 李勇,钟宇,梁强,等.企业服务总线和插件技术在煤矿综合自动化系统中的应用[J].中州煤炭,2015(8):96-98.

[4] 徐敏,黄强.矿山安全生产联动设计[C]//第18届全国煤矿自动化与信息化学术会议,杭州,2008.

[5] 李志,范佩磊.煤矿安全监控系统与“一通三防”管理的预警联动[J].工矿自动化,2010,36(4):71-72.

[6] 严商.基于WCF的分布式程序的研究与实现[D].武汉:武汉理工大学,2008.

Linkage control mode of integrated automation system based on WCF

LI Yong

(CCTEG Chongqing Research Institute, Chongqing 400039, China)

Abstract:Combining with practical application of integrated automation system in coal mine enterprises, types and characteristics of linkage control modes were concluded and classified, then linkage control mode of integrated automation system based on WCF was proposed, and linkage control interface specifications were achieved. The linkage control mode put WCF service into the acquisition module to provide linkage control services for platform terminal. The acquisition module achieves transmission and conversion of interactive information between platform terminal and controlled subsystem; meanwhile, it follows original platform structure and fully utilizes the special functions of the acquisition module.

Key words:integrated automation; linkage control; WCF; Plug-in; interface specification

文章编号:1671-251X(2016)05-0085-04   DOI:10.13272/j.issn.1671-251x.2016.05.019

收稿日期:2016-01-28;

修回日期:2016-03-14;责任编辑:胡娴。

作者简介:李勇(1981-),男,重庆人,助理研究员,主要研究方向为煤矿安全监控系统、综合自动化等,E-mail:ace2007@163.com

中图分类号:TD67

文献标志码:A   网络出版时间:2016-04-29 11:35

李勇.基于WCF的综合自动化系统联动控制模式[J].工矿自动化,2016,42(5):85-88.