GOOSE及SV通信系统及其报文解析方法与流程 您所在的位置:网站首页 sv报文解析 GOOSE及SV通信系统及其报文解析方法与流程

GOOSE及SV通信系统及其报文解析方法与流程

2024-01-22 09:06| 来源: 网络整理| 查看: 265

GOOSE及SV通信系统及其报文解析方法与流程

本申请总体涉及电力通信技术领域,更具体地讲,涉及一种goose及sv通信系统及其报文解析方法。

背景技术:

在现有技术中,可使用面向通用对象的变电站事件(goose)帧协议和采样值(sv)帧协议来在智能变电站中的智能终端设备(ied)之间传输重要的实时性信号。对于ied发送来的sv/goose报文的快速解析,提取关键决策信息成为了智能变电站快速响应的关键。

传统研究主要基于cpu,采用c/c++等顺序执行语言来实现sv/goose帧协议解析,但在完成解析后才能判断是否为订阅报文,降低了sv/goose报文处理的实时性,尤其当需要解析多个ied发送的sv/goose报文时。

另一种技术路线采用对sv/goose报文解码,利用报文中的应用协议数据单元(apdu)的asn.1(抽象语法标记格式)产生一个校验码,将这个校验码与上一次发送的sv/goose报文对应部分的校验码进行比较,若两者校验码相同则直接引用上次解码信息中提取的apdu数据,无需重复解码;若两者不一致,则对sv/goose报文的apdu部分数据进行解码,然后提取apdu数据。虽然这种方法在对sv/goose报文解码前进行了判断,降低了系统解码的负担,但针对sv/goose报文不一致的情况,由于其先产生校验码再解析sv/goose报文的操作,只有当sv/goose报文的所有数据都接收到才能产生一个有效校验码,实际上使得sv/goose报文解析的实时性变差。

因此,需要一种能够有效提高sv/goose报文解析的实时性和可靠性的goose及sv通信系统和方法。

技术实现要素:

为了至少解决现有技术中的上述问题,本申请提供了一种利用可编程逻辑器件实现的goose及sv通信系统和方法。

根据本发明的一方面,提供了一种goose及sv通信系统,所述goose及sv通信系统包括报文发生装置和报文解析装置,其特征在于,所述报文解析装置包括:网络接口单元,用于从报文发生装置接收报文数据以及向报文发生装置发送操作指令;解析单元,用于通过使用硬件描述语言hdl将对所述报文数据的多个字段进行逐字段解析的过程抽象为有限状态机fsm,并基于所述fsm的每个状态的状态标记来确定是否产生操作指令,其中,所述fsm的每个状态与对所述报文数据的多个字段中的对应字段的解析相关,并且所述每个状态的状态标记与所述对应字段的解析结果相关。

所述报文解析装置还可包括:存储单元,用于存储与报文发生装置相关的特征信息参数,其中,所述特征信息参数包括以下参数中的至少一个参数:报文发生装置的mac目的地址、mac源地址、虚拟局域网vlan、应用标识符appid、以及应用协议数据单元apdu相关参数。

所述fsm可包括以下状态:

a1:起始状态,用于准备针对报文数据的解析,并且在接收到报文数据之后转移到a2状态;

a2:mac目的地址字段检测状态,用于确定从接收到的报文数据中的mac目的地址字段解析出的mac目的地址与报文处理装置的地址是否一致,并且在解析出的mac目的地址与报文处理装置的地址一致的情况下将针对mac目的地址的状态标记设置为第一值并转移到a3状态,否则,将针对mac目的地址的状态标记设置为第二值并转移到a3状态;

a3:mac源地址字段检测状态,用于确定从接收到的报文数据中的mac源地址字段解析出的mac源地址与存储单元中存储的mac源地址是否一致,并且在解析出的mac源地址与存储单元中存储的mac源地址一致的情况下将针对mac源地址的状态标记设置为第一值并转移到a4状态,否则,将针对mac源地址的状态标记设置为第二值并转移到a4状态;

