您的位置 首页 知识

一个分布式监控体系的软件设计

一个分布式监控系统的软件设计

摘 要评论了一个散布监控体系的软件规划。给出了体系结构、冗余规划及软件规划关键。

关键词: 散布式体系 网络通讯ActiveX主动化

1 体系结构

体系结构见图1,这是一个两级散布式监控体系。在现场级两台互为热备的现场计算机经过现场总线与现场设备相连,实时收集现场数据并向现场设备传送监控级发来的操控指令,一同把各种实时信息发送到监控级。在监控级,各监控计算机经过TCP/IP以太网与各现场计算机相连以获取现场数据,并供给GUI以便操作人员监督及操控现场设备。

2 冗余规划

关于牢靠性要求较高的体系,常常选用冗余规划以进步牢靠性。本体系的现场计算机为双机热备,监控级计算机也可根据需求进行双机热备。

双机热备有必要处理毛病辨认和状况镜象两个问题,但为完成快速切换,应尽量简化算法,一同尽量削减交流信息,因而假如状况信息不是很重要,则不用随主备信息一同传送。根据上述思维,界说的主备机报文格式见图2,各字段的意义如下:

(1)信息标识:标识报文类型,共界说了三种报文:

a)一般报文:由主备机正常进行交互用的报文,称主机发往备机的报文为恳求报文,备机发往主机的报文为应对报文。

b)切换报文:当主机想转为备机时,发送此报文。该报文是十分必要的,一种状况是当现场计算机与现场设备失掉联络时,就需求主动进行切换。

c)退出报文:当某一台机器退出时,应发送此报文,不然对方将以为该机毛病。

(2)主备标志:指示本站是否为主机,“1”表明主机,“0”表明备机。

(3)判定标志:当主备机的主备标志共同,即两者一同为主机或一同为备机时,应根据判定标志进行切换,该标志能够预先设定为一个值,也能够取IP地址或发动时刻作为判定标志。判定条件能够取大于或小于。

详细完成办法为:主机守时向备机发送恳求报文,备机收到后就发一个应对报文;一同另设一守时器,当收到对方的一个报文就把该守时器清0,与此一同守时器守时加1。若守时器溢出,则表明对方毛病,不然表明对方正常。程序包括守时发送、毛病检测及接纳处理三部分,它们是并行作业的,流程图见图3。经过对发送守时器及检测守时器守时刻隔及检测次数的设定,能够决议切换时刻。

3 软件规划

体系软件分为现场级与监控级两部分,其间监控级包括人机接口及监控级主动化服务器两部分,见图4。下面评论一下软件规划中的关键问题。

3.1 数据传输办法及通讯牢靠性

本体系的网络操作体系为Windows NT,网络通讯协议为TCP/IP,选用WindowsSocket进行通讯程序的规划。Windows Socket有流式与数据报两种。前者为面向衔接服务,后者为无衔接服务。考虑到监控体系的数据量较小,而对实时性要求较高,因而选用数据报办法。

选用数据报办法的另一点考虑是,它能够播送。在本体系中,现场工控机选用守时播送的办法传输数据,这种办法有如下长处:

1) 处理了主备机之间的数据镜像问题。

2) 不需设置IP地址。这有两层意义,一方面发送方不需知道接纳方的地址,因为IP播送地址是个固定地址;另一方面,各监控计算机也不用知道各现场计算机的IP地址,因为当它收到播送后,就能够取得发送方的IP地址,然后把它存在一张地址表中,以后向该现场计算机发送指令时就能够直接从地址表中取出其IP地址。这种处理办法有点类似于TCP/IP协议地址解析中的动态联编1。但数据报办法的牢靠性不如流式高。关于现场计算机,因为数据守时播送,这种牢靠性的不同并无大碍。但对监控计算机而言,它宣布一个恳求,有必要知道该恳求是否被呼应。因而选用了异步承认机制(见图5),处理进程为:在发送端设一张表,当发送一个恳求时为该恳求分配(或预先分配)一个标识,然后把该标识伴随恳求一同宣布去,一同发动超时守时器;接纳端呼应该恳求后,发回一个含有恳求标识的应对报文;若接纳端收到该应对报文,则删去表中的恳求标识,一同守时器中止,不然将发生超时,表明恳求未被呼应。

3.2 体系信息的处理

