用于数字化变电站的iec61850-9-2协议数据帧的组帧方法

文档序号:7561426阅读:723来源:国知局
专利名称:用于数字化变电站的iec61850-9-2协议数据帧的组帧方法
技术领域
本发明涉及一种用于数字化变电站的IEC61850-9-2协议数据帧的组帧方法。
背景技术
IEC61850-9-2协议数据帧是数字化变电站的一个重要组成部分,它构建了变电 站通信网络和系统中的特定通信服务映射功能,然而由于IEC61850-9-2支持灵活配置, 其每一个应用协议数据单元APDU数据帧中的应用服务数据单元ASDU数、系统唯一标识 svID长度和数据集DatMet中的数据单元个数都可能不一样,且IEC61850-9-2应用协议 数据单元APDU数据帧使用的是ASN. 1编码规则,因此,IEC61850-9-2应用协议数据单元 APDU数据帧的组织是比较复杂的,在如此灵活的配置和复杂的编码规则上构架而成的数 据帧,如何在解帧时准确而高效地运作颇具挑战性。目前针对IEC61850-9-2应用协议数 据单元APDU数据帧的设计还处于分离和不系统的状态,并且各科研单位和技术开发部分 对IEC61850-9-2应用协议数据单元APDU数据帧的帧处理方法的理解也不够透彻,所以, 在严格遵守中华人民共和国电力行业标准的情况下整合IEC61850-9-2应用协议数据单元 APDU数据帧的帧处理方法亟待解决。