a4:标签信息检测状态,用于检测接收到的报文数据中的mac源地址字段之后是否存在vlan选项,并且在检测完成之后进入a5状态;

a5:以太网类型字段检测状态,用于从接收到的报文数据的以太网类型字段确定接收到的报文数据的以太网类型,并且在所述以太网类型为预定类型的情况下将针对以太网类型的状态标记设置为第一值并转移到a6状态,否则,将针对以太网类型的状态标记设置为第二值并转移到a6状态;

a6:appid字段检测状态,用于从接收到的报文数据的appid字段识别特定报文,并且当识别出所述特定报文时将针对appid的状态标记设置为第一值并转移到a7状态,否则,将针对appid的状态标记设置为第二值并转移到a7状态;

a7:解析状态,用于对接收到的报文数据中的apdu相关数据进行数据解析,并在完成解析之后进入a8状态;

a8:等待状态,用于在等待预设固定时间之后,返回a1状态。

所述解析单元可被配置为:确定所述fsm的每个状态的状态标记并对接收到的报文数据中的应用协议数据单元apdu中的预定部分的数据进行解析以获得报文状态数据;以及在所述fsm的所有状态标记均为指示满足针对各个状态的预定条件的预定值时,基于所述报文状态数据的指示结果来对apdu中的剩余部分的数据进行解析以产生所述操作指令。

所述报文状态数据可包括以下数据中的至少一种:变电站的模拟量、变电站的开关量、报文变位信息、报文丢帧信息、报文错序信息以及报文重复信息。

根据本发明的另一方面,提供了一种goose及sv通信系统的报文解析方法,其特征在于,所述报文解析方法包括:接收报文数据;用于通过使用硬件描述语言hdl将对所述报文数据的多个字段进行逐字段解析的过程抽象为有限状态机fsm,并基于所述fsm的每个状态的状态标记来确定是否产生操作指令,其中,所述fsm的每个状态与对所述报文数据的多个字段中的对应字段的解析相关,并且所述每个状态的状态标记与所述对应字段的解析结果相关;以及发送产生的操作指令。

与发送报文数据的报文发生装置相关的特征信息参数可被预存储在所述goose及sv通信系统中,其中,所述特征信息参数可包括以下参数中的至少一个参数:报文发生装置的mac目的地址、mac源地址、虚拟局域网vlan、应用标识符appid、以及应用协议数据单元apdu相关参数。

所述fsm可包括以下状态:

a1:起始状态,用于准备针对报文数据的解析,并且在接收到报文数据之后转移到a2状态;

a2:mac目的地址字段检测状态,用于确定从接收到的报文数据中的mac目的地址字段解析出的mac目的地址与报文处理装置的地址是否一致,并且在解析出的mac目的地址与报文处理装置的地址一致的情况下将针对mac目的地址的状态标记设置为第一值并转移到a3状态,否则,将针对mac目的地址的状态标记设置为第二值并转移到a3状态;

a3:mac源地址字段检测状态,用于确定从接收到的报文数据中的mac源地址字段解析出的mac源地址与存储单元中存储的mac源地址是否一致,并且在解析出的mac源地址与存储单元中存储的mac源地址一致的情况下将针对mac源地址的状态标记设置为第一值并转移到a4状态,否则,将针对mac源地址的状态标记设置为第二值并转移到a4状态;

a4:标签信息检测状态,用于检测接收到的报文数据中的mac源地址字段之后是否存在vlan选项,并且在检测完成之后进入a5状态;

a5:以太网类型字段检测状态,用于从接收到的报文数据的以太网类型字段确定接收到的报文数据的以太网类型,并且在所述以太网类型为预定类型的情况下将针对以太网类型的状态标记设置为第一值并转移到a6状态,否则,将针对以太网类型的状态标记设置为第二值并转移到a6状态;

