发明内容
为了解决常规的规约开发的技术问题,本发明设计实现了平台无关的规约应用模块化系统,满足在不同的操作系统、不同的软件应用平台上,复用该规约应用模块,而不需要对该规约进行重新开发和调试。达到一人负责开发规约,而所有平台共享的目的。并且在智能通信单元协议转换器设备、一体化监控平台上实现了对平台无关规约系统的集成,从而实现了对基于该系统开发出来的各种规约的支持,实现了对各种不同规约的智能设备的互联和自动控制。
本发明具体采用以下技术方案:
一种与平台无关的规约模块系统,包括智能一体化监控平台模块和智能通信单元协议转换器模块,其特征在于:
所述智能一体化监控平台模块包括IEC102规约模块、IEC103规约模块、IEC104规约模块、MODBUS规约模块,所述IEC102规约模块与电度表相连,所述IEC103规约模块与保护设备相连,所述IEC104规约模块与测控设备相连,所述MODBUS规约模块与直流屏相连;
所述智能通信单元协议转换器模块包括IEC102规约模块、IEC103规约模块、IEC104规约模块、MODBUS规约模块、CSC2000规约模块、IEC61850规约模块,所述IEC102规约模块与电度表相连,所述IEC103规约模块与保护设备相连,所述IEC104规约模块与测控设备相连,所述MODBUS规约模块与直流屏相连,所述CSC2000规约模块与远动设备相连,所述IEC61850规约模块与后台监控单元相连。
一种设计与平台无关的规约模块系统的方法,包括:平台调用规约任务入口;
创建规约数据;
获得输入的PI任务信息piHDRes;
获得输入的规约名称标示和工作路径;
初始化规约数据init;
输出规约模块的PA任务信息paHDRes;
输出规约的看门狗id和通道接口pChnData;
初始化规约数据库;
定制link库接口并启动link;
注册规约消息;
注册定时器事件;
规约主任务运行processMsg,即循环收发消息,并分发执行;
规约任务退出,释放资源destroy;
规约任务结束。
优选地,在初始化规约数据init的步骤中,继承规约的上层的对象功能:
调用PROTMAS层初始化mas_init;
调用PROTMAS层初始化protcom_init;
调用PROTFRAME层初始化protframe_init。
优选地,在注册规约消息的步骤中,继承规约的上层的对象功能:
调用MAS层消息注册mas_regMsgCall;
调用PROTCOM层消息注册protcom_regMsgCall;
调用PROTFRAME层消息注册protframe_regMsgCall。
优选地,在注册定时器事件的步骤中,继承规约的上层的对象功能:
调用MAS层定时器注册mas_regTimerOutEvent;
调用PROTCOM层定时器注册protcom_regTimerOutEvent;
调用PROTFRAME层定时器注册protframe_regTimerOutEvent。
优选地在规约任务退出,释放资源destroy的步骤中,继承规约的上层的对象功能:
调用MAS层资源释放mas_destroy;
调用PROTCOM层资源释放protcom_destroy;
调用PROTFRAME层资源释放protframe_destroy。
规约模块系统是在底层实现了一套跨操作系统(windows、linux、unix、vxworks)的应用接口API,在规约系统开发中,涉及到操作系统的功能调用,全部采用底层核心的跨操作系统的接口调用,而没有直接使用各个操作系统提供的API接口,正是基于跨操作系统的通用接口,所以该规约系统模块库就具备了不依赖特定操作系统的特点,可以直接跨操作系统使用。
规约模块系统对各种平台提供统一的通用数据交互接口,该接口不涉及各种不同规约的特性,也不涉及各个不同应用平台的实时库数据结构,也就是说该接口没有依赖于外部使用该模块的应用平台的特定的数据结构,所以该模块系统可以在各个应用软件平台上通用,一个开发完善的应用规约模块运行库就可以在各个相应的软件应用平台上直接使用,而不需要再进行编码和调试。
根据通信规约的特点,将一个通信规约按照分层的对象设计,依次是基础框架层(规约应用对象的框架,实现操作系统无关性)、规约公共对象层(抽象出各种规约的公共特点,实现应用软件平台的无关性)、主从规约分类(按照规约的主从分类,分离出主、从规约的公共属性对象)、规约应用层(实现各种规约的应用,每种规约实现一种应用对象),如图1,应用对象依次从基础框架层继承过来,每个规约应用对象包括规约应用对象、链路对象和通道对象。
各种通信规约的规约描述和通信过程差异比较大,为了统一数据格式,新的模块系统设计了一套公共的数据描述映射格式,适用于将各种规约的信息点映射为一种统一的数据描述格式,向各种软件应用平台传输标准的数据格式,这样就可以顺利实现各种不同规约将自身的数据转换为标准数据,实现向平台的数据输入,平台根本不涉及不同规约的不同特点。
本模块系统在设计上,和以往的常规系统不同,对于一个接入规约模块来说,并没有自身的规约转换相应的点表,而只有规约模块自身配置的接入设备的模板,当应用平台加载规约模块时,平台根据自身实时库的数据配置需要,向接入的规约模块输入订阅的点表信息,也就是说,应用系统保存着从接入规约模块采集的点表,规约模块接收到点表后,自动建立自身的规约库,然后读取相应的接入设备模板,建立起规约转换的关系,从而完成规约转换功能。
在规约和物理通信设备进行数据输入输出的接口模式上,采用了一种全双工的应用结构,通道管理模块负责处理各种物理通道,将接收到的通信报文通过事件消息形式,发给应用模块;而应用模块在规约处理过程中,需要发送规约报文到通道设备时,直接调用通道管理模块向应用注册的发送接口将报文直接发送到通道上,而不需要将报文通过事件消息转发给通道管理模块,这样就可以实现通道管理任务只处理单一的接收报文模式,而不需要再监听应用的事件消息。
具体实施方式
下面根据说明书附图并结合具体实施例对本发明的技术方案进一步详细说明。
本发明中平台无关的规约模块系统,包括以下部分:
1.模块在平台应用的总体方案
从功能上看,规约模块实现和外界不同的IED(intelligent electronic device)设备或者不同的调度主站的通讯功能,对各种不同的互连规约进行解释,解释后的数据以一种通用规约数据描述形式存储在各个规约模块中。规约模块和软件系统平台通过数据交互接口来完成数据的传输。
1)规约模块分别提供任务管理接口和数据访问接口,任务管理接口实现规约任务的管理功能,包括规约任务的启停、数据配置、多线程任务状态管理,资源分配释放等等;数据访问接口包括存取所有标准化规约数据、规约数据库的读写、消息通知事件的收发和处理、控制指令收发处理等。
2)软件平台通过调用各个规约模块来实现具体规约的接入和转出。一个软件系统平台可以同时调用多个相同或不同的规约模块,来完成对外的各个规约的连接。每个规约模块都是独立运行,相互没有依赖关系。
3)规约模块中实现了规约任务的全部功能,包括通用规约数据描述信息库的访问和操作,规约解释,对操作系统、硬件设备的资源调用,并实现具体任务管理API接口和全部的数据交互API接口等。
4)每个规约模块可以分别独立为接入规约,也可以独立为转出或远动规约。
5)每个规约模块作为独立的动态运行库或编译连接库来实现,便于在整个软件平台项目的集成和规约模块的软件管理和维护。
2.规约模块系统的总体结构
将规约对象分为规约基础框架对象ProtFrame,通用规约数据描述对象ProtCom,主站类ProtMaster/子站类ProtSlave对象,规约链路ProtLink对象,规约通道对象ProtChn,具体规约对象ProtXXX(ProtM103、ProtM104、ProtS2000、ProtScdt)。所有模块采用C编码实现。
规约模块系统按如下划分:
1)规约系统对象ProtFrame层,实现平台无关整个规约架构基础类信息,即包含规约应用任务、平台接口任务、任务看护等输入输出参数接口,又包括消息管理、链路通道管理的输入输出接口,即在该层实现整个模块的最小任务对象。(实现操作系统无关性OS:Operate System)。
2)公共数据描述对象ProtCom层,实现平台无关的通用数据描述对象,包括和软件平台之间传输的通用规约数据处理和通用规约数据描述库。完成和平台之间的消息传递,负责解释通用规约数据描述的消息、记录通用规约数据描述信息点状态、有效标记、时间标签、品质、网络标记、变化原因、告警状态、SOE队列等,并实时存库、自动向平台发消息等。(实现软件平台无关性SP:Soft Platform)。
3)主站类ProtMaster/子站类ProtSlave对象层,分别实现从各种主站类/子站类规约中抽象出来的主站/子站类规约的公共模块。
■主站类:主站类规约库、部分轮询、主站类虚拟间隔或点信息、全站事故总/告警总、站级/间隔级/IED设备级/分组信号复归、遥测比例系数、死区值、遥脉转发系数、遥控过程、设点过程、告警、事件、SOE、通道控制号、数据库同步、装置列表、对时等……
■子站类:合并点、应答总召、自动应答、公共的COMTRADE录波文件存取、传输、SOE缓冲……
4)链路ProtLink对象,实现对各种规约的链路管理。链路模块实现各种链路的处理过程,并完成对各种规约的通道管理。链路向规约模块提供统一的接口形式,包括数据收发接口和管理接口,并在一定程度上,完成IED设备的轮询、数据报文组帧、链路确认、通道冗余管理等功能。
5)规约通道对象ProtChn,通道模块完成对各种通道SERIAL、UDP、TCP(client、server)、UDP+TCP、UDP2000、LON、CAN等的统一接口任务。
6)具体规约对象ProtXXX(ProtM103、ProtM104、ProtS2000、ProtScdt),分别实现各种不同规约的具体功能。继承MASTER层/SLAVE对象的基本功能,调用链路层对象的接口,实现完整规约的功能特性,实现从规约自身的数据组织形式到通用规约数据描述的相互转换和通用规约数据描述向规约自身的数据转换。如从链路通道接收信息,经过翻译后,转换成通用规约数据描述信息,通过继承通用规约数据描述层功能,自动向软件平台发送通用规约数据描述信息;从软件平台接收通用规约数据描述消息,经过通用规约数据描述层翻译后,具体规约继承通用规约数据描述数据转换功能,转换成该规约的信息,经过数据组织后,发送到链路通道。
下层自动继承上层的数据成员和方法,下层可以继承上层一个或者多个对象。上层对象绝对不可以访问下层对象数据,但是上层对象中可以存放下层对象的指针,用来实现对下层对象的特殊信息的管理接口。
每个规约模块最终生成一个执行库文件,如m103zj.dll、m104.dll、scdt.dll、m2000.dll等。(windows平台库名称是dll,vxworks平台为o、out或者pl、unix和linux为so等库文件形式。主站master类规约以m开头即,从站slave类规约以s开头)。
3.任务功能划分和关系
规约应用层通过规约特点,定制不同的规约链路PL(Protocol Link)过程接口,并启动公共的链接任务(规约会根据链路情况,决定是否启动独立的链路任务)
PL根据链路特点,定制不同的通道类型,并启动公共的通道任务。
通道任务根据通道类型,打开不同的物理通道接口,并读取通道数据,将合理数据传输给PL任务。
1)等待事件触发的应用类任务,几乎所有应用任务均采用事件等待模式,如PI、PA、PL;任务一直等待事件(WAIT_BLOCK),如果没有任何事件,任务将处于休眠状态。直到该任务有消息事件的触发,才被CPU调度进入到运行状态。(如果高级应用模块采用循环查询机制,则等待事件触发的调用参数输入WAIT_NOBLOCK)
2)通道任务的硬件触发机制,规约通道PCHN(Protocol Channel)处理各种物理硬件接口,对于各种阻塞、查询、中断模式等通道进行模块化封装。PCHN接收到合法数据后,将数据消息发送给PL。从PL等待到数据消息的瞬间开始,后续的任务就开始一系列的事件消息触发,从而进入运行状态。
3)操作系统的定时器任务。该任务基于操作系统的定时机制,维护所有任务申请的定时器,并准确无误的给申请任务发送定时器服务信号,从而触发相关任务进入运行状态。
4.数据影射
为了达到规约模块系统对于软件应用平台的无关性,规约模块需要将各种不同的规约数据映射到一种通用规约数据描述形式,如图3所示。
在图中,上层是通用规约数据描述的存储形式,按照通用规约数据描述POINT(即:设备号/信息类型/信息点号的3级索引关系)来存储通用数据描述。下层是各种不同规约自身特点的数据描述形式,各种规约的描述形式不尽相同,所以存储的格式也不同。规约自身的数据点和通用数据点之间的数据映射关系则通过对象存储关系相互映射来实现,在两种数据空间的相互访问中,就不需要每次都采用原始的数据点索引方式进行查询。当规约应用层在收到应用规约的报文时,根据原始报文的描述关系,先扫描规约的数据存储区结构,找到相应的数据对象,进行数据更新,当更新完自身数据对象后,通过位置映射就可以直接定位到通用的数据描述映射对象上,而不需要再通过数据点的索引形式来查找映射后的通用数据对象,从而实现在运行过程中的高效率数据索引和访问技术。
在每种规约的应用数据初始化时,通过读取配置文件的方式,获得规约自身信息点定义的point索引到通用规约数据描述POINT的映射关系,在各种应用规约的初始化时,完成这种映射关系的建立。规约模块在实现规约解释和转换过程中,按照这个映射关系进行信息的更新和存储。
在通用规约数据描述对象中,由公共的通用描述对象完成通用规约数据描述消息的收发、解释和入库等功能。每个应用规约自动继承通用规约数据描述的处理功能,并可以直接访问通用规约数据描述对象库。
软件平台集成该规约模块系统时,规约模块数据更新后,通过通用规约数据描述对象,自动向平台PI接口发送数据消息,完成接入信息向平台的传输。当平台需要向规约模块传输信息时,通过规约模块接口PI(Protocol Interface)任务发送消息给规约应用模块PA(Protocol Application)任务,如果具体规约模块未注册该消息的处理接口,则通用规约数据描述对象自动处理该消息并完成入库等工作。如果规约模块注册了该消息,则规约模块通过调用公共处理过程后,再将消息内容转换为自身规约数据或者直接读取通用规约数据描述库中数据进行转换,并根据需要向外转发该规约数据。
5.规约模块实现的整体流程图
图4是一个具体规约的主模块流程,左边主流程是规约层主任务流程,右边继承的是规约的上层对象功能。
其中设计与平台无关的规约模块系统的方法,包括如下步骤:
平台调用规约任务入口;
创建规约数据;
获得输入的PI任务信息piHDRes;
获得输入的规约名称标示和工作路径;
初始化规约数据init;
输出规约模块的PA任务信息paHDRes;
输出规约的看门狗id和通道接口pChnData;
初始化规约数据库;
定制link库接口并启动link;
注册规约消息;
注册定时器事件;
规约主任务运行processMsg,即循环收发消息,并分发执行;
规约任务退出,释放资源destroy;
规约任务结束。
优选地,在初始化规约数据init的步骤中,继承规约的上层的对象功能:
调用PROTMAS层初始化mas_init;
调用PROTMAS层初始化protcom_init;
调用PROTFRAME层初始化protframe_init。
优选地,在注册规约消息的步骤中,继承规约的上层的对象功能:
调用MAS层消息注册mas_regMsgCall;
调用PROTCOM层消息注册protcom_regMsgCall;
调用PROTFRAME层消息注册protframe_regMsgCall。
优选地,在注册定时器事件的步骤中,继承规约的上层的对象功能:
调用MAS层定时器注册mas_regTimerOutEvent;
调用PROTCOM层定时器注册protcom_regTimerOutEvent;
调用PROTFRAME层定时器注册protframe_regTimerOutEvent。
优选地,在规约任务退出,释放资源destroy的步骤中,继承规约的上层的对象功能:
调用MAS层资源释放mas_destroy;
调用PROTCOM层资源释放protcom_destroy;
调用PROTFRAME层资源释放protframe_destroy。
6、系统集成应用
基于平台无关规约系统,可以实现各种常规规约的应用,目前已经实现了IEC61850、IEC60875-5-103、IEC60875-5-104、IEC60875-5-102,MODBUS、CSC2000等各种规约模块,如附图5,每种规约对应一个规约模块,如IEC103、IEC104、IEC102、MODBUS、CSC2000等。所有规约模块均实现了在智能通信单元协议转换器设备、电力系统一体化监控平台上的集成,实现了对各种智能通信设备的远程通信和监控功能。
平台无关的规约模块系统,包括智能一体化监控平台模块和智能通信单元协议转换器模块,所述智能一体化监控平台模块包括IEC102规约模块、IEC103规约模块、IEC104规约模块、MODBUS规约模块,所述IEC102规约模块与电度表相连,IEC103规约模块与保护设备相连,所述IEC104规约模块与测控设备相连,所述MODBUS规约模块与直流屏相连;所述智能通信单元协议转换器模块包括IEC102规约模块、IEC103规约模块、IEC104规约模块、MODBUS规约模块、CSC2000规约模块、IEC61850规约模块,所述IEC102规约模块与电度表相连,所述IEC103规约模块与保护设备相连,所述IEC104规约模块与测控设备相连,所述MODBUS规约模块与直流屏相连,所述CSC2000规约模块与远动设备相连,所述IEC61850规约模块与后台监控单元相连。
在智能通信单元协议转换器设备中,可以实现各种通信协议相互转换的功能。由物理设备通信口以太网(光口或电口)或RS232/RS485自适应串口等,接入各种智能通信设备,通过平台无关规约系统实现的各种规约模块软件完成规约信息的输入,在智能通信单元协议转换器规约管理平台中自动转发给各个需要输出的规约模块,输出模块通过物理通信口输出到外部的各个自动化主站或终端,如远动、监控、各种调度中心等,从而完成远方对各个智能通信设备的通信和监控。
在一体化监控平台中,通过平台无关规约系统实现的各种规约模块,接入各种智能通信设备,完成对各种外部信息的采集,在监控平台中实现各种高级应用。同时对应各种远方的信息转发需求,也可以从一体化平台中选择远方需要的信息,通过各种规约模块,转发给各种远方主站、调度中心、高级专家分析等系统中。从而实现各种远方监控中心对于各种分散的智能通信终端的监视和控制功能。