




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
兰吉尔表计(珠海)有限公司兰吉尔电表DLMS集成手册ZH03913兰吉尔表计(珠海)有限公司版权所有 兰吉尔电表DLMS集成手册
目录1 简介 31.1 目的 31.2 适用范围 31.3 术语,定义,省略语 32 整体概念 42.1 客户服务原理 42.2 物理设备,逻辑设备及COSEM对象 52.2.1 HDLC地址 52.3 DLMS/COSEM模型 102.4 基本信息 112.4.1 数据类型 112.5 COSEM简述 152.5.1 寻址方式 152.5.2 访问选择 162.5.3 COSEMpdu 182.6 DLMS简述 202.6.1 整体架构 202.6.2 功能说明 202.7 综合应用 322.7.1 整体流程 322.7.2 实例应用 332.8 附录 502.8.1 HCS算法函数 502.8.2 光电口波特率切换 51简介目的用户对此文档理解后,能对DLMS/COSEM有实质性上的认识能独立完成对DLMS/COSEM的开发。适用范围对DLMS/COSEM已有了总体上的了解开发人员测试人员术语,定义,省略语AbbreviationTerm,DefinitionExplanationDLMSDistributionLineMessageSpecification设备语言报文规范COSEMCompanionSpecificationforEnergyMetering能量计量配套手技术规范AAREApplicationAssociationResponse应用连接响应AARQApplicationAssociationReQuest应用连接请求ACSEApplicationControlServiceElement应用控制服务元件APDUApplicationProtocolDataUnit应用协议数据单元ASEApplicationServiceElement应用服务元件A-XDRAdaptedeXtendedDataRepresentation适应扩展数据的表示GMTGreenwichMeanTime格林威治标准时间HLSHigh-levelSecurity高级安全LLSLowLevelSecurity低级安全ICInterfaceClass接口类LNLogicalName逻辑名LSBLeastSignificantBit最低有效位MSBMostSignificantBit最高有效位OBISOBjectIdentificationSystem对象标识系统PDUProtocolDataUnit 协议数据单元SAPServiceAccessPoint服务访问点SNShortName短名整体概念客户服务原理客户客户:系统主站手抄器服务工具...服务:电表水表气表……要求响应电表抄表工水表抄表工气表抄表工图1从上图中可以看出,DLMS/COSEM是基于客户服务对话模式机制。客户端的对象通过系统及一些服务工具要求电表、水表等提供一些列数据服务,服务端会根据其COSEM的对象实例,响应给客户端。电表等也可以称为COSEM服务器,给客户端提供相应的服务。在这里,客户与服务端的对话解析就是通过DLMS来完成的,DLMS完全采用开放式的协议:可以兼容不同领域、不同的系统结构、多种形式的信道介质(水,汽、热等公共能源需量的计量);可以兼容不同厂家的COSEM服务器产品。物理设备,逻辑设备及COSEM对象图图2上图是服务端的一个连接示例图,从图中可以看出,一根总线可以连接多个COSEM服务器。上层:物理设备地址(LowerMacAddress),图中连接了COSEMA电表123,电表456三个COSEM服务器。下层:逻辑设备地址(UpperMACAddress),图中每个COSEM服务器又生成了各自COSEM类的实例。MACAddress也是我们常说的通讯地址,下面介绍一下在HDLC中的通讯地址的表示方法及地址在DLMS报文中的编码算法。HDLC地址HDLC地址的简述HDLC地址就是我们常说的通讯地址HDLC地址分源地址、目标地址两种HDLC地址有如下三种表示方式1个字节:用1个字节的UpperHDLCAddress进行通讯(0~7F)2个字节:用1个字节的UpperHDLCAddress和1个字节LowerHDLCAddress同时进行通讯(0~3FFF)4个字节:用2个字节的UpperHDLCAddress和2个字节LowerHDLCAddress同时进行通讯(0~FFFFFFF)在客户端只用一个字节表示地址,既UpperHDLCAddress(逻辑地址)。在服务端(电表)可以用1个字节,2个字节,4个字节三种表示方法,不管那种表示法,UpperHDLCAddress(逻辑地址)总是存在的,如果客户端只连接一块电表,可以直接用1个字节表示(0x01=逻辑设备地址),如果要连接多块表,可以用多字节地址表示。看图二的连接方式:如要对电表123通讯:LowerHDLCAddress=123->UpperHDLCAddress=0x01(2字节);如要对电表456通讯:LowerHDLCAddress=456->UpperHDLCAddress=0x01(4字节)。备注:多字节包含少字节:既1字节或2字节能通讯,如果用4字节,肯定也能通讯HDLC地址广播地址有如下三种方式1个字节:7F2个字节:3FFF4个字节:FFFFFFFHDLC地址表示方法HDLC地址源地址0x00无地址0x10公共地址(低安全级别)目标地址低位HDLC地址(逻辑设备地址)1字节2字节0x000x0000无地址0x010x0001逻辑设备地址0x02..0x0F0x0002..0x000F预留给用户0x7F0x3FFF广播地址高位HDLC地址(物理设备地址)0x000x0000无地址0x01…0x0F0x0001..0x000F预留给用户0x7E0x3FFE物理设备地址0x7F0x3FFF广播地址HDLC地址的编码算法1个字节地址UpperHDLCAddress1算法:把UpperHDLCAddress(逻辑设备地址)地址左移1位,然后或0x01。如:1)UpperHDLCAddress=0x01(00000001B)左移1位(00000001B):UpperHDLCAddress=0x02(00000010B)或0x01:UpperHDLCAddress=0x03(00000011B)2)UpperHDLCAddress=0x50(01010000B)左移1位(01010000B):UpperHDLCAddress=0xA0(10100000B)或0x01:UpperHDLCAddress=0xA1(10100001B)2个字节UpperHDLCAddress0LowerHDLC1第1字节第2字节算法如下:把UpperHDLCAddress(逻辑设备地址)地址左移1位,组成第1字节把LowerHDLCAddress(物理设备地址)地址左移1位,然后或0x01组成第2字节如:UpperHDLCAddress=0x01(00000001B)LowerHDLCAddress=0x64(01100100B)第1字节:左移1位(00000001B):UpperHDLCAddress=0x02(00000010B)(2)第2字节:左移1位(01100100B):LowerHDLAddress=0xC8(1100100或0x01:LowerHDLAddress=0xC9(11001001B)编码后的数据如下:第1字节(0x02)第2字节(0xC9)4个字节UpperHDLChigh0UpperHDLClow0LowerHDLC0LowerHDLC1第1字节第2字节第3字节第4字节算法如下:UpperHDLCAddress(逻辑设备地址)把UpperHDLCAddress高字节左移2位,组成第1字节把UpperHDLCAddress低字节左移1位,组成第2字节2.LowerHDLCAddress(物理设备地址)把LowerHDLCAddress高字节地址左移2位,组成第3字节把LowerHDLCAddress低字节地址左移1位,然后或0x01组成第4字节Meteraddress19730x7B5左移一位,高字节再左移一位,整个地址或1即可1E6B___MyView如:UpperHDLCAddress=0x01:high=0x00(00000000B);low=0x01(00000001B)LowerHDLCAddress=0x1654(01100100B)high=0x16(00010110B);low=0x54(001010100B)第1字节:0x00(UpperHDLChigh):左移2位(00000000B):UpperHDLChigh=0x00(00000000B)第2字节:0x01(UpperHDLClow):左移1位(00000001B):UpperHDLChigh=0x02(00000010B)第3字节:0x16(LowerHDLC左移2位(00010110B):LowerHDLChigh=0x58(1011000B第4字节:0x54(LowerHDLC左移1位(001010100B):LowerHDLClow=0xA8(010101000B)或0x01:LowerHDLClow=0xA9(010101001B)编码后的数据如下:第1字节(0x00)第1字节(0x02)第1字节(0x58)第2字节(0xA9)DLMS/COSEM模型1.COSEM客户服务器1.COSEM客户服务器Register0..nRegister0..nclass_id=3,version=0Attribute(s)DatatypeMin.Max.Def.1.logical_name(static)octet-string2.value(dyn.)CHOICE3.scaler_unit(static)scal_unit_typeSpecificmethod(s)m/o1.reset(data)odyn:表示该属性由仪表自己刷新协议(DLMS)通过协议(DLMS)访问COSEM实例的属性和方法2.消息协议(DLMS)通过协议(DLMS)访问COSEM实例的属性和方法2.消息消息:Service_Id(Class_Id,Instance_Id,Attribute_Id/Method_Id)3.传送到服务器端3.传送到服务器端报文传送介质:有线,无线等通讯介质传送到主站服务器如:系统主站,红外掌机,一些列服务工具软件等基本信息数据类型基本数据表示值(10进制)表示值(16进制)类型名字字节00NULLNULL11Array数组指定对象个数22structure结构体指定成员数量33boolean布尔型144Bitstring字符155Intger32有符号长整型466Unsinged32无符号长整型499Octet-string16进制字符串指定长度10AVisible-string可见字符指定长度13DInteger8BCD码115FInteger8有符号整型11610Integer16有符号长整型21711Unsigned8无符号整型11812Unsigned16无符号整型21913Compact-array压缩数组不确定2014Integer64有符号长整型82115Unsigned64无符号长整型2216enum枚举型12317float32浮点数42418float64浮点数82519Date-time日期时间型12261Adate日期5271Btime时间4日期类型(UTC)date_timeAttributeTypeRangeCodingyear:Unsigned160..big0xFFFF=notspecifiedmonth:Unsigned81..12,0xFD,0xFE,0xFF1isJanuary
0xFD=daylight_savings_end
0xFE=daylight_savings_begin
0xFF=notspecifieddayOfMonth:Unsigned81..31,0xFD,0xFE,0xFF0xFD=2ndlastdayofmonth
0xFE=lastdayofmonth
0xFF=notspecifieddayOfWeek:Unsigned81..7,0xFF1isMonday
0xFF=notspecifiedhour:Unsigned80..23,0xFF0xFF=notspecifiedminute:Unsigned80..59,0xFF0xFF=notspecifiedsecond:Unsigned80..59,0xFF0xFF=notspecifiedhundredths:Unsigned80..99,0xFF0xFF=notspecifiedDeviationInteger16-720..+720Min.fromlocaltimetoGMT0x8000=notspecifiedclockstatus:Unsigned8AlwaysequaltoattributestatusdateAttributeTypeRangeCodingyear:Unsigned160..big0xFFFF=notspecifiedmonth:Unsigned81..12,0xFD,0xFE,0xFF1isJanuary
0xFD=daylight_savings_end
0xFE=daylight_savings_begin
0xFF=notspecifieddayOfMonth:Unsigned81..31,0xFD,0xFE,0xFF0xFD=2ndlastdayofmonth
0xFE=lastdayofmonth
0xFF=notspecifieddayOfWeek:Unsigned81..7,0xFF1isMonday
0xFF=notspecifiedtimehour:Unsigned80..23,0xFF0xFF=notspecifiedminute:Unsigned80..59,0xFF0xFF=notspecifiedsecond:Unsigned80..59,0xFF0xFF=notspecifiedhundredths:Unsigned80..99,0xFF0xFF=notspecified目前在兰吉尔表中的日期时间数据类型是用09(Octet-string)表示如下是几个应用层的报文示例,告诉开发者应用层的数据类型怎么解析在以后的文中不再针对应用层报文细讲了。1.读电表时间:090C07D60310040A0E17FF80000009数据类型=9(16进制字符串)0C数据长度=1207年(2字节)=2006D603月=0310日=1604周=040A时=100E分=1417秒=23FF毫秒(不用)80时区差(不用)0000时间状态=0组合起来,电表时间:2006-03-1610:14:23
IEC62056-62的P13页有描述2.读IEC设备地址(IECdeviceAddress):0A0835383233343731350A数据类型=10(Visible-string)08数据长度=083535x=53d(asc=‘5’)3838x=56d(asc=‘8’)3232x=50d(asc=‘2’)3333x=51d(asc=‘3’)3434x=52d(asc=‘4’)3737x=55d(asc=‘7’)3131x=49d(asc=‘1’)3535x=53d(asc=‘5’)组合起来,IEC设备地址:582347153.读正向有功总电量:14000000000005F71214数据类型=20(Integer648个字节)005x*10000x+F7x*100+12X=5F712x=390930dscale-unit:Wh|-1电量:390930d/10000d=39.093kWh0000000005F7124.读TOU日表(复杂一点)报文如下:01010202FF120004020309解析如下:0101数组长度=01(日时段表数=1)0202数据类型=02(结构体),成员数量=211数据类型=17(Unsigned81字节)01日表序号=01(第一个日表)0102数组长度=01(第一个日表的日时段数=2)0203数据类型=02(结构体),成员数量=30904数据类型=9(16进制字符串),长度=400000000时间:00:00:000906数据类型=9(16进制字符串),长度=600000A0064FFOBIS12数据类型=18(Unsigned16)0004E3有效:04=00000100B0203数据类型=02(结构体),成员数量=30904数据类型=9(16进制字符串),长度=4071E0000时间:07:30:000906数据类型=9(16进制字符串),长度=600000A0064FFOBIS12数据类型=18(Unsigned16)0001E1有效:01=00000001BTOU的数据结构,在此文档中不做说明最后数据表示如下:日时段表数=1第1个日时段表数据日时段数=200:00E07:30E1COSEM简述寻址方式Register0..nclass_id=3,version=0Attribute(s)DatatypeMin.Max.Register0..nclass_id=3,version=0Attribute(s)DatatypeMin.Max.Def.1.logical_name(static)octet-string2.value(dyn.)CHOICE3.scaler_unit(static)scal_unit_typeSpecificmethod(s)m/o1.reset(data)o图图3COSEM对象有两种寻址方式:LN:逻辑名class-idCosem-Class-Id,instance-idCosem-Object-Instance-Id,attribute-idCosem-Object-Attribute-Id,Cosem-Class-Id:指属于哪类,如class-id=3;4;5Cosem-Object-Instance-Id:指对象的实例的OBIS,如:1-1:1.8.0(正向有功总电能)Cosem-Object-Attribute-Id:如上图三中attribute(s):value的Attribute-Id=2:表示要对第二项元素进行操作SN短名instanceObjectNameinstance:指COSEM实例中的元素的物理地址,每一个实例,只有基地址可以通过Associationview类得到,然后开发者通过不同的类的格式去计算其中实例中某项元素的物理地址。如下是类3的格式:Registerclass_id=3,Version=0Shortname:RemarksAttribute(s)logical_namex基地址Valuex+8scaler-unitx+16SpecificMethod(s)resetx+40如正向有功总电能的基地址是:0x03E8,如果要读其电能值(attribute=2):则其物理地址是:0x03E8+8=0x03F0访问选择VariableAccessSpecification:=CHOICE...[2][3]...parameterizedaccess[4]IMPICITSEQUEENCE{variable_nameObjectNameaccess_selectorintegerparameterdata}访问选择有两种:2,3:不带条件参数访问4:带条件参数访问variable_name:object对象名,指SN或LN,看”2.5.1章节”Selective-Access-Descriptor:指条件访问,值=1:表示指定范围内的条件范围,比如需要指定formdate…todate的负荷数据,如果对象的操作不须要带参数,可以省略parameter当access_selector=1时,parameter指From...To条件访问结合2.5.1章节,以下两个例子(用LN寻址,应用层的部分报文)负荷类如下格式:Clockclass_id=7,Version=1shortname:RemarksAttribute(s)logical_nameX基地址=0x6270Bufferx+8Capture_objectx+16Capture_periodx+24Sort_methodx+32….x+401.读capture_period:0x6270+24=0x628802不带条件访问6288Objectname(capture_period)2.读buffer数据:0x6270+8=0x627804条件访问6278Buffer数据的地址01条件是:范围内的(from…to) 0204条件的parameterdata:有4项参数 0204第一项参数又有4项数据 12第1项是:LongUnsigned 0008Class_id:08(时钟类) 0906第2项是:octet-string长度:6 0000010000FF时钟的逻辑名 0F第3项:integer 02AttributeIndex:2(表示是时钟类的time),看8类的结构 12第4项:LongUnsigned 0000DataIndex:目前没有使用 090C第二项参数:octet-string(fromdata),长度=12 07D603100F082D000080000FFromdata:2006-03-16,0 090C第三项参数:octet-string(todata),长度=12 07D603110F082D000080000FFromdata:2006-03-17,0 01第四项参数selected_entries:type=array 0000:所有capture_object的数据都返回COSEMpdu名称值备注initiateRequest0x01初始化readRequest0x05读要求writeRequest0x06写要求initiateResponse0x08初始化响应readResponse0x0C读响应writeResponse0x0D写应confirmedServiceError0x0E错误信息UnconfirmedWriteRequest0x16不需要错误信息返回的写要求常用的是:readRequest(读数据)、writeRequest(写数据)结合2.5.1、2.5.2章节,如下给出2个完整的读、写应用层报文示例1:读电表时间读数据: 05读要求01读数量 02访问选择2BC8地址返回数据:0C读响应01响应数量00成功090Coctet-string,长度=1207D60311050D3413FF8000002006-03-1713:52:192:写电表时间写时间数据:06写要求01写数据项的数量02 访问选择2BC8地址01写数据项的数据的数量090Coctet-string,长度=1207D60311FF0D3428FF8000FF2006-03-1713:52:写时间数据响应:0D写响应01响应数量00成功DLMS简述整体架构ACSE应用层ACSE应用层数据链路层Modemothers...RS485IEC1107Current.LoopLLCHDLCRS232XXXMediumAccessControl(MAC)LogicalLinkControl(LLC)ASE数据链路层Modemothers...RS485IEC1107Current.LoopLLCHDLCRS232XXXMediumAccessControl(MAC)LogicalLinkControl(LLC)ASE物理层物理层图图4DLMS总体上划分三层:应用层:主要负责用户的业务应用数据链路层:负责数据的会话与解析物理层:数据的传送功能说明应用层ACSEACSE主要是功能是负责系统的安全功能:AARQ(表计Login功能)数据结构如下:conformanceblockconformanceblockInitiateRequest-pduAARQ-pdu下面分别介绍一下ACSE的数据结构:Conformanceblock:Login时,申请权限InitiateRequest-pdu:定义一些初始化基本信息AARQ-pdu:提供COSEM的一些信息数据相关数据结构Conformanceblock:{reserved(0) (0),reserved(0) (1),reserved(0) (2),READ (3),WRITE (4),unconfirmedWRITE (5),reserved(0) (6),reserved(0) (7),reserved(0) (8),priority_mgmt_supported (9),attribute0_supported (10),block_transfer_with_GET (11),block_transfer_with_SET (12),block_transfer_with_ACTION (13),multiple_references (14),InformationReport (15),reserved(0) (16),reserved(0) (17),parameterized_access (18),GET (19),SET (20),selectiveaccess (21),EVENTNOTIFICATION (22),ACTION (23)}灰色的部分表示兰吉尔表计(短名寻址)目前不支持的操作.Conformanceblock主要作用是Login时候,申请权限。如读,写权限当向电表提交需要的操作权限,电表会根据你的权限请求,返回正确的权限给你。三个字节,24位,位置1,表示有效下面的信息是常用的权限:0x18,0x03,0x20Bit_00Bit_01Bit_02READWRITEunconfirmedWriteBit_06Bit_07Bit_08Bit_09Bit_10Bit_11Bit_12Bit_13multiplereferencesInformationReportBit_16Bit_17parameterizedaccessBit_19Bit_20Bit_21Bit_22Bit_23ValueoftheBITSTRINGSN000110000000001100100000180320InitiateRequest::=SEQUENCE{ dedicated-key OCTETSTRINGOPTIONAL, response-allowed BOOLEANDEFAULTTRUE, proposed-quality-of-service [0]IMPLICITInteger8OPTIONAL, proposed-dlms-version-number Unsigned8, proposed-conformance Conformance, client-max-receive-pdu-size Unsigned16}InitiateRequest作用是定义一些初始化基本信息,常用法如下:--A-XDRencodingtheDLMSInitiate.request-pdu01//encodingthetag(explicittag)oftheDLMSPDUCHOICE(InitiateRequest)--encodingthededicated-keycomponent(OPTIONAL,notpresent)00//usageflagforthededicated-keycomponent(FALSE,notpresent)--encodingtheresponse-allowedcomponent(TRUE,defaultvalue)00//usageflagfortheresponse-allowedcomponent(FALSE,defaultvalueconveyed)--encodingtheproposed-quality-of-servicecomponent(OPTIONAL,notpresent)00//usageflagfortheproposed-quality-of-servicecomponent(FALSE,notpresent)--encodingoftheproposed-dlms-version-numbercomponent(Unsigned8,value=2)06//theA-XDRencodingofanUnsigned8isitsvalue--encodingtheConformanceblock[APPLICATION31]IMPLICITBITSTRING(SIZE(24))5F//encodingthe[APPLICATION31]tag(ASN.1explicittag) 04//encodingthelengthofthe'contents'fieldinoctet(4) 00//encodingofthenumberofunusedbitsinthefinaloctetoftheBITSTRING 180320//encodingofthefixedlengthbitstringvalue--encodingtheclient-max-receive-pdu-sizecomponent(Unsigned16,value=0x4B0)0000//theA-XDRencodingofanUnsigned16isitsvalue(nolimit)AARQ-apdu::=[APPLICATION0]IMPLICITSEQUENCE{protocol-version [0] IMPLICITBITSTRING{version1(0)}DEFAULT{version1},application-context-name [1] Application-context-name,called-AP-title [2] AP-titleOPTIONAL,called-AE-qualifier [3] AE-qualifierOPTIONAL,called-AP-invocation-id [4] AP-invocation-identifierOPTIONAL,called-AE-invocation-id [5] AE-invocation-identifierOPTIONAL,calling-AP-title [6] AP-titleOPTIONAL,calling-AE-qalifier [7] AE-qualifierOPTIONAL,calling-AP-invocation-id [8] AP-invocation-identifierOPTIONAL,calling-AE-invocation-id [9] AE-invocation-identifierOPTIONAL,--ThefollowingfieldshallnotbepresentifonlytheKernelisused.sender-acse-requirements [10] IMPLICITACSE-requirementsOPTIONAL,--ThefollowingfieldshallonlybepresentiftheAuthenticationfunctionalunitisselected.mechanism-name [11] IMPLICITMechanism-nameOPTIONAL,--ThefollowingfieldshallonlybepresentiftheAuthenticationfunctionalunitisselected.Calling-authentication-value[12] EXPLICITAuthentication-valueOPTIONAL,implementation-information[29] IMPLICITImplementation-dataOPTIONAL,user-information [30] IMPLICITAssociation-informationOPTIONAL}AARQ-apdu主要作用是提供COSEM的一些信息数据user-information:指上面的2.6.2.1.1.1.和2.6.2.1.1.1.的相关数据结构application-context-name:COSEM_Application_Context_Name::={joint-iso-ccitt(2)country(16)country-name(756)identified-organization(5)DLMS-UA(8)application-context(1)context_id(2)};context_id:表示寻址方式01:逻辑名寻址02:短名寻址Landisgyr表计的寻址方式用短名寻址(02)加密方式Application_Context_Name是7个字节:02,16,756,05,08,01,02发送的时候不是明文,需要经过BER编码,编码过程如下:序号明文算法密文第1字节240*2+16=96=0x600x60第2字节160x85第3字节756第2字节:a=(756&0xFF00)/0x100*2=4b=(756&0x80)/0x80=1c=a|b|0x80=4|1|0x80=0x85第3字节:756&7F=0x740x74第4字节5不变0x05第5字节8不变0x08第6字节1不变0x01第7字节2不变0x02mechanism-name:COSEM_Authentication_Mechanism_Name::={joint-iso-ccitt(2)country(16)country-name(756)identified-organization(5)DLMS-UA(8)authentication_mechanism_name(2)mechanism_id(x)};mechanism_id:参数是指定login时候的加密方式:0:不需要加密1:低级加密2:高级加密也是7个字节,发下去时,前3个字节也须经过BER编码,编码后数据:0x60,0x85,0x74,0x05,0x08,0x02,0x0x编码算法详见“2.6.1.1.1.3.2.2章节”。
Login相关报文(AARQ帧)上面章节把Login时需要的主数据细说了,现在把常用的三种Login例子报文如下:主站下发帧:AARQlowestlevelofsecuritylowlevelsecurityhighlevelsecuritydescriptionAARQ-apdu:606060[APPLICATION0]implicitsequence1C352Dlength(ofremainingpdu)protocolversion:DEFAULT{version1}->noencodingapplication-context-name:A1A1A1[1]Applicationcontextname090909Length060606objectidentifier070707Length608574056085740560857405{2,16,756,5,8,1,2}=default-COSEM-Application-Context-Namefirstoctet=96(2*40+16);短名寻址sender-acse-requirements(notusedifnoauthenticationisneeded)8A8A[10]IMPLICITACSE-requirements0202Length0707numberofunusedbitsinlastbyte8080databyte(bit0inMSB,bit0=1authenticationfunctionalunitrequested)mechanism-name:(notpresent,ifnoauthenticationisrequired)8B8B[11]implicitMechanism-name::=objectidentifier0707Length6085740560857405{2,16,756,5,8,2,x}=default-COSEM-Mechanism-Namefirstoctet=96(2*40+16)calling-authentication-value:(notpresent,ifnoauthenticationisrequired)ACAC[12]explicit_Authentication-value::=choice0A02Length8080charstring[0]implicitGraphicString0800Length(forDialogMeters,fixedto8ifused)xxxxxxxxxxxxxxxxCalling-authentication-value:(=password,8characters)userinformation:BEBEBE[30]implicitAssociation-information::=sequenceofexternal0F0F0FLength040404octetstring0D0D0DlengthDLMS-initateRequest(AXDRcoded):010101[1]implcitsequence{dedicated-key:000000octetstringoptional->notselectedresponse-allowed:000000booleandefaulttrue->defaultproposed-quality-of-service:000000optional->notselectedproposed-DLMS-version-number:060606Unsigned8->versionproposed-conformance:5F5F5F[Application31]implicitbitstring,size(24)->BERencoded040404length000000numberofunusedbits180320180320180320conformanceblock:READ,WRITE,multiplereferences,InformationReport,parameterisedaccessproposed-max-pdu-size:000000000000Unsigned16->unlimited,usingHDLCsegmentation电表返回信息(AARE帧):AARElowestlevelofsecuritylowlevelsecurityhighlevelsecuritydescriptionwithoutauthenticationlowlevelpasswordhighlevelpasswordAARE-apdu:616161[Application1]implicitsequence28283Dlength(ofremainingpdu)protocol-version:default{version1}->noencodingapplication-context-name:A1A1A1[1]Applicationcontextname090909length060606objectidentifier070707length608574056085740560857405{2,16,756,5,8,1,2}=default-COSEM-Application-Context-Namefirstoctet=96(2*40+16)result:A2A2A2[2]Associate-result030303length020202integer010101lengthXxXx00(0)accepted,(1)rejected-permanent,(2)rejected-transientresult-source-diagnostic:A3A3A3[3]Associate-result-diagnostic::=choice050505lengthA1A1A1Acse-service-user[1]030303Length020202integer010101LengthXxXx0E(0)null;(1)noreasongiven;(2)applicationcontextnamenotsupported;(11)authenticationmechanismnamenotrecognized;(12)authenticationmechanismnamerequired;(13)authenticationfailure;(14)authenticationrequiredresponder-acse-requirements:88[8]IMPLICITACSE-requirements02Length07numberofunusedbitsinlastbyte80databyte(bit0inMSB,bit0=1authenticationfunctionalunitrequested)mechanism-name:(notpresent,ifnoauthenticationisrequired)89[9]implicitMechanism-name::=objectidentifier07Length60857405{2,16,756,5,8,2,x}=default-COSEM-Mechanism-Namefirstoctet=96(2*40+16)responding-autication-value:(notpresent,ifnoauthenticationisrequired)AA[10]explicit_Authentication-value::=choice0Alength80charstring[0]implicitGraphicString08lengthxxxxxxxxxxxxxxxxresponding-autication-value:(=clientchallenge,8characters)userinformation:BEBEBE[30]implicitAssociation-information::=sequenceofexternal0F0F0Flength040404octetstring0D0D0DlengthDLMS-initateResponse(AXDRcoded):080808[8]implicitsequence{000000negotiated-quality-of-service:optional->notselectednegotiated-DLMS-version-number:060606Unsigned8->version6negotiated-conformance:5F5F5F[Application31]implicitbitstring,size(24)->BERencoded040404length000000numberofunusedbits180220180220180220conformanceblock:READ,WRITE,InformationReport,parameterisedaccessnegoiated-max-pdu-size:003C003C003CUnsigned16vaa-name:FA00FA00FA00ObjectName::=integer16备注:1:对于高加密方式Login,电表返回的8字节的随机数+三级密码(用户自己提供)加密成8字节的数据,然后通过DLMSAssociationView类change_HLS_secret(),看是否Login成功2:最后两个字节(FA00)是DLMSAssociationView类的基地址,存储着当前表计所有的object的基本信息(类、逻辑名、短名、基地址等),对于开发者需要一些信息,非常重要ASASE是用户的一些业务应用。如读(0x05),写(0x06)操作。详见2.5.3COSEMpdu章节数据链路层负责数据的会话与解析。主要由LLC和HDLC组成LLC负责地址的解释报文格式如下:8bit8bit8bitn*8bitDestination(Remote)LSAPSource(Local)LSAPQualityApplicationProtocolDataUnitAPDU0xE6111001100xE6or0xE71110011z0x0000000000octetsoftheAPDU说明如下:第1个字节:E6是固定的第2个字节:E6/E7:E6:下行帧E7:是上行帧第3个字节:帧的质量,默认是:0x00第n*8bit:应用层的数据ASE(比如读操作:050102XXXX)HDLC负责链路层的控制HDLC帧格式如下:12127EFrameFormatDest.AddressSrc.AddressControlHCSInformationFCS7E说明如下:7E:固定的FrameFormat:帧格式,2个字节格式如下:1010SLLLLLLLLLLL帧类型帧长度S=Segmentationbit,如S=1,表示有后续帧(A8)如果需要后续帧数据,主站需发出RR帧,请求后续帧。DestAddress,SrcAddress:目标地址,源地址上面已有专门的说明,不再做解释(地址报文需编码发送)详见“2.2.1HDLCAddress”Control:控制码:报文的类型及控制(帧计数器)常用帧的格式如下:MSBLSBIRRRPSSS0RRRRRP0001RNRRRRP0101SNRM100P0011DISC010P0011UA011F0011DM000F1111FRMR100F0111UI000P0011其中RRR为接收帧序号,SSS为发送帧序号;接收帧序号表示接收到对方发出的I帧序号;发送帧序号表示本方发出的I帧的序号;范围:0<=N<=7,当大于7时,重新复位到0I帧:信息帧,通讯中用得最多的帧,带用户应用层的业务及数据。信息帖的长度〈默认128字节,可以设置〉RR帧:接收准备帧,表示已准备好了接收数据,请求多帧中的下一帧。此帧一般是和I帧配合起来使用的。RNR帧:接收没有准备好帧,表示不接收前次的I帧。SNRM帧:设置普通响应模式,此帧也可以说用来连接电表同时可以设置一些通信连接参数,是用在AARQ帧的前一帧。DISC帧:断开帧,主站发出断开与电表的连接。此帧是主站要结束与电表的通话功能UA帧:响应上次SNRM帧。此帧响应的时候包含了一些连接参数。DM帧:响应上次DISC的帧FRMR帧:叫拒绝帧,返回对方上次发的帧,同时包含拒绝的理由。UI帧:没有编号的信息帧。用得很少帧的命令关系如下:CommandsResponsesIIRRRRRNRRNRSNRMUADISCDMUIUIFRMRInformation:指应用层信息,详见“2.6.2.1.2ASE”章节HCS,FCS校验和:HCS校验的数据域为从“FrameFormat”到“Control”;FCS校验的数据域为从“FrameFormat”到“InformationField”的最后一个字节HCS与FCS的CRC校验算法:多项式为:x**0+x**5+x**12+x**16,CRCH和CRCL的初始值均为FFh实例详见“2.8.1HCS算法函数”HDLC帧传输控制有时候,处理一个请求需要花费很多时间,HDLC定义了最大的响应时间(1.5s),如果在超出最大响应时间内的响应,都视为无效帧图6图6图图5客户端请出一个请求,如果服务端在最大响应时间范围内(1.5s),不能准备好客户端所需要的数据,客户端必须给服务端一个信息,告诉它我正在准备你的数据:通过发送正确帧序号的RR帧。下面是两种处理方式:图5是服务端不能在1.5s准备好数据,没有把P置位(P=0),向客户端发出了两条RR帧,告诉它:我正在准备数据。发送第一条RR帧后,超时重新从0计算图6是服务端不能在1.5s准备好数据,把P置位(P=1),向客户端发出RR帧,告诉它:数据没有准备好,我准备整理,你是否需要。在这种情况下,客户端必须在25ms内对的服务端RR帧响应,否则服务端视为客户端不需要此数据,也视为超时处理了。当服务端数据准备好了,就会往客户端发送其所需要的I帧。超时有以上两种处理方式,图5是一对多帧的关系,图6是一对一的帧关系。视开发者爱好,自己选择。物理层物理层主要负责数据的传送,不做详细说明了,简单介绍一下通讯介质LandisgyrZMD400/ZMH表支持以下通讯介质RS232光电口PSTNGSM综合应用这章针对LandisgyrZMD400/ZMH表,给出一个综合实例:整体流程图图7准备准备HDLC启动SNRMAARQ读时间读负荷读事件读电量…DISC完成IEC1107切换HDLC成功成功失败成功失败YESNONO实例应用客户端地址:0x10(公共访问),编码后成:0x21服务端地址:UpperHDLCAddress=0x01(1字节),编码后成:0x03Pollbit=1(一对一帧关系)IEC1107切换成HDLC切换条件在下例情况下需要切换光电口Autoprotocol或IEC启动关于Autoprotocol或IEC启动,请查看:IECPortSetup类切换过程详见:2.8.2光电口波特切换Login电表Login的整个过程如下图8图8图8SNRM作用获取当前电表的HDLC通讯信息,这些重要信息对于你的通讯设计极有价值HDLC信息名称值帧格式100P0011P1控制码(control)10010011=0x93报文客户端-服务端(Request)7E帧头A007帧格式:无后续帧长度=703服务端地址:0x0121客户端地址:0x1093控制码:0x93(SNRM帧)0F01HCS7E帧尾服务端-客户端(Respone)7E帧头A01E帧格式:无后续帧长度=3021服务端地址:0x1003客户端地址:0x0173控制码:0x73(UA)C37AHCS81格式标识80组标识12长度=180501发送信息帧时应用层的数据最大长度80应用层数据的最大长度=128(字节)0601接收信息帧时应用层的数据最大长度3E应用层数据的最大长度=63(字节)0704发送窗大小000000011:一对一帧关系0804接收窗大小000000011:一对一帧关系0722FCS7E帧尾这包帧的信息非常重要,其中发送和接收信息帧时,应用层的数据长度不能超出HDLC规定的最大长度,否则HDLC拒绝发送,返回数据超界错误代码。AARQ作用LoginHDLCHDLC信息名称值帧格式RRRPSSS0RRR接收序号0SSS发送序号0P1控制码(control)00010000=0x10报文客户端-服务端(AARQ)7E帧头A02A帧格式:无后续帧长度=42(字节)03服务端地址:0x0121客户端地址:0x1010控制码:0x10(I帧)ACC1HCSE6E600LLC60标识1C长度A1Applicationcontextname09长度06Objectidentifier07Length60857405{2,16,756,5,8,1,2}=default-COSEM-Application-Context-Namefirstoctet=96(2*40+16);短名寻址BEimplicitAssociation-information::=sequenceofexternal,这是1个关键字fromli0FLength04octetstring0DLength01[1]implcitsequence{00octetstringoptional->notselected00response-allowed:booleandefaulttrue->default00proposed-quality-of-service:optional->notselected06proposed-DLMS-version-number:Unsigned8->version5F[Application31]implicitbitstring,size(24)->BERencoded04Length
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 人力资源管理概述
- 大就业安全教育
- 2025年版企业股权转让合同范本
- 2025标准版广告合同(杂志上投放)
- 2025企业经营保证贷款合同
- 品牌管理与保护操作手册
- 就业协议书模板在找
- 2025《合同管理与招投标策略》工程管理专业讲义
- 智能制造系统集成知到课后答案智慧树章节测试答案2025年春上海电机学院
- 中国当代文学知到课后答案智慧树章节测试答案2025年春鹤岗师范高等专科学校
- 班主任培训课件如何开好家长会学习资料
- 大学生创新创业训练计划项目申报书(模板)
- 争做最美班级主题班会课件
- 铁路职工政治理论应知应会题库
- 2020年交安A、B、C证(公路)考试题库1088题(含答案)
- 墙绘验收单模板
- 节后复工检查表
- 财务有哪些制度要上墙
- 医学教学课件:软组织肿瘤影像诊断
- 矿山矿石损失与贫化管理规程
- 安全生产晨会管理制度
评论
0/150
提交评论