a6:appid字段检测状态,用于从接收到的报文数据的appid字段识别特定报文,并且当识别出所述特定报文时将针对appid的状态标记设置为第一值并转移到a7状态,否则,将针对appid的状态标记设置为第二值并转移到a7状态;

a7:解析状态,用于对接收到的报文数据中的apdu相关数据进行数据解析,并在完成解析之后进入a8状态;

a8:等待状态,用于在等待预设固定时间之后,返回a1状态。

确定是否产生操作指令的步骤可包括:确定所述fsm的每个状态的状态标记并对接收到的报文数据中的应用协议数据单元apdu中的预定部分的数据进行解析以获得报文状态数据,以及在所述fsm的所有状态标记均为指示满足针对各个状态的预定条件的预定值时,基于所述报文状态数据的指示结果来对apdu中的剩余部分的数据进行解析以产生所述操作指令。

所述报文状态数据可包括以下数据中的至少一种:变电站的模拟量、变电站的开关量、报文变位信息、报文丢帧信息、报文错序信息以及报文重复信息。

根据本发明的另一方面,提供了一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序包括用于执行如前所述的报文解析方法的指令。

根据本发明的另一方面,提供了一种计算机设备,包括存储有计算机程序的可读介质,其特征在于,所述计算机程序包括用于执行如如前所述的报文解析方法的指令。

有益效果

通过应用本申请的goose及sv通信系统和方法,可利用硬件描述语言(hdl)将对sv/goose报文数据的逐字段解析过程抽象成有限状态机(fsm),从而提高报文解析过程的实时性和可靠性。

将在接下来的描述中部分阐述本发明总体构思另外的方面和/或优点,还有一部分通过描述将是清楚的,或者可以经过本发明总体构思的实施而得知。

附图说明

下面将参照附图描述示例性实施例的以上和/或其它方面,其中:

图1是示出根据本发明的示例性实施例的goose及sv通信系统的示意性框图。

图2和图3是示出根据本发明的示例性实施例的goose及sv通信系统的示例的框图。

图4是示出根据本发明的示例性实施例的有限状态机(fsm)的状态图。

图5是示出包括报文数据的以太网帧结构的示图。

图6是示出goose报文数据中的应用协议数据单元goose-pdu的构成的示图。

图7是示出是示出sv报文数据中的应用协议数据单元sav-pdu的构成的示图。

图8和图9是示出asn.1编码规则的示图。

图10是示出asn.1编码规则中的tag字段的组成的示图。

图11示出图10所示的tag字段的原始类型位的含义。

图12是示出根据本发明的示例性实施例的报文解析方法的流程图。

在下文中,将结合附图详细描述本发明,贯穿附图,相同或相似的元件将用相同或相似的标号来指示。

具体实施方式

提供以下参照附图进行的描述,以帮助全面理解由权利要求及其等同物限定的本发明的示例性实施例。所述描述包括各种特定细节以帮助理解,但这些细节被认为仅是示例性的。因此,本领域的普通技术人员将认识到:在不脱离本发明的范围和精神的情况下,可对这里描述的实施例进行各种改变和修改。此外,为了清楚和简明,可省略已知功能和构造的描述。

图1是示出根据本发明的示例性实施例的goose及sv通信系统100的示意性框图。

参照图1,根据本发明的示例性实施例的goose及sv通信系统100包括报文发生装置110和报文解析装置120。

在本发明的示例性实施例中,所述报文发生装置110可以是安装在电力网中的设备(例如,电力网中的智能变电站)中的智能电子设备(ied),并通过采集所述设备的相关数据和信息来产生报文数据。所述报文解析装置120可以是接收所述报文数据并对所述报文数据进行解析的装置(例如,可以是一块板卡或者是一个软件功能)。可在同一设备(例如,同一变电站)中实现报文解析装置120和报文发生装置110两者,或者,也可在所述ied中实现报文发生装置110和报文解析装置120两者,从而可在电力网中的设备或ied之间实现实时报文数据的传输和解析。