发明内容
本发明的目的在于提供一种能降低IEC61850-9-2协议数据帧的组帧复杂度和提 高数据处理效率的用于数字化变电站的IEC61850-9-2协议数据帧的组帧方法。本发明提供的这种用于数字化变电站的IEC61850-9-2协议数据帧的组帧方法, 包括如下步骤
(1)对应用协议数据单元APDU数据帧的头部Header建立对象HEAD_APDU,对应用协议 数据单元APDU数据帧的第一个至第n个应用服务数据单元ASDUl η建立对象ASDU92, 所述对象HEAD_APDU和对象ASDU92均划分为管理结构和组帧数据两部分,所述管理结构存 储本对象中各域的值和本域在应用协议数据单元APDU数据帧中的位移,对所述对象HEAD_ APDU和对象ASDU92中的管理结构和组帧数据分别进行单独地处理;
(2)找出用于确定整个应用协议数据单元APDU数据帧长度的模拟量采样值协议数据 单元savPdu、应用服务数据单元序列kquence of ASDU以及第一个至第η个应用服务数据 单元序列kquence ASDUl η三个变长参数与应用服务数据单元ASDU数目、系统唯一标 识svID长度及数据集DataSet的数据单元个数三个变长因子之间的规律,确定计算方法计 算应用协议数据单元APDU数据帧的长度;
(3)引入同应用协议数据单元APDU数据帧中不同应用服务数据单元ASDU之间的自 学习方法以及同结构的应用协议数据单元APDU数据帧之间的自学习方法,第一个应用服 务数据单元ASDUl组帧后,第二个至第η个应用服务数据单元ASDU2 η借鉴所述第一个 应用服务数据单元ASDUl的结构,将不同的数据域插入到第二个至第η个应用服务数据单元ASDU2 η各域中的相应位置,与已组帧好的应用协议数据单元APDU数据帧同结构的 后续应用协议数据单元APDU数据帧借鉴该已组帧好的应用协议数据单元APDU数据帧的 结构,所述对象HEAD_APDU的组帧数据直接复制到该应用协议数据单元APDU数据帧头部 Header的相应位置,所述对象ASDU92中的组帧数据根据其第一个至第η个应用服务数据单 元ASDUl η各域的位移直接插入到该应用协议数据单元APDU数据帧中第一个至第η个 应用服务数据单元ASDUl η的相应位置。所述组帧步骤(3)中所述对象ASDU92中的组帧数据先在该对象中进行组织,当其 所有的组帧数据都组织好后再一次性复制到该应用协议数据单元APDU数据帧中第一个至 第η个应用服务数据单元ASDUl η各域的相应位置。对应于所述组帧方法的解帧方法包括如下步骤
(1)对应用协议数据单元APDU数据帧的头部Header及第一个至第n个应用服务数据 单元ASDUl η分别进行单独地解析,解析其头部Header,建立对象HEAD_APDU92,解析其 第一个至第η个应用服务数据单元ASDUl η,建立对象ASDUn,所述对象HEAD_APDU92包 括用于存储应用服务数据单元ASDU数目的变量nr_asdU、用于存储应用服务数据单元ASDU 长度的变量szjsdu、用于寻找第一个应用服务数据单元ASDUl在应用协议数据单元APDU 数据帧中首指针的变量byte_sav_pdu及变量byte_seqnc_asdu,所述对象ASDUn包括域 svid、子域 smpCnt、confRev、smpSynch、域 DataSet ;
(2)同一个应用协议数据单元APDU数据帧中的第二个至第η个应用服务数据单元 ASDU2 η自学习其第一个应用服务数据单元ASDUl的解析方法;
(3)对应用协议数据单元APDU数据帧各个不同部分采用不同的解析与复制方法,对于 定长的部分进行直接拷贝,对于变长的部分采用位移加插入的方法。所述解帧步骤(1)中所述域svid包括寻址位移用的变量offset、记录长度用的 变量number以及系统身份识别用的字符串string_array,所述子域smpCnt、confRev, smpSynch分别配置采样率、计数和采样同步,所述域DataSet包括寻址位移用的变量 offsetl、记录长度用的变量bytes以及记录有效采样数据用的data。所述解帧步骤(2)中 所述第一个应用服务数据单元ASDUl的解析方法包括如下步骤(1)根据所述对象HEAD_ APDU92中用于寻找第一个应用服务数据单元ASDUl在应用协议数据单元APDU数据帧中首 指针的变量byte_SaV_pdu及变量byte_SeqnC_aSdu求得第一个应用服务数据单元ASDUl 在应用协议数据单元APDU数据帧中的首指针;(2)求解对象ASDUn中域svid的寻址位移 的变量offset和记录长度的变量number,同时复制该域svid中用于系统身份识别的字符 串string_array ; (3)根据所述域svid中的变量offset求得位移后直接负责子域smpCnt、 confRev和smpSynch的内容;(4)根据所述域Datakt中的变量offsetl和变量bytes求 得位移和长度后,复制该域中指定长度的有效采样数据。本发明由于采用了分而治之的原则,对应用协议数据单元APDU数据帧的头部 Header及第一个至第n个应用服务数据单元ASDUl η分别进行单独地处理,且引入了同 应用协议数据单元APDU数据帧中不同应用服务数据单元ASDU之间的自学习方法以及同结 构的应用协议数据单元APDU数据帧之间的自学习方法,降低了 IEC61850-9-2协议数据帧 的组帧复杂度和提高了数据的处理效率。


