袁泉,刘小勇,施仁
(西安交通大学自动控制系,陕西西安710049)
[摘 要] 针对电力监控系统底层通信数据量大、实时性要求高的特点,进行了两方面的改进。在软件结构上,提出了将数据通信软件与监控软件分离的方法;在硬件上,使用多路双口RAM智能通信卡扩展通信端口,提高底层通信的速度。这些措施有效地减轻了监控软件的数据处理负担,确保了现场仪表与监控计算机之间准确快速的数据通信,保证了整个系统的安全高效运行。
[关键词] 电力系统;串行通信;多线程;智能通信卡
1 引 言
电力系统中,现场数据不但包括功率、电压、电流等测量数据,还包括分合闸、过流、速断等操作及事故所产生的事件数据。当发生事故而导致跳闸时,还要记录现场的故障录波数据,可见,需要通信的数据量是一般工业控制中所无法比拟的。由于电力系统现场数据的变化非常快,一次过流可能只维持十几毫秒,数据稍纵即逝,所以对数据的实时性、通信速度的要求是非常高的。
监控系统底层数据可靠、高效的通信是系统可靠性的关键,是设计监控软件的重点。一些现有的软件,将数据通信、处理和监控都做在一个软件中,虽然显得直观紧凑,但系统的升级改进却十分不便,一个微小的改动都要对全部系统进行重新整理,因此,采取模块化结构是比较好的一种选择。
笔者在一个大型电力监控系统设计中,硬件上采用通信站和监控站分开的独立方式,软件上将底层通信软件从监控软件中分离出去,在通信站中独立工作,通信站专门负责底层现场实时数据的采集,并和上层监控站进行双向数据通信。由于通信站的独立,使上层监控站的任务大大减轻,不但提高了底层的通信速率,还加快了监控界面的数据刷新速度。如果下层仪表数量很多,可以在通信站上采用多路双口RAM智能通信卡,并扩充为多个串口,进一步提高底层通信速度。
2 系统结构
图2-1给出了一种典型的系统结构,这种结构综合了以上讨论的特点。其中,两个通信站组成双机冗余热备,保证系统的安全运行,现场仪表的数据通过RS-485/422串口传送给通信站,通信程序读取串口的数据,解析后一方面将数据存入数据库,作为历史数据加以保存,另一方面通过TCP/IP协议,将数据打包后传递给上位机,在监控软件中进行运接送上以太网,也利于远程监测和故障诊断。
由于通信站和监控站是分离的,只要都支持TCP/IP通信协议,编写监控系统的工具语言不需要与通信站相同,这样就给用户提供了灵活的平台选择,可以利用一些图像功能强大而硬件功能相对弱的组态软件编写监控软件,以提供直观漂亮的操作画面。
对于一些特殊的下层仪表,如果通信协议不同,只需在通信软件中改变相应的协议即可,不需要对监控软件作出任何修改。用这种方法,可以非常灵活的兼容各种不同通信协议的仪表。这样,系统的升级和扩展就会相当方便。
3 提高通信速度的措施
3.1 硬件措施
通信站与上层监控站间的通信是通过以太网传输的,通信速度快,实时性很好。而现场仪表与通信站之间是通过串口读写数据的,在仪表传输速率与传输数据量一定的条件下,当现场仪表的数量多到一定程度,由于总数据量过大而造成通信时间过长,可能会成为限制实时性的瓶颈,为了解决这个问题,硬件上可以采取以下的改进。
3.1.1 多串口数据通信
串行通信具有连接简单、使用灵活方便、数据传递可靠等优点,在数据采集和实时控制系统中得到了广泛应用。
一般情况下,多台下层仪表连在一条通信总线上,通信站通过其一个串口连接一条通信总线,从而实现通信站与仪表的串行通信。这时,通信站对全部下层仪表作一次数据通信的时间等于通信站与每个仪表的通信时间之和。
在电力系统中,随着系统规模的增大,下层仪表数目增多,扫描周期将相应增大,从而使操作员难以及时掌握现场的运行状况,系统安全性得不到保证。由此可以看出,上下层通信速度极大的影响着整个系统的实时性,制约电力监控系统的规模及发展。
为解决这个问题,可将一个串行通信过程分成多个串行通信过程,以提高工作效率。如图3-1所示,硬件上通过使用多串口通信卡,软件上对各个串口同时扫描,实现多串口通信的并行工作方式。
这时下层仪表分别连在多条通信总线上,因为Windows操作系统支持多任务管理,计算机可同时对多个串口进行读写。假定有100台仪表,使用5个串口通信所需要的时间是用1个串口所需时间的1/5,这样就使通信速度大大提高。
3.1.2 多串口智能通信卡
智能通信卡是一种具有微处理器和双口RAM的高速通信接口板,可插在计算机的I/O扩展槽内使用,其主要作用是减轻计算机CPU处理通信任务的工作量,有助于提高系统数据刷新速度。
在使用多串口智能通信卡后,系统程序下发给仪表的命令可通过写硬件端口的方式存储在智能通信卡的RAM中,由通信卡利用自带的CPU,通过串行通信向仪表发送;另一方面通信卡利用自带的CPU接收仪表返回的数据,存储在其RAM中,系统程序通过读硬件端口的方式获得通信卡中的信息。
由此原本计算机与仪表之间繁重的串行通信工作,改由智能通信卡完成。这样计算机CPU的工作量大大减轻,与底层仪表的通信速度会大大加快。
3.2 软件的优化
现在计算机的运行速度大大超过底层数据的硬件传输速度,如果简单的进行一发一收式的顺序读写控制,计算机大部分时间都会处于等待数据的状态,浪费了大部分的计算机资源。
在Windows环境下,微软基类库(MFC)提供了对多线程的支持。在软件中可以使用多线程技术,每一个串口的读写对应一个线程,和上层程序的通信也用一个独立的线程,这样,上层程序对仪表的操作可以快速的显现出来。从宏观的角度上看,程序同时在对多个任务进行操作,CPU的运行速度得到了最大限度的发挥,充分的利用了计算机资源。
实践证明,采用多线程技术,从软件着手充分利用计算机CPU的速度优势,加快整个控制系统的上下层通信速度,非常有助于提高整个系统的实时性。
4 结束语
该文的方法在工程项目中采用后,不仅有效的提高了数据的通信速度,而且由于软件的模块化结构,下层通信程序的独立性,可以自由适应于不同的系统规模和各种类型的仪表,面对不同的需求,上层的监控程序不需要改动,只要将下层通信程序的通信协议改为对应仪表的即可。此方法不仅适用于电力系统监控,而且对其它大型工业测控系统具有广泛的应用价值。
[参考文献]
[1] C.D.Maciel,C.M.Ritter.TCP-IP Networking in ProcessControl Plants[J].Computers and Industrial Engineering.1998,35(3-4):611-614.
[2] 贾宏宇,施仁.大型通用工控软件设计研究[J].信息与控制.2001,30(1):30-35