在本发明的示例性实施例中,所述报文数据可以是采用sv帧协议或goose帧协议的报文数据,即,sv报文数据或goose报文数据。

此外,在本发明的示例性实施例中,仅作为示例,报文解析装置120可以是基于zynq的解析装置(例如,使用xilinxzynq-7000soc的报文解析装置)。然而,应该理解,本申请不限于此,报文解析装置120还可以用其他可以使用sv/goose帧协议的装置实现。

在下文中,为便于描述,将以使用基于zynq的解析装置来实现报文解析装置120为例进行描述。

以下将结合图2和图3详细描述报文解析装置120的配置。

图2和图3是示出根据本发明的示例性实施例的goose及sv通信系统100的示例的框图。

如图2所示,在所述goose及sv通信系统100中,报文解析装置120可包括网络接口单元121和解析单元122。

网络接口单元121可从报文发生装置110接收报文数据。

解析单元122可通过使用硬件描述语言(hdl)将对接收到的报文数据的多个字段进行逐字段解析的过程抽象为有限状态机(fsm),并基于所述fsm的每个状态的状态标记来确定是否产生操作指令(例如,中断指令)。在本发明的示例性实施例中,所述fsm的每个状态与对所述报文数据的多个字段中的对应字段的解析相关,并且所述每个状态的状态标记与所述对应字段的解析结果相关。

更具体地讲,在本发明的示例性实施例中,解析单元122可确定fsm的每个状态的状态标记并对接收到的报文数据中的apdu相关数据中的预定部分的数据进行解析以获得报文状态数据,然后可在fsm的所有状态标记均为指示满足针对各个状态的预定条件的预定值时,基于所述报文状态数据的指示结果来对apdu相关数据中的剩余部分的数据进行解析以产生所述操作指令。

此外,尽管在附图中没有示出,但根据本发明的示例性实施例的报文解析装置120还可包括存储单元(未示出)来存储与各种报文发生装置相关的一个或更多个特征信息参数,例如,报文发生装置的mac目的地址、mac源地址、虚拟局域网(vlan)、应用标识符(appid)、以及apdu相关参数(例如,goose-pdu(即,针对goose帧协议的apdu)中的go-id的长度和值、dat-set的长度和值、alldata的长度、以及confrev等参数),从而解析单元122可使用这些参数进行解析操作。稍后将基于图4和图5对解析单元122的解析操作进行更详细的描述。

当解析单元122产生了操作指令时,网络接口单元121还可向报文发生装置110发送操作指令作为对接收的报文数据的反馈。在本发明的示例性实施例中,所述操作指令也可以以报文数据的形式被发送。

在本发明的示例性实施例中,所述解析单元122可使用基于zynq的装置来实现。

此外,在图2的示例中,可使用普通电口网线通信来执行报文发生装置110和报文解析装置120之间的通信。然而,当使用光纤通信方式来执行报文发生装置110和报文解析装置120的之间的通信时,如图3所示,还可在报文发生装置110和报文解析装置120的之间设置光电转换装置130。

图4是示出根据本发明的示例性实施例的有限状态机(fsm)的状态图。图5是示出包括报文数据的以太网帧结构的示图。

在本发明的示例性实施例中,可采用以太网数据帧来传送报文数据,因此,在开始对fsm进行描述之前,首先参照图5详细解释根据本发明的示例性实施例的包括报文数据的以太网数据帧结构中的各个字段。

如图5所示,所述帧结构的第1个字段为帧头字段,长度为8字节,包括7个字节的前同步码和1个字节的帧界定符。

所述帧结构的第2个字段为mac地址字段,包括mac目的地址字段(长度为6个字节)和mac源地址字段(长度为6个字节)。

所述帧结构的第3个字段为vlan字段,长度为4字节,是可选项。

所述帧结构的第4个字段为以太网类型字段,长度为2字节,并且对于goose报文数据,其值固定为0x88_b8,对于sv报文数据,其值固定为0x88_ba。