图1是本发明中IEC61850-9-2应用协议数据单元APDU数据帧的结构示意图。图2是本发明中对象LEN_C0NTRL数据结构图。图3是本发明中IEC61850-9-2应用协议数据单元APDU数据帧的组帧方法示意 图。图4是本发明中解析ASN. 1编码规则专用的宏和函数。图5是本发明中IEC61850-9-2应用协议数据单元APDU数据帧的解帧方法示意图。
具体实施例方式图1是本发明中IEC61850-9-2应用协议数据单元APDU数据帧的结构示意图,从 图1可知,整个应用协议数据单元APDU数据帧的长度依赖于模拟量采样值协议数据单元 savPdu、应用服务数据单元序列kquence of ASDU及第一个至第η个应用服务数据单元序 列^^此!!⑶ASDUl η这三个变长参数,而该三个变长参数依赖于应用服务数据单元ASDU 数目、系统唯一标识svID长度及数据集Dat必et的数据单元数这三个变长因子,为了找出 变长参数和变长因子这二者之间的规律,特创建了对象LEN_C0NTRL,如图2所示。图2是本发明中对象LEN_C0NTRL数据结构图,如图所示,对象LEN_C0NTRL中的第 一项是is_modified,其用来指示变长因子是否已经更改,如果变长因子已经更改,则重新 计算变长参数的值,同时,为了实现对象LEN_C0NTRL的封装,将变长因子和变长参数都包 括在对象LEN_C0NTRL中。图3是本发明中IEC61850-9-2应用协议数据单元APDU数据帧的组帧方法示意 图,如图中左边的APDU_FRAME所示(APDU_FRAME是可以直接发送的APDU数据帧),应用协 议数据单元APDU数据帧的组帧方法采用了分而治之的方法,对其头部Header及其第一个 至第η个应用服务数据单元ASDU1、分别进行单独地处理。如图右边所示,针对APDU_FRAME 的头部Header建立对象HEAD_APDU,针对APDU_FRAME中的第一个至第n个应用服务数据 单元ASDUl η建立对象ASDU92,对象HEAD_APDU和ASDU92都划分为管理结构和组帧数 据两个部分,其中管理结构是用于存储本对象中各域的值和本域在应用协议数据单元APDU 帧中的位移(根据该位移能方便地寻址本域的数据),而组帧数据是由管理结构数据计算出 来的可以直接复制到应用协议数据单元APDU数据帧中的有效数据。当组帧方法开始时,首先检查对象LEN_C0NTRL中的is_modif ied是否为TRUE,如 果为TRUE,说明变长因子已经更改,则清除标志和重新计算变长参数,同时对象HEAD_APDU 和ASDU92都要重新计算各域的值和位移,这种因变长因子更改而引起上述各对象的重新 计算称之为“帧迭换”,该计算开销比较大(大部分情况下变长因子都是固定不变的);如果 对象LEN_C0NTRL中的isjiiodified为FALSE,说明变长因子未更改,此情况下的计算任务 很小,首先对象HEAD_APDU的组帧数据直接复制到该应用协议数据单元APDU数据帧的头部 Header的相应位置,对象ASDU92中的组帧数据根据其第一个至第η个应用服务数据单元 ASDUl η各域的位移直接插入到该应用协议数据单元APDU数据帧中第一个至第η个应用 服务数据单元ASDUl η的相应位置,对象ASDU92中的组帧数据先在该对象中进行组织, 当其所有的组帧数据都组织好后再一次性复制到该应用协议数据单元APDU数据帧中第一个至第η个应用服务数据单元ASDUl η各域的相应位置,上述所有的操作动作如图中的 箭头所示,除第一个应用服务数据单元ASDUl外的其它应用服务数据单元,即第二个至第η 个应用服务数据单元ASDU2 η,就可以方便地借鉴第一个应用服务数据单元ASDUl的结构 和部分数据(如系统唯一标识svID),即同应用协议数据单元APDU中不同应用服务数据单 元ASDU的自学习方法。图4是本发明中解析ASN. 1编码规则专用的宏和函数,如图所示,为了解决ASN. 1 解码的困难,首先定义GET_BYTES()及ConvertO两个宏,其中宏GET_BYTES ()根据ASN. 1 编码的第一个字节求整个编码字节的长度,宏CorwertO按照输入的ASN. 1编码的第一个 字节的指针来求解实际的长度值。图5是本发明中IEC61850-9-2应用协议数据单元APDU数据帧的解帧方法示 意图,如图所示,为了方便解析应用协议数据单元APDU数据帧的头部Header,建立了对象 HEAD_APDU92,该对象包括用于存储应用服务数据单元ASDU数目的变量nr_aSdu、用于存储 应用服务数据单元ASDU长度的变量SZ_aSdu、用于寻找第一个应用服务数据单元ASDUl在 应用协议数据单元APDU数据帧中首指针的变量byte_SaV_pdu和变量byte_SeqnC_aSdu, 所述对象 ASDUn 包括域 svid、子域 smpCnt、confRev、smpSynch、域 Datakt,所述域 svid 包括寻址位移用的变量offset、记录长度用的变量number以及系统身份识别用的字符串 string_array,所述子域smpCnt、confRev、smpSynch分别用于配置采样率、计数和采样同 步,所述域DataSet包括寻址位移用的变量offset 1、记录长度用的变量bytes以及记录有 效采样数据用的data。所有应用服务数据单元ASDU的解析都是建立在对象ASDUn上的, 如图所示,对象ASDUn的结构很符合插入复制与直接拷贝的。第一个应用服务数据单元 ASDUl的解析方法如下所述首先,根据所述对象HEAD_APDU92中用于寻找第一个应用服务 数据单元ASDUl在应用协议数据单元APDU数据帧中首指针的变量byte_sav_pdU及变量 byte_seqnc_asdu求得第一个应用服务数据单元ASDUl在应用协议数据单元APDU数据帧 中的首指针;其次,求解对象ASDUn中域svid的寻址位移的变量offset和记录长度的变量 number,同时复制该域svid中用于系统身份识别的字符串string—array ;接着,根据所述 域svid中的变量offset求得位移后直接负责子域smpCnt、confRev和smpSynch的内容; 最后,根据所述域DataSet中的变量off set 1和变量bytes求得位移和长度后,复制该域中 指定长度的有效采样数据。ASDU2 η的求解就更为方便了,因为它可以直接借鉴上述第一个应用服务数据 单元ASDUl的解析方法,首先,根据对象HEAD_APDU92中的sz_asdu和p_asdu顺序求解本应 用服务数据单元ASDU在APDU_FRAME中的指针;接着,需要解析的只有固定的子域smpCnt、 confRev,smpSynch和域DatMet,因为这4个部分都有正确的位移(在第一个应用服务数据 单元ASDUl中已经求解),所需的工作只是插入复制而已。
权利要求
1.一种用于数字化变电站的IEC61850-9-2协议数据帧的组帧方法,其特征在于该组 帧方法包括如下步骤(1)对应用协议数据单元(APDU)数据帧的头部(Header)建立对象HEAD_APDU,对应用 协议数据单元(APDU)数据帧的第一个至第n个应用服务数据单元(ASDU1 η)建立对象 ASDU92,所述对象HEAD_APDU和对象ASDU92均划分为管理结构和组帧数据两部分,所述管 理结构存储本对象中各域的值和本域在应用协议数据单元(APDU)数据帧中的位移,对所述 对象HEAD_APDU和对象ASDU92中的管理结构和组帧数据分别进行单独地处理;(2)找出用于确定整个应用协议数据单元(APDU)数据帧长度的模拟量采样值协议数据 单元(savPdu)、应用服务数据单元序列(Sequence of ASDU)以及第一个至第η个应用服务 数据单元序列(Sequence ASDUl η)三个变长参数与应用服务数据单元(ASDU)数目、系统 唯一标识(svID)长度及数据集(DataSet)的数据单元个数三个变长因子之间的规律,确定 计算方法计算应用协议数据单元(APDU)数据帧的长度;(3)引入同应用协议数据单元(APDU)数据帧中不同应用服务数据单元(ASDU)之间的 自学习方法以及同结构的应用协议数据单元(APDU)数据帧之间的自学习方法,第一个应 用服务数据单元(ASDUl)组帧后,第二个至第η个应用服务数据单元(ASDU2 η)借鉴所 述第一个应用服务数据单元(ASDUl)的结构,将不同的数据域插入到第二个至第η个应用 服务数据单元(ASDU2 η)各域中的相应位置,与已组帧好的应用协议数据单元(APDU)数 据帧同结构的后续应用协议数据单元(APDU)数据帧借鉴该已组帧好的应用协议数据单元 (APDU)数据帧的结构,所述对象HEAD_APDU的组帧数据直接复制到该应用协议数据单元 (APDU)数据帧头部(Header)的相应位置,所述对象ASDU92中的组帧数据根据其第一个至 第η个应用服务数据单元(ASDU1 η)各域的位移直接插入到该应用协议数据单元(APDU) 数据帧中第一个至第η个应用服务数据单元(ASDUl η)的相应位置。
2.根据权利要求1所述的用于数字化变电站的IEC61850-9-2协议数据帧的组帧方法, 其特征在于所述组帧步骤(3)中所述对象ASDU92中的组帧数据先在该对象中进行组织,当 其所有的组帧数据都组织好后再一次性复制到该应用协议数据单元(APDU)数据帧中第一 个至第η个应用服务数据单元(ASDUl η)各域的相应位置。
3.—种对应于权利要求1所述组帧方法的解帧方法包括如下步骤(1)对应用协议数据单元(APDU)数据帧的头部(Header)及第一个至第η个应用服务 数据单元(ASDU1 η)分别进行单独地解析,解析其头部(Header),建立对象HEAD_APDU92, 解析其第一个至第η个应用服务数据单元(ASDU1 η),建立对象ASDUn,所述对象HEAD_ APDU92包括用于存储应用服务数据单元(ASDU)数目的变量nr_asdu、用于存储应用服务数 据单元(ASDU)长度的变量szjsdu、用于寻找第一个应用服务数据单元(ASDUl)在应用协 议数据单元(APDU)数据帧中首指针的变量byte_SaV_pdu及变量byte_SeqnC_aSdu,所述对 象 ASDUn 包括域 svid、子域 smpCnt、confRev、smpSynch、域 DataSet ;(2)同一个应用协议数据单元(APDU)数据帧中的第二个至第η个应用服务数据单元 (ASDU2 η)自学习其第一个应用服务数据单元(ASDUl)的解析方法;(3)对应用协议数据单元(APDU)数据帧各个不同部分采用不同的解析与复制方法,对 于定长的部分进行直接拷贝,对于变长的部分采用位移加插入的方法。
4.根据权利要求3所述的用于数字化变电站的IEC61850-9-2协议数据帧的组帧方法,其特征在于所述解帧步骤(1)中所述域svid包括寻址位移用的变量offset、记录长 度用的变量number以及系统身份识别用的字符串(string_array),所述子域smpCnt、 confRev, smpSynch分别配置采样率、计数和采样同步,所述域DataSet包括寻址位移用的 变量offsetl、记录长度用的变量bytes以及记录有效采样数据用的data。
5.根据权利要求3所述的用于数字化变电站的IEC61850-9-2协议数据帧的组帧方法, 其特征在于所述解帧步骤(2)中所述第一个应用服务数据单元(ASDUl)的解析方法包括如 下步骤(1)根据所述对象HEAD_APDU92中用于寻找第一个应用服务数据单元(ASDU1)在应用 协议数据单元(APDU)数据帧中首指针的变量byte_SaV_pdu及变量byte_SeqnC_aSdu求得 第一个应用服务数据单元(ASDUl)在应用协议数据单元(APDU)数据帧中的首指针;(2)求解对象ASDUn中域svid的寻址位移的变量offset和记录长度的变量number, 同时复制该域svid中用于系统身份识别的字符串(string—array);(3)根据所述域svid中的变量offset求得位移后直接负责子域smpCnt、confRev和 smpSynch的内容;(4)根据所述域DataSet中的变量offsetl和变量bytes求得位移和长度后,复制该域 中指定长度的有效采样数据。
全文摘要
本发明公开了一种用于数字化变电站的IEC61850-9-2协议数据帧的组帧方法,该组帧方法包括如下步骤(1)对APDU数据帧的头部Header及ASDU1~n分别进行单独地组帧;(2)找出APDU数据帧中变长参数与变长因子之间的规律;(3)引入同APDU数据帧中不同ASDU之间的自学习方法以及同结构的APDU数据帧之间的自学习方法。本发明由于采用了分而治之的原则,对应用协议数据单元APDU数据帧的头部Header及第一个至第n个应用服务数据单元ASDU1~n分别进行单独地处理,且引入了同应用协议数据单元APDU数据帧中不同应用服务数据单元ASDU之间的自学习方法以及同结构的应用协议数据单元APDU数据帧之间的自学习方法,降低了IEC61850-9-2协议数据帧的组帧复杂度和提高了数据的处理效率。
文档编号H04L29/06GK102065105SQ20111000639
公开日2011年5月18日 申请日期2011年1月13日 优先权日2011年1月13日
发明者殷昌华, 熊宠巍, 蒋亮, 蒋俊, 黄深喜 申请人:威胜集团有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1