监控体系中首要包括如下三种数据:

(1)现场数据:包括现场信号测量值、设备运转状况、报警信息及其它由现场计算机发生的数据。

(2)操控指令:如操控数字量输出、模拟量输出及现场设备等的操控字。

(3)体系信息:首要是一些体系管理信息,如操控权限,监控计算机登录状况等。

这些信息要么由现场计算机收集或发生,要么由监控计算机写入现场计算机,但终究仍是要存入现场计算机并向外守时播送。前两种信息因为直接发生于或作用于现场,因而存于各自的现场计算机。但体系信息是大局信息,是一切站同享的信息,这样存在着如下问题:当监控计算机写入体系信息(如登录)时,应把它发向哪个现场计算机呢?假如向一切站播送,就存在着共同性问题。正确的做法是:把一台现场计算机作为体系服务器,体系信息都写入该服务器中,然后由它向其它站播送。那么应挑选哪个现场计算机,并且使一切站(包括现场级与监控级)都挑选同一个现场计算机?本体系采纳一种动态算法完成了这种挑选,并且当该现场计算机毛病时主动转移到别的的现场计算机。

详细办法参见图6:设一张表及一个守时器组,当收到一个站的信息时就把该站的IP地址存入该表中,一同把相应的守时器清0;若守时器溢出,则将该站的IP地址置为无效值。当各计算机寻觅体系服务器时,就顺序搜索该表,找到第一个有用IP地址,就把它作为体系服务器。

3.3 监控级主动化服务器的规划

监控级软件首要是为操作人员供给人机界面,但它一同还要与现场计算机进行通讯,为把界面规划别离开来,咱们选用了MicrosoftActivX主动化技能完成了这一规划思维。这样,界面规划人员能够选用现在盛行的各种可视化开发东西集中精力进行界面规划,并且能够根据需求规划不同的界面,在咱们的体系中就有两种界面。

主动化技能是Microsoft ActivX组件技能中的一种,它包括主动化服务器和主动化操控器两种,其间主动化操控器是指运用和操作主动化服务器的应用程序(如VBA),主动化技能一般是指主动化服务器。另一种最为常用的组件技能是ActiveX控件,但一个ActiveX控件只能供给一个lDispatch接口,而一个主动化服务器能够供给多个lDispatch接口。经过lDispatch接口,客户程序能够拜访该接口的特色和办法。关于VBA客户程序来说,拜访lDispatch接口的语法与拜访VBA目标的语法是相同的,因而,关于VBA客户程序而言,一个lDispatch接口就相当于一个目标。

主动化服务器一般选用层次结构来安排目标,Microsoft的许多主动化服务器都是这样安排的,如数据拜访目标DAO。本体系的主动化服务器也选用了这样一种结构,见图7, 其间Workstation是指监控级各站,Station是指现场级各站,这仅仅个示意图。这种结构一方面表现了目标间的层次及包括联系,另一方面目标的创立、删去及安排也比较便利,整个服务器只需一个ProgID来标识。

客户程序创立服务器的进程为:首要使用ProgID创立顶层目标(Application),然后使用该顶层目标供给的办法创立各调集并向其间增加元素,对调集的操作类似于VBA中的Collection目标,首要有Count(),ltem(),Add()等几种。应当指出,上面所评论的目标层次结构及调集的概念仅仅一种规划思维,并非有现成的规划东西,咱们选用VC++6.0规划了自己的调集类及主动化服务器,客户端选用VB6.0

本体系是依照散布式的思维进行规划的。散布式的特色就在于各节点是相等的,在数据传输办法、冗余规划及体系服务器的挑选等处理上都表现了这一思维。本文给出的冗余规划,是根据网络的一种办法,其完成不依赖于操作体系、编程言语,是一种比较通用的办法。组件技能是软件开展的方向,本体系使用主动化技能将界面规划与底层规划别离开来,各自进行独立规划,充分表现了组件技能的优越性。

参考文献

1 周明日,汪文勇. TCP/IP网络原理与技能.北京:清华大学出版社

2 (美)Jerry Anderson. visual C++5 ActiveX编程攻略.北京:清华大学出版社

3 (美)Peter Norton, Rob McGregor.MFC开发windows95/NT4应用程序.北京:清华大学出版社

(收稿日期:1999-06-16)

 

 

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/zhishi/225110.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部