所述帧结构的第5个字段为apdu头,包括appid字段、长度字段、保留位1字段和保留位2字段。appid字段用于标识特定报文,长度为2字节。长度字段的长度为2个字节,指示从appid开始至帧校验序列前的报文长度。保留位1字段和保留位2字段的长度均为2字节。

所述帧结构的第6个字段为apdu字段(goose-pdu或sav-pdu(即,针对sv帧协议的apdu)),长度小于1492字节。

所述帧结构的第7个字段为帧校验序列字段,长度为4字节。

返回参照图4,解析单元122可使用hdl将对接收到的报文数据的多个字段进行逐字段解析的过程抽象为具有如下各个状态的fsm:

a1:起始状态,用于准备针对报文数据的解析,并且在接收到报文数据之后转移到a2状态。

a2:mac目的地址字段检测状态,用于确定从接收到的报文数据中的mac目的地址字段解析出的mac目的地址与报文解析装置120的地址是否一致,并且在解析出的mac目的地址与报文解析装置120的地址一致的情况下将针对mac目的地址的状态标记设置为第一值(例如,值“1”)并转移到a3状态,否则,将针对mac目的地址的状态标记设置为第二值(例如,值“0”)并转移到a3状态。

a3:mac源地址字段检测状态,用于确定从接收到的报文数据中的mac源地址字段解析出的mac源地址与存储单元(未示出)中存储的mac源地址是否一致从而确定信号来源,并且在解析出的mac源地址与存储单元(未示出)中存储的mac源地址一致的情况下将针对mac源地址的状态标记设置为第一值(例如,值“1”)并转移到a4状态,否则,将针对mac源地址的状态标记设置为第二值(例如,值“0”)并转移到a4状态。

a4:标签(tag)信息检测状态,用于检测mac源地址字段之后是否存在vlan选项,并且在检测完成之后进入a5状态。

具体来说,在本发明的示例性实施例中,如图5所示,mac源地址字段后面的4字节的vlan字段通常是可选项,并且vlan字段包括两部分:tpid字段和tci字段,其中,tpid字段的值为固定值0x81_00。可首先通过检测tpid字段的值来判断是否存在vlan选项,如果mac源地址后的字段与所述tpid字段的值一致,则确定存在vlan选项,但由于vlan选择携带的与优先级和虚拟局域网相关的信息对接收端的解码已经没有意义,因此可跳过可这4个字节,进入a5状态;如果mac源地址后的字段与所述tpid字段的值不一致,则确定不存在vlan选项,可直接进入a5状态。

a5:以太网类型字段检测状态,用于从接收到的报文数据的以太网类型字段确定接收到的报文数据的以太网类型,并且在所述以太网类型为预定类型的情况下将针对以太网类型的状态标记设置为第一值(例如,值“1”)并转移到a6状态,否则,将针对以太网类型的状态标记设置为第二值(例如,值“0”)并转移到a6状态。

具体地讲,在本发明的示例性实施例中,如果两个字节的指示以太网类型的值与0x88_b8一致,则可确定接收到的报文数据为goose报文数据;如果所述指示以太网类型的值与0x88_ba一致,则可确定接收到的报文数据为sv报文数据;如果所述指示以太网类型的值为其它值,则可确定接收到的报文数据为无效报文。

因此,在本发明的例性实施例中,当所述goose及sv通信系统100使用goose帧协议时,可在接收到goose报文数据时将针对以太网类型的状态标记设置为第一值(例如,值“1”),其它情况下设置为第二值(例如,值“0”)。

此外,根据本发明的另一实施例,当所述goose及sv通信系统100使用sv帧协议时,可在接收到sv报文数据时将针对以太网类型的状态标记设置为第一值(例如,值“1”),其它情况下设置为第二值(例如,值“0”)。

