(南京工业大学 电子与信息工程学院,南京211816)
组态软件是数据采集与过程控制的专用软件,提供良好的用户开发界面和便捷的底层设备接口。组态软件主要实现2个方面的功能:一是下位机根据现场环境进行组态,实现底层硬件协同工作与自动控制;二是上位机对现场的数据进行记录、显示和维护等操作,对上位机产生的报警信息进行分析和处理研究[1]。组态软件是典型的过程控制类型软件,而以面向对象的方式对组态软件进行处理是目前的研究趋势[2-3]。
任何对信息处理的系统都离不开数据采集、读取、显示、处理和记录这几个过程[6-7],以报警信息为基础研究报警信息处理的分离,以及防止实时信息冗余和建立信息安全的简单机制。基于远程监控和报警处理系统RAS实现了从组态软件中对报警信息的分离,防实时数据冗余机制和实现信息安全等特点[5],能够集中处理报警,实现了以短信[1,4]、电话语音、邮件等多途径方式进行报警远程通知,并且能通过短信的方式对系统进行简单的控制,提高了系统的响应实时性和敏捷处理突发事故的能力[5]。
组态软件中主要有3类信息,底层设备采集的数据、上位机配置设备的数据和组态软件内部的数据。对于报警信息,其主要是底层设备采集的数据,要处理报警信息,首先就是要从组态软件中把报警信息分离出来,再传输到集中处理报警的平台里进行一系列的处理。
如图1所示,为了使报警信息统一进行处理,首先应当将报警信息从组态软件中分离出来,分离的途径主要是通过组态软件提供的各种接口获取报警变量信息,集中获取后可以进行显示和相关的处理。
图1 报警信息处理设计流程Fig.1 Flow chart of alarm information processing design
使用面向对象的方式对报警变量可以简化处理报警内容的扩展,由于组态软件只是通过驱动采集下位机的变量信息,这些信息在上位机只是来判断当前值是否超出了组态的限值从而触发报警。对报警信息不同类型的内容进行配置,如在指定时间内是否报警,在某些时间段内报警给哪一位值班人员等等的扩展信息都可以避开庞大的组态软件进行统一的管理。
在对报警信息配置完以后要对信息进行记录和存储。存储信息时要分离报警信息中的组态软件中原有的信息和扩展配置的信息,由于原有的信息通过组态软件相关的接口可以读取到,所以只要保存报警变量的扩展信息,防止信息冗余,可以节约存储空间,在变量点较多时可以明显体现这一点。
存储变量扩展信息时可以采用适当的加密机制,防止配置信息被人为恶意修改,加强信息安全。同时存储的信息在下次要用到时可以恢复,实现数据再现的功能。
文献[7]中指出概念上的完整性是设计最重要的属性,当然,设计最重要的完整性在于整体结构。在原系统上进行功能扩展而进行二次开发,从某种意义上来说都会增加整体的复杂性,但是在更高级别对软件进行开发(扩展),或者使用他人的成果,或是重用自己的程序,都能避免面对整个层次的复杂性[6]。RAS远程报警管理系统正是对原系统在应用层更高层次进行扩展。
为了降低系统间的耦合性,RAS系统只要获取原系统的监控数据信息以及相关的配置信息,以此为基础进行功能扩展应用。根据以上提出的设计思路,在拥有自主知识产权的组态软件基础上进行了二次开发,开发了可以统一管理报警变量,面向对象化处理,报警信息可扩展的系统,此系统的特点是统一管理报警信息,在报警产生后可通过现场调节或者远程操控的方式解除报警,可检查实时报警数据和历史报警数据,实现值班制度可将报警信息在不同时段发送给指定的操作员。
如图2所示,为开发RAS系统的整体架构,其分为历史报警查询、实时报警、操作日志与值班日志、本机状态查询、值班表等参数配置5个部分。
历史报警查询主要是查询历史数据库,实现对历史报警记录查询的功能;操作日志与值班日志主要是记录对RAS系统的操作和对报警信息以及报警变量的操作记录;本机状态查询主要是针对软件所在计算机的整体信息,如CPU负荷、内存存储等信息以及计算机所在的网络连接等有关的信息;值班表,操作员等信息的配置是为实时报警功能服务的,RAS系统对原有的报警信息进行了扩展,可以配置有关报警方式选择,弹出组态软件的画面等信息,而值班表与操作员等信息是为了让报警变量出现报警时将报警信息以一定的方式通知指定和当前值班的操作员。
图2 RAS系统整体架构Fig.2 RAS whole system architecture
根据通知的方式不同,RAS系统加载了多个设备驱动,分别能实现短信(GSM)报警,现场语音报警和电话报警,以及网络报警和邮件报警(网络情况允许)多种报警方式。操作员能进行现场响应报警信息,还能远程的响应报警信息。以短信报警为例,出现报警后发送短信至指定操作员手机,操作员发送特定的命令回复短信,RAS系统接收到短信进行处理后通过接口来对组态软件进行操作,从而消除报警。
市面上电话语音设备和短信设备价格比较便宜,对于廉价设备来说,最实用和通用的方法就是采取设备冗余。采取冗余的目的就是让设备即使在有故障的情况下也能够不间断地提供服务。冗余可以提高系统的可靠性,但是会提高系统的成本。但是对于廉价设备来说,冗余所提高的系统可靠性远比其所提高的成本更加划算。
由于短信设备和电话语音设备是在成熟产品上二次开发的,对于短信设备和电话语音设备使用动态硬件冗余[5],即冗余设备处于激励状态,但是并不工作处于待命状态,当主部件出现故障不能继续提供服务的时候,冗余部件与主部件转换角色变成主部件提供服务。原来产生故障的部件在驱动中进行断开重连和设备重启,再进行检测是否还有故障。
在远程报警中,远程报警设备起到了至关重要的作用,电话设备和短信设备分别实现了RAS系统中电话语音与短信报警通知的功能,是连接人与系统远程通讯的纽带,是完成RAS系统远程报警功能的关键纽带。
电话语音设备与短信设备处理信息都有延时,具有单个请求处理时间比较长的特点,如电话语音设备会经历电话拨打、接通和挂断几个过程,会持续比较长的时间;由于这样的特点,在一个系统产生大量报警的时候,电话语音设备与短信设备会承载很大的负载,会出现短信发送失败,电话漏拨等问题,比如在系统断电切换至UPS供电的情况会产生大量的报警,这样的情况会造成大量的报警通知信息积存在电话设备与短信设备端,会产生漏发和漏拨的问题。
RAS系统使用缓冲技术来解决这样的短时间内出现高负荷的问题。缓冲技术就是在短时间内出现大量负载的时候使用队列缓冲实现信息有次序的处理,防止出现漏发与漏拨的情况,提高整体系统的QOS服务质量。
如图3是使用队列缓冲技术对短信信息的处理,由于使用了队列,在出现大量报警的时候不会出现很多信息阻塞在硬件设备端,而是堆积在信息队列中,避免了硬件设备出现漏发信息等问题。
然而在短时间内出现大量报警时,这种方法并不具有很好的报警实时性处理。由于未来产生的报警数量未知,可直接监控队列长度。如图4所示,当队列长度大于某个阈值的时候,采用相应的手段去缩短队列的长度。当队列长度大于指定的阈值时,通过短信发送信息的操作员号码为依据,将短信信息进行合并,从而达到缩短队列长度,缩短处理时间的目的。
图4 通过人员号码来缩短队列长度Fig.4 Shorten queue length by personnel number
图4中采用的合并参数Cn=5,即将5条发向同一号码的短信合并成一条短信发送,应注意合并参数并不是越大越好,Cn太大会造成操作员收到的短信可阅读性下降,Cn最好不要大于10;同时选取短信合并的阈值应当在200~300之间比较好。
对于电话语音报警,是通过事先录好的每个报警点的语音信息,在出现报警的时候拨打电话进行播报。电话语音报警相对于短信报警来说,延时性更高,单个请求持续时间更长,还有被叫无法接通,被叫提前挂机等情况,使得电话语音报警更加复杂。
如图5所示,处理电话语音报警过程中以操作员建立散列表,散列表中存放产生报警需要播放的语音信息,定时对散列表进行检查,若某个操作员列表中存在语音信息,则进行拨号,如果接通的话,将其列表中的语音信息全部播放给被叫操作员,同时记录后消除列表中的语音信息;若是没有接通的话,列表中的语音信息不操作,等下一次轮询时进行电话拨打。
图5 使用散列表处理电话语音报警Fig.5 Use hash to handle telephone voice alarm
通过这种方式不仅可以避免在短时间内多次拨打同一操作员号码,而且对于在短时间内产生大量的报警信息这种方式可快捷地进行处理,提高了电话语音报警的实时性。
为了实现远程监控,远程控制是必要的功能。在RAS系统中使用SMS(short messages service)短信实现远程控制功能,其远程控制过程主要是RAS系统与操作员远程手机终端完成的。如图6所示,其控制过程为(1)在远程报警控制系统中配置相应的操作员具有远程控制的权限,并进行相应的配置;(2)产生报警以后,RAS系统智能地将报警信息以短信的形式发送给配置的操作员手机终端;(3)操作员收到短信以后,发送相应的功能码与内容码,RAS系统收到短信以后进行短信处理与识别,并按照短信功能码与内容码进行操作;(4)将操作结果回复给相应操作员告知处理结果。
图6 SMS远程控制流程图Fig.6 SMS remote control flow chart
在RAS系统中使用短信控制主要是能够实现变量报警确认,变量报警值修改以及操作画面的跳出等功能,方便在只有手机的情况下远程控制。使用SMS远程控制不仅可以让操作员在本地处理报警,也可以在无人值守的时候远程操控处理报警,这样极大地增加了系统紧急事件处理的灵活度,提高了系统的处理能力。
自主开发的RAS系统目前广泛用于实际中,以某省商业银行机房环境监控应用为例(如图7所示)。该监控系统主要完成商业银行机房环境的监控,其中多串口卡连接在监控主机上用于连接D86、电量仪、UPS以及智能空调等设备,并通过天工组态软件来完成数据采集与控制。系统同时利用Modbus-TCP驱动程序将全市各地ATM取款机的通信数据实时地展示出来。RAS远程报警系统会将所有的报警信息集中起来供工作人员配置查看,同时将产生的报警及时地通过短信、电话等方式告知工作人员,方便工作人员及时处理,减少不必要的经济损失。
图7 应用案例结构图Fig.7 Use case structure graph
实际使用中RAS系统能够很好地实现集中报警处理和远程报警的功能,出现报警时能够及时地使用短信和电话语音等方式通知值班操作员,方便用户及时做出处理决策。通过对报警信息的集中处理,RAS系统能够很好地运用远程报警方式及时通知操作员报警信息。
RAS系统在拥有自主知识产权的组态软件基础上实现了对报警的集中处理和远程报警监控的功能,主要实现了对报警信息的监控,对远程IP主机的监控和对本机参数的监控与记录,同时完成了对报警信息的处理与反馈。在实际应用中,RAS系统已经应用于多处银行监测、电视台监测以及工业生产监测中,具有良好的应用前景。
[1] 苏维军,张晓明,聂尔豪,等.基于GSM的故障实时报警控制系统的设计与实现[J].计算机测量与控制,2012,20(8):2133-2135.
[2] 李明,贾智平.基于面向对象技术的监控组态软件的研究[J].计算机应用与软件,2002(10):19-20.
[3] 隗云志,王普,汪东军.面向对象技术在工控组态软件中的应用[J].仪器仪表学报,2001,22(2):217-220.
[4] 苗春雷,徐卫彬,蔡玉宝.基于GSM模块的远程控制和报警系统[J].现代电子技术,2012,35(19):5-7.
[5] Elsayed A.Reliability Engineering[M].John Wiley&Sons,Inc,2012.
[6] Frederick P,Brooks JR.The Mythical Man-Month:Essays on Software Engineering Anniversary Edition(2nd Edition)[M].Addison-Wesley Professional Press,2008.
[7] Frederick P,Brooks JR.The Design of Design:Essays from a Computer Scientist[M].Addison-Wesley Professional Press,2010.