• 932.54 KB
  • 2022-04-22 13:38:09 发布

DLT790.6-2010采用配电线载波的配电自动化A-XDR编码规则.pdf

  • 28页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'ICS27.100F21备案号:29043—2010口L中华人民共和国电力行业标准DL/T790.6—2010/IEC61334—6:2000采用配电线载波的配电自动化第6部分:A.XDR编码规则Distributionautomationusingdistributionlinecarriersystem—Part6:A-XDRencodingrule2010—05—24发布(IEC61334-6:2000,IDT)2010—10—01实施国家能源局发布 标准分享网www.bzfxw.com免费下载前言引言目次DL,T790.6—2010,IEC61334—6:20001范围⋯⋯⋯⋯⋯⋯⋯⋯·⋯⋯⋯⋯⋯-⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯一2规范性引用文件⋯⋯⋯⋯⋯⋯⋯⋯⋯·⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯”3A.)①R的一般特征⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯4编码结构⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯”5编码规则⋯⋯⋯⋯⋯⋯⋯-⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯“5.1标识符域⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯-⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·5.2长度域⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯一⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯5.3内容域⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯“⋯⋯⋯⋯⋯⋯⋯⋯⋯“6编码过程⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯”6.1整型(INTEGER)值的编码⋯⋯⋯⋯-⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯6.2布尔(BOOLEAN)型值的编码⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·6.3枚举(ENUMERATED)型值的编码⋯⋯·⋯⋯⋯⋯⋯-⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯6.4位串(BITSTRING)型值的编码⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·6.5字节串(BYTESTRING)型值的编码⋯⋯⋯⋯⋯⋯-⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·6.6选择(CHOICE)型值的编码⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯-⋯⋯⋯⋯⋯“6.7标记类型(隐式标记、显式标记和ASN.1显式标记)⋯⋯-⋯⋯⋯⋯⋯⋯⋯⋯-⋯6.8可选(OPTIONAL)和默认(DEFAULT)数据项(COMPONET)⋯⋯⋯⋯⋯69序列(SEQUENCE)型值的编码⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯-⋯⋯⋯⋯⋯⋯⋯⋯-⋯⋯·6.10SEQUENCEOF型值的编码⋯⋯⋯⋯⋯⋯⋯⋯⋯·⋯⋯⋯·⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯“611可视串(VisibleString)型的编码⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯-⋯⋯⋯-·6.12通用时间(GeneralizedTime)型的编码⋯⋯⋯⋯⋯⋯⋯-⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯“613ASN.1空值(NULL)的编码·⋯⋯⋯⋯⋯⋯⋯⋯⋯-⋯⋯⋯⋯⋯⋯·⋯⋯⋯⋯⋯⋯附录A(资料性附录)可扩展性⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯附录B(资料性附录)DLMS中用的ASN.I类型和关键字⋯⋯⋯⋯⋯-一附录C(资料性附录)DLMSPDU的A.XDR编码示例⋯-⋯⋯⋯⋯⋯⋯⋯一II····-IV⋯⋯1···-··I····-·I···‘2····-·3······3‘‘‘’‘4···-··4·-··-‘4··’。。。4···‘‘6⋯⋯7⋯一7·····-8·’‘’‘‘9-··-·‘9⋯”11·--··II····12·-·-13···-14····14···-15⋯·16⋯17 www.bzfxw.comDL,T790.6—2010,IEC61334—6:2000前言随着我国电网技术的发展,对配电自动化的要求已日益迫切。与传输配电自动化信息的其他通信方式相比,配电线载波可以降低建设投资和运行费用,便于管理,是一种经济实用的通信方式。配电电压不高,但电网结构复杂,信号传输衰减大。针对配电网信号传输特点,自1995年起,国际电工委员会陆续发布了IEC61334系列的国际标准或技术报告。采用这些文件使之成为我国的标准文件对于我国这方面工作的开展有很好的指导意义,便于与国际接轨。系列标准DL790《采用配电线载波的配电自动化》采用国际系列标准IEC61334《采用配电线载波的配电自动化》,包括标准和标准化指导性技术文件,共有以下20部分。DL/Z790.11采用配电线载波的配电自动化第1部分:总则第1篇:配电自动化系统的体系结构DL/Z790.12采用配电线载波的配电自动化第1部分:总则第2篇:制定规范的导则DL/Z790.14采用配电线载波的配电自动化第1_4部分:总则中低压配电线载波传输参数DL/T790.31采用配电线载波的配电自动化第3部分:配电线载波信号传输要求第1篇:频带和输出电平DL/T790.321采用配电线载波的配电自动化电容型相相结合设备DL/T790322采用配电线载波的配电自动化和注入式屏蔽地结合设备DL/T790.41采用配电线载波的配电自动化型第3-2l部分:配电线载波信号传输要求中压绝缘第3—22部分:配电线载波信号传输要求中压相地第4部分:数据通信协议第1篇:通信系统参考模DL/T790.432采用配电线载波的配电自动化第4.32部分:数据通信协议数据链路层一逻辑链路控制DL呵790.433接的协议DL,r790.44l报文规范采用配电线载波的配电自动化第4.33部分:数据通信协议数据链路层面向连采用配电线载波的配电自动化第4—41部分:数据通信协议应用层协议一配电线DL/T790.442采用配电线载波的配电自动化第4.42部分:数据通信协议应用协议应用层DL/T790.4511采用配电线载波的配电自动化第4-511部分:数据通信协议系统管理CIASE协议DL/T790.4512采用配电线载波的配电自动化第4-512部分:数据通信协议系统管理采用DL/T790.51协议集的系统管理信息库DLfr790.461采用配电线载波的配电自动化第4.6l部分:数据通信协议网络层无连接协议DL/T790.51采用配电线载波的配电自动化第5部分:低层协议集第1篇:扩频型移频键控(S-FSK)协议DL/Z790.52采用配电线载波的配电自动化第5—2部分:低层协议集移频键控(FSK)协议DL/Z790.53采用配电线载波的配电自动化第5-3部分:低层协议集自适应宽带扩频(SS.AW)协议DL/Z790.54采用配电线载波的配电自动化第5-4部分:低层协议集多载波调制(MCM)协议DL/Z790.55采用配电线载波的配电自动化第5—5部分:低层协议集快速跳频扩频通信II www.bzfxw.com标准分享网www.bzfxw.com免费下载DL,T790.6—2010,IEC61334—6:2000(SS.FFH)协议DL/T790.6采用配电线载波的配电自动化第6部分:A.XDR编码规则DL790的本部分等同采用IEC61334—6:2000《采用配电线载波的配电自动化第6部分:A.XDR编码规则》(英文版)。本部分的附录A、附录B、附录C为资料性附录。本部分由中国电力企业联合会提出。本部分由全国电力系统管理及其信息交换标准化技术委员会归口。本部分起草单位:国网电力科学研究院、北京四方继保自动化股份有限公司、中国电力科学研究院。本部分主要起草人;于跃海、任雁铭、但富中、陈道元、沐连顺。本部分在执行过程中的意见或建议反馈至中国电力企业联合会标准化中心(北京市白广路二条1号,100761)。III www.bzfxw.comDL,T790.6—2010,皿C61334—6:2000引言本部分根据《(国家发展改革委办公厅关于印发2007年行业标准修订、制定计划的通知)》(发改办工业E2007]1415号)的安排制定。国际电信联盟(ITU.T)的X.208建议定义了一种形式语言——AsN.1(AbstractSyntaxNotationOne,抽象语法记法1),使应用层规范能定义需要交换的信息类型”。将一组编码规则应用于ASN.1定义的类型的数值可以形成这种信息的一种表示方法。这些编码规则的应用产生了这些数值的转化语法。虽然人们已经设想了多种编码规则,但是长期以来只有一种BER(BasicEncodingRule,基本编码规则)用作标准(见ITU.T的X.209)。这主要是因为BER能够满足绝大多数应用的需要。但在某些情况下,它显得冗余。如何采用其他编码规则以避免冗余,是最近开发的一些转化语法标准(DER、CER、PER)的研究目的。这些转化语法标准和BER不同,比BER更适合于某些场合。它们不是通用的,而是专用的。与通用编码规则不同,DL790的本部分定义了一种新的、专用的编码规则——A—xDR,它最适用于DLMS(DistrubionLineMessageSpecification,配电线报文规范,见DL/T790.441)环境。主要目的是将DLMS的PDU(ProtocolDataUnit,协议数据单元)的编码优化”,包括PDU的字节数量及编码解码的复杂性、所需的编码长度、处理性能和时间等。这个目的通过以下两个基本原则实现:a)A-XDR只为AsN.1类型应用于DLMS特殊环境的子集规定编码规则(因此,A.XDR是专用的);b)A—xDR规定的是面向字节的编码规则。IV1)ASN.I为已定义类型值的规范规定了记法。2)如只考虑PDU的大小,PER比A-XDR性能好。但是,PER的主要目标是压缩容量,这是通过大量使用位域而不是字节域对不同数值进行编码而获得的。为了进一步减少PDU的大小,它使用了更复杂的PER变量(不对齐的PER),也对类型及数值加以限制。因此,它的压缩是以增加计算负担为代价而获得的。此外,PER有对齐和不对齐两种情况,实现时都必须支持。PER的复杂性使它在DLMS环境下不是优选的。“轻型”的A.XDR编码规则更适合于DLMS环境,这种环境的资源量有时很少。 www.bzfxw.com标准分享网www.bzfxw.com免费下载DL,T7906—2010,IEC61334—6:2000采用配电线载波的配电自动化第6部分:A-XDR编码规则1范围DL790的本部分定义了A-XDR”编码规则,它可用来导出在DLMS核心标准中用ASN,1(见DL/T790.441--2004)定义的数值类型的转化语法规范。这些AXDR编码规则也可用于对转化语法解码以识别转化的数据值。A.XDR编码规则:a)在通信中使用;b)是DLMSPDU的优化2’编码方法。注:如A-XDR确是DLMSPDU的优化编码方法。它将成为基于DIMS的通信协议的默认编码规则。然而,不管是默认的还是可选择的编码规则,作为应用层环境的一部分,它都会在已有协议(如DL/T790.442)的应用层文件中定义。2规范性引用文件下列文件中的条款通过本部分的引用两成为本部分的条款。凡是注日期的引用文件,其随后所有的修改单(不包括勘误的内容)或修订版均不适用于本部分,然而,鼓励根据本部分达成协议的各方研究是否可使用这些文件的最新版本。凡是不注日期的引用文件,其最新版本适用于本部分。DL/T790.“l一2004采用配电线载波的配电自动化第4_4l部分:数据通信协议应用层协议一配电线报文规范(idtIEC61334441:1996·)。DL/T790.442--2004采用配电线载波的配屯自动化第4.42部分:数据通信协议应用协议应用层(idtIEC61334—4-42:1996)ISO/IEC8825—2:1997信息技术ASN.1编码规则包式编码规则(PER)规范111JX.208:1988抽象语法记法1(ASN.1)规范ITUX.209:1988抽象语法记法l(ASN.1)基本编码规则3A-XDR的一般特征A-XDR规定了~种编码规则,可用于对定义为单一ASN.1类型(最外层的类型)的抽象语法数值进行编码或解码。这种单一ASN.1类型可以是简单类型也可以是复合类型。复合类型的数据项可以是简单类型或复合类型。A-XDR编码规则利用了DLMSPDU发送端和接收端都用相同的抽象语法规范运行这一事实。用BER时,抽象语法的任何值的编码结构都是TLv(type.1ength.value,类型一长度一数值)形式。A-XDR只在必要时才对数据的类型和长度编码,如不知道编码值的类型,就无法确定编码的结构。注:这种编码方法使A.XDR编码规则不可扩展(见附录A)。为使A.XDR尽量简单,进行抽象语法编码时,应用以下限制条件:1)A-XDR是一种改进的XDR。这种编码规则由Unix环境下事实上的标准XDR(eXternalDataRepresentation,外部数据表示,RFCl014)发展而来。2)见引言的脚注2)。 www.bzfxw.comDL,T790.6—2010,IEC61334—6:2000a)不支持DLMS以外的ASN.1类型数据的编码”;b)ASN.1选择(CHOICE)类型数据只用于有显式标记4’的数据项。A.XDR是面向字节的编码规则。这意味着每一部分乃至全部的编码的字节数是整数。4编码结构BER编码(见rru.T的X.209)的基本结构:类型、长度和内容,这三部分在BER中可表示为标识符I(Identifier)、长度L(Length)和内容C(Contents),如图1所示。标识符部分用于标识类型,长度部分用于查找内容区”的末端,内容部分用于传送这种类型的可能值。图1BER编码的基本结构内容域可简化为一系列字节6’(原始编码)或一系列嵌套编码(构造编码),如图2所示。C1图2构造BER的编码结构嵌套的深度按需要决定,并以原始编码或空内容的构造编码结束。A-XDR的编码结构与BER基本相同,但为了利用DLMSPDU发送端和接收端按同样的抽象语法规范运行这一事实,当标识符和长度域传送冗余的信息时,A-XDR就不对它们编码(不对其中一个域或两个域编码不会导致编码不可解释或含糊不清)。因此,A.XDR编码的结构如图3所示。Cl图3构造A-XDR编码的结构A-XDR编码规则规定:——用于内容域的编码规则;——如有长度域,对长度域编码;——如有标识域,对标识域编码。以下面ASN.1复合类型为例:Value::=SEQUENCEfAIntegerl6,BUnsignedl6}23)附录B枚举了DLMS规范中使用的ASN.1类型和关键字。4)A-XDR中的术语“显式标记(explicittagging)”和“隐式标记(implicit协gg]ng)”在ASN.1和BER中的含义有些不同。在67里将解释这些名词,并介绍一个新术语‘"ASN.1显式标记”。5)实际上,在BER中,长度区并不总表示内容区的长度。BER规定有2种形式的长度域:确定型和不确定型。用确定型时,长度域表示内容域的字节数,而用不确定型则表示内容域以内容结束字节结束。6)零个或多个。 www.bzfxw.com标准分享网www.bzfxw.com免费下载DL/T790.6—2010,IEC61334—6:2000Integerl6::=INTEGER(-32768~32767)Unsignedl6::2INTEGERr0~65535)假设对A和B编码,其值分别为0x1234和0x567871o上述序列的BER编码如下序列标识序列长度A的标识A的长度A的数值B的标识B的长度B的数值同一序列的A.XDR编码如下5编码规则对任何ASN.1类型的数据进行A.XDR编码,其字节数都是整数,每个字节有8位。这些字节从最外层的ASN.1类型的标识符域编码的第一个字节开始,可认为这个字节为最高位。DL/T790的本部分做以下规定:——不系统地对A-XDR编码的字节编号,但有时,为便于理解可加说明(例如,值的第1字节等)。——每个字节的位的编号为1~8,其中第8位是最高位。5,1标识符域标识符域的作用是确定编码值的类型。假如信息的发送端和接收端都以相同抽象句法规范运行,只在以下情况下标识符域才传输信息:a)应从不同CHOICE类型中选择一种数据类型;b)应指出序列(SEQUENCE)中有可选(OPTIONAL)项存在;c)应指出序列(SEQUENCE)中有默认(DEFAULT)项存在。A-XDR只在上述情况时有标识符域。此外,当ASN.1规范(ASN.1的显式标记,见6.7)要求对标识符域进行编码时,A-XDR对标识符编码。在a)情况下,A—XDR要求选择(CHOICE)的所有备选在ASN.1中定义为显式标记类型。这时,编码标识形成了标识符域。在b)和c)情况下,可选(OPTIONAL)和默认(DEFAULT)项是否存在可由布尔(BOOLEAN)类型的存在标记表示。这些可选项值的标识符域就是存在标记值的A—XDR编码(见6.9)。另一方面,当ASN.1定义中包含ASN.1的显式标记(见6.7)时,A-XDR就必须对标识符域编码。这些类型的A—xDR编码定义和它们的BER编码相同。这样做的目的是使对长度编码,便于省略~些结构。7)0x⋯表示后面的数是十六进制的。8)A—XOR只在特殊情况下需要编码标识(例如:当本例的SEQUENCE是CHOICE类型的选择中的一个时)。3 www.bzfxw.comDL,T790.6—2010,mC61334—6:2000这些类型的标识符域是ASN.1标记的编码值,所占字节数是整数,至少为1,如rru_T的X.209规定。5.2长度域在A-XDR中长度域(如存在)位于内容域的前面。它明确地表示内容区的长度,所占字节数为整数。如信息的发送端和接收端都以相同的抽象句法规范运行,只在对可变长度的ASN.1类型编码时长度域才传输信息。可能的情况如下:a)长度可变的整数(INTEGER);b)长度可变的位串(BITsTRING);c)长度可变的字节串(BYTESTIuNG):d)长度可变的类型序列(SEQUENCEOF)。只在以上情况以及ASN.1规范(ASN.1显式标记,见6.7)要求时,A-XDR才对长度域编码。在a)、b)、c)和d)四种情况下,长度域编码为一个可变长度的整数。其他情况,除只有确定形式可以[见脚注7]使用的限制外,A—XDR采用与BER定义相同的方法(见Ⅱu.T的X.209)。不允许A-XDR的长度域用不确定型。5.3内容域内容域是编码的本体。它传输实际值,由零或多个字节组成。以下条款规定了数值编码的方法。6编码过程6.1整型(INTEGER)值的编码A-XDR为AsN.1整型提供了两种编码方式。具体用啊删r√J』℃取决于整型的ASN.1定义的值是否受约束。如一个整型的数值范围确定时(例如数值范围为一128~127),按固定长度的整数编码;如数值范围未确定,按可变长度的整数编码。6.1.1固定长度的整数值编码A-XDR为固定长度的整数提供了两种不同的编码。对于值不是负数的整数,可以将它表示并编码为无符号二进制数;对于值可以为负数的整数,可以将它表示并编码为2的补码表示的二进制数。在这两种情况下,只有整数的值被编码,并形成编码的内容域。这样做的目的是使编码的长度最小。6.1.1.1固定长度的无符号整型值编码当一个整型的数值范围为非负数时,它的编码是一个无符号的二进制数。编码的字节数由规定的取值范围决定,与表示规定范围内任一取值必需的最少字节数相等。固定长度的无符号整数的范围总是边界对齐的。例:INTEGER(0~255)的编码为1个字节:INTEGER(0~256)的编码为2个字节;INTEGER(237~256)的编码为2个字节。一个固定长度的无符号整数以无符号二进制符号表示。其编码是一个等于该整数值的无符号二进制数,由第l字节的第8至第1位,接着第2字节的第8至第l位,以下依次为其他各字节,直到编码的最后字节组成。例:一个值为61478的整型的A-XDR编码如下:4第l字节第2字节8765432l8765432l www.bzfxw.com标准分享网www.bzfxw.com免费下载DL,T790.6—2010,IEC61334—6:20006.1.1,2固定长度的有符号整数值编码一个整型的数值范围内包含负数时,可按二进制的补码进行编码。编码的字节数由其取值范围决定,与表示规定范围内任一取值必需的最少字节数相等。一个固定长度的整数的范围总是边界对齐的。例:INTEGER(一32768~32767)的编码为2个字节;INTEGER(-14300~8700)的编码为2个字节;INTEGER(-32768~32768)的编码为3个字节。编码是一个等于该整数值的以2的补码表示的二进制数,由第1字节的第8至第1位,接着第2字节的第8至第1位,以下依次为其他各字节,直到编码的最后字节组成。例:一个值为_45783的整型(-50000~1)的A-XDR编码如下:6.1.2可变长度的整数值编码如一个整型的取值范围未规定,其编码是可变长度的整型编码。可变长度整数的编码有两种形式,取决于被编码的值。如一个未受约束的INTEGER值位于0~i27(Q≤值<128)之间,值的编码只有一个字节。该字节的第8位显然为零。例:数值为123(=0x7B)的INTEGER值的A-XDR编码如下:如一个未约束的整型值的取值范围超出上述0《值-<128,其编码有两个域:先是固定长度域,即长度域Length,它表示后面的可变长度域的长度(字节数),其次是可变长度域,即内容域,它传输编码值,有整数个字节。长度区在一个字节里编码”,第8位设置为1,表示长度区是存在的。其他7位编码为~个固定长度的无符号整数,其值表示内容区的字节数。编码的字节数取决于编码的值,等于表示该值的必需的最少字节耄畴编码是一个等于该整数值的以2的补码表示的二进制数,由第、,1字节的第8至第1位,接着第2字节的第8至第1位,以下依次为其他各字节,直到编码的最后字节组成,与固定长度的有符号整数值的编码相同(见6.1.1.2)。可变长度的整数值的编码结构如图4所示。值的第l字节值的第序节8765432I8765432I长度区存在图4可变长度的整数值的编码结构9)长度域的值是0~127之间的任意值,最多可表示1016位的整型编码。值的第一字节8765432I www.bzfxw.comDL,T790.6—2010,IEC61334—6:2000可变长度的整数值的A.XDR编码示例a)0的编码结构如下:b)一1的编码结构如下:长度区存在c)128的编码结构如下匠三圈长度区不存在值的第1字节值的第2字节87654321876543218765432长度区存在d)一128的编码结构如下值的第1字节值的第2字节87654321876543218765432长度区存在6.2布尔(BOOLEAN)型值的编码布尔型只能取两种值:TURE或FALSE。布尔值的A-XDR编码只有内容域,由一个字节组成。如编码值为FALSE,这个字节为零(所有位都是零);如值为TRUE,这个字节可以是任意非零值,由发送者选择。例:FALSE布尔值的A.XDR的编码如下:6TRUE布尔值的A.XDR的有效编码如下一 www.bzfxw.com标准分享网www.bzfxw.com免费下载DL,T790.6—2010,mC61334—6:20006.3枚举(ENuMERATED)型值的编码枚举型A.XDR编码的取值范围为0~255,一个枚举型的A-XDR编码及取值范围与0~255的整型相同,可作为一个固定长度、受约束的无符号型整数INTEGER(0~255)编码,由一个字节组成。6.4位串(BITSTRING)型值的编码根据位串在ASN.1定义中是否规定了其大小,A.XDR提供了两种编码方法:位串的大小规定时,为固定长度编码;位串的大小未规定时,为可变长度编码。在这两种情况中,位串型编码的字节的边界都是对齐的,通过增加0值的追踪位实现。6.4.1规定大小的位串值的固定长度编码如位串的大小在ASN.1中已经规定,其A-XDR编码只有内容域。内容域的字节数由规定的大小确定,其值等于传输位串中位的个数必需的最少字节数。例:BITSTRING(SIZE(3))的编码为1个字节:BITSTRING(SIZE(8))的编码为1个字节;BITS删G(SIZE(14))的编码为2个字节。位串中的位从第1位开始到追踪位结束。先排第1个字节的第8至第l位,接着第2个字节的第8至第1位,以下依次为各字节的第8至第1位,直到需要的最后一个字节,都由第8位开始。除最后一个字节外,其他每个编码的字节都包括位串的8位。最后一个字节包括位串余下的位以及值为零的追踪位。例:值为0110011101010的BITSTRING(SIZE(13))的A.XDR编码如下:第1字节第2字节8765432187654326.4.2未规定大小的位串值的可变长度编码如一个位串在ASN.1定义中没有规定其大小,其A-XDR编码有两个域:长度域和内容域。长度域表示的值等于位串编码值的位的个数。长度域本身的编码规则和可变长度的整数的编码相似。但因负值对于长度域没有意义,因此整数的编码为二进制编码,而不是2的补码表示的二进制数。(与可变长度的无符号整数的编码相似)内容域传输位串的编码值有整数个字节。该域的编码规则与6.4.1相同。例:一个值为0110011101010的BITSTRING的A-XDR编码如下:第1字节第2字节第3字节8765432i8765432lS765432i长度域(=13)位串的位只有长度区的值以1个字节编码例:一个由131位组成的BITSTRING值的A-XDR编码如下追踪位7 DL,T790.6—2010,lEC61334—6:2000第l字节第2字节第3字节第泞节第n字节8765432l8765432l8765432l8765432l8765432长度域信息以多个字节编码6.5字节串(BYTESTRING)型值的编码根据在ASN.1定义中是否规定了字节串的大小,A-XDR提供了两种编码方法。ASN.1定义中规定了字节串的大小时,为固定长度编码;未规定字节串的大小时,为可变长度编码。6.5.1规定大小的字节串的固定长度编码如字节串的大小在ASN.1定义中已经规定,则该字节串的A-XDP,.编码只有内容域。内容域中的字节数等于规定的大小。字节串的字节从第一个起至最后一个,只需排在内容域的各字节中。例:一个值为“ABCD”的BVrESTRING(SIZE(4))的A-XDR编码如下:6.5.2未规定大小的字节串的可变长度编码如在ASN.1定义中没有规定一个字节串的大小,其A-XDR编码包括两个域:长度域和内容域。长度域表示的值等于内容域的字节数。长度域本身的编码规则与可变长度的字节串的编码相同(见6.4.2)。内容域传输字节串的编码值。其编码规则和6.5.1中规定的字节串相同。例:一个值为“ABC”的BYTESTRING的编码如下:第1字节第2字节第3字节第4字节876543218765432l8765432187654321只有长度域的值以1个字节编码例:一个BYTESTRING的A-XDR编码由347个字节组成”’:10)编码第J"t字节中的H=长度域字节数+内容域字节数=3+347;350。 标准分享网www.bzfxw.com免费下载DL,T790.6—2010/mC61334—6:2000第1字节第2字节第3字节第4字节第l字节第n字节876543218765432187654321876543218⋯18765432长度域信息以多个字节编码6.6选择(CHOICE)型值的编码A-XDR的一个主要概念是信息的发送端和接收端按相同的抽象句法运行时,BER编码的标识符域在大多情况下传输的是冗余的信息。如不对标识符编码不会导致编码含糊不清。因此,A.XDR不对ASN.1型的标识区进行系统的编码。选择ASN.1类型以各数据项类型的集合定义,它的可选择类型必须十分明确。每一个选择类型的值是它的一个可选项⋯,编码规则应保证任一可选项的编码值不会被含糊地标识。因此,选择类型的值的编码应有标识符域。为了表达清楚,一个选择类型的ASN.1的所有数据项的类型都应是显式标记12)。没有显式标记数据项的选择类型不能用A-xDR编码。一个选择类型值的"A-XDR编码应是选择的可选类型的^o∞R编码,由标识符(标记)的一个字节的编码开始,像固定长度的无符号整数一样。以下面的AsN.1选择类型的结构为例:Dummy_PDu::=CHOICE{a【o】INTEGER,b【l】BYTESTRING(SIZE(4))}当“a”被选择且a=3715时,其A-XDR编码如下:第l字节第2字节第3字节第4字节876543218765432l8765432187654321标识符域长度域e《)内容域长度区存在编码标志可变长度的INTe3"PP.躺(3715t0xE83)当“b”被选择且b=“ABCD”时,其A.XDR的编码如下:第l字节第2字节第3字节第4字节第5字节8765432187654321876543218765432187654321标识域内容域编码标志固定长度的BYTESTRING编码6.7标记类型(隐式标记、显式标记和ASN.1显式标记)回顾一下6.6中的DummyPDU(虚拟协议数据单元)11)ASN.1选择类型与C语言的联合(UNION)类型类似。12)术语“标记”在6.7中定义。9 DL,T7906—2010,lEC61334—6:2000Dummy_PDU::=CHOICE{a[0】0INTEGER,b【1】BYTESTRING(SIZE(4))符号Eo]整型和[1]字节串是ASN.1的标记的符号(由在原来类型的符号前加带方括号的数字得来)。标记用以表示类型之间的区别。事实上,每种ASN.1类型(甚至像整型、位串类型等这些内部ASN.1型)都有其标记13)。标记分为四类,任何一类中的每种标记以正整数编号。这四类是:通用类、上下文相关类、应用范围类和专用类。内部ASN.1型在通用类中有标记,称为基本型。通用类以外的所有类型的标记构成各种标记型。每种标记不是隐式的就是显式的,在标记型中可通过在“】”和基本型之间加关键字“IMPLICIT"’或“EXPLICIT”区别。如什么关键字也没有,则为缺省标记。应注意,关键字"IMPLICIT”和“EXPLICIT”形容的是标记而不是标记型,并只在编码中起作用。在BER中,标记类型及其编号在标识符域传递。当其标记为隐式时,其值的BER编码有两个标记:一个是新的,在方括号内规定:一个是原来的,是基本型的。编码常由嵌套编码,即由基本型的编码构成。当标记为IMPLICIT时,标记值的BER编码只有新的标记,它代替原来的标记(包括类和编号)。例:——INTEGER型的值一19374(0xB452)的BER编码如下:02——标识符域————————_JINTEGER的标志类=通用编码形式=原始整数的标志号_2口三宰襄嚣艄z——数值相同,但标J醐[8]INTERGER(显式标记,这是BER中的默认标记)的BER编码如下A80402B452INTEGER的内容域INTEGER的长度域INTEGER的标识符域——数值相同,但标记为[8]IMPLICITINTEGER(IMPLICIT标记)的BER编码如下一一』TI⋯标志类:上下文相关L——长度域1013)除选择类型的每种可选项有标记外,其他任何类型都有各种可能的标记。 标准分享网www.bzfxw.com免费下载DL,T790.6—2010,IEC61334—6:2000在A.XDR中,显式标记和隐式标记的差别很小。如A,XDR完全不对非标记型的标识符域编码,新的标记替代了旧的就没有意义。因此,隐式标记在BERI㈨0意义并不适用于A.XDR。此外,有两种显式标记适用于A-XDR,即A.XDR显式标记和ASN.1显式标记。在A.XDR中,为区分ASN.1的选择类型和序列(SEQUENCE)类型,当标记号明确地存在于ASN.1规范中时,称为显式标记。这些被标记的数据项的编码规则:选择类型的数据项的标记在A—XDR中编码为可变长度的整数,表示标记的值;序列类型的数据项的标记完全不编码。如不论“IMPLICIT”关键字是否存在于ASN.1规范中,这些显式标记型的A-XDR编码都是相同的,因此可以认为在A.XDR中可以忽略“IMPLICIT”关键字。当标记的类型和编号在ASN.I规范中已经明确规定时,例如[APPLIcATIoN30],其类型符号是指A.XDR中的ASN.1韵显式标记。这种标记类型只适用于序列类型的数据项。除长度域不允许用不确定类型外,ASN.1显示标记类型的值的A.XDR编码和它的BER编码相同。这种标记的目的只是使长度必须编码,从而便于在结构上有所省略。6.8可选(OPTIoNAL)和默认(DEFAFiT)数据项(COMPONET)任一种ASN.1复合类型都含有带ASN.1关键字“OPTIoNAL”和“DEFAULT”的数据项。在ASN.1规范中,这些关键字可以放在数据项类型的后面,用以十分直观地表达它的意思。带有可选“OPTIONAL”标记的数据项可能被省略,它的值在编码中不一定存在(省略这些数据项的实际条件和意义应由设计者规定)。一个数据项是可选的原因之一是假设它为~个特定值时(一般来说,该值经常出现)可以将它省略。用这种方法可以避免显式地传送这个值。ASN.1的关键字“DEFAULT”用来表示数据项的默认值。一般来说,一个数据项是可选值还是默认值很不~样(在ASN.1中它们相互排斥)。可选数据项可以完全省去,而DEFAULT数据项实际上总是存在的,因为即使将它省去它也还代表一个特定值。可选或默认数据项的A.XDR编码由使用标记(usageflag)的附加元素(这是ASN1语法的补充,ASN.1语法没有规定此元素)开始。这个使用标记为布尔型,其值表示可选或默认数据项的值是否在编码中存在,如下所示:———OPTloNAL数据项:usageflag2TRUEusageflag=FALSE——DEFAuLT数据项:该数据项存在于编码中该数据项不存在于编码中usageflag=TRUE该数据项存在于编码中(其值和DEFAULT值不同)usageflag=FALSE该数据项不存在于编码中(传送的是DEFAULT值)使用标记表明所述的数据项存在于编码中时,使用标记位于可选或默认数据项值的A.XDR编码之后。如使用标记表明该数据项不存在于编码中,该数据项以使用标记的编码结束A—XDR编码,后面不再有数据项的值的编码。在6.9和附录c中给出了可选和默认数据项的编码示例。6.9序列(SEQUENCE)型值的编码与选择类型类似,ASN.1序列类型也是根据数据项类型的集合定义的,他们都非常明确。但是与选择类型不同的是,序列类型中的每一数值都有每种数据项类型的一个值14)0数据项值在编码中出现顺序是固定的,与定义中各数据项类型出现的次序相同。序列值的A.XDR编码应是从序列型的ASN.1定义表所列每一类型中的数据值的A-XDR编码,按它们在定义中的顺序出现,除非该类型与关键字可选“OPTIONAL”或默认“DEFAULT”有关。序列值的有显式标记数据项的标记是冗余的信息,因此不对该标记编码,即有显式标记的数据项值14)数据项类型标为OPTIONAL或DEFAULT的除外(见67和6.8)。 DL/T7∞.6—2010,mC61334—6:2000的A-XDR编码是该数据项值的A.XDR编码。如可选或默认数据值的编码存在,它在编码(按6.8的规定)中出现的位置与在ASN.1定义中出现的相对应。以下面的ASN.1定义为例:Dummy_PDU::=SEQUENCE{aINTEGER(0...127),bOCTETSTRING(SIZE(4))OPTIONAL,c【l】BOOLEANDEFAULTTRUE,}——当a=37,b=“ABCD”,c=FALSE时,该SEQUENCE型值的A-XDR编码如下:第1字节第2字节第3第4第5第6第7字节第8字节8765432l8765432l8765432l8765432lIt1Ia的编码b的使用标记为TRUE固定长度BYTEc的使用标记为TRUBc的犏码07=ox25】表示0P删AL存在STRING的编码表示DEFAULT;薛在(FALSE)SEQUENCE第一元素的值SEQUENCE第二元素的值SEQUENCE第三元素韵值——当a=37,b不存在,c=FALSE时,该SEQUENCE型值的A-XDR编码如下:第1字节第2字节第3字节第4字节8765432l8765432l876543218765432la的编码b的使用标记为FALSEc的使用标记为TRUEc的编码(37--07,25)表示OPTIONAL不存在表示DEFAULT存在(FALSE)——当a=37,b=“ABCD”,C=TRUE(传送DEFAULT值)时,该SEQUENCE型值的A-XDR编码如下:第l字节第2字节第3第4第5第6第7孚节8765432I8765432i8765432t1................,.,,一....................j................。。....................................I............一.........。..........【.....................,..。...................一a的编码b的使用标记为TRUE固定长度BYTEc的使用标记为FALSE(37=0x25)表示O阿0NAL存在STRING的编码’表示DEFAULT不存在6.10SEQUENCEOF型值的编码ASN.]的SEQUENCEOF型按单个数据项类型定义,它的值是数据项类型值的有序集合。根据SEQUENCEOF型在ASN.1定义中是否规定了其大小,A-XDR可提供两种编码方式。如在ASN.1定义中已规定SEQUENCEOF的大小,用固定长度编码;如没有规定大小mB用可变长度编码。6.10.1规定大小的SEQUENCEOF型值的固定长度编码如在ASN.1中己规定SEQUENCEOF的大小,其A.XDR编码只有内容区。内容区的字节由ASN.1定义所列类型的Ⅳ个数据值的A-XDR编码组成,这里的Ⅳ即为规定的大小。这些数据值的编码顺序和被编码的SEQUENCEOF值的数据值相同。以下面的ASN.I类型定义为例:Dummy_List::=SEQUENCE(SIZE(2))OFBITSTRINGBYTESTRING数据项的编码如下:12 标准分享网www.bzfxw.com免费下载DL,T790.6—2010,IEC61334—6:2000第lBYTESTRING:00101第2BYTES11uNG:l10l00101000该SEQUENCEOF型的值的A.xDR编码如下:第1字节第2字节第3字节第4字节第5字节8765432187654321876543218765432187654321第lBITSTR/NG第lBIT追踪位l第2BITSTRING第2BITSTRING的位追踪位的长度(=5)sXRrNG的位的长度P12)只有长度值以1个字节编码第1BITs删G值的A-xDR编码第2BITs1砒No值的A.xDR编码6.10.2未规定大小的SEQUENCEOF型值的可变长度编码ASN.1定义中未规定SEQUENCEOF的大小时,其A.XDR编码有两个区:长度域和内容域。长度区表示的值为SEQUENCEOF型的编码值的数据项的个数。长度区的编码方式和可变长度的BITSTRING的长度区相同(见6.4.2)。内容区应由ASN.1的定义所列类型的Ⅳ个数据值的A.XDR编码组成。这里的Ⅳ为长度区表示的值。这些数据值的编码顺序应与被编码的SEQUECEoF的值的顺序相同。以下面的ASN,1类型定义为例:Durmny_List::=SEQUENCEOFINTEGER(0⋯4000)要编码的两个数据项为:INTEGERl=1956INTEGER2=3624该SEQUENCEOF型的上述值的A-XDR编码如下:第J字节第2字节第3字节第4字节第5字节876543218765432l876543218765432187654321长度(_2组件)第l组拌的编码涸定长度,第2组件的编码侗定长度,无符号整数,1956=07A4)无符号整数。3624=0x0E28)6.10.3特殊选择序列(SEQUENCEOFCHoIcE)型的编码选择序列(SEQUENCEOFCHOICE)型是特殊情况。虽然SEQUENCEOF类型是按单个数据项类型定义的,但选择序列结构的元素的类型不同,这就是选择类型的各种可选项。除SEQUENCEOF型的每个数据项的编码以所选的选择数据项的标记的编码开始外,选择序列的编码方法与按6.10.1和6.10.2所述方法相同。附录C的[例C.5]为选择序列类型编码示例。6.11可视串(VisibleString)型的编码可视串(VisibleString)ASN.1是一种限定的字符串类型。限定的字符串是一种特殊的字节串,可以包含取自限定的字符集中的字符。虽然ASN.1规定了8种类型,但只有可视串类型在DLMS规范中使用(见DL,T790.441--2004)。因此A-Yd)R只支持这种ASN.I类型15)。ASN.1为每种特殊字符串类型都定义了通用类的标记。像其他ASN.I的内部类型的标记一样,在A-XDR中这些标记不编码。因此,可视串的编码方法与字节串相同。如DL/T790.441--2004中只规定15)虽然其他ASN1限定的字符串类型也可能用这种编码方法。 DL,T790.6—2010/IEC61334—6:2000可变长度的可视串,则只可以使用可变长度的字节串(见6.5.2)。以可视串的“IEC”值的A-XDR编码为例:第1字节第2字节第3字节第4字节8765432I8765432l8765432I8765432长度(_3)内容域=VisibleSWlng的字节只有长度值以1个字节编码612通用时间(GeneralizedTime)型的编码通用时间(G-eneraliz(u:lTime)以可视串(VisibleString)为基础,是一种ASN.1的有用型(UsefulType),定义如下:GeneralizedTime::=[UNIVERSAL241IMPLICITVisibleString如A-XDR不对通用(uNⅣERsAL)类ASN.1的标记编码,则与可视串编码相似,通用时间型的A-XDR编码和字节串相同。也和可视串的原因一样,可变长度的字节串的编码适用于通用时间型的编码(见6.5.2)。6.13ASN.I空值(NULL)的编码ASN.I的空值(NULL)是一种很特殊的类型:只有一个值。因此,容纳信息的能力很有限。人们可能认为空值没有用,然而,在上下文内容很少的情况下,例如,必须送出一个数据类型,但又不需要传送任何信息时,它还是很有用的。可以认为空值丰富了一些没有值的类型的域。例如,要发送一个BOOLEAN值,这个值有时已知,有时又不存在,就可用以下类型:OutputValue::=CHOICEfKnown[0]BOOLEANUnknown[1]NULL}为了能用A—XDR编码,空值应是标记型。用6.7规定的标记值A-XDR编码的方法进行空值的A-XDR编码。14 标准分享网www.bzfxw.com免费下载附录A(资料性附录)可扩展性DL,T790.6—2010,IEC61334—6:2000第3章曾提到A.XDR编码规则与BER不同,是不可扩展的。这是什么含义呢?下面以SEQUENCES为例:dummy_sequence1SEQUENCEfaINTEGER,bINTEGER}dummysequence_2SEQUENCE{aINTEGER,cBOOLEANOPTIONAL,bINTEGER}SEQUENCE值的BER编码在OPTIONAL数据项“c”不存在相同。这意味着,如采用BER,在应用协议将来的版本中,可以将更多的可选数据项加到序列中。如这些数据项被省略,例如,用一个按老规范开发的过程进行通信时,这个过程表现相同。BER编码规则的这一性质称为可扩展性。从这种意义上说,A-XDR编码是不可扩展的。实际上,由以上讨论可知,即使“c”不存在,A-XDR编码还与可选(OPTIONAL)数据项有关。另一方面,A-XDR也不是封闭的。它不但可以为现行DLMS规范中的ASN.1类型编码,如必要,还可以为其他ASN.1类型编码,例如实数(REAL)、集合(SETOF)等。注:IECTC57的第9工作组负责将A-XDR不断更新。 DL,T790.6—2010,mC61334—6:200016附录B(资料性附录)DLMS中用的ASN.1类型和关键宇以下内部ASN.1类型用于DLMS规范(见DLJT790.441--2004)INTEGER(整数)BOOLEAN(布尔)ENUMERATED(枚举)BYTESTRING(字节串)BITSTRING(位串)VisibleStzing(可视串)CHOICE(选择)SEQUENCE(序列)SEQUENCEOFNULL(空序列)DL/T790.441--2004也用一种ASN.1UsefulType(有用型),即GeneralizedTime(通用时问)在DLMS中定义了以下一些有用类型:Integer8(8位整数)Imegerl6(16位整数)Integer32(32位整数>Unsigned8(8位无符号)UnsignⅨ116(16位无符号)Unsigned32(32位无符号)在DLMS规范中还用了以下一些AsN.1关键字:IMPLICIT(显式)OPTIONAL(可选)DEFADLT(默认) 标准分享网www.bzfxw.com免费下载DL,T790.6—2010/IEC61334—6:2000附录C(资料性附录)DLMSPDU的A.XDR编码示例DLMSPDU的最外层的ASN.1类型是选择(cHOIcE)类型。这里只提出一些未加密的,按以下定义的协议数据单元作为示例:DLMSpdu::=CHOICEfconfnmScrviceRcquest【0】ConfirmedScrviceRcquest,initiateRequest[11IMPLICITInifiateRequest,getStatusRequestf2】IMPLICITGetStatusRequest,getNameListRequest【3】IMPLICITGetNameListRequest,getVariableAttributeRequest【41IMPLICITGetVariableARributeRequestreadRequest【5】IMPLICITReadRequestwriteRequest【6】IMPLICITWriteRequestconfirmedServiceResponse【7】ConfirmedServiceResponse,initiateResponsef8】IMPLICITInitiateResponsegetStatusResponse【9】IMPLICITGetStatusResponse,getNameListResponse[10/IMPLICITOetNameListResponsegetVariableAttributeResponse【11】GetVariableAm"ibuteResponsereadResponse[12】IMPLICITReadRcsponsewriteResponse【13]IMPLICITWriteResponseconfirmedServiceRcquest[141ConfirmedServicegequestunconfirmedServiceRequest【15】UneonfirmedServiceRequestabortRequest【16】IMPLICITAbortRequestunsolicitedWriteRequest[17]IMPLICITUnsolicitedWriteRequestunsolicitedServieeRequest[18】UnsolieitedServiceRequestinformationRepoftRequest【19】IMPLICITInformationRelxn"tRequest相应于加密的协议数据单元的其他选择:ded-informationReportRequest【88】IMPLICITBYTESTRING)[例c.11lnitiateRequestDLMSPDU的A-XDR编码。InitiateRequest型的定义如下:InitiateRequest::=SEQUENCE{dedicated-keyBYTESTRINGOPTIONAL,respond-allowedBOOLEANDEFAULTTRUE,pmposed-q∞lity-of-service[o】IMPLICIT/nteger8OPTIONAL,proposed-dims-version-numberUnsigned8,proposed-conformanceComformanee,proposed-max-pdu-sizeUnsignedl6)其中,Conformance可能如下:17 DL,T790.6—2010/IEC61334—6:2000Conformance::=[APPLICATION30]IMPLICITBITSTRING(SIZE(16)){get-data-set-attribute(o),get—fi-attribute(1),get—variable—attribute(2),read(3),write(4),tmconfa"medWrite(5),change-scope(6),stop-resBme(_7),make—usable(8),data-set-load(9),selection-in—get—naiTle-listdetailed—access.10w-bitdetailed-access—high—bitmuldple—variable—listdata-set-upload}本例优先采用以下值:dedicated-keyresponse—allowedproposed-quality-of-serviceproposed-dims-version-numberproposed-max—pdu-sizeproposed-conformance(11),(12),(13),(14),(15)=不存在=TRUE(默认值)=存在,值为4=1=134(=0x86)一0xlC00,如下所示B0B1B2B3B4B5B6B7B8B9B10B11B12B13B14B150O10=0x1C0016’具有上述值的initiateRequestPDU的A.XDR编码如下:叭DLMSPDUCHOICE(1nitiateRequest)的(显式)标记00dedicated-key数据项的使用标记(FALSE,不存在)00response.allowed数据项的使用标记(FALSE,传送DEFAULT值)叭proposed.quallty.of-service数据项的使用标记(TRUE,存在)04proposed-quality.of-service数据项的编码(4)01proposed—dims—version-number数据项的编码(1)5E【APPLICATION30]标记(ASN.1显式标记)的编码T03内容区字节长度(3)Comformance数据项的BER编码00编码最后一个字节中未用的位的编号(0)-oT3c上Proposed—conformancd数据项的编码J_00T86J-proposed-max·pdu-size数据项值的编码(0x86)1816)0xlC00值表示除支持必备服务外建议也支持以下服务:读(第3位)、写(第4位)、非确认写(第5位)。 标准分享网www.bzfxw.com免费下载DL,T790.6—2010,IEC61334—6:2000[例C.21InitiateResponseDLMSPDU的A-XDR编码。lnitiateResponse型定义如下:InitiateResponse=:=SEQUENCE{negotiated·quality—of-service[0】IMPLICITInteger8OPTIONAL,negotiated—dims。version-numberUnsigned8,negotiated-conformanceConformance,negotiated-max—pdu-sizeUnsignedl6,vaa-nanleObjectName}Conformance的定义与[例c.1]相同,ObjectName定义如下:ObjectNume::=Integerl6此外,vaa-name是有效的,这意味着vaa-nalne为11l(即vaa-nanleIntegerl6的最低三位为111)。Negotiated-quality-of-service、negotiated-dims-version-number、negotiated-conformance和negotiated-max-pdu.size的值与[例C.1]相同;vaa-ll∞le的值选择为0x0037。InitiateRequestPDU为上述值时,A.XDR编码如下:08DLMSPDUCHOICE(InitisteResponse)的(显式)标记叭negotiated-quality-of-service数据项的使用标记(TRUE。存在)04negotiated-quality-of-service数据项的编码(4)Olnegotiated-quality-of-service的编码(1)5E{APPLICATION30】标记(ASN.1显式标记)的编码T03内容区字节长度(3)l一致性数据项的BER编码00最后一个字节中未使用位的号(o)-cT00_Lnegotiated-conformance数据项的编码上00T86上negotiated-max-lxlu-size数据项的编码(0x86)00T37上vaa-nalne值的编码(0x0037)[例c.3]确认的服务出错PDU的A.XDR编码。本例说明当InitiateRequest服务不被DLMS服务器接受时的DLMSPDU的A-XDR编码。服务不被接受的原因是建议的内容不适用于所用服务器的服务表。ConfirmedServiceError(确认的服务出错)定义如下:ConfmnedServiceError::=CHOICE{~标记0保留initiateErrorgetStetusgetNumeList[1】ServiceErrorf2】ServiceError【3】ServiceErrortermiuateUploed[19】ServiceError}其中ServiceError意义如下:19 DL,T7∞.6—2010,IEC61334—6:2000ServiceEtror::=CHOICE{Initiate【6】EvIPLICITENUMERATED一初始化服务出错{other(0),dim-version-too-low(1),一建议的DLMS版本太低incompatible.conformance(2),一建议的服务不够用pdu-size-too-short(3),--建议的PDU尺寸太大refused-by-the.VDE-Handler(4)~不能或不允许创建v∞)因此,在上述情况下,ConfirmedServiceErrorPDU的^-)∞R编码如下:0EDLMSPDUCHOICE的(显示)标记(Coafitm础erviceError=14)0lConfirmedServiceErrorCHOICE的(显式)标记(initimeError=1)06ServiceErrorCHOICE的(显式)标记(initi啦一6)02ENUMERATED值的编码(incompatibl咖一2)[例c.4]读状态请求/响应PDU的A-XDR编码。本例说明在以下情况下读状态请求(Get‰髓申qH目吐)PDU及其响应的A-XDR编码:——请求不需要条件参数(Indontify=FALSE)。——用于接收请求的VDE实例规定如下:Dummy_VDE::=VDE{VDE-h∞dler,一VDE-Mmdler在其他地方定义VDE-type0x0001,--VDE类型值(在其他地方定义)Serial-Number“1234”,..在其他地方定义Vendor-Name,~由制造商定义Model,.柏制造商定义Version-Number。一由制造商定义Resource,一在其他地方定义List-of-vaan15,23),一本VDE中的VAA列表StatusREADY)GetStatusRequest定义如下:GetStatusRcquest::=Identify其中Identify::=BOOLEAN因此,在上述情况下,GetStatusRequestPDU的A-XDR编码如下:02DLMSPDUCHOICE的(显式)标识(GetStatusRequcst=2)00Idcntif,BOOLEAN的A—XDR编码(FALSE表示响应中只有必备参数)GetStatusResponse定义如下:GetStatusResponso::=SEQUENCE 标准分享网www.bzfxw.com免费下载DL,T790.6—2010,IEC61334—6:200000T01VDE—Type值(Integerl6=0x0001)的编码m⋯一⋯Ⅵw堋懈0。,0I⋯。个m⋯㈨洲,00T0F表中第2个VAA-Name(15=0x000F)0017I表中第3个VAA-Namo(23=0x0017)00OPTIONALIdentifySEQUENCE的使用标记(FALSE,表示不存在)[例C.5]变量访问服务DLMS命名变量(NamedVariable)定义如下:Dummy::=_NamedVaffableNarnedVaffable17)此值为传送协议数据单元的默认值。2l DL,T790.6—2010,IEC61334—6:2000{variable-NameScope-Of-AccessScope-May-ChangeLifcrimeType-DescriptionRead-WriteFlagAvailable}Dummy_Type::=SEQUENCE{Number_Of_CountersUnsigned8,Countcrvalues0x0010.VDE特定,FALSE.VDE.Dummy_Type,READo哪TE_rRUESEQUENCEOFUnsignedl6}作为ReadRequest和ReadResponse的例子,参照Dummy_NamedVariable,可以假设在VDE中该变量的值如下:Number_Of_Counters=2CouriersSEQUENCEOF有以下两个值:CounteT_Value_l=318(如013E)Cotmter_Value2=715(=0x02CB)下面的示例要用命名变量。[例C5.1]读没有具体访问的命名变量。ReadRequestService定义如下:ReadRequest::=SEQUENCEOFVariableAccessSpecification其中:VariableAccessSpeciEcation::=CHOICE{variable·narile【2】IMPLICITObjeetName,detailed-access[3】IMPLICITSEQUENCE{Variable-nameObjectNameDetailed,accessDetailedAccess)}这时,应注意没有具体访rhl(detailedaccess)的访问。要求Dummy_NamedVariable的值的ReadRequestPDU的A.XDR编码如下:05DLMSPDUCHOICE的(显式)标记(ReadRequest=15)01可变长度的SEQUENCEOF的长度(=1)02VariableAccessSpecificationCHOICE的(显式)标记(variable-name=2)00T10J-可变参照objectName的编码(vafiable.n锄e:ox0010)如请求可接受,该请求的响应为ReadResponse,定义如下:ReadResponse::=SEQUENCEOFCHOICE{22 标准分享网www.bzfxw.com免费下载DL/T790.6—2010/IEC61334—6:2000dam【0】Datadata-access-cFror11】IMPLICITdataAccessError}其中:Data::2CHOICE{array【1】IMPLICITSEQUENCEOFDatastructuref2JIMPLICITSEQIJENCEOFDam●unsigned【17】IMPLICITUnsigned8long-unsigned【18】IMPLICITUnsignedl6,∥包含给定值的Dummy_NamedVariable的ReadResponsePDU的A-XDR编码如下:0CDLMSPDUCHOICE的(显式)标记(ReadRespose=12)01ReadRespose的可变长度SEQUENCEOFCHOICE的长度(1)00CHOICE的(显式)标记(选择的数据项是【0】Dam)02CHOICE的(显式)标记(选择的数据项是【2】struetm"e)02可变长度SEQUENCEOFData(CHOICE)的长度(结构有2个数据项)11结构第一数据项的(显式)标记([17】un、igned8)02NumberOfCounters的编码值(=2)0l结构第二数据项的(显式)标记(【l】,array)02Array(SEQUENCEOFData(CHLOICE))的长度(=2,array中有两个Dam)12第一Data的(显式)标记(【18】Unsignedl6)0l3ECounterValue1的编码值(=0x013E)12第二Data的(显式)标记(【18】Unsignedl6)02CBCounterValue2的编码值(=0x02CB)18)此时只需要这些CHOICE型。'

您可能关注的文档