a6:appid字段检测状态,用于从接收到的报文数据的appid字段识别特定报文,并且当识别出所述特定报文时将针对appid的状态标记设置为第一值(例如,值“1”)并转移到a7状态,否则,将针对appid的状态标记设置为第二值(例如,值“0”)并转移到a7状态。

具体来说,appid标识可用来标识特定报文数据,可为appid预先分配取值范围来标识不同类型的报文。仅作为示例,例如,当使用iec61850协议时,可为goose报文数据分配的appid取值范围是0x0000~0x3fff,可为sv报文数据分配的appid取值范围是0x4000~0x7fff,并且每个sv/goose控制块的appid值可全站唯一。在这种情况下,如果appid的取值与系统配置文件中的预先配置的值一致则可识别出特定报文数据。

a7:解析状态,用于对接收到的报文数据中的apdu相关数据进行数据解析,并在完成解析之后进入a8状态。

更具体地说,在所述解析状态中,可首先对图5中所示的从appid到apdu结束的全部字节的长度(即,“appid+长度+保留位1+保留位2+apdu”五个字段的长度)进行解析,然后对图5中所示的保留位1和保留位2(两者的值通常为0x00_00)进行解析,最后可对报文数据中采用asn.1编码的apdu部分进行解析。

a8:等待状态,用于在等待预设固定时间之后,返回a1状态。

仅作为示例,在对apdu的解析过程中,当解析单元122是基于zynq的解析装置时,解析单元122可包括pl(可编程逻辑模块)解析模块(未示出)和ps(软件处理模块)解析模块(未示出)。pl解析模块(未示出)可用来确定上述fsm的每个状态的状态标记并对apdu中的预定部分的数据进行解析以获得报文状态数据。ps模块(未示出)可在所述fsm的所有状态标记均为指示满足针对各个状态的预定条件的预定值(例如,参照图4所例示的第一值)时,基于所述报文状态数据的指示结果来对apdu中的剩余部分的数据进行解析以产生所述操作指令。也就是说,所述fsm的a1至a6以及a8状态的处理可在pl解析模块(未示出)中实现,并且所述fsm的a7状态的解析处理可由ps解析模块(未示出)和pl解析模块(未示出)两者实现。

在本发明的示例性实施例中,所述报文状态数据可包括报文发生装置110所采集以下数据中的至少一种:例如,变电站的模拟量、变电站的开关量、报文变位信息、报文丢帧信息、报文错序信息以及报文重复信息。在本发明的示例性实施例中,sv报文中可含有模拟量,而goose报文中可含有开关量。此外,报文变位信息可指示在变电站中是否出现事件变化,这正是报文数据的实时性的体现。报文丢帧信息、报文错序信息以及报文重复信息可指示在报文数据中是否出差错,这是报文数据的可靠性的体现。

以下结合图6和图7来描述pl解析模块(未示出)和ps解析模块(未示出)的详细操作。

图6是示出goose报文数据中的应用协议数据单元goose-pdu的构成的示图。图6的goose-pdu采用asn.1语法规则定义,并且其具体字段含义如下:

第一个字段为goose-pdu的标签(tag)值,长度为1字节;

第二个字段为goose-pdu的长度(length)值,值有两种选择:即,1字节的格式和2字节以上的长格式;

第三个字段是goose-pdu的内容(value)值,由以下12个字段依次组成:goose控制块引用(gocbref)、报文允许生存时间(timeallowancelive)、goose数据集引用(datset)、goose报文标识(goid)、事件时标(t)、状态序号(stnum)、顺序号(sqnum)、检修标识(test)、配置版本号(confrev)、配置需求(ndscom)、数据集条目(numdatsetentries)和数据(alldata)。

