• 2.82 MB
  • 2022-04-22 13:38:00 发布

DLT790.441-2004采用配电线载波的配电自动化第4-41部分数据通信协议应用层协议--配电线报文规范.pdf

  • 74页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'ICS27.100F21备案号:13566-2004DL中华人民共和国电力行业标准DLlT790.441一2004/EEC61334-4-41:1996采用配电线载波的配电自动化第4-41部分:数据通信协议应用层协议一配电线报文规范Distributionautomationusingdistributionlinecarriersystems-Part4:Datacommunicationprotocols-Section41:Applicationprotocols-Distributionlinemessagespecification(EEC61334一4-41:1996,IDT)2004-03-09发布2004-06-01实施中华人民共和国国家发展和改革委员会发布 DL/T790.44,一2004目录前言······“·········”···“··““··········”······“·············”·····”··”···“··“···,’···”·”·“··”·“⋯“二m引言······“············,··········””··“······,·········””二!’················‘·····”··,·⋯⋯.“·”···.··⋯⋯”·”W1范围······“························”··········””·······“······················””·······“·····“········”,”一12规范性引用文件·..................................................................................”二“·“‘二‘二“·”·13定义··············”·············,········”···························”··”·““··“···“······”·”·····”一““·13.1参考模型定义·········”················”···”··“···“·····”··············”·⋯⋯“二“·“⋯”二”⋯⋯”13.2服务约定说明”..........................................................................................”二”·.⋯23.3其他定义”·································”··”·······“······,·················”“··⋯“····⋯⋯””·”⋯⋯23.4缩略语,................................·一“······“······”·,,“······一““二“····⋯⋯””·“··⋯“·⋯⋯33.5约定·”·,··“····”·········”,·““··“··········”,···“···⋯⋯“···.⋯⋯”二”···.······一“·····⋯⋯”44虚拟配电设备(VDE)············“··“····························“···‘·····”·····”·······“一‘二‘二‘二”·’二54.1VDE与Dsl模型的关系,.....................................................................·一“·,.‘.·⋯‘⋯54.2VDE和实际配电设备的关系···············““············”·····”·””,····”“·“··“······“······”·“一74.3VDE的结构···“··.····”···,.’···“·⋯‘”··””·,“·”“····““·“··.·””··.一”·”“·”·’..⋯.““二”.74.4DLMS对象的规约”··”·”·,·“⋯,··.·一”·····”,⋯’⋯,.······”··,⋯”二”⋯’“:.”,”二“.,4.5一致性描述·⋯⋯””····“”··...”····”····,⋯⋯”二”“⋯⋯.”·““·”二“·““‘:.”二”·.⋯“·“·115上下文管理服务·......................................................................................................125.1引言········“············”··.······“·····”··”··‘·······.·“·········””·”二“⋯”二”.................125.2启动服务(btitiate)....................................................................................”二”···⋯⋯125.3中止服务(Abort)············,’························”·····‘·‘“·“····‘··········‘··‘,.······“·‘·.⋯⋯’.一146VDE支持服务··················”“··············,“···”·······“··“·····················“···“·”··”·”·””·156.1盛拟配电设备的描述··“··“···,.·””····“··“···”··””··”···········“··“⋯‘”···”一‘二’二‘“⋯⋯’二156.2获取状态服务(GetStaws)·,········,·······”·······“·······”·””··”···“··”···“·········”·””二‘二‘二166.3获取名字表服务(GetNameList)”··””············”·”·”····“········”···”·””··⋯‘···“···”···一177数据集管理服务·.......................................................................................................187.1数据集描述···”··,···············””,·“··“··“···”······““····”······“···”··””·一“...............187.2启动装载服务(InitiateLoad)··············”·”····“···“········””··”·”“····················”····“二207.3段装载服务(IoadSegment)....................................................................·一“............217.4终止装载服务(Terminetei.oad)....................................................................................227.5启动上载服务(InidWUpLoad)···············”··“···········“·······”.···”·······““⋯⋯’··”二‘二’..237.6段上载服务(UPI.oadSegment)....................................................................................24”终止上载服务(TecminateUPLoad)“······,.·”“·······“⋯‘·····一’二’·⋯‘二‘··⋯’二””二’二’........247.8获取数据集属性服务(GetD.USetAttdbute).·····⋯⋯”····⋯⋯“·⋯⋯”.·,·,····⋯⋯”·⋯’.·“’.·“·“.乃8VAA管理服务····,‘···················”············“··········””··”···············”···“····“”·“一=,8.1VAA的描述................................................................................................“二““二268.2修改访问范围服务(ChangeScope)............................................................................“二279任务调用(TI)管理服务·············”··············“·············”··””⋯“·“·“·“·⋯””二”""289.1任务调用的描述···4“·······,·4···················,·····“····.·········,·“·”··“··“···“一‘·”·”一“....28 DL/T790.441一2049.2开始服务(Start)...................................................................................................309.3停止服务(Stop)·····················································⋯⋯”·······⋯⋯’·⋯‘······⋯⋯‘二’二’二309.4恢复服务(Resume)·················.............................................................................319.5使可用服务(MakeUsable)··········································“·······⋯⋯‘·“二’二’··⋯⋯‘二’二’二’二‘二329.6获取TI属性服务(GetTIAttnbute)················································⋯⋯‘二‘二’二’二’二’二’··⋯’二3310变量访问服务·.......................................................................................................3410.1变量模型描述........................................................................................................3410.2类型的规范...........................................................................................................3810.3数据值的规范........................................................................................................4010.4读服务(Read)......................................................................................................4210.5写服务(write)......................................................................................................4310.6未确认的写服务(UnconfimedWrite)..............................................................................4410.7信息报告服务(InformationReport)··········“·····························⋯⋯‘·⋯⋯‘二’··⋯’·⋯’二‘二4410.8获取变量属性服务(GetVariableAtdbute)........................................................................45附录A(规范性附录)DLMS协议·...............................................................................47A.1约定·................................................................................................................47A.2采用类型..............................................................................................................48A.3DLMSPDU”··········....⋯⋯”······⋯⋯“..⋯‘····⋯⋯“.”········.⋯⋯,.”⋯“.....⋯⋯,·⋯”⋯‘“二48A.4服务请求与响应.....................................................................................................50A.5服务出错信息·.......................................................................................................51A.6对象名·.............................................................................................................53A.,上下文管理协议”...................................................................................................53A.8VDE支持协议·.......................................................................................................54A.9数据集管理协议·....................................................................................................56A.10VAA管理协议·“················”···..........................................................................57A.11作业调用管理协议·................................................................................................57A.12变t访问协议·....................................................................................................58附录B(资料性附录)DLMS用户状态描述·...................................................................63B.1概述.................................................................................................................63B.2上下文管理状态.....................................................................................................63B.3数据集管理状态..............................·“”..................................................................64B.4任务调用管理状态..................................................................................................67 DL/T790.441一2004.JJ‘.~‘~9i1青随着我国城乡电网改造事业的发展,对配电自动化的要求己日益迫切。与传输配电自动化信息的其他通信方式相比,配电线载波可以降低建设投资和运行费用,便于管理,是一种经济实用的通信方式。但配电网结构复杂,信号传输衰减大,采用配电线载波在技术上有一定难度。国外在20世纪70年代开展了这方面的研究工作,有相关产品问世。我国在20世纪90年代也开展了这方面工作,在一些城市进行了试点。从1995年起,国际电工委员会陆续发布了EEC61334系列的国际标准或技术报告。将这些文件采用为我国的标准文件对于我国这方面工作的开展有很好的指导意义,便于和国际接轨。EEC61334《采用配电线载波的配电自动化》是一个标准文件系列,包含以下5部分:IEC61334-1第1部分:总则IEC61334-3第3部分:配电线载波信号传输要求EEC61334-4第4部分:数据通信协议IEC61334-5第5部分:低层协议集IEC61334-6第6部分:A-XDR编码规则每一部分又包含若千部分,到制订本部分时止,有加余篇已发布。这些文件将逐步被采用为我国电力行业标准或标准化指导性技术文件。第4部分数据通信协议包含以下8个部分:EEC61334-4-1:1996第4-1部分通信系统的参考模型EEC61334-4-32:1998第4-32部分数据链路层一逻辑链路控制IEC61334-4-33:1998第4-33部分数据链路层一定向连接规约IEC61334-4-41:1996第4-41部分应用协议一配电网报文规范IEC61334-4-42:1996第4-42部分应用协议一应用层IEC61334-4-61:1998第4-61部分网络层一无连接规约IEC61334-4-511:1999第4-511部分系统管理一CIASE规约IEC61334-4-512:1999第4-512部分采用61334-5-1文件的系统管理MIB本部分等同采用EEC61334-4-41:1996《采用配电线载波的配电自动化第4-41部分:数据通信协议应用规约一配电网报文规范》(英文版)。本部分描述的数据通信协议不仅适用于配电线载波,也可用于其他通信介质。本部分的附录A是规范性附录,附录B是资料性附录。本部分由中国电力企业联合会提出。本部分由全国电力系统控制及其通信标准化技术委员会归口。本部分由国家电力公司电力自动化研究院负责起草,中国电力科学研究院、北京哈德威四方公司、鲁能积成电子公司参加起草。木部分卞要起草人:昊福偎、于跃海、黄健、刘佩娟、谭文恕、任雁铭。 DL/T790.441一2004引言本规范在OSI应用层上定义了配电线报文规范(DLMS),包括以下方面:a)使用该服务的用户之间交互的抽象模型;b)遵循本规范的实现的外部可见特性,此功能以与处理服务请求相关的过程需求形式出现:。)服务的原动作与事件;d)与每个原动作和事件相关的参数数据:e)这些动作和事件间的相互关系及其有效顺序。本规范中定义的服务由配电线报文规范提供。它们可被其他应用层服务元素或其他应用进程元素使用。本规范不对计算机系统内该规范的具体实现或产品进行规定,也不对计算机系统内的实体和接口的实现进行限制。本规范说明了该规范的实现所应具有的外部可见功能以及这些功能所应遵循的要求。 DL/T790.441一2004采用配电线载波的配电自动化第4-41部分:数据通信协议应用层协议一配电线报文规范1范围本部分的应用范围是在中低压配电网上通过配电线载波技术(DLC)进行通信。远距离通信的应用领域非常广,本部分中可能无法详尽加以描述,实际的应用例子有:配电网的监视和控制、广播命令、用户接口控制、公共照明、交通灯监视、自动抄表等。扩展到其他通信介质也是可行的。配电线报文规范(DIMS)是一个应用层规范,主要目的是实现在计算机集成环境中的配电设备间的报文通信。本部分中所指的环境是配电领域。本部分不是对设备的远程编程指定一整套的服务。2规范性引用文件下列文件中的条款通过本部分的引用而成为本部分的条款。凡是注日期的引用文件,其随后所有的修改单(不包括勘误的内容)或修订版均不适用于本部分。然而,鼓励根据本部分达成协议的各方研究是否可使用这些文件的最新版本。凡是不注日期的引用文件,其最新版本适用于本部分。GB/I"9387.1-1998信息技术开放系统互连基本参考模型第1部分:基本模型(IDTISO/IEC7498-1:1994)GB/19387.3-1995信息处理系统开放系统互连基本参考模型第三部分:命名与编址(EDTISO7498-3:1989)GB/I"15129-1994信息处理系统开放系统互连服务约定(IDTISO/IR8509:1987)GBIT16262-1996信息处理系统开放系统互连抽象语法记法~一(ASN.1)规范(IDTISO8824-1990)GB/T16263-1996信息处理系统开放系统互连抽象语法记法一一-(ASN.1)基本编码规则规范(IDTISO8825-1990)GBM6687-1996信息处理系统开放系统互连联系控制服务元素协议规范(IDTISO8650-1988)GB/T16688-19%信息处理系统开放系统互连联系控制服务元素服务定义(IDTISO8649-一1988)GB/1"17176-1997信息技术开放系统互连应用层结构(IDTISO/MC9545:1994)IECIFDIS61334-4-42配电自动化使用配电线载波系统一第4部分:数据通信协议一第42章:应用程序协议一应用层定义参考棋型定义本规范是基于开放系统互连(GB/T9387.3-1995)中基本参考模型定义的概念。本规范使用了GBn9387中定义的下列术语: DL/T790.441一2004a)应用实体(AE);b)应用进程(AP);c)应用服务元素(ASE);d)开放系统;e)(N)层协议:f)(N)层协议数据单元(N-PDU);g)(N)层服务访问点(N-SAP);h)(N)层;i)系统;j)(N)层用户数据。3.2服务约定说明本规约使用GB/T15129中定义的下述术语,同时其亦应用于配电线路通信规约:a)原语(primitive);b)请求(request);c)指示(indication);d)响应(response);e)确认(confirm);f)服务原语(serviceprimitive);g)服务供方(serviceprovider):h)服务客户(serviceuser).3.3其他定义本规范中亦采用下列定义:3.3.1属性attribute有预定义意义的数据元素,并带有其可能取值集合的描述。3.3.2数据data被赋予或可以赋予意义的任意表达式(例如字符)。3.3.3数据集dataset用于特定目的、代表VDE能力的子集的抽象对象。3.3.4配电线协议处理机distributionlineprotocolmachine(DLPM)执行本规范中规定过程的抽象机器。3.3.5DLMS上下文DLMScontext在应用联合生命期中使用的DLMS服务单元及通信语义的规范。3.3.6键属性keyattribute对象类型的属性,它是唯一标识对象的联合属性中的一部分。3.3.7装载loading从DLMS客户端到DLMS服务器数据集内容传输的过程。 DL/T790.441一20043.3.8预定义对象predefinedobjectVDE内存在的对象,它可能不是由DLMS服务创建的。3.3.9标准化对象.tandardized剑ect访问范围是VDE特定或VAA特定的对象实例,其定义在规范中给出。3.3.10类型type可以由变量值传送的数据类型的抽象描述。3.3.11上载uploading从DLMS服务器向DLMS客户端机数据集内容(或部分)传输的过程。3.3.12VAA特定VAA--speMc形容词,用于表示被修饰的对象只能被创建该VAA对象的虚拟应用关联所访问。3.3.13变fvariable全部由单个名字引用的一个或多个数据单元。3.3.14变f访问variableaccess对定义在VDE中的变量或变量组件进行访问的机制。3.3.15VDE特定VDE-specific形容词,用于表示被修饰的对象可以被VDE中的所有应用关联所访问。3.4缩略语以下缩略语用于DLMS中:(A-1)SAP:底层应用程序服务访问点,(A-1)表示应用层之下的层AA:应用关联(Applicationassociation)ACSE:联合控制服务元素(Associationcontrolserviceelement)AE:应用实体(Applicationentity)AP:应用过程(Applicationprocess)ASE:应用服务元素(Applicationserviceelement)ASNA:抽象句法符号1(Abstractsyntaxnotationone)DLMS:配电线报文规范(Distributionlinemessagespecification)DLPM:配电线规约处理器(Distributionlineprotocolmachine)DS:数据集(Dataset)OSI:开放系统互连(Opensystemsinterconnection)PDU:协议数据单元(Protocoldataunit)SAP:服务访问点(ServiceaccessPoint)SDU:服务数据单元(Servicedataunit)TI:任务调用(Taskinvocation)VAA:虚拟应用关联(Virtualapplicationassociation)VDE:虚拟配电设备(Virtualdistributionequipment) DL/T790.441一20043.5约定3.5.1服务参致描述本规范用表格形式描述DLMS服务原语的组成参数。每个表格有3-5列描述服务参数和请求("Req")、指示("Ind")、响应("Resp")以及确认("Cord.)原语。"Resp”和“Conf”两列在非确认的服务中无定义。在每个表中,参数(或其中一部分)列于每条横线上。在相应的服务原语列下面有一代码指出参数的使用类型。使用的代码如下:M一原语的强制参数:U-用户选项参数,依赖于DLMS用户的动态使用,可能提供,也可能不提供;S一该参数作为DLMS服务器环境的内部响应,选中该参数则其他S参数就不能被选中:C一该参数对于DLMS用户的环境或其他参数是有条件的:(blank)一该参数不存在。跟在M,U,C或S之一代码之后的,’(=)’表示此参数在语义上等同于该参数在左边紧邻的服务原语中的意义。(例如,位于指示服务原语列中的“M(=)’代码以及请求服务原语列中的“M”意味着指示原语中的该参数在语义上等同于请求原语中的该参数)有些参数可能包含子参数,子参数通过标示诸如M,U或C参数加以表示,并在主参数下缩排所有子参数。子参数的存在总是依赖主参数的存在,并且它们出现在主参数之下(例如,某个主参数可能有子参数,如果这个参数没有被选用,那么它的子参数亦不能被选用)。为描述此类参数的允许值,本规约中的参数描述要引用类型。所引用的类型于GBM6262-1996中定义。3.5.2DLMS寻址DLMS规范不提供命名和寻址对等DLMS用户或对等DLPM的方法。在OR和DCP内,对等应用实体的寻址和识别是通过使用定义于G1311716687-1996中的ACSE服务得到的。在此类对等体的连接成功之后,所有的DLMSPDU:通过(A-1)层服务在对等端之间流动。因此,对DLMS来说,载有寻址信息是不必要的。命名和寻址的额外信息可于应用层规范中查找。3.5.3服务约定本规范使用OR服务约定(GB/T15129)中包含的描述约定。OR服务约定定义了DLMS用户和DLMS提供者之间的交互。信息通过可带参数的服务原语在DLMS用户和DLMS提供者之间传递。下述评述用于此模型:a)GBM5129定义了一个对应OR参考模型所属层次提供的服务的模型。DLMS服务并不对应于此类层次(它描述了应用层的一部分),但是所用的模型在所有其他方面都是相同的。b)在任何时刻,应用实体(AE)有多个特处理的服务请求,每一个请求的处理过程都独立于其他的处理过程。注:应该注意DLMS用户/DIMS提供者的区别是抽象的,没有必要将其对应于某个特定系统中的DIMS实现。3.5.4发送与接收DIMS用户及DLPM本规范使用术语‘,一发送DLMS用户和接收DLMS用户。发送DLMS用户是发出请求或响应服务原语的DLMS用户。接收DLMS用户是接收指示或确认服务原语的DLMS用户。注:很重耍的一点是,在一个擂确认的DLMS服务完成的过程中,两个DLMS用户同时既是发送者又是接收者。第一个DLMS用户发送请求,接收确认;而第二个DLMS用户收到指示并发出响应。本规范使用术语~一发送的DLPM和接收的DLPM。发送的DLPM是发送DLMSPDU的DLPM,接收的DLPM是接收DLMSPDU的DLPM. DL/T790.441一20043.5.5请求的Dim用户与响应的DLMS用户本规范使用术语一一请求的DLMS用户与响应的DLMS用户。请求的DLMS用户是对一项服务发出请求服务原语的DLMS用户,而响应的DLMS用户是对一项服务发出响应服务原语的DLMS用户。注:需要重点注意的是,术语“响应的DLMS用户”的使用与ACSE及其他标准中的术语“响应的实体”的使用有区别‘在那些标准中,该术语用以指对连接请求响应的实体‘3.5.6某个服务的客户端和服务器本规范使用术语“客户端和服务器”以描述DLMSVDE的模型。服务器的定义为:对应特定服务请求实例外部表现为VDE的系统。客户端是指为了某种特定目的经由服务请求实例使用VDE的系统。VDE主要用于描述服务器的动作,即用于描述可以被客户使用的请求与响应。3‘5.7对象建模本规范采用抽象对象建模的技术以完整地描述DLMS设备模型和DLMS服务过程。在该建模技术中,描述了带有特征和可能操作的抽象对象,所定义的抽象对象有助于理解DLMS服务程序的意图及其作用。在实现DLMS时,实际系统将模型中描述的概念映射至实际设备。因此,从外部来看,遵循该规约的设备表现在对象建模技术中所描述的特征,但是对应该视图的实现机制并未在规约中定义。DLMS模型定义了一个对象集。每个对象构成一个抽象实体,该实体具有某种特征并可以受到特定DLMS服务和操作的影响。每个对象类型均赋予一个名字,通过名字可以引用该对象。每个对象类型都有一套用于描述对象某些外部特征的属性集。有些DLMS服务可以修改对象实例的特征,因此它们对设备的影响可以通过对象的一个或多个属性的改变来建模。每个对象实例在所属的对象类型的所有的对象中必须唯一地确定。为了该目标,对象属性之一必须唯一(例如,许多对象都有一个名字属性,该属性对于对象类型的每个对象实例是不同的)。在DLMS中,每个使对象唯一的属性规定为键属性(Keyatribute),最后,某些对象包含条件属性,即这些属性当且仅当特定条件为真时与对象是相关的。DLMS使用"Canstre山t妇表示这些属性,"COn9Lr8山t”即指定一个条件。当且仅当一个对象实例满足该约束时,受限于约束〔Constraint)的属性才被视为对应对象实例的对象属性。在DLMS中,对象类型在语法上定义如下:对象:(对象名)键属性:(属性名)属性:(属性名)约束:(约束表达式)属性:(属性名)属性:(属性名)属性:(属性名)按照约定,每个对象定义以对象声明和对象名开始,随即跟有缩排有名字的键属性,接下来是命名的零个,一个或多个属性。约束可在属性的任何位置表示,并约定所有的约束属性缩排于其下。没有缩排的第一个属性定义在属于该约束的属性列表中。4虚拟配电设备(VDE)4.1VDE与OSI模型的关系4.1.1应用进程(AP)内的VDEVDE存在于DLMSAP中,它构成了信息处理任务中的一部分,该部分为传送有意义的信息而提 DL/T790.441一2004供与实际配电设备相关的资源和功能。图1为配电设备模型。OLMS盅拟配电设备应用进程F,}巨任三务〕一一一进竺sS-DASE日巫FE互*}},麟应用卜L牛竺:=花二祠塑二军1}}〔〔巫i.11习习}I关关*联联一卫LL里竺竺,。型创创}}IIACI中hci「ACSEDociphttF「VDE*"!「**Am」图1配电设备模型一个AP可能定义零个、一个或更多的虚拟配电设备,如果它没有定义任何VDE,那么它就不可能作为一个DLMS服务设备。每个AP内的VDE代表一个虚拟配电设备,它模拟了AP运行的一个连续的部分。在逻辑上每一个VDE都是与其他的VDE相分离的。举例:一个和非DLMS环境(这种非DLMS环境包括多个连接设备,如仪表、电闸或控制单元等)相连接的DLMS系统可以按如下方式建模:—只有一个单独的AP,每个连接设备在这个AP中都有相应的VDE;—多个AP,每个AP中只含有一个VDE对应于一个连接设备。在以上两种情况中,VDE的客户都把一个特定的连接设备视为一个单独VDE。相对于DLMS的服务来说,这种VDE看起来是独立于其他的VDE的。图2为AP内的VDE.应用进程虚拟虚拟盛拟&t}ii8t4FR}i}ifliF图配电设备配电设备瓦电设备认-1)_Service伪-1)SAP(A-1)SAP图2AP内的VDE多个AP包含一个VDE与一个AP包含多个VDE之间是等价的,下面假设一个AP包含一个VDE.4.1.2VDE内的AE按照GB/T9387.3-1995中的描述,AE代表AP通信能力的集合。一个AE模拟的是一个需要考虑OR通信目的的AP的特征。不包含AE的AP在OR或DCP环境中不能够通信。详情请参考DCP应用层的规约或参考GBM387.3-1995.GB/T17176-1997和GB/f16687-19960每个VDE中可能包含有一个或多个AE。每个AE代表了在VDE中模拟的AP部分通信能力的集 DL/T790.441一2004合。在DCP环境中,一个不包含AE的VDE不能够通信。每个AE仅是一个VDE的一部分,可用与一个特定AE的通信来模拟与一个VDE通信,及与一个AP的通信。注1:DLMS认为对于一个AP中的一个特定的SAP,只有一个特定类型的AE.VDE中的情况与此相同。如果在这个AP中存在一个另一类型的AE,它将用另一个SAP地址,这种配置不予进一步考虑.注2:在底层中,每一个AE是用一个单独的SAP地址来标识的,且可以和OR中的地址一致。一个AA是两个AE间的协作关系。它提供两个A卫间的必需参考框架以使它们能有效地互操作。AE调用体现了在一个通信实例中AE通信能力的特定应用。一次AE调用模拟了AE在AA中的一个应用实例。一个AE的多次调用代表多个应用连接。注3:DLMS不允许在一个单独AE调用中建立多个应用连接。多个AA可用多次AE调用来模拟。一个给定的VDE是通过一个AE用单一(A-1)SAP来寻址的。一个(A-1)SAP对一个VDE的绑定是长期的。作为一个DLMS服务器的AP和它的VDE的等价性在图3中被表示出来。F〕5erve卜SDLASE图3应用进程结构4.2VDE和实际配电设备的关系VDE是实际配电设备特定集资源和功能的抽象表示,也是从此抽象表示到实际配电设备的物理和功能方面的映射。虚拟资源对底层实际资源的映射关系将保持很长时间(事实上与硬件寿命相当)。一般地,一个给定的VDE的资源是独立于其他VDE的资源。当多个VDE的虚拟资源被映射到底层相同物理资源时,应用程序将提供一种机制来协调它们对单个资源的访问。通常使用信号量控制对共享实际资源的访问。在DLMS中,不再进一步讨论信号量问题。信号量处理被认为是一个局部问题。注:在一个VDE内,一个“有名变量”的对象可以被用来表示一个信号量的多种状态。DLMS通过描述被VDE操纵的抽象对象来描述VDE的操作。DLMS也描述了通过使用DLMS服务而可以在这些对象上进行的操作。4.3VDE的结构4.3.1结构概述每个VDE确切地包括:—一个VDE处理器;_一个数据集,—无、一个或多个n:—无、一个或多个变量。 DL/T790.441一2004下面的图4展示的是一个VDE的组成部分。任务}命名,}!〕,巫.巫〕}侧i孟4r}}34<}A*1}MRA1)"IRl日一用}巨。巫:,习}1竺到L}里。。到}u}图4VDE的结构4.3.2VDE处理器VDE处理器管理在使用DLMS服务时对VDE内置资源的一切访问。它表示了DCP环境和VDE的局部操作环境之间的接口。从概念上讲,VDE处理器包括对客户可见的VDE的局部操作的所有方面,除了那些被数据集明确定义了的方面。因此,VDE处理器支持DLMS对局部操作环境的可见性,同时也支持对在使用DLMS时可能调用的局部定义的过程的可见性。VDE处理器包括VDE的资源,其中一些资源被数据集所用。VDE处理器代表的是作为VDE所必须的内置功能,具有完全功能的VDE处理器就相当于一个VDEe4.3.3橄据集在DUMS内,数据集对象代表的是被绑定到VDE的特殊目的的那批信息的集合。数据集可能是空的,也可能包含有信息。这些信息可能是程序指令、值表、各种有名变量列表或一些特殊报文。作为信息集合的数据集可以使用DLMS服务来装载。这种数据集在概念上更多地代表被用来达到特定目的的VDE资源的集合。这个数据集包括VDE中与协调配电策略相关联的方面。VDE资源对它的数据集的分配是静态的。这种数据集资源在DLMS服务器中被预先设定且不能用DLMS服务改变。一批变量对象可以被定义成从属于某个数据集,这个数据集便代表这批DLMS变量的一个单独的命名空间。一个AP能够用数据集管理服务来装载数据集的内容。4.3.4任务调用在一个多任务的环境中,任务调用(TI)是一个其功能类似于把一段程序放在执行队列中的元件。一个TI和一件任务相关联,此任务包括被执行的代码和有关的变量。一个TI包含了启动执行VDE内相应任务的所有信息。在DLMS中,TI是预设定对象中的一个。这个任务本身可能被用一个数据集内容莱装载。在1EC61334的其他部分可能找得到有关任务更详细的内容。一个AP能够利用任务调用管理服务来操纵Tl。 DL/T790.441一20044.3.5变f变量是VDE的一个抽象元素,它能够提供发送(读时)或接收(写时)一种类型的数据值。一种数据的类型或简单的类型是对数据类的一种抽象的描述,它可能由一个变量值所传递。一个变量的类型决定了这个变量的抽象语法、它的可能数据的范围和用DLMS通信时的表示法。4.4DLMS对象的规约下面条款定义了DLMS对象的基本属性。4.4.1对象名DLMS对象是通过它的名字来引用的。在DLMS中,通过对象名字访问一个对象。事实上在DLMS内部无法直接访问实际资源。对象名被认为是DLMS对象的键属性。对象名在其定义空间内应该是唯一的,这个空间被称为对象名的作用域。4.4.2名字的作用域在DLMS中只定义了一个名字作用域:VDE范围。在一个VDE中所有对象的名字作用域都是相同的。在VDE内,不管对象类别是什么,每个对象的名称是唯一的。一个对象的名可以被VDE的每一个客户引用。4.4.3访问域访问域定义了对一个VDE实例对象访问的限制。这是为了避免对一个VDE内数据的非授权的操作和保证VDE内数据的保密。在DLMS内定义了两种访问域:特定于VDE的和特定于VAA的。一个访问域为特定于VDE的对象,可以被该VDE所有对等的DLMS用户操作。例如,一个访问域限于VDE的已命名变量可以自由的访问。特定于VAA的访问域被直接绑定到相应己存在的VAA对象。特定于VAA的域定义了一个虚拟的访问空间,该空间对创建这个VAA对象的DLMS用户开放,但对其他DLMS用户关闭。利用第八条款中描述的改变域服务可改变一个DLMS对象的访问域。4.4.4生命期一个对象的生命期表达的是一个对象被定义为是否从属于VDE或从属于数据集。在DLMS中VDE的结构是静态的,从属于VDE的对象生存时间和VDE相同。数据集可以用DLMS服务装载。数据集的动态性更加显著。一个被定义为从属于数据集的对象的生命期和数据集的生命期相同。在一个VDE中,当数据集被再次装入时,从属于该数据集的对象可能出现或消失。一个DLMS对象的生命期在它的生命期属性中被表示。4.4.5对象类表1中列出了能够被命名的DLMS对象的特定实例。允许的组合及所推出的对象生命期也被列出。表1对象类对象类VDE特定VAA特定生命期命名变t对象JJDS/VDE命名变量表对象JJDS/VDE消息盒对象JJDS/VDET对象J7.VDEVAA对象JVDE数据集对象JJ*VDE注:*如果组女据集访问域是特定于VAA的,那么所有的1T对象具有相同的特定于VAA的访问城。如果一个T对象的访}问域是特定于VAA的,那么所有其他TI对象和数据集具有相同的特定于VAA的域。这个相关的VAA对象被,称为执行的VAA. DL/T790.441一2004以上所列的每个对象都具有在VDE中的生命期,这点可从他们的类型推出。如果没有显式的改变,具有VDE生命期的对象与VDE的生存时间一样长。例如,除非显式地通过数据集管理服务改变一个数据集的生命期,该数据集的生命期将与它所在的VDE生命期一样长。4.4.6对象名参数对象名参数经常在DLMS服务的规约中出现。在VDE中,对象名参数可唯一地识别一个DLMS对象。对象名结构中包含对象的类别,这使得VDE处理器更容易操作。对象名参数的结构如下所述:对象名属性:对象类别(有名变量、有名变量列表、消息盒、任务调用、数据集、虚拟应用连接)属性:项标识对象类别参数标识对象所属的类别。它必须是DLMS定义的对象类别之一。项标识参数能在、"DE的一个特定的对象类别中唯一地识别一个的对象名。对象名总是被作为一个整体来引用。图5所示为对象名结构。对象名语义的构造确保了对DIMS对象的广泛操作。很明显,当用对象名引用一个对象时,该对象所属的类也被确定了。ASN.1中关于对象名参量的描述在附录A中作为一个16位整数被给出。1项标识‘13bit)}对”Obit){日5对旅名结构对象类可从下列值中选取:001〕有名变量对象;001有名变量列表对象;010消息盒对象;011T1对象;100数据集对象;101保留;110保留:111VAA对象。项标识用13bit来描述,其值可以自由选择。4.4.7DLMS对象描述绝大多数DLMS对象描述像下面这样开始:对象类别关键属性:对象名属性:访问域(特定于VDE,特定于VAA)访问域约束=特定于VAA属性:VAA名属性:值可变(真,假)属性:生命期(VDE,数据设置)属性:键属性总是对象名。无论对象的类别是什么,它都可以被用来唯一地识别在VDE中定义的对象。访问域参数定义了指定对象当前的访问域。访问域规定了对对象的访问。它或是特定于VDE或 DL/T790.441一2004是特定于VAA。如果访问域属性的值特定于VAA,那么该VAA的名字在该对象的VAA名属性中表尔。“域可变”属性定义为相关对象的访问域是否可用DIMS域改变服务来改变。生命期属性表示被描述对象有何种生命期。它应是VDE或数据集。生命期属性设置为数据集表示这个对象是在数据集内定义的。其他的属性主要是特定于对象类的。DLMS对象的改变:所有的DIMS对象的描述中有一部分是一列外部可见的属性。除了通过DIMS改变对象的服务外,这些属性还可以被系统的局部操作或系统操作、或任务调用的执行所改变。本标准不包括局部改变对象属性的方法。4.5一致性描述4.5.1目的一致性块(ConformanceBlock)概念的提出,用来保证各种实际环境间可以基于相同的DIMS协议以不同的性能进行通信。在DLMS中,并不强制实现所描述的所有服务,只有Initiate.Abort.GetStatus和一个简单的GetNameList服务是强制的,其他的服务可以使用ConformanceBlock来协商。一个实现的服务必须完全遵循DLMS规范。在一致性块中描述的非强制性服务若没有置位,则DIMS用户不能请求该服务。4.5.2结构表2为一致性的描述。表2一致性的描述r.=for-..,eC七山ataSe叭tlributeGetTIAtributeGetVariableAttributep户adWriteUnconfitmedWnteChangeScopeStartStopResumeMakeUsableDataSetLoadSelectioninGetNameListDetailedAccessMultipleVariableListDataSetUpload4.5.3参数GetDataSetAttribute标志描述了是否支持GetDataSetAttribute服务。GetTIAttribute标志描述了在VDE中是否至少有一个TI对象被定义。如果至少有一个TI对象存在,就应该支持完全实现的、完全遵循本标准中描述的GetTIAttribute服务。该服务应遵循一致性。GetVariableAtribute标志描述了在VDE中是否定义了至少一个可变的对象(有名变量对象、有名变量列表对象或消息盒对象)。如果至少存在一个变量对象,就应该提供完全实现的和完全遵循该标准 DL/T790.441一2004中所描述的GetVariableAttribute服务。该服务应遵循一致性。Read,Write,UnconfumedWrite,ChangeScope,Start和MakeUsable标志描述相应的服务在VDE中是否可用。如果该服务可用,必须是完全实现的和完全遵循该标准中所描述的。该服务应遵循一致性。StopResume标志描述在VDE中停止服务和继续进行服务是否可用,这两种服务必须是完全实现的和完全遵循该标准中所描述的。该服务应遵循一致性。DataSetLoad标志说明InitiateLoad服务、LoadSegment服务和TerminateLoad服务在VDE中是否可用。如果这个标志被设置,这三种服务应该是完全实现的和完全遵循该标准中所描述的。该服务应遵循一致性。SelectioninGetNaneList标志描述GetNameList服务中是否支持选择。GetNameList服务的最简单的表现形式必须提供,这种最简单的GetNameList服务中不接受来自客户所请求的特殊选择。GetNameList服务还引入了在VDE中定义的列出对象名的更复杂的方法。该方法可以通过对象的生命期、对象的荣或访问域选择对象名。如果SelectioninGetNamelist标志被置位,必须支持这种对基本GetNameList服务的增强。DetailedAccess标志用两个位表示所支持的细节访问的嵌套层次,如下所示:一~一谈犯:不支持细节访问:一一-01:支持一层细节访问:-10:支持两层细节访问;-11:完全支持细节访问,包括递归的访问。MultipleVariableList标志表明该实现是否具有处理在Read,Write指示和InfotmationReport请求中的由多个变量组成的变盆列表的能力。如果没有设置,服务器可能只能够处理由有名变量或消息盒类型的单个变量所组成的队列。DataSetUpload标志说明在VDE中InitiateUpLoad服务、UpLoadSegment服务和TerovnateUpLoad服务是否可用。如果该标志被置位,这三种服务应该是完全实现的和完全遵循该标准中所描述的。不允许这些服务只部分地遵循本标准。5上下文管理服务5.1引言上下文管理服务即启动(Initiate)服务和中止(Abort)服务。这些服务允许DLMS客户:—在DLMS上下文中,向DIMS服务器声明自身通信特征,用于建立支持通信的需求和资源。—在DLMS上下文中中止与DIMS服务器的通信。5.2启动服务(Initiate)5.2.1目的启动服务用于建立DIMS上下文。它允许进行通信的DLMS用户交换有关它们资源和通信需求的信息。启动服务还提供了通过创建一个VAA对象,在DIMS环境中识别DLMS客户的方法。这个VAA对象被用来定义与这个DLMS客户相关的VDE对象的访问域。启动服务必须在其他服务运行之前首先成功地执行。5.2.2结构原语组件构成如表3所示。 DL/T790.441一2004表3Initiate服务Initiate服务ReqIndRespArgumentMMDedic也KeyUUReponseAllowedUUProposed你画勿OfServiceUUProposedDLMSVersionNumberMMProposedConformanceMMProposedMaxPduSizeMMResult(+)CC(=)UU(=)NegotiatedQualityOfServiceNegotiatedDLMSVersionNumberMM(二)MM(二)NegotiatedConformanceMM(二)NegotiatedMaxPduSizeVAANameMM(=)Result(一)CC(二)MM(=)ErrorType注1:以上参数的集合可以包含在ACSE的请求A-Unit-Data的用户数据部分。要完成这个A-Unit-Data请求还需要附加的参数。注2:主叫系统的DIMS提供者可以减少request原语中参数的值。DIMS服务器的提供者可以减少indication原语中参数的值。除此之外,不允许任何对以上参数值的修改。注3:当且仅当ResponseAlowed参数为真或无定义时,Result(+)或Result(-)原语才被传送。5.2.3参数Argument参数传递了Initiate服务请求的特定参数。DedicatedKey参数包含了用来加密用户和服务器之间以后传送的DLMSPDU的密钥。只有当该参数所在的Initiate请求PDU己经用全局密钥加密后才能使用。注1:设里全局密钥和专用密钥的方法不在本标准的范畴中,ResponseAlowed参数表示Initiate服务是需要确认的(如果为真)还是不需要确认的(如果为假)。在第一种情况中,来自DLMS服务器的响应是强制性的;在第二种情况中,则禁止响应。注2:设置这个参数的目的是为了能够通过广播发送Initiate请求。ProposedQualityOfService参数使用户可以向服务器请求特殊级别的服务,此参数的正确语义不属于本标准的范畴。他们将在辅助的规约或客户与服务器间的外部协议中确定。ProposedDIMSVersionNumber参数,Unsigaed8类型,包含DLMS用户所支持的最高的DIMS版本号。ProposedConformance参数,BrrSTRING类型,定义了DIMS用户所支持的功能和服务的列表,这个参数让DLMS提供者分配合适的资源来保证通信。ConformanceBlock的具体内容在4.5中定义。ProposedMaxPduSize参数,Unsigned16类型,表示交换的DIMS协议数据单元的最大长度(字节)。在Initiate请求中的该值的建议值至少必须大到允许InitiateErrorPDU的传送。Result(+)参数表示所请求的服务已经成功启动。NegotiatedQualityOfService参数使服务器能够给予客户指定级别的服务。关于这个参数的确切语义不在本标准的范畴之内。它们将在辅助的规约或客户与服务器间的外部协议中确定NegotiatedDLMSVersionNumber,UnsignedS类型,表示VDE处理器所支持的DLMS版本的级别。此参数的值必须小于或等于ProposedDIMSVersionNumber参数的值。 DL/T790.441一2004NegotiatedConformance参数,BitString类型,定义了以后将用到的服务和功能的列表。此参数通过将提交的一致性的位串和VDE处理器内部的一致性位串进行逻辑与运算而得到。NegotiatedMaxPDUSiz。参数,Unsigned16类型,表示交换的DIMS协议数据单元的最大长度(字节)。长度超过这个最大值的PDU将被丢弃。这个最大长度是由ProposedMaxPduSize参数的最小值和VDE处理器所支持的PDU长度的最大值决定。VAAName参数,对象名类型,在VDE中唯一的标识与DIMS相关的VAA对象。任何时候都可以引用此对象,特别是检查一个DLMS对象是否可以访问时。Result(-)参数表示先前所请求的服务己经失败。ErrorType(错误类型)参数将指出错误的原因。Error勺pe参数在附录A.5中有详细描述·5.2.4服务过程DIMS客户可在任何时候发出对Initiate服务的请求。一但收到一个Initiate指示服务原语,DLMS服务器将检查所提供的参数和已存在的相关的VAA对象。如果在Initiate请求原语中ResponseAlowed参数存在且被置成FALSE就不发出响应。当遇到下列情况之一时,带有相应错误代码的否定结果将被包含在Initiate响应原语中发出。—建议的DLMS版本号低于所支持的版本号;—所支恃的服务不够;-PDU长度的最大值不够;-VDE处理器不能创建所需的新的VAA对象。否则,响应成功。如果相关的VAA对象不存在,则创建VAA对象。如果该对象己经存在,则使用该对象。注1:可以由辅助规约来定义成功进行Initiate服务所需满足的条件。注z:如果一个PDU超出了既定的PDU长度,将被丢弃;一个Abort原语将产生。注3:VDU处理器的行为应该是可确定的。当收到具有相同参数并引用同一个己存在的、AA的两个Initiate指示原语时,VDE处理器应该返回完全相同的响应PDU>5.3中止服务(Abort)5.3.1目的使用Abort服务可不经过协商,立即放弃DLMS上下文。DLMS客户可以通过发出Abort请求原语来表示它希望不经过协商立即中断在DLMS中的通信。5.3.2结构表4为Abort服务。表4Abort服务5.3.3参数在Abort服务中不传递参数,所以Argument参数传递一个NULL值。5.3.4服务过程DLMS用户在任何时间都可以发出Abort服务请求。DLMS服务器首先检查相关VAA的Abortable(可中断)属性。如果该VAA的Abortable属性被置为TRUE,则DLMS上下文将被取消,该VAA对象将被删除。如果数据集正处于Loading(装入)状态且属于该VAA的作用域,则这个数据集的状态被置成Empty(空)。注:这个过程对应己装入数据集的删除。如果该VAA是ExecutiveVAA.所有被定义成特定于该VAA对象的访问域(包括数据集和TI对象)都应改变为特定于VDE的访问域。14 DL/T790.441一2004如果VAA的Abortable属性被置为FALSE,则不响应该服务。若要继续使用DLMS服务,DLMS客户必须重新要求执行Initiate服务。6VDE支持服务虚拟配电设备已经在上文定义。本章描述VDE对象的结构及其相关服务。VDE支持服务为GetStatus和GetNameList服务。6.1虚拟配电设备的描述6.1.1VDE对象VDE代表了DLMSAP中其行为被建模成一个单一实体的部分(见第4章)。VDE是DIMS规约中主要的抽象实体。6.1.1.1月性VDE的属性:对象:VDE键属性:VDE-handler(静态)属性:VDE乃Pe(静态)属性:SerialNumber(静态)属性:VendorName(静态)属性:Model(静态)属性:VersioninNumber(静态)属性:Resources(静态)属性:ListofVAA(动态)属性:Status(动态)静态属性在VDE中预先设置,它们包括VDE乃peWDE类型)、SerialNumber(序列号)、VendorName(厂商名)、Model(模型)、VersionNumber(版本号)和Resource(资源)属性。静态属性是只读的,它们表示当前实现的有关销售商的特征。在上述属性中规定的特征用于修订管理目的。其他属性是动态的,它们描述了VDE的配置。6.1.1.2描述VDE-handler属性唯一标识一个VDE,因为一个功能完备的VDE处理器的存在就对应着一个VDE的存在。VDE勺C属性表示了VDE的类型。这个参数在全世界范围内唯一的标识VDE的一种类型。关于一种VDE类型的属性的讨论不在本标准范畴内。SerialNumber属性在全世界范围内唯一的标识一个VDE.VendorName属性标识支持该VDE的系统制造商。Model属性表示这个支持VDE的系统所使用的模型。VersionNumber属性表示这个支持VDE的通信系统的软件的版本。Status属性表示VDE的逻辑状态。允许有3种状态:READY(就绪)、NOCHANGE(无变化)和INOPERABLE(不可操作)。VDE通常处于READY状态,其他两种状态都是短暂的出现。在READY状态下,允许所有服务运行。在NOCHANGE状态下,只有不改变VDE中所定义对象属性的服务才被允许运行,如GetStatus,Read,InformationReport,GetNameList,GetDataSetAttribute,3个UpLoad服务和GetTIAttribute和GetVariableAttribute服务。在INOPERABLE状态下,用VDE表示的实际设备所有功能都是不可操作的。Rerource属性描述了VDE所表示的实际配电设备的物理资源。ListofVAA属性标识了VDE中当前定义的VAA对象的名字。VAA对象的描述在第8章中。 DL/T790.441一20046.1.2VDE的内容由DLMS的观点来看,VDE包括零个或一个数据集、零个或多个TI(任务调用)和零个或多个变量。在VDE中定义的变量对象可以是有名变量、有名变量列表或消息盒。6.1.3VDE的操作GetStatus和GetNameList服务在VDE上运行。这些服务允许DLMS客户:—获取VDE的状态、它的资源、所定义的VAA对象的列表及这个系统的特征;—获取在VDE中所定义对象的列表。6.2获取状态服务(GetStatus)6.2.1目的GetStatus服务用来确定响应的VDE的总体情况,也可标识厂商的特定属性。6.2.2结构表5为GetStatus服务。表5GetStatus服务GetStatus服务ReqIndRes5ConfA即me川M(=)Iden峋MM仁=)Result(+)SS(=)VDE介伴MM(二)Seri目NumberMM(=)StatusMM(二)ListofVAAMM(二)Identi勿UU(二)ResourcesCC(=)VendorNameCC(二)ModelCC(=)VersionNumberCC(二)Result(一)SS(=)ErrorTypeMM(=)6.2.3参致Argument参数传递GetStatus服务请求中所需的特定参数。Identify参数向响应的用户表示它是否必须把VDE的所有静态属性放入GetStatus的响应原语中。如果该参数的值被置成TRUE,则响应的VDE必须把它所有的静态属性放入GetStams的响应原语中。Result(+)参数表示所请求的服务已经成功运行。VDE巧Pe参数,Integer16类型,这个参数在全世界范围内唯一的标识VDE的一种类型。关于一种VDE类型的属性的讨论不在本标准范畴内。SerialNumber参数,OctectString(8位位组串)类型,在全世界范围内唯一的标识一个VDE.Status参数,ENUMERATED(枚举)类型,表示VDE的逻辑状态。允许有3种状态:READY(就绪)、NOCHANGE(无变化)和INOPERABLE(不可操作)。VDE通常处于READY状态,其他两种状态都是短暂的出现。在READY状态下,允许所有服务运行。在NOCHANGE状态下,只有不改变VDE中所定义对象属性的服务才被允许运行。在INOPERABLE状态下,用VDE表示的所有实际设备的功能都是不可操作的。ListofVAA参数,SequenceofObiectName(对象名序列)类型,标识了VDE中当前定义的VAA对象的名字。Identify参数,BOOLEAN类型,表示是否要将VDE所有的静态属性都放入GetStatus的响应原语 DL/T790.441一2040中。如果该参数被置为TRUE,则响应的VDE必须表示它所有的静态特征。以下的参数只有当GetStatus的指示原语中的Identify参数被置为TRUE时,才被包含到GetStatus的响应原语中。Resources参数,VisibleString(可见字符串)类型,描述了VDE所表示的实际配电设备的物理资源。VendorName参数,VisibleStting(可见字符串)类型,标识了这个支持VDE的系统的生产厂商。该参数的值由生产厂商确定。Model参数,VisibleString(可见字符串)类型,标识了这个支持VDE的系统所用的模型。该参数的值由生产厂商确定。VersionNumber参数,Unsigned8类型,描述了这个支持VDE的通信系统的软件的版本。该参数的值由生产厂商确定。Result(-)参数表示先前所请求的服务失败。Error劝Pe参数提供了失败的原因。Error勺)e参数在A.5中有详细的描述。6.2.4服务过程DLMS服务器通过确定那些对于创建一个有效响应为强制性的信息来完成GetStatus服务。这些信息都是直接从属于VDE对象的。6.3获取名字表服务(GetNameust)6.3.1目的DLMS客户通过使用GetNameList服务来要求DLMS服务器返回VDE范围内所定义的对象名的列表的一部分。6.3.2结构表6为GetNameList服务。石衰fiGetNameList服务GetNameList服务R闪IndReapConfArgumentMM(=)LifetimeSelectionUU(=)ObjectClassSelectionUU(=)ScopeofAccessSelectionUU(=)VAANameUU(二)ContinueAfterUU(=)Result(十)SS(二)MoreFolowsMM(=)ListofObjectNameMM(二)Result(一)SS(=)MM(=)Eno门YPeGetNameList服务定义了必须列出的对象所具有的特征。响应将包含符合要求的对象名列表(可能还带有“MoreFolows”标志)或者错误类型(如果服务失败)。6.3.3参数Argument参数传递GetNameList服务请求的特定参数。这些参数定义了不同的可选配置,可以通过生命期、类或访问域来独立地选择对象。可选参数LifetimeSelection,ENUMERATED(枚举)类型,定义了需要列举的对象的生命期。如果该参数存在,它的值必须是VDE-AND-DATA-SET.VDE-ONLY或DATA-SET-ONLY。如果选择了VDE-AND-DATA-SET,将不对生命期做限制,所以在VDE中定义的所有对象都将被列出.如果选择了VDE-ONLY,只有定义在VDE中的对象(生命期=VDE)被列出,定义在数据集中的对象则不列出. DL/T790.441一2004如果选择了DATA-SET-ONLY,只有在VDE的数据集中定义的对象(生命期=数据集)才会被列出。若不选择该参数,就等价于选择了VDE-AND-DATA-SET,即不针对对象的生命期进行选择,就等价于列出所有对象。可选参数。句ectClassSelection,ENUMERATED(枚举)类型,定义了所请求的对象所属的类。这个类为下面所列之一:ALL(对应于所有对象)、NAMED-VARIABLE(对应于有名变量对象)、NAMED-VARIABLE-LIST(对应于有名列表对象)、MESSAGE-BOX(对应于消息盒对象)、TASK-INVOCATION(对应于任务调用对象)、DATA-SET(对应于数据集对象)或VAA<对应于VAA对象)。若不选择该参数,就等价于选择了ALL.可选参数ScopeofAccessSelection,ScopeOfAccess类型,规定了将要选择的对象所应具有的访问域。它必须是VDE-specific(特定于VDE的)或VAA-specific〔特定于VAA的)。不选择该参数则表示不针对对象的访问域进行选择,即列出所有的对象。可选参数VAAName,ObjectName(对象名)类型,若存在,则表示有关的VAA-Name。当ScopeofAccessSelection参数被置成VAA-specific时,此参数有用。可选参数ContinueAfter,ObjectName(对象名)类型,若存在,则表示DIMS客户希望DLMS服务器返回的ListofObjectName参数的以其他的对象名而不是列表中的第一个对象名开始。若该参数不存在,表示返回的列表必须以第一个对象名开始。这个特性主要是用于继续一个先前的。etNameList请求,该请求的响应中的MoreFollows参数被置为TRUE。如果将这个参数的值设置成一个DIMS服务器不认识的对象名,将导致服务器返回一个错误码为OBJECT-UNDEFINED的Result(-)(负结果)。Result(+)参数表明所请求的服务已经成功运行。ListofObjectName参数,SequenceofObjectNatne(对象名序列)类型,包含了所有满足请求原语中描述的有关生命期、对象类和访问域的要求的对象名.MoreFollows参数,BOOLEAN类型,表示TRUE(真)FALSE(假)需要附加的GetNameList请求来检索更多的所请求的信息。如果是真,必须发出更多的请求。如果是假,则或者列表中最后一个对象名己经在ListofObjectName参数中,或者ListofObjectName参数为空。Result(-)参数表示了先前请求的服务己失败.ErrorType参数给出了错误原因。Error乃pe在A.5中有详细的描述。6.3.4服务过程DLMS服务器返回满足指示原语中指定的生命期、对象类和访问域参数要求的对象名列表。如果在指示原语中,ContinueChoice参数被置成FALSE,则返回对象名列表,该列表以DLMS服务器的对象列表中的第一个满足条件的对象名开始;否则,该列表将以在参数ContinueAfter值之后的第一个满足条件的对象名开始。在概念上,VDE中所有的对象名都是已排序的(只要能对所有的对象名排序,则采用何种排序标准无关紧要)。所有在参数ContinueAfter之前的包括ContinueAfter所指的对象名都被丢弃,选择过程将处理剩下的对象名以返回所需的对象名列表。6.3.5一致性GetNameList服务有特殊的一致性描述。VDE必须支持GetNameList服务的最小的形式,这个最小的形式即对该服务不带选择的请求:生命期为VDE或数据集均可,对象类为所有类型,无访问域参数(特定于、"DE或特定于VAA均可)。7数据集管理服务上文描述的虚拟配电设备的DLMS模型引入了抽象单元。本章描述数据集对象的结构和数据集管理服务。数据集可以装载或预先定义。DLMS客户可以通过服务来处理DLMS服务器中定义的数据集。7.1数据集描述 DL/T790.441一20047.1.1数据集对象数据集代表VDE的一套用于特殊目的的功能。7.1.1.1属性数据集的属性如下:对象:DataSet键属性:DataSetName属性:ScopeofAccessWDE-specific,VAA-specific)ConstraintScopeofAccess=VAA-specific属性:ExecutiveVAAName属性:ScopeMayChange(TRUE,FALSE)属性:DataSetContent属性:Loadable(TRUE,FALSE)属性:ListofTaskInvocation约束:State=LOADING属性:CurrentSegment属性:NumberofSegments约束:State-READY属性:UpLoading(TRUE,FALSE)数据集对象总是预定义的且它的生命期总是为VDE。如果VDE中存在ExecutiveVAA,则该数据集对象的访问域总是特定于VAA的,而且由VAAName属性表示ExecutiveVAA的名字。7.1.1.2描述DataSetName属性在VDE中唯一标识该数据集。ScopeofAccess属性表示该数据集当前的访问域,该访问域规定了对对象的访问,它应该是特定于VDE的或特定于VAA的。如果ScopeofAccess属性的值为VAA-specific(特定于VAA的),那么相关的VAA就被称为ExecutiveVAA(执行的VAA),该VAA的名字就在ExecutiveVAAName属性中表示。ScopeMayChange属性表示相关对象的访问域是否可以通过使用DIMS的ChangeScope服务来改变。DataSetContent属性用自然语言描述了装载映像中包含的信息,这些信息就是装载服务的主体,该信息的性质是特定于实现的。在装载阶段,数据集内容由多个段组成,以递增形式编号(从1开始)。Loadable属性定义了数据集是否可以动态地装入。ListofTaskInvocation属性标识目前正在使用数据集的TI。多个TI可能同时使用数据集,但DIMS不提供控制这种资源和变量共享的方法。State属性描述了数据集的状态。数据集可以处于以下三种状态:EMPTY(空)、LOADING(装载)和READY(就绪)。如果不可动态载装,数据集在一开始就被固定为READY状态,以后也一直处于READY状态;否则,数据集的初始状态可能是EMPTY或READY.EMPTY状态表明数据集在使用前必须被装载。READY状态表明VDE处理器可以使用数据集。LOADING状态是在装载过程中发生的中间状态。CurrentSegment属性表示了在装载序列中己经收到并处理完的段的数量。只有当数据集处于LOADING状态时,此属性才有定义。NumberofSegments属性是用于检索对于完成数据集装入所必须的、等待装入的段的数量。UpLoading属性表明是否正在执行上载。只有在数据集处于READY状态下,此属性才能定义(因此只有此时才允许上载)。19 DL/T790.441一20047.1.1.3访问如果VDE中存在ExecutiveVAA,该ExecutiveVAA则控制了对数据集对象的访问,该数据集的访问域则被定义为特定于VAA的,而这个VAA就是ExecutiveVAA。在这种情况下,只有ExecutiveVAA的DLMS客户才能发起一个装载服务。注:ExecutiveVAA还控制对T对象的访问。如果ExecutiveVAA存在,则在DLMS环境中,只有它才能成功地使用任务调用和数据集装入管理服务。7.1.2致据集的内容在VDE的作用域内定义的下列类型的对象可以被包含在数据集中:—有名变量;—有名变量列表;—消息盒。数据集中还有非DLMS对象类型的信息,如任务的可执行代码。7.1.3数据集的操作数据集上的操作包括InitiateLoad,TerminateUad,InitiateUpLoad,UpLoadSegment(段上载)、TerminateUpLoad和GetDataSetAttdbute服务。数据集管理服务允许DLMS客户端:—在DLMS服务器上发起一个装载数据集的装载序列;—执行和控制一个装载序列;—终止一个装载序列;—发起一个上传序列从DLMS服务器获得数据集;—执行和控制一个上传序列;—终止一个上传序列:—获得数据集的属性。数据集装载序列被用于从DLMS客户传递数据集内容到DLMS服务器。DLMS客户通过发出一个InitiateLoad服务请求来发起这个序列;接着,DLMS客户机发出一个或更多的LoadSegment服务请求(根据需要);最后,DLMS服务器确认这个过程的进展。7.2启动装载服务(IddateLoad)7.2.1目的DLMS客户请求InitiateLoad服务来表示DLMS服务器去装载数据集,并最终将其重新命名。7.2.2结构表7为InitiateLoad服务。表7InidateLoad服务IntiateLoad服务Req功dRespConfArgume皿MM(=)D别ta5成N山口eMM(=)NumberofSegmentsMM(二)DataSetContentsUU(二)Result(+)SS(二)ALnadyExistsMM(=)Result(一)SS(二)ErorTypeMM(二) DL/T790.441一20047.2.3参致Argument参数传递InitiateLoad服务要求的特殊参数。DataSetName参数,ObjectName类型,将要装载的数据集的新名字。NumberofSegments参数,Unsigned16类型,以段为单位表示需要装入的数据的长度。DLMS服务器通过这个值知道装入过程何时结束,由NumberofSegments参数和配套规范中定义的段的最大长度可以给出数据集大小的近似值。DatasetContent参数,VisibleString(可见字符串)类型,用自然语言描述数据集内容。Result(+)参数表明请求的InitiateLoad服务已经成功运行。AlreadyExists参数,BOOLEAN类型,表示新数据集名是(TRUE)否(FALSE)和已经存在的那个数据集的名字一样。Result(-)参数表明先前所请求的服务失败。Error勺pe参数给出失败的原因。ErrorType参数在A.5中有详细描述。7.2.4服务过程当接收到一个InitiateLoad指示原语时,DLMS服务器验证数据集的属性。遇到下列情形之一,服务失败:—相应数据集的Loadable属性没有设置成TRUE;—不满足访问限制;-State属性设为LOADING;一一保留的大小对于等待的段的数量不够大。这时返回一个标明相应错误类型的错误响应。注:访问限制继承数据集的访问域。如果访问域是特定于VAA的,且相关的ExecutiveVAA不是请求该服务的、AA.那么就不满足该访问约束。如果服务成功,数据集的状态被设为LOADING,在该数据集中的所有现存的对象都被删除,当前所有使用该数据集的TI的状态都被设为UNUSABLE(不可用),这些TI和数据集的访问域都被设为特定于VAA的,发出请求的DLMS客户的VAA就成为这里的ExecutiveVAA.7.3段装载服务(LoadSegnent)7.3.1目的DLMS客户机请求本服务在DLMS服务器上装载一个信息段。7.3.2结构表8为LoadSegment服务。表8LoadSemnent服务IndResprfLoadSegment服务R闪ArgumentMM(二)SegmentNumberMM(二)SegmentMM(=)Result(+)SS(二)CurrentSegmentMM(二)Result(一)SS(二)Error乃peMM(二) DL/T790.441一20047.3.3参数Argument参数传递LoadSegment月任务请求所需的参数。SegmentNumber参数,Unsigned16类型,表示当前请求原语中段的段号(第1个段的段号为1,后继段的段号加1递增)。在从通信失败恢复的过程中可以用到该值。Segment参数,GCTECTSTRING(8位位组串)类型,包含将被装载的数据。所有的带有递增段号的段构成了数据集。注:对于段中信息的性质,本标准不做任何假定。Result(+)参数表明请求的服务己经成功。CurrentSegment参数,Unsigned16类型,可用来检索已收到的段的数量。Result(-)参数表明先前请求的服务失败。Error乃Pe参数给出错误的原因。Error乃Pe在A.5中有详细描述。7.3.4服务过程当数据装载过程没有结束时,发出请求的DIMS客户按先前收到的LoadSegment的确认中的要求设置参数(如果该确认存在)。一旦收到一个LoadSegment指示,DLMS服务器将把参数SegmentNumber与数据集中的CurrentSegment属性相比较。如果参数SegmentNumber所指的段不是DIMS服务器所等待接收的段,DLMS服务器就返回一个带有CurrentSegment参数的负响应,该CurrentSegment参数的值被设置成DLMS服务器所成功收到的最后一个段的段号。如果参数SegmentNumber所指的段是DLMS服务器所等待接收的段,则DIMS服务器按照DataSetLoad的格式,解释所收到的Segment参数中的各比特的含义:然后用相应的格式存储它们。在成功地处理了LoadSegment的各参数后,DLMS服务器将更新数据集的CurrentSegment属性,将其值设置为DLMS服务器所成功处理的最后一个段的段号并返回一个带有这个CurrentSegment参数的成功响应。如果装入过程失败,将返回一个否定的负响应。7.4终止装载服务(TerminateLoad)7.4.1目的DLMS客户使用TerminateLoad服务来通知DLMS服务器装载序列己经结束。DLMS提供这个服务来完成装载管理状态表。7.4.2结构表9为TerminateLoad服务。表gTerminateLoad服务TerminateLoad服务R闪.一一〕一溢."Re即ConfM(=)ArgumentResult(+)MSMS(_=)NewStateResult(一)ErrorTypeMSMS(_) DL/T790.441一20047.4.3参数Argument参数传递一个NULL,表示没有参数与TerminateLoad服务一起被传送。Result(+)参数表示所请求的服务已经成功。NewState参数,ENUMERATED(枚举)类型,表示完成装载管理服务后,DLMS服务器的下一个状态。Result(-)参数表明先前请求的服务失败。Error乃pe参数给出失败的原因。Error巧pe参数在A.5有详细说明。7.呼4服务过程当收到一个TemtinateLoad服务的指示原语时,数据集跳出LOADING状态。如果段被正确装载,下一个状态是READY:如果段没有被正确装载,下一个状态是EMPTY。在这两种情况下,DLMS服务器返回一个表示了下个正确状态的正响应。如果DIMS服务器当前不在LOADING状态下,将返回一个负响应。7.5启动上载服务(InitiateUpLoad)7.5.1目的DIMS客户通过请求InitiateUpLoad服务来表示DLMS服务器上载数据集,即把它的内容(全部或部分)传送给DLMS客户。7.5.2结构表10为InitiateUpLoad服务。表10IntdateUpI,oad服务InitiateUpLoad服务ReqIIndResp广onf为gumentMDataSetNameMMc(=_)Result(十)MSMSC或NumberofSegmentsResult(一)MS<(_)ErrorTypeMS7.5.3参数Argument参数传递InitiateLoad服务要求的特殊参数。DataSetName参数,。句ectName类型,表示将要上载的现存数据集的名字。Result(+)参数表明请求的InitiateLoad服务已经成功。NumberofSegments参数,Unsigned16类型,以段为单位表示需要上载的数据的长度。DLMS服务器通过这个值知道上载过程何时结束。由NumberofSegments参数和辅助规约中定义的段的最大长度可以给出数据集大小的近似值。Result(-)参数表明先前所请求的服务失败。Error巧pe参数给出失败的原因。Error勺pe参数在A.S中有详细描述。7.5.4服务过程当收到一个InitiateUpLoad指示原语时,DLMS服务器验证数据集的属性,然后计算传送DLMS客户所要求的数据集内容所需段的数量。遇到下列情形之一,服务失败:-DataSetName参数不等于服务器中定义的数据集对象的DataSetName属性; DL/T790.441一2004—不满足访问限制;-State属性没有设为READY;—对于等待的段的数量而言,保留空间不足。这时返回一个标明相应错误类型的错误响应。注:访问限制继承数据集的访问域。如果访问域是特定于VAA的,且相关的ExecutiveVAA不是请求该服务的VAA那么就不满足该访问限制.替告:除非小心控制,否则交错进行数据集装载和上载服务可能造成上载信息的不一致.7.6段上栽服务(UpLoadSegntent)7.6.1目的DLMS客户通过请求本服务来从DLMS服务器上载一个段的信息。7.6.2结构表11为UpLOadSegment服务。表11UpLondSegntent月硬务UpLoadSegment服务Req!IndRespConfArgume址MSegmentNumberMM(C=_)s、R朋utt(+)声MS(=、夕、CurrentSegmentMMt二1M〔=尹SegmentsRes川t(一)MError劝伴MS(_))7.6.3参致Argument参数传递UpLoadSegment服务请求所需的参数。SegmentNumber参数,Unsigned16类型,表示当前请求的段的段号(第1个段的段号为1,后继段的段号加1递增)。在从通信失败恢复的过程中可以用到该值。Result(+)参数表明请求的服务已经成功。CurrentSegment参数,Unsignedl6类型,可用来检索已上载的段的数量。Segment参数,OctectString(8位字节串)类型,包含将被上载的数据。所有带有递增段号的段构成了数据集中需要上载的部分。注:对于段中信息的性质,本标准不做任何假定。Result(-)参数表明先前请求的服务失败。Error勺pe参数给出错误的原因。ErrorType在A.5中有详细描述。7.6.4月吸务过程当数据上载过程没有结束时,发出请求的DLMS客户按先前收到的UpLoadSegment的确认中的要求设置参数(如果该确认存在)。一旦收到一个UpLoaaegment指示,只要可能,DLMS服务器就发出被请求的段。如果出错,则返回一个负响应。7.7终止上载服务(1t;rminateUpLoad)7.7.1目的DLMS客户使用TerminateUpLoad服务来通知DLMS服务器上载序列已经结束。DLMS提供这个 DL/T790.441一2004服务来完成上载管理状态表。7.7.2结构表12为TerminateUpLoad服务。表12TerminateUpLoad服务TermmateUpLoad服务ReqRespCoufIndA电urnentMM又=少Result(+)S(二)S(二)Result(一)MSM(二)ErrorTy叶7.7.3参致Argument参数传递一个NULL,因为没有参数与TarminateUpLoad服务洲起被传送.Result(+)参数表示所请求的服务已经成功。Result(-)参数表明先前请求的服务失败。Error勺pe参数给出失败的原因.ErrorType参数在A.S有详细说明。7.7.4月吸务过程当收到一个TerminateUpLoad指示服务原语时,数据集跳出UPLOADING状态.如果段被正确装载,下一个状态是READY。如果DLMS服务器当前不在UPLOADING状态下,将返回一个负响应.7.8获取教据集属性服务(GetDataSetAtblbute)7.8.1目的通过GetDataSetAttribute服务来请求DLMS服务器返回相关数据集的属性。7.8.2结构表13为GetDataSetAttribute服务。裹13GetDataSetAtlribute服务 DL/T790.441一20047.8.3参数Argument参数传递GetDataSetAtribute服务所要求的特定参数。DataSetName.ObjectName(对象名)类型,传递被请求传输其属性的数据集的名字。Result(+)参数表示所请求的服务已经成功。ScopeofAccess参数,ScopeofAccess(访问域)类型,表示相关对象的访问域·它应该是特定于VDE的或特定于VAA的。如果ScopeofAccess参数的值为VAA-specific(特定于VAA的),那么相关的、VAA就被称为执行VAA(ExecutiveVAA)oScopeMayChange参数,BOOLEAN类型,定义相关对象的访问域是(TRUE)否(FALSE)可以通过使用DLMS的ChangeScope服务来改变。DataSetContent参数,VisibleString(可见字符串)类型,用自然语言描述了数据集的内容。Loadable参数,BOOLEAN类型,定义了数据集是(TRUE)否(FALSE)可以通过DLMS装入服务动态地装入。ListofTaskInvocation(任务调用列表)参数,SequenceofObjectName(对象名序列)类型,标识目前正在使用数据集的Ti.State(状态)参数,CHOICE类型,描述了数据集的状态。数据集可以处于以下三种状态:EMPTY(空)、LOADING(装载中)和READY(就绪)。CurrentSegment参数,Unsigned16类型,表示了在装载序列中已经收到并处理完的段的数量。只有当数据集处于LOADING状态时,此属性才有定义。NumberofSegments参数,Unsigned16类型,用于检索对于完成数据集装入所必须的、所有等待装入的段的数量。只有当数据集处于LOADING状态时,此属性才被定义。UpLoading属性,BOOLEAN类型,表明是否正在执行上载。只有在数据集处于READY状态下,此属性才能定义(因此只有此时才允许上载)。Result(-)参数表明先前请求的服务失败。Error巧,参数给出失败的原因。ErrorType参数在A.5有详细说明。7.8.4服务过程请求指定了数据集的名字。DLMS服务器验证数据集名是否有效:如果数据集的访问域是特定于VAA的,它还要检查在请求此服务的VAA是否是VAA-Executive(执行的VAA);如果这些检查成功,则返回在本章的开始被定义的属性;否则,返回一个负响应。8VAA管理服务8.1VAA的描述8.1.1目的在DIMS环境中,VAA对象很特殊。VAA既是一个共享访问域的对象的集合,又是唯一标识1个DLMS客户的对象。VAA对象提供的方法可以将许多VDE中定义的对象的访问域限制为某个“被允许的”DIMS客户,这样就提供了VDE中数据的安全性和保密性。对一个对象而言,除了该对象的名字总是可以通过GetNameList服务而被所有人获取外,该对象的属性值只有通过访问才能获取或改变。VAA对象的内容是VDE中所有具有特定于该VAA访问域的对象的名字的集合。正如5.2中所说的,当收到一个成功的Initiate响应原语时,一个VAA对象就被创建。该VAA被直接绑定到相关的VAA上下文,于是VAA在VDE中标识了DLMS客户。通过使用为每个DLMS对象所定义的访问域可以提供对一个对象保留的访问。如果某个对象的访问域是特定于某个VAA的,那么这个VAA的VAAName(VAA名)参数就控制着对该对象的访问。这个VAA在VDE中代表的就是那个要求通信的DLMS客户。当通过使用DLMS服务请求对一个DLMS对象进行访问时,首先检查访问域。如果访问域是特定于VAA的,就比较Name参数中的VAAName DL/T790.441一2004和代表那个DIMS请求者的VAA的名字。只有两个名字相同时,才能授权访问。基于同样的机制,VAA对象也可以通知VDE处理器的Load功能和TI。这样的VAA就被称为执行VAA(ExecutiveVAA)。在一个VDE中,最多只有一个执行VAA.8.1.2VAA设备8.1.2.1属性VAA的属性是:对象:VAA键属性:VAAName属性:ScopeofAccess(VDE-specific)属性:Executive(TRUE,FALSE)属性:Abortable(TRUE,FALSE)属性:ListofNamedVariable属性:ListofNamedVariableList属性:ListofMessageBox8.1.2.2概述VAAName属性在一个VDE中唯一标识一个VAA对象。VAA对象的访问域总是为特定于VDE的。Executive属性表示该VAA是否控制VDE处理器的装载功能和VDE中所定义的不同的任务调用。在一个VDE中,一个时刻只有一个VAA的Executive属性可以置成TRUE。所有其他VAA的Executive属性都被置成FALSE.Abortable属性表示是否可以用Abort服务来终止该VAA.注:由子Abort服务在某些时候(例如设备的内部锗误)可能是唯一重新获得对VDE控制的方法,所以在把Abortable属性设为FALSE时,必须十分谨懊。ListofNamedVariable属性包含了该VAA中有名变量对象的列表。它们都是在VDE中定义的具有特定于该VAA访问域的有名变量。ListofNamedVariableList属性包含了该VAA中有名变量表对象的列表。它们都是在VDE中定义的具有特定于该VAA访问域的有名对象列表。ListofMessageBox包含了该VAA中消息盒对象的列表。它们都是在VDE中定义的具有特定于该VAA访问域的消息盒。8.1.3VAA的操作VAA管理服务就是ChangeScope服务。在遵循保护规则的前提下,该服务允许DLMS客户改变任意一个DLMS对象的访问域。要获得一个VAA所拥有的变量的信息,可以使用条款6中描述的GetNameUst服务。8.2修改访问范围服务(ChangeScope)8.2.1目的ChangeScope服务用来改变服务原语中所指定的对象的访问范围。由于VAA对象和访问范围代表了DLMS客户对VDE中对象的控制,ChangeScope服务可以允许DLMS客户获取、解除或转移对VDE对象的控制。一个用户可以改变它本身的对象的访问范围或VDE中对象的访问范围。但是,用户不能改变不属于自己的VAA中的对象的访问范围。VDE处理器可能会增加更多的限制规则。8.2.2结构表14为ChangeScope服务。 DL/T790.441一2004表14ChangeScope服务ChmgeScope服务IndRespConfReqArgumentMM(二)NewScopeMM(=)N七WVAAUU(=)ChangedScopeObjectsUU(二)Result(+)SS(=)ListofChangeScopeResultsMM(二)SuccessSS(二)SS(=)ChangeScopeFailureResult(一)SS(=)Error巧peMM(二)8.2.3参致Argument参数传递ChangeScope服务请求所需的特定参数。NewScope参数,BOOLEAN类型,表示在请求中指定的所要的新的对象访问范围。如前面所定义的,访问域必须是特定于VDE的或特定于VAA的。如果是访问域特定于VAA的,当目的VAA的名字不是发出请求的用户的VAA名时,必须在NewVAA参数中提供这个新的VAA的名字:否则并不强制要求提供目的VAA的名字。可选参数ChangedScopeObjects,如果存在,包含了需要改变访问域的对象的列表。如果这个列表中包括数据集的名字或一个或多个任务调用或者该列表不存在,则需要修改ExecutiveVAA.Result(+)参数表示了所请求的服务是否成功。LsitofChangeScopeResult参数包含了对每个对象进行域改变操作的结果,并且以请求原语中ChangeScopeObjects参数所指定的顺序排列。列表中,每个单元都表示该对象的域改变操作是否成功(通过Success参数)或改变该对象域操作失败的原因(在ChangeScopeFailure参数中)。如果请求中不存在ChangeScope。句ects参数(表示只请求改变ExecutiveVAA),那么ListofChange将只含有一个单元,该单元给出改变ExecutiveVAA操作的结果。Result(-)参数,ServiceError(服务错误)类型,表示先前请求的服务失败。8.2.4服务过程一旦收到了一个ChangeScope请求原语,就对该DLMS客户的VAA名进行识别。对在ChangedScope。句ects参数中所提交的每个对象名,DLMS服务器都检查对访问域进行改变操作的合法性并尝试改变该对象的访问域。如果ChangedScopeObjects参数不存在,或它包含数据集的名字,或它包含任务调用的名字,则DLMS服务器要检查对ExecutiveVAA改变操作的合法性。如果检查成功,将逐个改变VDE中所有数据集和任务调用对象的访问域。对于每个对象,VDE都要返回一个试图改变该对象访问域操作的结果,并且该结果需按请求原语中ChangedScopeObjects参数所指定的顺序排列。注:当存在数据集和任务调用时,它们必须有相同的访问域。9任务调用(TI)管理服务9.1任务调用的描述TT是一个与在多任务环境下将一个程序放入执行队列关联最紧密的元素。TI与包含即将执行的代码的任务和相关的变量有关。TI包含了在VDE中启动一个相应的任务的所有必须的信息。在DLMS中,TT是在VDE作用域内预定义的对象之一。相应的任务本身可以在数据集内装入。 DL/T790.441一2004关于任务更多的细节可在配套规范中查找。9.1.1n对象9.1.1.,属性n的属性:对象:TI键属性:TIName属性:ScopeofAccessWDE-specific,VAA-specific)ConstraintScopeofAccess=VAA-specific属性:ExecutiveVAAName属性:ScopeMayChange(TRUE,FALSE)属性:RemoteControl(TRUE,FALSE)属性:State(UNUSABLE,RUNNIGN,STOPPED)TI对象总是在VDE中预定义。如果VDE中存在执行VAA,则TI对象的访问域总是特定于VAA的,并且VAAName属性表示执行了的VAA名字。9.1.1.2描述TIName属性在VDE中唯一地标识该TI.ScopeofAccess属性表示该TI当前的访问范围。该访问范围规定了对对象的访问。它必须是特定于VDE的或特定于VAA的。如果VDE中存在ExecutiveVAA,则所有TI对象的访问域总是特定于VAA的,并且ExecutiveVAA属性表示了相应的VAA的名字。只有对应于该VAA的DLMS客户才能通过DLMS服务操纵TI对象。ScopeMayChange属性表示相关对象的访问域是否可以通过使用DLMS的ChangeScope服务来改变。RemoteControl属性表示是否可以通过远程控制来设置TI。如果该属性为FALSE,则不能通过使用DLMS的服务修改TI的状态。如果该属性为TRUE,客户可以通过DLMS的服务来改变Tl的状态(如果所有其它的条件,例如与ScopeofAccess和ExecutiveVAA有关的条件,都被满足)。在以上两种情况下,都可以通过一个本地操作来改变,TI的状态。RemoteControl属性本身的值也可以通过本地操作来改变。State属性表示了T1所处的状态。共定义了3种状态:STOPPED(停止)、RUNNING(运行中)和UNUSABLE(不可用)。在第一次使用71前,State属性被置为STOPPED。在成功的启动或恢复,TI后,State属性变成RUNNING。在UNUSABLE状态下,不能启动、中止或恢复该TI,在STOPPED和RUNNING状态之间和来自UNUSABLE状态的转移通过使用DLMS服务主动触发。可能由一个本地操作转移到UNUSABLE状态(如一个任务异常退出commitsuicide自杀)或使用DLMS服务间接引起的:—任务管理服务(Start,Stop,Resume)中的不可恢复的错误;—成功执行了InitiateLoad服务。9.1.2TI上的操作通过5种服务来远程控制n:-Start:客户可以使用此服务来引起一个先前定义的TI通过复位相应的任务而由STOPPED状态转移到RUNNING状态。-Stop:客户可以使用此服务使处于RUNNING状态的T1转移到STOPPED状态。-Resume:客户可以使用此服务便处于STOPPED状态的T1转移到RUNNING状态,但不复位相应的任务。-MakeUsable:客户可以使用此服务使处于UNUSABLE状态的TI转移到STOPPED状态。 DL/T790.441一2004-CetTIAttribute:获取TI当前的属性。9.2开始服务(Start)9.2.1目的Start服务允许DLMS客户将一个TI的状态变成RUNNING状态。只有当,TI处于STOPPED状态时,此服务才有效。在开始之前,任务被复位。9.2.2结构表15为Start服务。表15Start服务Start月民务ReqIndRespConfArgumentMM(=)TINameMM(=)MoreDetailsUU(二)Result(+)SS(二)Result(一)SS(=)ErortypeMM(=)StateCC(二)9.2.3参致Argument参数传递Start服务请求所需的参数。TIName参数,ObjectName(对象名)类型,表示将要启动的TI的名字。可选参数MoreDetails.BitString(位串)类型,包含启动TI所需的附加信息。Result(+)参数表明请求的服务已经成功。成功之后,TI就处于RUNNING状态。成功的返回中无其他参数。Result(-)参数表明先前请求的服务失败。ErrorType参数给出错误的原因。Error勺pe在A.5中有详细描述。State参数,ENUMERATED(枚举)类型,表示发出错误响应后71的实际状态。9.2.4服务过程使用Start服务必须依赖于参数的外部定义。DLMS客户必须用TIName参数来识别它将要启动的n。遇到以下情况时将返回出错响应:—对象名不存在;—状态属性被置为UNUSABLE或RUNNING;—不满足访问限制。访问限制继承TI的访问域。如果访问域是特定于VAA的,且相关的执行VAA不是请求该服务的VAA,那么就不满足该访问限制。在启动TI时,如果遇到不可恢复的错误,TI就进入UNUSABLE状态并发出一个否定出错响应。否则,TI被复位,它的状态变成RUNNING,所有存在的参数都被传给该任务。如果该TI使用数据集对象,那么该TI的名字就被加入到该数据集的ListofTI属性,DLMS服务器将返回一个正响应。9.3停止服务(Stop)9.3.1目的Stop服务允许客户使DLMS服务器上的一个有名11从RUNNING状态转移到STOPPED状态。9.3.2结构表16为Stop服务。30 DL/T790.441一2004表16Stop服务Stop服务ReqIndRespConfArgumentTINameMM(_)Result(+)SS(二)Result(一)SS(二)F.frorTypeMM(二)Statecc(二)9.3.3参救Argument参数传递Stop服务请求所需的参数。TIName参数,ObjectName(对象名)类型,表示将要中止的TI的名字。Result(+)参数表明请求的服务己经成功。成功之后,TI就处于STOPPED状态。成功的返回中无其他的参数。Result(-)参数表明先前请求的服务失败。ErrorType参数给出错误的原因。ErrorType在A.5中有详细描述。State参数,ENUMERATED(枚举)类型,表示发出错误响应后TI的实际状态。9.3.4服务过程一旦收到Stop服务指示,DIMS服务器将使有名TI从RUNNING状态中跳出。DLMS客户必须用TIName参数来识别它将要启动的TI.遇到以下情况时将返回出错响应:—对象名不存在;一状态属性被置为UNUSABLE或RUNNING:—不满足访问限制。访问限制继承TI的访问域。如果访问域是特定于VAA的,且相关的ExecutiveVAA不是请求该服务的VAA,那么就不满足该访问限制。在中止TI时,如果遇到不可恢复的错误,TI就进入UNUSABLE状态并发出一个出错响应。否则,该有名TI将处于STOPPED状态。如果该TI使用过数据集对象,那么该TI的名字将从该数据集的ListofTI属性中被删除。DIMS服务器将返回一个正响应。9.4恢复服务(Resume)9.4.1目的Resume服务允许DLMS客户将一个有名TI的状态变成RUNNING状态。只有当TI处于STOPPED状态时,此服务才有效。在该TI进入RUNNING状态之前,不进行复位。9.4.2结构表17为Resume服务。表17Resu口e服务F:esum已服务R闪IndReapCodArgumentnNa庄巴MM(_)Result(+)SS(二)Result(一)SS(二)Error勺PCMM(=)StateCC(=) DL/T790.441一20049.4.3参致Argument参数传递Resume服务请求所需的参数。TIName参数,ObjectName(对象名)类型,表示将要恢复的TT的名字。可选参数MoreDetails,BitString(比特申)类型,包含启动TI所需的附加信息。Result(+)参数表明请求的服务已经成功。成功之后,TT就处于RUNNING状态。成功的返回中无其他参数。Result(-)参数表明先前请求的服务失败。Error勺pe参数给出错误的原因。ErrorType在A.5中有详细描述。State参数,ENUMERATED(枚举)类型,表示发出出错响应后TT的实际状态。9.4.4服务过程DIMS客户必须用TTName参数来识别它将要启动的TT,遇到以下情况时将返回出错响应:—对象名不存在;—状态属性被置为UNUSABLE或RUNNING;—不满足访问限制。访问限制继承TT的访问域。如果访问域是特定于VAA的,且相关的ExecutiveVAA不是请求该服务的VAA,那么就不满足该访问限制。在恢复TI时,如果遇到不可恢复的错误,TT就进入UNUSABLE状态并发出一个错误响应。否则,该TI不复位并变成RUNNING状态。如果该TT使用数据集对象,那么该TI的名字将加入到该数据集的Listof71属性中。DLMS服务器将返回一个肯定响应。9.5使可用服务(MakeUsable)9.5.1目的Resume服务允许DLMS客户端将一个有名TI的状态变成STOPPED状态。只有当TT处于UNUSABLE状态时,此服务才有效。本服务用于完成状态转移表。9.5.2结构表18为MakeUsable服务。表18MakeUsable服务MakeUsable服务ReqIndRespConfM(二)ArgumentMnNa庄出M(=)sS(=)Result(十sS(二)Result(一)MM(=)ErrorI扮声CC(二)5妞比9.5.3参致Argument参数传递MakeUsable服务请求所需的参数。TIName参数,。句ectName(对象名)类型,表示将要变为可用的TI的名字。Result(+)参数表明请求的服务已经成功。成功之后,TI就处于STOPPED状态。成功的返回中无其他的参数。Result(一)参数表明先前请求的服务失败。ErrorType参数给出错误的原因。Eror勺pe在A.5中有详细描述。32 DL/T790.441一2004State参数,ENUMERATED(枚举)类型,表示发出出错响应后TI的实际状态。9.5.4服务过程DLMS客户必须用TIName参数来识别它将要成为可用的TI.遇到以下情况时将返回出错响应:—对象名不存在:—状态属性被置为STOPPED或RUNNING;—不满足访问限制。访问限制继承TI的访问域。如果访问域是特定于VAA的,且相关的ExecutiveVAA不是请求该服务的VAA,那么就不满足该访问限制.在使TI变为可用时,如果遇到错误,TI将停留在UNUSABLE状态并发出一个出错响应。否则,该TI将变为可用且它的状态变成STOPPED,DIMS服务器将返回一个肯定响应。9.6获取TI属性服务(GefIAttdbute)9.6.1目的通过GetTIAttribnte服务请求DIMS服务器返回与指定TI有关的所有属性。9.6.2结构表19为GetTIAttribute服务。表19GetTIAtMbute服务GetTlAttdbute服务R叫IndR创甲ConfArgumentMnNameMM(<_)Result(+)SS(=)ScopeofAccessM、M(=)ScopeMayChangeMM(二)RemoteControlMM(=)S加妞MM(二)Result(一)SS(二)EforTypeMM(=)9.6.3参致Argument参数传递GetTIAttribute服务请求所需的参数。TIName参数,。句ectName(对象名)类型,表示被请求返回属性的TI的名字。Result(+)参数表明请求的服务己经成功。ScopeofAccess参数,ScopeofAccess类型,表示相关对象的访问域。它必须是特定于VDE的或特定于VAA的。如果&copeofAccess参数包含了特定于VAA的值,则相关的VAA对象就是ExecutiveVAA.ScopeMayChange参数,BOOLEAN类型,表示相关对象的访问域是(TRUE)否(FALSE)可以通过使用DIMS的ChangeScope服务来改变。RemoteControl参数,BOOLEAN类型,用是(TRUE)或否(FALSE)表示是否可以通过远程控制来设置n。State参数,ENUMERATED(枚举)类型,表示了TI所处的状态。共定义了3种状态:STOPPED(停止)、RUNNING(运行中)和UNUSABLE(不可用)。在第一次使用TI前,State属性被置为STOPPED。在成功的启动或恢复TI后,State属性变成RUNNING。在UNUSABLE状态下,不能启动、中止或恢复该TI. DLIT790441一2004Re‘1[卜)参数表明先前请求的服务失败。E的1升pe参数给出错误的原因。ErTor竹pe在A.5中有详细描述.9.6.4服务过程请求标识了Tl的名字。DLMS服务器检查Tl的名字是否合法:如果该n的访问域是特定于勺再A的,DLMS服务器还将检查请求该服务的VAA是否是执行vAA。如果检查成功,将返回如上定义的属性‘否则,将返回一个否定响应。10变里访问服务变量访问服务允许DLMS客户访问VDE中定义的有类型的变量。通过在这些对象操作上的3种附加对象和4种服务来扩展VDE模型,以此来提供变量访问服务。10.1变t模型描述变量是vDE中的抽象元素,它能提供(读时)或接受(写时)某一类型的数据值。“数据类型气或简单称之为“类型’,,是数据类的抽象描述,本描述可以通过变量的值传递。变量的类型决定它的抽象语法、它的可能取值范围和当使用DLMS通信时的表示。ID.了.了变行访问模型本子条款描述被称为DLMS变量的虚拟对象和被称为实际变量的实际(实际存在的)对象间的映射关系。一个允许通过使用DLMS变量访问服务来访问它的一个或多个实际变量的VDE处理器必须提供它所允许访问的实际变量与一个或多个DLMS变量访问对象间的映射。这种映射属于具体实现问题,在此不再讨论。DLMS定义了3种变量访问对象:—有名变量对象:—消息盒对象;—有名变量表对象。伯.了了1有名变量DLMS定义了1种对象来表述1个DLMS变量和VDE中1个实际变量间的映射,这就是有名变量对象。有名变量所代表的抽象意义从VDE中实际变t的应用观点进行了建模。有名变量对象描述了通过使用一个由应用决定的名字来对实际变量的访问。一个有名变量对象可以用来描述一个与应用有关的数据元素,该数据元素可以通过使用单个名字的单步操作来访问。10.1.1.2其他变呈对象消息盒对象作为一个特殊的有名变量对象在DLMS中定义,它建模单个输入和单个输出队列。有名变量列表对象被作为有名变量对象的显式集合而被定义。10.1.1‘3对实际变旦的访问DLMS中没有定义有名变量对象如何与实际变量映射,这种映射只需要保证使用有名变量对象对实际变量进行访问时,或成功或失败,不能报告部分成功。另外,VDE应该保证对DLMS变量的访问是不可中断的。换言之,读操作所返回的值应该是一致的,且所指的是逻辑上一个单独时刻的值。注卜推荐实际变量具有且仅有1个到DLMS变量对象的映射。注ZDLMs变量对象不能被创建或删除,它在vDE或数据集内定义。DLM舀对象的生命期在Lifetime<生命期〕参数中表示.ID.1.14访问域如同所有的DLMs对象,对有名变量和消息盒或有名变量列表对象的访问都是受它们访问域的限制。如果访问域是特定于VDE的,就可以自由访问。但访问域特定于vAA时,访问受该VAA的限制,若要访问必须满足这种特定于VAA的访问限制。34 DL/T790.441一2004若要成功访问一个有名变量列表对象,必须满足:—该有名变量列表对象的访问域;—该列表中每个有名变量对象成员的访问域。在列表中元素的层次上报告访问是否成功。对一个有名变量列表对象的访问等价于对该列表中每个有名变量对象成员的访问。10.1.2有名变f对象有名变量对象描述了1个DLMS变量和VDE中一个实际应用中定义的变量之间的映射关系。10.1.2.1属性有名变量对象的属性如下所述:对象:NamedVariable键属性:VariableName属性:ScopeofAccess(VDE-specific,VAA-specific)constraintScopeofAccess=VAA-specific属性:VAAName属性:ScopeMayChange(TRUE,FALSE)属性:LifeTime(VDE,DATA-SET)属性:勺peDescription属性:Read-WriteFlag(READ-ONLY,READ-WRITE)属性:Available(TRUE,FALSE)10.1.2.2描述VariableName属性在VDE中唯一标识一个有名变量对象。VariableName是DLMS对象的名字并定义有特定的访问域。ScopeofAccess属性表示了指定对象的当前访问域。该访问域规定了对该有名变量对象的访问。它必须是特定于VDE的或特定于VAA的。如果ScopeofAccess参数包含了特定于VAA的值,则相关的VAA对象就是ExecutiveVAA.ScopeMayChange属性表示相关对象的访问域是(TRUE)否(FALSE)可以通过使用DLMS的ChangeScope服务来改变。Lifetime属性表示所描述的对象的生命期是VDE还是DATA-SET.Lifetime属性被设置为DATA-SET表示该对象是在数据集中定义的。勺peDescription属性在使用DLMS服务查看时,表示底层实际变量的抽象类型。它应该表示变量中简单数据元素的类(8位整数、浮点数等)和数据的取值范围。如果访问需要,还可表示对数据元素的分组(数组或结构)。一个变量的类型描述和访问方法应该提供足够的信息给VDE以确定底层每个实际元素的值。Read-WriteFlag(读写标志)属性表示该有名变量对象的读写权限是READ-WRITE还是READ-ONLY。注意有名变量对象总是可读的。Available(可用)属性表示考虑了物理访问和硬件资源后底层的实际资源是否可用。Available属性和它的管理是依赖于实现的。对一个Available属性置为FALSE的有名变量对象的访问将返回一个INVALIDATED数据访问错误消息。10.1.2.3有名变f对象的操作DLMS提供了5种服务来操作有名变量对象:-Read:此服务获取该有名变量对象所描述的实际变量的当前值;-Write:此服务代替该有名变量对象所描述的实际变量的当前值;-UnconfumedWrite:此非确认的服务代替该有名变量对象所描述的实际变量的当前值: DL/T790.441一2004-InfonnationReport:此主动提供的服务报告该有名变量对象所描述的实际变量的当前值;一一一GetVariableAttribute:此需确认的服务获取一个或多个变量的当前属性。10.1.3消息盒对象消息盒对象是一种可以存储VDE中消息的特殊的DLMS有名变量对象。它提供了在DLMS用户间传输任何无DLMS意义数据的能力。消息盒对象包含了一个先进先出(FIFO)的队列和与该队列有关的信息。该队列的读写标志定义了该队列可读或可写。VDE处理器如何在该队列中读或写消息不在本规约的范畴之内。通过使用DLMS变量访问服务来读写消息盒对象。10.1.3.1属性消息盒对象的属性如下所述:对象:MessageBox键属性:MessageBoxName属性:ScopeofAccess(VDE-specific,VAA-specific)constraintScopeofAccess=VAA-specific属性:VAAName属性:ScopeMayChange(TRUE,FALSE)属性:LifeTime(VDE,DATA-SET)属性:Read-WriteFlag(READ-ONLY,READ-WRITE)属性:Available(TRUE,FALSE)10.1.3.2描述MessageBoxName属性唯一的标识一个有名变量对象。消息盒是DLMS对象的名字并定义有特定的访问域。ScopeofAccess属性表示了指定对象的当前访问域。该访问域规定了对该消息盒对象的访问。它必须是特定于VDE的或特定于VAA的。如果ScopeofAccess参数包含了特定于VAA的值,则相关的VAA对象就是ExecutiveVAA.ScopeMayChange属性表示相关对象的访问域是否可以通过使用DLMS的ChangeScope服务来改变。Lifetime属性表示所描述的对象的生命期是VDE还是DATA-SET.Lifetime属性被设置为DATA-SET表示该对象是在数据集中定义的。Read-WriteFlag属性表示该消息盒对象的读写权限是READ-WRITE还是READ-ONLY。注意总可以读消息盒对象。Available属性表示考虑了物理访问和硬件资源后底层的实际资源是否可用。Available属性和它的管理是依赖于实现的。对一个Available属性置为FALSE的消息盒对象的访问将返回一个INVALIDATED数据访问错误消息.10.1.3.3消息盒类型消息盒是一种有预定义结构和语义的有名变量对象:它由两个FIFO队列组成,一个用来读,一个用来写。它的类型是固定的,其描述如下所述:MessageBox_type::=SEQUENCE{queueOCTECI"STRINGnumber_o仁messagesUnsigned8,availablelengthUnsigned16}队列(queue)域总是包含通过使用DIMS变公访问服务而将要传输的最后一条消息。如果写了一36 DL/T790.441一2004条新的消息,VDE处理器将确保一种FIFO机制来对客户隐藏旧的消息。由于是双队列,这个域在读写操作时有不同的含义:它包含当前正在读或写的消息。VDE处理器应该提供一种FIFO机制来将已经写的消息放入队列或弹出一条新的消息来读取。队列管理不在本规约的范畴之内。number_of_message域包含了Read队列中(将被客户读取)的消息的数目,availablelength域以字节为单位表示了Write队列(用户可以写)的可用空间。10.1.3.4消息盒对象的操作DLMS提供了5种服务来操作消息盒对象:-Read:此服务获取消息盒类型中所描述的Read队列的第一个值,及该队列中消息的数目(包括那个被读取的),所剩的可以用来写入的长度。习惯上,值0表示当前消息无意义(这个特性可以在任何时候用来获取availablelength参数);-Write:此服务将一个新的值加入到消息盒对象的Write队列中。DLMS请求中虽然有number-of-message和availablelength的值,但被忽略。它们直接被VDE处理器所更新。-UnconfirmedWrite:此非确认的服务将一个新的值加入到消息盒对象的队列中;DLMS请求中虽然有number-of_message和availablelength的值,但被忽略。它们直接被VDE处理器所更新。-InformationReport:此主动提供的服务报告消息盒类型中所描述的Read队列的第一个值,及该队列中消息的数目、所剩的可以用来写入的长度。一一一GetVariableAttributc:此需确认的服务获取一个或多个变量的当前属性。10.1.4有名变f列表对象有名变量列表对象被作为以一个唯一的对象来引用一列独立的DLMS有名变量的简便方法而被提出。列表中的每个元素都必须是一个有名变量对象。对该列表中单个元素的访问受限于对相应的有名变量对象的访问。使用有名变量列表对象的访问将报告对该列表所引用的每个对象的访问是否成功或失败。使用有名变量列表对象进行访问类同于独立地对该列表所引用的变量对象进行访问。10.1.4.1属性有名变量列表对象的属性如下所述:对象:NamedVariableList键属性:VariableListName属性:ScopeofAccess(VDE-specific,VAA-specific)constraintScopeofAccess=VAA-specific属性:VAAName属性:ScopeMayChange(TRUE,FALSE)属性:LifeTime(VDE,DATA-SET)属性:ListofNamedVariable10.1.4.2描述VariableListName属性唯一的标识一个有名变量列表对象。1个变量列表名是1个DLMS对象并定义有特定的访问域。ScopeOfAccess属性表示了指定对象的当前访问域,该访问域规定了对该有名变量列表对象的访问,它必须是特定于VDE的或特定于VAA的。如果ScopeofAccess参数包含了特定于VAA的值,则相关的VAA对象就是ExecutiveVAA.ScopeMayChange属性表示相关对象的访问域是否可以通过使用DLMS的ChangeScope服务来改变。Lifetime属性表示所描述的对象的生命期是VDE还是DATA-SET.Lifetime属性被设置为DATA-SET表示该对象是在数据集中定义的。ListofNamedVariable属性提供了一个或多个有名变量对象的列表。 DL/T790.441一20010.1.4.3有名变IK列表的操作DLMS提供了5种服务来操作有名变量列表对象:-Read:此服务获取该有名变量列表对象中有名变量对象所描述的实际变量的当前值;-Write:此服务代替该有名变量列表对象中有名变量对象所描述的实际变量的当前值:-UnconfirmedWrite:此非确认的服务代替该有名变量列表对象中有名变量对象所描述的实际变量的当前值,-InformationReport:此主动提供的服务报告该有名变量列表对象中有名变量对象所描述的实际变量的当前值;一一~GetVariableAttribute:此需确认的服务获取一个或多个变量的当前属性。10.2类型的规范所有的DLMS变量都有类型定义。如同在有名变量对象的勿pe属性中包含的那样,一个变量的类型描述提供了抽象语法的规约和变量的取值范围,同时为所指定的细节访问提供了基础。变量类型可能是表示访问一个数据单元的简单类型,也可能是表示访问一组相关的简单类型变量的复合类型。从变量的名字和它的类型描述,VDE能够定位实际变量中的每个数据单元。10.2.1类型参数‘勺peDwMpdon)10.2.1.1目的在各种变量访问服务中,变量的类型通过乃peDescription(类型描述)参数表示。该参数的结构如表20所描述。10.2.1.2结构表20TypeDescription参致r-」}勺peDescriptionMKindofTpesArrayMNumberofTile团CutsMTypeDescriptionsSUvc奴肚eMListof勺peDescriptionsSimpleM口ass可以看出,类型是用一个递归说明的参数来描述的。这个参数描述了一个分支树,称为类型树。这棵树的叶子是该类型所描述的变量中的简单数据元素。如果该类型描述的是一个复合变量,则该类型树将有一个或多个非叶节点,它们代表了由类型树的子节点所代表的复合类型所构成的类型。10.2.1.3参数Kindof乃Pe参数,CHOICE类型,表示了使用何种选择来描述类型树上的该节点,这个参数的可能值是:ARRAY(数组)、STRUCTURE(结构)或SMIPLE(简单类型)。Array参数在勺peDescription参数的选择为ARRAY时被选中。它表示被描述的节点是由一个有序序列组成的复合类型,该序列的元素都是同一个类型。第一个元素被标记为0>NumberofElements参数,Unsigned8类型,表示数组中元素的数目。TypeDescription参数通过递归的引用勺peDescription参数来说明数组元素的类型。Structure参数在TypeDescription参数的选择为STRUCTURE时被选中。它表示被描述的节点是由一个具有一个或多个组件的有序的列表所构成,这些组件可以各自有不同的类型。结构中的组件是有序的,并且第一个组件被标记为。。Listof勺peDescriptio。参数以类型的方式(choice类型中可能的类型)描述了结构中的组件.它递归地引用了TypeDescription.38 DL/T790.441一2004Simple参数在TypeDescription参数为SIMPLE时被选中。它表明正在描述类型树的一个叶节点。这样的节点包含了该节点所代表的数据的类。Class参数表示了该叶节点所代表的数据元素的类。该参数的值可以从以下选取:BOOLEAN,INTEGER,LONG,DOUBLE-LONG,UNSIGNED,LONG-UNSIGNED,DOUBLE-LONG-UNSIGNED,BIT-STRING,OCTECT-STRING,VISIBLE-STRING,FLOATING-POINT,T&M或BCD。可能的Class参数的值与GB/T16262-1996完全兼容。10.2.2细节访问参数(DetafedAccess)10.2.2.1目的变量的类型描述了抽象的语法和VDE中实际变量的可能取值范围。细节访问描述刻画了该类型变量的详细的视图,它可以将访问限制在变量可能取值范围的一个子集中。对一个变量的细节访问提供了从所引用的对象提供的视图到完成访问所需要的视图之间的映射,这产生一个到实际变量的间接映射。在各种的变量访问服务中,细节访问由DetailedAccess参数的出现来表示。对DetailedAccess参数的描述建立在它与1个DIMS变量类型间的关系的基础上。由这种描述,DetailedAccess参数和变量对象提供的映射之间的关系就可以被描述出来。10.2.2.2结构表21为DetailedAccess参数。表21DetailedAccess参数亡retailedAccessr月}MListofSubelementsDetailedAccessSelectedMAccessSelectionsComponentsIndexsIndexRangeStartIndexMNumberofIndexMDetailedAccessMAccessSelectedsComponentsindexsIndexRangesStartTndrsMNumberofIndexM10.2.2.3参数ListofSubelement参数表示一个含有一个或多个Subelement(子元素)参数的列表。每个Subelement参数都选择了在类型树的深一层嵌套中的一个节点(对于数组,则是一个范围内的节点)。这个Subelement可以用来表示细节访问的附加信息或用来说明对所选节点代表的数据元素的访问。如果ListofSubelement参数包含的元素不止一个,由此参数导出的类型是一个结构。该导出类型的组件所具有的类型由该列表中的子元素所确定。当ListofSubelement参数只含有一个元素时,由该参数导出的类型由所指定的子元素确定。DetailedAccessSelected参数表示了类型树的深一层嵌套中的一个子树被选中来进行递归的细节访问。AccessSelection参数,CHOICE类型,表示选中了何种访问方式。可能的值为COMPONENT.MDEX或INDEX-RANGE。若为COMPONENT,则选中由Component参数所标识的该结构的一个单个的组件。39 DL/T790.441一20I04若为INDEX,则选中由Index参数所标识的一个单个的数组元素。若为INDEX-RANGE,则选中由IndexRange所表示的一列元素。Component参数,Unsigned8类型,当类型树的当前节点表示为一个结构且AccessSelection参数表示为COMPONENT时被选中。在选中的类型树的节点上对DetailedAccess参数的使用将决定用ComponentSelection参数导出的类型。如果DetailedAccessSelected参数被选中,那么该组件必定是一个数组或一个结构。Index参数,Unsigned8类型,当类型树的当前节点表示为一个数组且AccessSelection参数表示为INDEX时被选中。它选中了一个范围内的数组元素。如果DetailedAccessSelected参数被选中,则数组中指定元素本身就是一个数组或结构。在选中的类型树的节点上对DetailedAccess参数的使用将决定用ComponentSelection参数导出的类型。IndexRange参数,当类型树的当前节点表示为一个数组且AccessSelection参数表示为INDEX-RANGE时被选中。它选中一个范围内的数组元素。如果DetailedAccessSelected参数被选中,则数组中指定元素本身就是一个数组或结构。在选中的类型树的节点上对DetailedAccess参数的使用将决定用ComponentSelection参数导出的类型。NumberofIndex参数,Unsigned8类型,表示了在导出的数组所包含的元素的数目,包括了由StartIndex参数所选中的元素。如果该参数的值是0,则数组中所有在StartIndex参数值之后的元素都被选中。DetailedAccess参数表示了对选中节点附加的细节访问说明。AccessSelected参数,CHOICE类型,表示了类型树的深一层嵌套中的被选中访问的一个子树。如同AccessSelection参数,该参数的可能值为COMPONENT.INDEX或INDEX-RANGEoAccessSelected参数中的参数和DetailedAccessSelected参数中的参数描述相同,请参考以上的描述。10.2.2.4一致性VDE中所支持的细节访问的层次依赖于ConformanceBlock中DetailedAccess描述符的2个位的值。DetailedAccess描述值在6.1中有详细描述。10.3数据值的规范通过DLMS变量访问服务来获取或更新一个或多个由有名变量或有名变量列表对象所引用的DLMS变量的值,这些值通过Data参数来传递。访问错误由DataAccessError参数来说明。10.3.1数据参数(Data)10.3.1.1目的Read,Write,UnconfrrmedWrite和InformationReport服务使用Data参数来传递一个变量的值。10.3.1.2结构表22为Data参数。表22Data参数Datar间rMKindofDatas冉myMListofDatasStructureMListofDa扭sSimpleMr】aa.MVsluesCompactArrayMContentsDescriptionMArayContents DL/T790.441一2004如表22中所示,Data参数是递归定义的,它确定了一棵分支树。这棵树的每个节点都和类型树的某个节点或对类型树的某个节点进行细节访问而得到的导出类型树之间存在着一对一的对应关系。10.3.1.3参数KindofData参数是CHOICE类型,标识了当前节点中所含数据的类型。该参数可能的值是:ARRAY(数组)、STRUCTURE(结构)、SIMPLE(简单类型)或COMPACT-ARRAY(紧凑数组)。Array参数在KindofData参数为ARRAY时被选中。它提供了Data参数的有序列表。该列表中的每个元素都提供了数组中相应元素的值。ListofData参数表示了选中节点附加的数据说明。Structure参数在KindofData参数为STRUCTURE时被选中。它提供了Data参数的有序列表,列表中的每个元素都可能有不同的类型。该列表中的每个元素都提供了结构中相应元素的值。ListofData参数表示了选中节点附加的数据说明。Simple参数在KindofData参数为SIMPLE时被选中。它表明正在描述数据树的一个叶节点。这种节点包含了变t中简单数据元素的类型和它的值。Class参数表示了叶节点所代表的堆据元素的类。该参数的值可以是:BOOLEAN,INTEGER,LONG、DOUBLE-LONGUNSIGNED、甲哪娜SIGNED、STRING,VISIBLE-STRIP、FLOATING-POINT,们叫田或BCD.Value参数包含Class参数所指类型的简单数据元素的实际值。CompactArray参数在KindofData参数为COMPACT-ARRAY时被选中。它包含对某种DIMS类型的和由相同类型的数据元素所组成的数据的描述。ContentsDescription参数,乃peDescription(类型描述)类型,给出每个数据元素的类型。ArrayContents参数,OCTECT-STRING(8位字节申)类型,包含了由ContentsDescription参数所导出的所有紧凑格式的数据元素。10.3.2致据访问出错参数(DataAccessError)DataAccessError(数据访问错误)参数,ENUMERATED(枚举)类型,指出试图访问一个变量时发生错误的原因。该参数的可能取值为:SCOPE-OF-ACCESS-VIOLATED,OBJECT-UNAVAILABLE,HARDWARE-FAULT,TEMPORARY-FAILURE,OBJECT-UNDEFINED,OBJECT-CLASS-INCONbts"rt:NT,TYPE-UNMATCHED或READ-WRITE-DENIED.SCOPE-OF-ACCESS-VIOLATED表示试图访问一个变量出错,该访问超出了该变量的访问范围。OBJECT-UNAVAILABLE表示试图访问一个当前无效的变量。HARDWARE-FAULT表示硬件上一个长时间的物理出错。TEMPORARY-FAILURE表示硬件上一个暂时的物理出错。OBJECT-UNDEFINED表示该对象在VDE中没有定义。OBJECT-CLASS-INCONSISTENT表示对象的类与所请求的服务不兼容。TYPE-UNMATCHED表示试图用与该变量的类型不兼容的类型来访问该变量。READ-WRITE-DENIED表示变量的Read-Write标志与所请求的服务不兼容。10.3.3变f访问规范参数(VariableAccessSpecification)10.3.3.1目的本子条款说明了对一个变量进行访问的参数,它描述了变量访问服务用来指出实际变量的参数。10.3.3.2结构表23为、lariableAccessSpecification参数。 DL/T790.441一2004表23VariableAccessSpecification参数C0deVariableAccessSpecificationMKindofAccesssV葫ableNamesDetailedVariableMVariableNameMDetailedAccess10.3.3.3参数KindofAccess参数,CHOICE类型,指出访问是以变量名进行还是进行变量的细节访问。该参数可能的值是:VARIABLE-NAME或DETAILED-ACCESS-VariableName参数,ObjectName(对象名)类型,当访问类型是VARIABLE-NAME被选中。它在VDE中唯一的标识了将要访问的有名变量或有名变量列表对象。DetailedVariable参数在KindofAccess参数被设置为DETAILED-ACCESS时被选中,它表示了将要进行细节访问的变量。在这种情况下,VariableName参数,ObjectName类型,在VDE中唯一的标识了将要进行细节访问的那个有名变量对象。DetailedAccess参数则表示了该服务实例中应用何种层次的细节访问。该参数在10.2中有描述。10.4读服务(Read)10.4.1目的DLMS客户通过使用Read服务来请求VDE返回在其中定义的一个或多个变量的值和类型描述。10.4.2结构表24为Read服务。裹24Read服务Read服务ReqIndRespConfArgumentMM(二)ListofVariableAccessMM(二)SpecificationsResult(+)S(二MListofReadResultM(=sDataS(=sDataAccessError5(=Result(一)ErrorTypeMS}MS(=_)10.4.3参数Argument参数传递Read服务请求所需的特定参数。ListofVariableAccessSpecification(变量访问说明列表)参数表示将要访问的一个或多个变量。VariableAccessSpecification参数在10.3.3中有描述·Result(+)参数表示所请求的服务已成功。ListofReadResult(读结果列表)参数包含了指定变量的值,并以请求原语中ListofVariableAccess参数所指定的顺序排列。每个元素或者表示实际变量在访问时刻的值或者表示读此变量失败的原因。Data参数,Data类型,包含了变量的值。数据值的抽象语法由访问权限(当进行细节访问时)或该变量的类型(当进行直接访问时)所决定。该参数在10.3.1中有详细描述。DataAccessError(数据访问错误)参数,DataAccessError类型,给出了读操作失败的原因。42 DL/T790.441一2004Result(-)参数表明先前请求的服务失败。Error勺pe参数给出错误的原因。ErrorType在A.5中有详细描述。10.4.4服务过程对读服务而言,一个成功的结果表示VDE可以接受该服务请求且VDE已经尝试读取请求所指定的每个变量的值。在验证服务请求的合法性后,VDE就尝试读取指定变量的值。它按照请求原语中ListofVariableAccessSpecification参数中所指定的顺序,对每个读操作返回一个值或返回一个出错原因。10.5写服务(Write)10.5.1目的DMLS客户通过使用Write月及务来请求VDE用请求中提供的值来替换一个或多个变量的值。注:在写请求中指定的变量的新值必须对应于该有名变量定义的类型。DLMS中不能动态的定义一个新类型。10.5.2结构表25为Write服务。表25Write服务Write服务R叫IndRespConfA卿tStMM(=)ListofVariableAccessMM(二)Spec访‘以1朋MM(=)ListofDataResult(十)SS(=)ListofwriteResultMM(=)SuccessSS(二)DataAccessErrorSS(=)Result(一)SS(=)ErrorTypeMM(=)10.5.3参数Argument参数传递Write服务请求所需的特定参数。ListofVariableAccessSpecification参数表示将要访问的一个或多个变量。VariableAccessSpecification参数在10.3.3中有描述。ListofData参数包含了对ListofVariableAccessSpecification中所指定的变量进行写操作时所要写入的值。Result(+)参数表示所请求的服务已成功。ListofWriteResult参数包含了指定变量的值,并以请求原语中ListofVariableAccessSpecification参数所指定的顺序排列。每个元素或者表示写访问成功或者表示对此变量写操作失败的原因。Success参数,NULL类型,表示对给定变量写操作成功。DataAccessError参数,DataAccessError类型,给出了写操作失败的原因。在10.3.2中有对该参数的描述。Result(-)参数表明先前请求的服务失败。ErrorType参数给出错误的原因。ErrorType在A.5中有详细描述。10.5.4服务过程对写服务而言,一个成功的结果表示VDE可以接受该服务请求且VDE已经尝试用请求中所提供的值来代替每个指定的变量的值。在验证服务请求的合法性后,VDE就尝试写指定变量的值。它按照请求原语中ListofVariable DL/T790.441一2004AccessSpecification参数中所指定的顺序,对每个写操作返回一个写操作成功的确认或返回一个错误原因。10.6未确认的写服务(UnconflrmedWrite)10.6.1目的UnconfitmedWtite(无确认写)服务除了不需要确认外,与写服务相同。10.6.2结构表26为UnconfirmedWrite服务。表26UnconflrmedWrite服务「一一一一一UnconfirmedWrites"*""一Req加dMArgumentMM(二)ListofVariableAccessSpecificationMM(=)ListofDataM(二)UnconfirmedWrite服务是一个无确认的服务。10.6.3参数Argument参数传递UnconfinnedWrite服务请求所需的特定参数。ListofVariableAccessSpecification参数表示将要访问的一个或多个变量。VariableAccessSpecification参数在10.3.3中有描述。ListofData参数包含了对ListofVariableAccessSpecification中所指定的变量进行写操作时所要写入的值。这些值按照ListofVariableAccessSpecification参数中变量的顺序出现。Data参数在10.3.1中有描述。10.6.4服务过程对无确认写服务而言,一个成功的结果表示VDE可以接受该服务请求且VDE已经尝试用请求中所提供的值来代替每个指定的变量的值。不返回任何响应。在验证服务请求的合法性后,VDE就尝试写指定变量的值.10.7伯息报告服务(InformationReport)10.7.1目的InformationReport(信息报告)服务一个主动发出的服务。DLMS服务器通过请求该服务来通知DLMS客户一个或多个指定变量的值,尽管它们可能已经被DLMS客户读取。10.7.2结构表27为InformationReport服务。表27InformationReport服务{—-InformadonReport5*}”Req}”一h一-MM(ArgumentMM(CurrentMaeMM(ListofVariableAccessSpecificationMM(ListofDataInformationReport服务是一个由DLMS服务器启动的无确认的服务。10.7.3参数Argument参数传递InformationReport服务请求所需的特定参数。CurrentTime参数,GenemlizedTime类型,表示InfornrationReport服务原语发出的时间。ListofVariableAccessSpecification参数表示将要提供给客户的变量。VariableAccessSpecification DL/T790.441一2004参数在10.3.3中有描述。ListofData参数包含了指定变量的值,并以前面的ListofVariableAccessSpecification参数所指定的顺序排列。列表中每个元素都是一个Data参数,它表示实际变量在访问时刻的值。Data参数在10.3.1中有描述。10.7.4服务过程DIMS不指定一个过程来触发或接受Information服务,它被作为一个局部操作而使用。任何时刻,VDE都可能请求该服务。10.8获取变f属性服务(GetVarlableAttribute)10.8.1目的GetVariableAttribute服务被用来请求一个DLMS服务器返回与指定的变量对象相关的所有属性。10.8.2结构表28为GetVariableAttribute服务。表28GetVariableAttribute服务GetVanableAttnubte服务R闪IndReapConfArgumentV幼曲lieN侧庄哈MM(=_)Result(十)SS(二)SS(=)NamedV幻曲】eMM(二)ScopeofAccessMM(=)ScopeMayChangeLifetimeMM(=)MM(二)TypeDescri洲onRe日-Write刊叨MM(=)户vailableMM(二)NamedVariableListSS(二)ScopeofAccessMM(=)ScopeMayChangeMM(二)LifetimeMM(=)MM(二)ListofObjectNameSS(二)MessageBoxMM(二)ScopeofAccessMM(=)ScopeMayChangeM(=)itOlfi吐巴MM(二)MRe川-WritenagM(二)户vailableMS(=)SR“.血(一)M(二)MErrorType10.8.3今数Argument参数传递GetVariableAttribute服务请求所需的特定参数。VariableName参数,。句ectName类型,在VDE中唯一的标识一个有关的变量对象。该变量名可以是一个有名变量对象的名字、一个消息盒对象名或一个有名变量列表对象名。Result(+)(正结果)参数,CHOICE类型,表示所请求的服务己经成功。它标识了所请求的对象的类。该参数可能的值为:NAMED-VARIABLE,NAMED-VARIABLE-LIST或MESSAGE-BOX.NamedVariable(有名变量)参数表示所请求的对象是有名变量。ScopeOfAccess(访问域)参数,ScopeOfAccess类型,表示了指定对象的当前访问域。ScopeMayChange域可变)参数,BOOLEAN类型,表示相关对象的访问域是(TRUE)否(FALSE)可以通过使用DLMS的ChangeScope服务来改变。 DL/T790.441一2004Lifetime(生命期)参数,BOOLEAN类型,表示所描述的对象的生命期是VDE(TRUE)还是DATA-SET(FALSE).Lifetime属性被设置为DATA-SET表明该对象在数据集中定义。TypeDescription(类型描述)参数,TypeDescription类型,表示底层实际变量的抽象类型。它应该表示变量中简单数据元素的类(8位整数、浮点数等)和数据的取值范围。如果访问需要,还可表示对数据元素的分组(数组或结构)。Read-WriteFlag(读写标志)参数,BOOLEAN类型,表示该对象的读写权限是READ-WRITE(TRUE)还是READ-ONLY(FALSE)。该参数的值依赖于VAA.Available(可用)参数,BOOLEAN类型,表示考虑了物理访问和硬件资源后底层的实际资源是(TRUE)否(FALSE)可用。Available属性和它的管理是依赖于实现的。NamedVariableList(有名变量列表)参数,表示所请求的对象是NAMED-VARL4BLE-LIST.ListofObjectName(对象名列表)参数,SequenceofObject类型,包含了组成该有名变量列表对象的有名变量对象的名字。有名变量列表的其他参数与有名变量的相应的参数相同。请参考前面对它们的描述。MessageBox(消息盒)参数,表示了所请求的对象是MESSAGE-BOX.消息盒的其他参数与有名变量的相应的参数相同。请参考前面对它们的描述。Result(-)(负结果)参数表明先前请求的服务失败。ErrorType参数给出错误的原因。ErrorType在A.5中有详细描述。10.8.4服务过程DLMS服务器返回指定亦量对象有关的属性。VAA的访问限制适用于该服务的使用。 DL/T790.441一2004附录A(规范性附录)DLMS协议本附录的目的是使用在IEC/FDIS61334-4-42中描述的DLMSASE来描述DIMS协议。注:本附录被放在本标准中而不是在将来的EEC61334-4.42中是因为类型描述使用了很多DLMS服务参数。应该在阅读完标准正文中详细说明的服务规约后再阅读本附录。A.1约定此附录使用了OSI服务约定(GB/T15129--1994)中包含的描述性约定。该模型定义了DIMS客户和DLMS服务器之间的交互。DLMS用户通过可传递参数的服务原语来传递信息。A.1.1符号该附录使用GB/P16262-19%中定义的抽象语法符号。为了与ASNA标准的意图和要求保持一致,所有的非终止符(即在产生式左边的符号)由一个大写字母开始。所有的标识符、值引用和类型引用都由一个小写字母开始。除非另外表示,所有的数字都使用十进制表示。A.12参数传递可以简单的通过服务请求PDU把来自请求原语的参数传递给指示原语,或者通过服务响应PDU把来自响应原语的参数传递给确认原语,DLMS提供者不需要进行其他操作。如果参数是可选的且在请求服务原语中被省略,则请求PDU中将不存在该参数。如果可选参数在请求PDU中不存在,则它在指示服务原语中也不存在。如果参数是可选的且在响应服务原语中被省略,则响应PDU中将不存在该参数。如果可选参数在响应PDU中不存在,则它在确认服务原语中也不存在。A.1.3参数中的枚举值对于服务描述中具有枚举值的参数,相应的协议参数所指定的值应该和服务原语中的同名参数的值相同。在服务原语、由此产生的PDU和在收到该服务原语后产生的服务原语中所传递的值应该具有在ASN.1中所规定的相同的语义。注:这些值之间的对应关系在规约中通过在服务原语和协议中使用相同的名字而显示出来。在服务规约中,这些值全部用大写字母表示。在协议规约中,这些名字的大小写接照ASNA的语法要求来决定.A.1.4否定确认大部分需确认的DLMS服务在DLMS服务器处理服务请求出错时都会引入一个负确认。这种负确认通过Result(-)参数和服务响应原语中的EnorType参数来表示。在确认服务原语中应该具有和响应原语中Result(-)参数和ErrorType参数语义相同的参数。否定确认的抽象语法应该是一个具有由响应服务原语中的问题参数所导出的错误域的ServiceErrorDLMSpdu.A.1.5ASN.1定义本附录中提供的ASN.1的定义是ASN.1中DCP-DLMS摸块部分的定义。为了使该文档阅读起来更容易,省略了开始和结束语句,这些语句可以用来表示所提供的ASN.1的定义是该模块的一部分。因此,每个ASNA定义在起始处隐含该语句:DCP-DLMSDEFINITIONS::=BEGIN并且在结束处隐含该语句END. DL/T790.441一2004A.2采用类型在该子条款中描述了一些有用的类型。这些类型最终被DLMS协议的类型描述所用。Integer8::=INTEGER(-128..127)-8位整型Integerl6::=INTEGER(-32768..32767)-16位整型Integer32::=INTEGER(-2147483648..2147483647)-32位整型Unsigned8::=INTEGER(0..127).一无符号8位整型Unsigned16::=INTEGER(0..32767)一无符号16位整型Unsigned32.:=INTEGER(0..2147483647)一无符号32位整型在ASNA的UsefulType:条款中定义了以下类型:OCTET@.BITSTRINGID.Visiblestring①和Cknera血曰肠me(De注:①由于物理限制,这些串的长度将受到一定的限制。例如,在配电线路的电力线载波系统中,这些申被限制在230个字节(8位)之内。A.3DLMSPDU用于操作DLMS协议的PDUs的描述如下:DLMSpdu::-CHOICEI-DLMSPDUs(选择不加密)con#umedServiceRequest[0]ConfumedServiceRequest,initiateRequest[1]IMPLICITgetStatusRequest[2]Io1PLICrTgetNameListRequest[3]IAPLICrrgetVariableAttributeRequest[4]IvIPLICrFreadRequest[5]IMPLICITwriteRequest[6]MPLICIT认哟比R叫uest,confirmedServiceResponse[7]ConfumedServiceResponse,initiateResponse[8]InitiateResponse,getStatusResponse[9]GetStatu&Response,getNameListResponse[10]GetNameListResponse,getVariableAttributeResponse[11]GetVariableAttributeResponsereadResponse[12]ReadResponse,writeResponse[131WriteResponse,﹄.怪4,L且.confumedServiceErrorJConfumedServiceError,F20FLesunconfmumedServiceRequestJUnconfirmedServiceRequest,户12‘.,1..加叹叫uest.J﹄.,2,L.unconfumedWriteRequest‘JUnconfirmedWriteRequest,[231informationReportRequest[241玩加rmationReportRequest, 一下列选项仅当使用加密的DLMS时可以选择-DASEPDUs(全局密钥加密)[32]IMPLICITglo-inifateRequest[33]IMPLICITglo-getStatusRequest[3a]IMPLICIT[35]1MPLICT[36]-IMPLICIT[37]IMPLICIT[38],IMPLIMPLcrIMPLIcrICITOCTETSTRING,glo-confumedServiceResponse[39]OCTETSTRING,[40]IMPLcrTIMPLIcrOCTETSTRING,乡o-getStatusResponse[41]OCTETSTRING,[42]﹄IMPLICrOCTETSTRING,[43]OCTETSTRING,[44]IMPLcrOCTETSTRING,glo-writeResponse[45]IMPLorOCTETSTRING,glo-confirmedServiceError[463︸IMPUCrOCTETSTRING,glo-unconfumedServiceRequest[52]0创CETSTRING,glo-abortRequest[53]IMPuCrTOCTETSTRING,glo-unconfumedWriteRequest[54]OCTETSTRING,glo-unsolicitedServiceRequest[551-IMPLICITOCTETSTRING,glo-informationReportRequest[561IMPLICITOCTETSTRING,-DASEPDUs(专用密钥加密)︸IMI,IJCrtded-confumedServiceRequest[64]OCTETSTRING,ded-initiateRequest[65]IMPMIMPwtOCTETSTRING,ded-getStatusReques[661OCTETSTRING,ded-getN-I,istRequest[67]IMPLCrtIMPLICryOCTETSTRING,ded-getVariableAttributeRequest[68]OCTETSTRING,ded-readRequest[69]IMPLcrOCTETSTRING,ded-writeRequest[701︸︸OCTETSTRING,ded-confirmedServiceResponse[71]OCTETSTRING,ded-initiateResponse[72]IMPLCrIMPUCrOCTETSTRING,ded-getStatusResponse[73]OCTETSTRING,ded-getNameI,istResponse[74]一IMPUor0团CETSTRING,ded-getVariableAttributeResponse[75]OCTETSTRING,ded-readResponse[76]一OC:rfrSTRING,ded-writeResponse[771OCTETSTRING, DL/T790.441一2004[781OCTETSTRINGded-unconfirmedServiceRequest[84]OCTETSTRING,[85]OCTETSTRING,ded-unconfnmedWriteRequest[861OCTETSTRING,ded-unsolicitIServiceRequest[87]IMPLICITOCTETSTRING,ded-informaticnReportRequest[88]IMPLICITOCTETSTRINGI出现在加密后的PDUs中的OCTETSTRINGS是通过将加密算法应用于相应的未加密的PDU而得到的。该加密算法可以包括由发送者决定插入一个copy-check域来唯一的标识一个被发送的PDU的实例,这样就可以检测出非授权用户对一个先前发出的加密PDU的重发。加密算法还可以引入校验和来验证解密信息中的PDU的合法性。每个DLMSPDU都包含一个PDU类型的标识符。A.4服务请求与响应ConfumedServiceRequest::=CHOICE{一标记0-6保留getDataSetAttribute[7]IvIPLICrrGetDataSetAttributeRequest,getTIAttribute[8]MUMGetTlAttributeRequest,changeScope[9]I"LICTTChangeScopeRequest,start[10]DVIPLICTTStartRequest,stop[11]MIPLICITStopRequest,resume[12]IMPLICITResumeRequest,makeUsable[131IIYIPLICTTMakeUsableRequest,initiateLoad[14]RVIPLICrrInitiateLoadRequest,loadSegment[15]E%4PLICrrLoadSegmentRequest,terminateLoad[16]I"LICTrTerminateLoadRequest,initiateUpLoad[171IAPLICIInitiateUpLoadRequest,upLoadSegment仁181IAPLICTrUpLoadSegmentRequest,terminateUpLoad[19]MPLICITTerminateUpLoadRequest}ConfirmedServiceResponse::CHOICE一标记0-13保留getDataSetAttribute[14]HAPLICITGetDataSetAttributeResponse,getTTAttribute[15]RYIPLICITGetTTAtributeResponse,changeScope[16]I"LIC仃ChangeScopeResponse,start[17]RAPLICITStartResponse,stop[18]IvEPLICITStopResponse,resume[19]IAPLIC1TResumeResponse,makeUsable[20]I"LIC1TMakeUsableResponse,initiatel-ad[21]IvVLIC仃InitiateLoadResponse, DL/T790.441一2004loadSegment[22]DdPLICITterminatri-ad[23]IMPLICITinitiateUpI.oad[24]INPLICITupLoadSegment[25]IMPLICITterminateUpLoad[26]IVIPLICITConfirmedServiceError::=CHOICE{一标记0保留initiatrFrror[1]ServiceEfor,getStatus[2]ServiceEfor,getNameList[3]ServiceError,getVariableAttribute[4]ServiceError,read[5]ServiceError,write[6]ServiceError,名。山吻占etAtt由iate[7]ServiceError,getTlAttribute[8]ServiceError,changeScope[9]ServiceEfor,start[10]ServiceError,stop[11]ServiceEfor,resume[12]ServiceEfor,-AkPUsable[13]ServiceEfor,initiatri-ad[14]ServiceError,loadSegment[15]ServiceEfor,terminateSegment[16]ServiceEfor,initiateUPLoad[17]ServiceEfor,upLoadSegment[18]ServiceError,terntinateUpLoad[19]ServiceEfor,}UnconfirmedServiceRequest::=NULL一进一步的扩展正在考虑之中UnsolicitedServiceRequest::=NULL一进一步的扩展正在考虑之中A.5服务出错倍息ServiceErfor::CHOICE{application-reference[0]IMPLICITENUMERATED[一仅限于DLMS提供者other(0),time一apsed(1),一字请求发出计算超时application-unreachable(2),一对等的配电设备不可达叩plication-reference-invalid(3),一寻址错 DL/T790.441一2004(4),一应用环境不兼容providercommunication-error(5),一本地或远方设备出错(6)一译码器检测到的错误[1]HVIPLICIT-VDE硬件问题other(0),(1),processor-resource-unavailable(2),(3),(4)vde-state-error[2]IVIPLICIT一错误源描述other(0),no-dims-context(1),loading-data-set(2),status-nochange(3),status如operate(4)},service[3]EVIPLICTF一服务处理问题other(0),冈i-size(1),-pdu太长(参考CompanionSpecification)service-unsupported(2)一同ConformanceBlock中描述的一样}.definition[4]IVIPLICIT一服务中的对象绑定问题other(0),object-undefined(1),一对象在VDE上未定义咧ect-class-incosistent(2),一对象类与要求的服务不兼容object-attribute-inconsistent(3)一对象属性不一致、l,access[5]IIVIPLICIT一对象访问错误other(0)>scope-of-access-violated(1),一由于权限因素使访问遭拒绝喇ect-access-invalid(2),一访问与对象属性不兼容hardware-fault(3),一硬件原因使访问失数 DL/T790.441一2004(4)-VDE控制不可及的对象initiateL6JIMPLICIT一初始化服务错误other(0),dhns-version-too-low(1),一建议的DLMS版本太低incompatible-conformance(2),一建议的服务不充分冈u-size-too-short(3),一建议的pdu尺寸太短refused-by-the-VDE-Handler(4)一不可能或不允许创建VAA},load-data-set[7]IaLICIT一数据集载入服务错误other(0),州mitive-our-of-sequence(1),一根据DataSet载入的状态转移not-loadables(2),一可载入属性里为FALSEdetaset-size-too-large(3),一估计的数据集尺寸太大not-awaited-segment(4),一建议的段不可等特interpretation-failure(5),一段解释错误storage-failure(6),一段存储错误data-set-not-re吟(7)一对应上传的数据集未处于正确状态1.-change-scope[8]IMPLICITreserved.task[9]DvIPLICITENUMERATED-TI服务错误other(0),no-remote-control(1),一远程控制参数置为FALSEti-stopped(2),一n处于停止状态ti-running(3),-TI处于运行状态ti-unusable(4)一n处于不可用状态}一。ther[10]}A.6对象名ObjectName:准玩teger16位于VDE中的DLMS对象标识符必须唯一。其内部结构如该标准的4.4所定义。ScopeOfAccessIsVde::=BOOLEAN-vde-specific:TRUE,vaa-specific:FALSEA.7上下文管理协议 EILIT790.441一2004Dedicated,keyOCTECTSTRINGOPTIONAL,一若未加密,则不应在DLMS中编码。response-allowedBOOLEANDEFAULTTRUEproposed-quality-of-service[0]IMPLICITInteger8OPTIONAL,proposed-dims-version-numberUnsignedS,proposed-conformanceConformance,proposed-max-pdu-sizeUnsigned16IInitiatedResponse::=SEQUENCE{negociated-quality-of-service[01MWLICITInteger8OPTIONAL,negociated-dims-version-numberUnsigned8,negociated-conformanceConformance,negociated-mac-pdu-sizeUnsigned16,vea-nameConformance::=[APPLICATION30]1MPLICITBITSTRING(SIZE(16)){一当相应服务或功能可用时,该位置“V,get-data-set-attribute(0),get-ti-attribute(1),get-variable-attribute(2),read(3),write(4),unconfirmedWrite(5),change-scope(6),start(7),stop-resume(8),一停止或继续服务make-usable(9),data-set-load(10),一支持数据集装载服务selection-in-get-name-list(11),一支持详细的选择detailed-access-low-bit(12),一支持细节detailed-access-high-bit(13),一访问嵌套等级multiple-variable-list(14),一在变量访问服务中支持变量表data-set-upload(15)一支持数据集上传服务l=卜任11LL-DLMS客户端请求中止通信A.8VDE支持协议Identi勿::=BOOLEANGetStatusRequest::=Identi勿GetstatusResponse::=SEQUENCE{54 DL/T790.441一2004vde-typeInteger16,serial-n-herOCTETSTRING,statusENUMER幻"ED{ready(0)nochange(1),inoperable(2)}DEFAULTready,list-of-vaaSEQUENCEOFObjectName,identifySEQUENCE{resourcesVisibleString,vendor-nameVisibleString,modleVisibleString,version-numberUnsigned8}OPTIONALGetNameListRequest::=SEQUENCE{lifetime-selection[0]IvIPLICITENUMERATED{vde-only(0),data-set-only(1))OPTIONAL,一没有意义的VDE或数据集object-class-selection[I]IMPLICITENUMERATED{--d-variable(0),-a-d-varible-list(1),message-box(2),task-invocation(3),data-set(4),vaa(7)}OPTIONAL,一所有选项都没有意义scope-of-access-selection【幻IMPLICITScopeofAccessIsVdeOPTONAL,一没有意义:VDE或所有的VAA-specificvaa-na住比[3]I"LICITObjectNameOPTIONAL,continue-afterL4JIAPLIVITObjectNameOPTIONAL}GetNameListResponse::=SEQUENCEfBOOLEANDEFAULTFALSE,list-of-object-nameSEQUENCEOFObjectName一对象名的顺序必须显式地由DLMS用户编排一第一个元素在第一个位置等 DL/T790.441一2004A.9数据集份理协议data-set-nameObjectName,number-of-segmentsUnsigned16lDSNameAlreadyExists::=BOOLEANLoadSegmentRequest::=SEQUENCE(segment-numberUnsigned16,segmentOCTETSTRINGdata-set-contentVisibleStringOPTIONALLoadSegmentResponse::=Unsigned16一规定接收段号=NULL-DLMS客户请求完成载入进程TerminateLoadResponse::=ENUMERATED(一标识数据集的最终状态Ready(0).Empty(1)lInitiateUpLoadReques::=0bjectName一将要上传的数据集的名字pLoadResponse::=Unsignedl6一段的数量gmentRequest::=Unsignedl6一请求段的序号::=SEQUENCE(Unsigned16,一指定发送段的序号OCTETSTRING-DLMS客户请求完成载入进程一数据集的最终状态总是READY一标识数据集GetDataSetAttributeResponse::=SEQUENCE(scope-of-access[0]II"LICITScope,OfAccessIsVdeDEFAULTTRUE, DL/T790.44,一"200scope-may-changeEllIMPLICITBOOLEANDEFAULTFALSE,data-set-content〔幻IMPLICITVisibleString,loadable[3]IMPLICITBOOLEANDEFAULTFALSE,list-of-ti[4]IMPLICITSEQUENCEOFObjectName,uploading[51IIveLICITBOOLEANDEFAULTFALSE,state[6]CHOICE{ready[0]1MPLICITNULL,loading[1]mpLICITSEQUENCE{current-segmentUnsigned16,number-of-segmentUnsigned16),empty[2]IMPLICITNULL}DEFAULTreadyNULL}A.10VAA,理协议ChangeScopeRequest::=SEQUENCE{new-scopeScopeOfAccessIsVdeDEFAULTTRUE,new-vaaObjectNameOPTINAL,一目标VAA的名字一只有当从请求VAA到其他V人A传输对象时,才选择本例changed-scope-objectsSEQUENCEOFObjectNameOPTIONAL一没有本参数表示执行VAA请求变化}ChangeScopeResponse::=SEQUENCEOFCHOICE{-Partialsuccessalowednew-scope-OK[0]IMPLICITNULL,scope-change-failure[I]IMPLICITChangeScopeFailure,}ChangeScopeFailure::=ENUMERATED{unlmown-error(0),scope-may-not-change(1),refused-by-VDE-handler(2),object-undefined(3),class-inconsistent(4)}A.11作业调用I理协议ObjectName,BITSTRINGOPTIONAL=NULL一该任务处于RUNNING状态 DL/T790.441一2004StopRequest::=0bjectName一标识任务停止=NULL一该任务处于STOPPED状态ResumeRequest::=0bjectName一表示需要继续的任务ResumeResponse::=NULL一表示处于运行状态的任务MakeUsableRequest::=0bjectName一表示使可以使用的任务MakeUsableResponse::=NULL一表示处于停止状态的任务GetTIAttributeRequest::=ObjectName一表示任务GemAttributeResponse::=SEQUENCEIscope-of-access[0]IMPLICITScopeOfAccessIsVdeDEFAULTTRUE,MPLICITBOOLEANDEFAULTFALSE,scope-may-change[1]resume-control-enabled【幻IMPLICITBOOLEANDEFAULTTRUE,state[31IMPI以C叮ENUN正RkTEDIunusable(0),running(1),stopped(2)}DEFAULTunusable}A.12变f访问协议TypeDescription::=CHOICEI一复合数据类型[1]arraynumber-of-elementsUnsigned16,type-description劝peDescription},structure[2]SEQUENCEOFTypeDescription.一简单数据类型r飞飞NULL.BooleanJRVIPLICITNU-LL4,..LJIVIPLICITbi卜stringL尸,﹄esJesJJdouble-longF6,esNULLJRVIPLICITdouble-long-unsignedF.7,esNU’L.floating-point1RVIPLICITr9﹁卜LesesUAPLICIToctet-stringNU’Lvisible-stringD"LICITN’ULtime{::{ DL/T790.441一2004bed[13]integer[15]long[16]unsigned[17]long-unsigned[18]}DetailedAccess::-0(.ThTSTRING一注意(规范性):DetailedAccess从属于基于下述抽象句法描述的特别的、优化的编码。Optimized-DetailedAccess::=SEQUENCEOFCHOICE{-Tags0to2arefor"detailed-access-selected"component-with-det-access[0]RVIPLICITSEQUENCE{itemUnsigned8,detailed-accessDetailedAccess},index-with-det-access[I]HVIPLICITSEQUENCE{itemUnsigned8,detailed-accessDetailedAccess},index-range-with-det-access[2]HAPLICTTSEQUENCE{start-indexUnsigned8,itemUnsigned8,detailed-accessDetailedAccessl,一标记符3和5是用于选择的访问的component[3]A4PLICITUnsigned8,index[4]RAPLICITUnsigned8,index-range[5]RvIPLICITSEQUENCE[start-indexUnsigned8,number-of-indexUnsigned8l一在用于DetailedAccess并经优化的编码形式中,只有Tag和Value被编码(不包括长度,由所有的单个值均为Unsigned8型的情况可推得)。更严格地讲,每个DetailedAccess的连续组件由两个字段描述:乃pe与Content.8位位组编码中的Tag字段在其首半部分(最低)中包含组成部分的标记。在其最高位(msb),它表示是否它是其所属的SEQUENCE的最末部分(若是,该位置0).如果Tag为2或5,则Content字段有2字节长,并包含子序列的两个索引值;否则,其有一个字节长,并包含子序列的单个索引值。第一个字节类型域第二个字节内容域第三个字节类型域(叨目n招b】sb位7"·位3位1 DL/T790.441一2004第一个字节:位7:序列最末部分的标志0:最末部分1:之后有更多部分位3-位0:标记值第二个字节:结构中组件的范围,0起始:队列中元素的序号,1起始。第三个字节:子列中的第二个索引的可选项(若标记值为2或5,有用)。Data::=CHOICE{一复杂数据类型array[11IAPLICITSEQUENCEOFData,structure[2]1MPLICITSEQUENCEOFData,一简单数据类型B面lean[3]IINPLIC仃BOOLEAN,bit-string[4]1MPLICITBITSTRING,double-long[5]IAPLICITIntege"32,double-long-unsigned[6]IAPLICTTUnsigned32,floating-point[7]MIPLICTTOCTETSTRING,octet-srting[9]IOPLICITOCTETSTRING,visible-strin[1011MPLICITVisibleString,time[11]IVIPLICITGeneralizedTime,bcd[13]IMPLIC仃Integer8,integer[15]ID4PLICITInteger8,long[161RdPLICITIntegerl6,unsigned[171HAPLICITUnsigned8,long-unsigned[181awLICTrUnsigned16,compact-array[19]1MPLICITSEQUENCE{contents-description[01勺peDescri叫on,array-contents[1]MIPLICITOCTETSSTRING}}DataAccessError::=ENUMERATED{(1),temporary-failure(2),(3),(4),(9),(11),(12),(13), DL/T790.441一2004VariableAccessSpecification::-CHOICE{vafghle-name[2][3]detailed-access}::=SEQUENCEOFVariableAccessSpecificationReadResponse::=SEQUENCEOFCHOICEdn栩Data,data-access-error{{{IvIPLICITDataAccessError}WriteRequest::=SEQUENCEtvariable-access-specificationOFVariableAccessSpecification,list-of-dataSEQUENCEOFData}WriteResponse::=SEQUENCEOFCHOICE{success1MPLICITNULL,Datd-access-error{{{1MPLICITDataAccessErrorlOFlist-of-dataSEQUENCEOFData}GeneralizedTimeOPTIONAL,OFVariableAccessSpecification,lis卜。卜面扭SEQUENCEOFDatabuteRequest::=0bjectNameGetVariableAttributeResponse::CHOICE笼 DL/T790.441一2004r0,1Lnamed-variable曰IvIPLICTTNamedVariable,F曰t﹁.Lnamed-variable-list几JIMPLICITNamedVariableList,F2,esesmessage-boxJIMPLICITMessageBox,INamedVariable::=SEQscope-of-accessIMPLICITScopeOfAccessIsVdeDEFAULITRUE,scope-may-changeRv4PLICrrBOOLEANDEFAULTFALSE,life-time-is-vdeIdPLICITBOOLEANDEFAULTTRUE,type-description勿peDescription,read-write-flagIIMPLICITBOOLEANDEFAULTTRUE,avgllnhleI"LICITBOOLEANDEFAULTTRUENamedVariableList::=SEQUENCE{r0,..scope-of-accessLJAQPLICITScopeOfAccessIsVdeDEFAULTTRUE,F‘.F1esLscope-may-changeJIv4PLICTTBOOLEANDEFAULTFALSE,F2FesLJIMPLICITBOOLEANDEFAULTTRUE,F6门esLlist-of-named-variablesJIvIPLICITSEQUENCEOFObjectNamelMessageBox::SEQUENCE{r0,.Lscope-of-accessJRvIPLICITScopeOfAccessIsVdeDEFAULTTRUE,L曰.F.1esscope-may-changeLJIMPLICITBOOLEANDEFAULTFALSE,F2,esLlife-time-is-vdeJRVIPLICITBOOLEANDEFAULTTRUE,F4,.esread-write-flagLJ1MPLICrrBOOLEANDEFAULTTRUE,Flj,.esava+lphlrLJR"LICrrBOOLEANDEFAULTTRUE62 DL/T790.441一2004附录B(资料性附录)DLMS用户状态描述B.1概述该附录描述DLMS用户可能进入的状态以及在这些状态之间的转换。B.1.1简介前面的条款中所述的服务分成两组:—第一组中仅获取在VDE.No状态转换发生时的某些信息:—在第二组中,如果服务成功的话,VDE由初始态转换到另一个有区别的结束态。本附录中,仅就第二组中服务的状态转换加以描述。所有允许的状态转换均在附录中加以描述。没有描述试图转换的服务是无效的,并且必定发出一个带有“STATE-VIOLATION”错误类型的负响应。制订该限制是为确保DLMS模型的状态一致性。B.1.2描述约定所有的状态转换表均从DUMS提供者的角度观察。后跟“十”的服务原语包含一结果(+)参数。后跟“一”的服务原语包含一结果(一)参数。B.2上下文苦理状态B.2.1状态转换表本节定义进入与离开DLMS环境的状态转换。客户端与服务器DLMS用户二者的初始状态均为NoCon(NoContext),表B.1、表B.2均从DLMS用户的角度观察,表B.2对应DIMS客户端,表B.1对应DLMS服务器。表B.1服务器上下立状态转换初始状态事件动作终止状态NoConintatei.dCreateVAA()IDLEandInitiate()=OKInidate.rsp(+,ME峪ion.Conformance,VA戊口a,PDUessize)NoConInitiate.indIniti也.“p(一)NoConandled幼ate()心心KmLEM币ArwiodInitiate.rsp(+.mLEandInitiate()=OKVersion,conformance,V犯name,PDIJsize)IDLElnifi.饱i”dmLEIm五Late.即(一)人目Initiate()c心KIDI}Abod.indDelde_V人ANoCon DL/T790.441一2004表BZ客户上下文状态转换初始状态辜件动作终止状态NoConLtitiate-EventInitiate.req(CONNListofVersion,ronformance,PDU_size)CON.WLti石.加.cnf(一)口O口eNoconCONMInitiatex吐(+)n口口eIDLECONNAbort3ventAbort.teq()NoCon田LEA加氏卫ventAbo比,明()NoConCONNIDLEInitiateEventInitiate.a钩(ListofVersion,Conformance,PDUeesize)CONNLnitiate.cnfNoneIDLEB.2.2.件描述作为事件的服务原语如上描述。为分类的目的,只有那些对理解整体有必要的参数明确给出。InitiateEvent事件表征DIMS客户端初始化与服务器端DIMS用户之间的AA的决定。该事件在原理不在本说明范围内。AbortEvent事件表征DLMS客户端中止与服务器端DIMS用户之间AA的决定。该事件的原理不在本说明范围内。B.2.3动作描述Initiate()函数是VDE处理器的内部函数。如果VDE处理器接收Initiate提议的话,则initiate()返回OK。接收或拒绝的规则于条款5中有描述。CreateVAAO函数是VDE处理器的内部函数。如果与DLMS客户相关的VAA对象未存在的话,则该函数创建之。DeleteVAA()函数是VDE处理器的内部函数。其删除与DLMS客户相关的VAA对象。B.2.4状态描述NoCon(NoContext)状态是DLMS用户的初始状态。当处于该状态时,DLMS客户仅可以发出initiate.req原语。当处于CONN(ContextWaited)状态时,DLMS客户只可以发出Abort.req原语。使用DLMS服务所必需的状态是IDLE状态。该状态可细分成子状态集,后续子条款会加以描述。下边的子条款中定义的所有状态均是IDLE状态的子状态。从I)LE状态退出的事件是AbortEvent或者接收Abort.ind原语。B.3数据集管理状态B.3.1状态转移表B.3.1.1装载本条定义用于载入数据集的状态转换。表B.3,B.4从DLMS用户的角度观察,表B.4给DLMS客户使用,表B.3给DLMS服务器使用。对应于DLMS服务器的状态是I)LE,而子状态根据DataSetState属性加以定义。DLMS服务器的初始子状态可以为Empty或Ready, DL/T790.441一2004表B.3服务器数据集载入状态转换初始状态}事件动作}终止状态EmptyInitiateLoad.ind(DataSetuame=DSnameLoad访9DataSet.state=LOADINGDSJtame,NbSeg)DamSetlast_Seg=NbSegandInitiate.Load()-OKDataSetcur_seg=()InitiateLoad.rsp(+)EmptyInitiateLoad.ind()InitiateLoad.rsp(一)EmptyandImnateLoad()oOKReadyInitiat可nailinrl(DeleteDS_Lifenme_objects()Load加9UnuseesDSTIDSname.DataSet.name=DS_nameNbSeg)DataSet.smte=LOADINGandIniatiateLoad()=0KDataSet.lasLseg=NbSegDaWet.cur_seg=ObtitiateLoad.rsp(+)Re目yL血iateLoad.ind()bvdateLoad.rsp(一)Re目yandInitiateLoad()oOKLo目ingLoadSegment.ind(SegNb,Segment)DataSet.ctu-eg=SegNbLoadingand(SegNb=DataSet.cur_seg+lLoadSegment.rsp(orSegNb=DataSetcur_seg)Dateetcurseg)andProcess(Segment)=OKLoad加gLoadSegment.ind(SegNb,Segment)LoadSegment卿(一)切ad加9and(SegNboDataSetcur_seg+l助dSegNboDataSetcur_seg)orProcess(Segment)oOK)LoadingTerminateLoad.ind()DataSeLstate=READYReady叨dTermmateLoad.tsp(+)DataSetcur_seg=DamSetlastsegLo目访9TernunateLoad.ind()DataeLstate-EMPTYEmpty田】dDelete-DS-Lifetime-objects0DataSet.cur_segoDataSet.last_segUnuseesDSesTITemtmateLoad.rsp(+)表B.4客户数据集载入状态转换初始状态}事件}动作终止状态IL.WIDLE面d.姆LoadEventInitiateLoad.teq(DS-tame,NbSeg)IL.WInidateLoad.cnf(一)NoneI]IDLEIL.WInitiaWLoad.cnf(+)SegNb=1DLoadDLoadLoadSegment_EventLoadSegmentreq(DL.WSegNb,Seganent)DLoad一}TerminateLoed_EventTern血ateLoad.req()}TL.WDL.WLoadSegmentcnf(+,Cur_seg)}SegNb=Cur_seg+1}DLoadDL.WLoadSegmentcnf(一)}none}DLnadTL.WTerminateLoad.cnf(十)}none}IDLETL.WTerm恤ateLo园.c吐(一)}none}DLoad65 DL/T790.441一2004B.3.1.2上传本条定义对应上传数据集(从服务器到客户)的状态转换。表B.5、表B.6均由DLMS用户的角度观察,表B.6对应DLMS客户,表B.5对应DLMS服务器。对应DLMS服务器的状态是IDLE,而子状态根据数据集状态属性加以定义。DLMS服务器的初始子状态必须为Ready.表B.5服务器数据集上载状态转换初始状态事件动作终止状态ReadyInitiateUpLoad.ind(DSname)Uploading-TRUEReadyandInitiateUpLoad()=OKInitiateUpLoad.rsp(+,NbSeg)ReadyImtiateUpLoad.ind()InitiateUpLoad.rsp(一)ReadyandInitiateupLoad()oOKReadyUpLoadSegment.ind(SegNb)UpLoadSegment.rsp(Segment,SegNb)ReadyandUpLoadSegment()-0KReadyUpLoadSegment.ind(SegNb)UPLO目Segment仰(一)ReadyandUpLodSegment()oOKReadyTerntinateUpLoad.ind()Uploading=FjU』EReadyltrminateUpLoad.rsp(+)表B.6客户数据集上趁状态转换初始状态事件动作终止状态IDLEInitiatUpLoed_EventInitiateUpLod.teq(DS-name)IUL.WIUL.W加tiateUpLoad.cnf(一)noneI)LEIUL.WInitiateUpLoad.cnf(+)SegNb=1ULoadUloadUpLoadSegment-EventUPLoadSe乎nent.req(SegNb)UL.WUloadTerminateUpIzed_EventTenninateUpLoad.req()TUL.WUL.WUpLoadSegment.enf(Segment,Cur-Seg)SegN6=Cur_Seg+lUloadUL.WUpLoadSegment.cof(一)noneUloadTULMTerminateUpLoad.cnf(+)口oneIDLETUL.WTemunateUPLDW.cnf(一)none饥oadB.3.2事件描述作为事件的服务原语如上子条款所述。为分类的目的,只有那些对理解整体有必要的参数才显式地给出。InitiateLoad-Event事件表征DLMS客户为对DLMS服务器中的数据集下载进行初始化的决定。该事件的原理超出本规约范围。InitiateUpLoad_Event事件表征DLMS客户决定对来自DLMS服务器中的数据集上载进行初始化。该事件的原理不在本规约范围内。LoadSegment_Event事件表征DLMS客户决定对DLMS服务器中的数据集继续下载。该事件的原理不在本规约范围内。TerminateLoadEvent事件表征客户端DLMS用户决定结束DLMS服务器中的数据集下载。该事件 DL/T790.441一2004的原理不在本规约范围内。UpLoadSegment_Event事件表征DIMS客户决定继续上传来自DLMS服务器的数据集。该事件的原理不在本规约范围内。TerminateUpLoad_Event事件表征客户端DIMS用户决定结束上传来自DIMS服务器的数据集。该事件的原理不在本规约范围内。B.3.3动作描述InitiateLoad()是VDE处理器的内部函数。如果VDE处理器接收下载建议的话,则Initiate()返回OK。接收或拒绝的规则于条款7中有描述。InitiateUpLoad()是VDE处理器的内部函数。如果VDE处理器接收上传建议的话,则Initiate()返回OK。接收或拒绝的规则于条款7中有描述。Process(Segment)是VDE处理器的内部函数。如果VDE处理器成功地传输和安装(或者在上载的情形下成功地访问)指定段的话,则initiate()返回OK。接收或拒绝的规则于条款7中有描述。Delete-DS-Lifetime-Objects()是VDE处理器的内部函数。它删除生命期定义为在数据集内的VDE对象。UnuseDSesTI()是VDE处理器的内部函数。其目的是继承使用数据集的TI。在VDE定义的所有的TT以及当前正在使用数据集的TT都转换成UNUSABLE状态。UpLoadSegment()是VDE处理器的内部函数。如果VDE处理器成功地访问指定段的话,其返回OK。接收或拒绝的规则于条款7中有描述。B.3.4状态描述Empty,Ready和Loading状态是IDLE状态的子状态,设立这些子状态是出于服务器端DIMS用户载入数据集的目的。IL.W(InitiateLoadWaiting)状态表明客户端DLMS用户正在等待先前发出的一个InitiatcLoad.req原语的确认。DL.W(DownLoadWaiting)状态表明客户端DLMS用户正在等待先前发出的一个LoadSegment.req原语的确认.Dload(DownLoadting)状态是客户端DLMS用户用于控制数据集下载到远程VDE整个进程的常规状态。TL.W(TerminateLoadWaiting)状态为客户端DLMS用户用于结束下载序列。IUL.W(InitiateUpLoadWaiting)状态表明客户端DLMS用户正在等待先前发出的一个InitiateUpLoad.req原语的确认。UL.W(UpLoadSegmentWaiting)状态表明客户端DLMS用户正在等待先前发出的一个UpLoadSegment.req原语的确认。ULoadUpLoadting状态是对应客户端DLMS用户用于控制数据集上传到远端VDE整个进程的常规状态。TUL.W(TerminateUpLoadWaiting)状态为客户端DLMS用户用于结束上载序列。B.4任务调用管理状态B.4.1状态转换表该子条款定义了对应于TI管理的状态转换。表B.7、表B.8均从DLMS用户的视角观察,表B.8对应DLMS客户,表B.7对应DLMS服务器。对应服务器端DLMS用户的状态是IDLS,而子状态则根据TI状态属性加以定义。 DL/T790.441一2004表B.7服务器TI管理状态转换初始状态事件动作终止状态StoppedStart.ind(param)andTI-Start(param)=OKTI.state=RUNNINGRunningUpdateDS_ListOP17()Start.rsp(+)StoppedStart.ind(param)andTLStart(pamm)Start.rsp(一,STOPPED)Stopped=RecoverableUnusable5吻PedStart.ind(parsol)andTI-Start(param)Start.rsq(一,UNUSABLE)吕UrRecovert山leStoppedResume.ind(param)andTI-Resume(param)Tl.state=RUNNINGRu朋In-=0KUpdateDSListOM()Resumersp(+)StoppedResume.ind(param)andTI-Resume(param)Resume.rsp(一,STOPPED)Stopped=RecoverableStoppedResute.ind(param)andn_Resume(param)Resume.rsp(一,UNUSABLE)Unusable=UnRecoverableRunn加gStop.ind(param)andTLStop(param)=0KTI.state=STOPPEDUpdateDSListOM()StoppedStop.rsp(+)RunningStop.ind(pa=)andTI-Stop(param)Stop.tsp(一,RUNNING)Runnm招=RecoverableRunningStop.ind(param)andTI_Stop(patam)Stop.Isp〔一,UNUSABLE)U口也曲】巴=UnRecovetableUnusableMakeUsable.ind(param)andT1_AlakeUsableTI.state=STOPPEDMakeUsable.tsp(+,Stopped(param)-0KSTOPPED)UnusableUnusableMakeUsable.ind(param)andTLMakeUsableMakeUsable.rsp(+,UNUSABLE)(param)心刃胶表B.8客户端TI管理状态转换初始状态事件动作终止状态n.WIDLEStartventStart.叫(nameparam)TIMStar[.cnf()noneIDLETI.WmLEResumk卫ventResume.re<月(name)n.WResume.cnf()None田LETI.WmLEStop_EventStop.叫(name)TLWStop.cnf()non已mLETI.WIDLEMakeUsable_EventMakcUmble.teq(name)TIMMakeUsable.cnf()n0neIDLEB.4.2率件描述作为事件的服务原语如上子条款所述。为分类的目的,只有那些对理解整体有必须的参数才显式地给出。Start-Event事件表征客户端DLMS用户决定启动一个n,该TI当前在服务器端DLMS用户处于68 DL/T790.441一2004停止状态。该事件的原理不在本规约范围内。Resume-Event事件表征DIMS客户决定恢复一个TI,该TI当前在服务器端DIMS用户处于停止状态。该事件的原理不在本规约范围内。Stop-Event事件表征DIMS客户决定结束一个TI,该TI当前在服务器端DIMS用户处于运行状态。该事件的原理不在本规约范围内。MakeUsable-Event事件表征DIMS客户的决定使一个11可用,该TI当前在服务器端DLMS用户处于UNUSABLE状态。该事件的原理不在本规约范围内。B.4.3动作描述TI-Starto函数是VDE处理器的内部函数。它试图使TI转到RUNNING状态。如果VDE处理器完成转换的话,则其返回OK;若失败,则返回Recoverable;11返回到STOPPED状态,若VDE处理器无限次地失败的话,则返回UnRecoverable。接收或拒绝的规则于9.2中有描述(统一)。I!-Resume()函数是VDE处理器的内部函数。它试图使TI转到RUNNING状态。如果VDE处理器完成转换的话,则其返回OK;若失败,则返回Recoverable;TI返回到STOPPED状态,若VDE处理器无限次地失败的话,则返回UnRecoverable。接收或拒绝的规则于9.4中有描述.TL-Stop()函数是VDE处理器的内部函数。它试图使T1转到RUNNING状态。如果VDE处理器完成转换的话,则其返回OK;若失败,则返回Recoverable;TI返回到STOPPED状态,但是若VDE处理器无限次地失败的话,则TI返回到RUNNING状态,且不可恢复。接收或拒绝的规则于9.3中有描述。TI_MakeUsable()函数是VDE处理器的内部函数。它试图使T1由UNUSABLE状态转换到STOPPED状态。如果VDE处理器完成转换的话,则其返回OK。接收或拒绝的规则于9.5中有描述。Update_DS_ListOM()函数是VDE处理器的内部函数。其目的是更新当前数据集所用的TI列表。B.4.4状态描述Running,Stopped和Unusable状态是IDLE状态的子状态,出于服务器端DIMS用户TI管理的目的而设。TIM(TaskInvocationWaiting)状态表明客户端DIMS用户正在等待以前发出的Start.req,Resume.req,Stop.req或MakeUsable.req原语的确认。'

您可能关注的文档