在本发明的示例性实施例中,在所述goose及sv通信系统100使用goose帧协议时,在a7的解析状态下,pl解析模块(未示出)可对goose-pdu中除数据(alldata)字段以外的部分进行解析以获得报文状态数据,而ps解析模块(未示出)可在fsm的所有状态标记均为指示满足针对各个状态的预定条件的预定值(例如,参照图4所例示的第一值)并且报文状态数据指示接收到的报文数据不同于前一帧的报文数据(即,变位)且未出现差错时,确定对goose-pdu中的数据(alldata)字段的数据进行解析以产生相应操作指令,否则,不产生操作指令。

更具体地讲,对于goose报文数据而言,可以通过stnum、sqnum来解析出goose变位报文,即事件变化,这正是goose报文实时性的体现。此外,还可通过stnum、sqnum来解析出goose报文数据是否丢帧、是否有错序、是否有重复等,具体原理如下:stnum为状态序号,用于记录goose数据总共的变位次数,goose数据集成员的值每变化一次,stnum值加1。sqnum为顺序号,用于记录稳态情况下发出报文的帧数,报文发生装置每发出一帧的goose报文,sqnum值加1,当有goose数据变位时,该值归0,从头开始重新计数。因此,可以通过stnum、sqnum判断goose数据变位、丢帧、错序、重复等信息。

图7是示出是示出sv报文数据中的应用协议数据单元sav-pdu的构成的示图。图7的sav-pdu采用asn.1语法规则定义,并且其具体字段含义如下:

第一个字段0x60为sav-pdu的标签(tag)值,长度为1字节;

第二个字段为sav-pdu的长度(length)值,值有两种选择:1字节的格式和2字节以上的长格式;

noasdu表示sav-pdu中包含的asdu(即,应用服务数据单元)个数。

此外,对于针对sv报文数据的每个asdu,其都包含如下信息:

svid,表示采样值标识符;

smpcnt,表示采样计数器;

confrev,表示配置版本号;

smpsynch,布尔量,表示采样值是否与时钟信号同步;

sequenceofdata,数据序列,诸如ied(智能电子设备)采集的设备电流、电压值。

在本发明的示例性实施例中,在所述goose及sv通信系统100使用sv帧协议时,在a7的解析状态下,pl解析模块(未示出)可对sav-pdu中除指示模拟量的字段(即,asdu1部分)以外的部分进行解析以获得报文状态数据,而ps解析模块(未示出)可在fsm的所有状态标记均为指示满足针对各个状态的预定条件的预定值(例如,参照图4所例示的第一值)并且报文状态数据指示未出现差错时,确定对sav-pdu中的指示模拟量的字段的数据进行解析以产生对应操作指令,否则,不产生操作指令。

此外,对于sv报文数据。可采用smpcnt参数来判断sv报文数据的丢帧、错序、重复等报文状态数据。

图6所示的goose-pdu和图7所示的sav-pdu的结构对于本领域技术人员来说是已知的,因此为了简明,将不再进行更进一步的描述。

图8和图9是示出asn.1编码规则的示图。图10是示出asn.1编码规则中的tag字段的组成的示图。图11示出图10所示的tag字段的原始类型位的含义。

参照图8至图11,asn.1编码的编码规则遵循标签(tag)、长度(length)、值(value)的格式,简称tlv。

如图8所示。tlv每个字段都是一系列的八位组,对于组合结构,其中的v(即,值(value))字段可嵌套tlv,例如,如图9所示的三层的tlv嵌套。

tag字段是一个八位,每个位的具体表示意义如图10所示,其中的比特4~比特0是原始类型位,其含义见图11。

对于长度(length)字段,根据编码的实际长度,asn.1定义了两种长度的编码方式,即,短编码和长编码。长度(length)字段中第一个字节的最高位为0代表着短编码,1表示长编码。对于短编码而言,长度(length)字段中第一个字节的低7位表示负载长度的立即数;对于长编码而言,负载长度的立即数从长度(length)字段中第二个字节开始。以下对短编码和长编码进行详细解释。

短编码

在短编码中,负载帧长度必须小于128字节。例如,当对于一个负载帧长度为65(0x41)的负载进行编码时,其长度的编码字节只需设置为0x41即可,通过其最高位可以判断是短编码,长度是65字节。

长编码

在长编码中,定义了附加的抽象数据来对负载长度进行编码,适用于负载长度大于或等于128字节的负载帧。在这种情况下,长度立即数存储的是负载长度所需的字节数,这个长度必须以big-endian格式进行编码。例如,对于一个负载长度为976(0x03d0)字节的负载帧进行编码,由于其长度大于127,只能采用长编码形式,实际长度需要两个字节表示,则长度编码字节位0x82;然后用big-endian格式存储长度值0x03、0xd0,最后得到的全部长度编码为0x8203d0。

图12是示出根据本发明的示例性实施例的报文解析方法的流程图。

参照图12,在步骤1201,可由报文解析装置120的网络接口单元121从报文发生装置110接收报文数据。在本发明的示例性实施例中,与报文发生装置110相关的特征信息参数可被预存储在报文解析装置120中。所述特征信息参数可包括以下参数中的至少一个参数:报文发生装置110的mac目的地址、mac源地址、vlan、appid、以及apdu相关参数。

然后,在步骤1203,可由报文解析装置120的解析单元122通过使用硬件描述语言(hdl)将对所述报文数据的多个字段进行逐字段解析的过程抽象为有限状态机(fsm),并基于所述fsm的每个状态的状态标记来确定是否产生操作指令。在本发明的示例性实施例中,所述fsm的每个状态与对所述报文数据的多个字段中的对应字段的解析相关,并且所述每个状态的状态标记与所述对应字段的解析结果相关。

更具体地,结合图4,所述解析单元122可确定所述fsm的每个状态的状态标记并对接收到的报文数据中的apdu中的预定部分的数据进行解析以获得报文状态数据,并在所述fsm的所有状态标记均为指示满足针对各个状态的预定条件的预定值(例如,参照图4所例示的第一值)时,基于所述报文状态数据的指示结果来对apdu中的剩余部分的数据进行解析以产生所述操作指令。在本发明的示例性实施例中,所述报文状态数据可包括报文发生装置110所采集以下数据中的至少一种:变电站的模拟量、变电站的开关量、报文变位信息、报文丢帧信息、报文错序信息以及报文重复信息。

以上已结合图4至图7描述了解析单元122基于fsm来进行解析的操作,因此,在此为了简明将不再进行详细描述。

在步骤s1205,可由报文解析装置120的网络接口单元121向报文发生装置110发送产生的操作指令(例如,中断指令)。

通过应用本申请的goose及sv通信系统和方法,可利用硬件描述语言(hdl)将对sv/goose报文数据的逐字段解析过程抽象成有限状态机(fsm),从而提高报文解析的过程的实时性和可靠性。

上述方法和/或操作可被记录、存储或固定在一个或多个计算机可读存储介质中,所述计算机可读存储介质包括将由计算机执行的程序指令以使处理器运行或执行所述程序指令。所述介质还可单独包括程序指令、数据文件、数据结构等或数据文件、数据结构等与程序指令的组合。计算机可读存储介质的示例包括磁介质(例如,硬盘、软盘和磁带)、光介质(例如,cdrom盘和dvd)、磁光介质(例如,光盘)以及专门配置为存储和执行程序指令的硬件装置(例如,只读存储器(rom)、随机存取存储器(ram)、闪存等)。程序指令的示例包括(例如,由编译器产生的)机器代码和包含可由计算机使用解释器执行的更高级代码的文件。描述的硬件装置可被配置用作一个或多个软件单元以执行上述操作和方法,反之亦然。此外,计算机可读存储介质可分布在通过网络连接的计算机系统中,并且计算机可读代码或程序指令可以以分布方式被存储和执行。

尽管已经参照其示例性实施例具体显示和描述了本发明,但是本领域的技术人员应该理解,在不脱离权利要求所限定的本发明的精神和范围的情况下,可以对其进行形式和细节上的各种改变。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有