规约dlms111(8)

2020-04-14 06:56

DLMS/COSEM规约解析(本地部分)

00//raw-data,表明回复的是数据;如果为01则表示回复的是data-access-result 73//此数据块长度

09 06 01 01 01 06 01 FF…//接上一数据块的后续数据

客户端: 7E A0 1C 48 68 FE FF 75 98 XX XX E6 E6 00 C0 02 81 00 00 00 02 XX XX 7E

服务端: 7E A0 LL 75 48 68 FE FF B8 XX XX E6 E7 00 C4 02 81 FF 00 00 00 03 00 LL …XX XX 7E

C4 02//Get-Response-With-Datablock 81// invoke-id and priority FF//是最后的数据块

00 00 00 03//数据块序号 3 …//剩余的数据

客户端: 7E A0 1C 48 68 FE FF 75 BA XX XX E6 E6 00 C0 02 81 00 00 00 03 XX XX 7E

4.1.4. 读数据不成功情况的典型原因

1. 不支持的读操作,如表计中只支持get-response-normal的读操作,而试图用

get-response-with-datablock或者其他来读数据,如CTT发送:7EA0190321326FD8E6E600C004C1000F0000280000FF0100DAF97E,则表计回应的get.response数据域中应该为01 0C(scope-of-access-violated)

2. Get.Request的数据域中缺少参数或者没有的OBIS,比如缺少Class ID和属性,CTT发

送:7EA0150321767B4BE6E600C001C1000028000100C23A7E或者7EA0190321BA2FD0E6E600C001C1000FFFFFFFFFFFFF0100EF6C7E,则表计回应的get.response数据域中应该为01 04(object-undefined)

3. 读取对象不存在的属性,如CTT发送:

7EA0190321FE0FD4E6E600C001C1000F0000280000FF090039B77E,则表计回应的get.response数据域中应该为01 03(read-write-denied)

写操作(Set)

分为Set. Request和Set.Response。

4.2.1. Set. Request

数据设置请求帧

SET-Request::=CHOICE {

Normal-Set-request [1] IMPLICIT Set-request-pdu

Set-request-with-first-datablock [2]IMPLICIT Set-request-with-first-datablock-pdu Set-request-with-datablock [3] IMPLICIT Set-request-with-datablock-pdu Normal-Set-request-with-list [4] IMPLICIT Set-request-with-list-pdu Set-request-with-list-and-first-datablock [5]IMPLICIT Set-request-with--list-and-first-datablock-pdu }

31

DLMS/COSEM规约解析(本地部分)

Set-request-PDU::=SEQUENCE {

invoke-id-and-priority Class-ld Instance-ld Attribute-ld

Invoke-Id-And-Priority,

COSEM-CLASS-ID,

COSEM-OBJECT-INSTANCE-ID, COSEM-OBJECT-ATTRIBUTE-ID,

Access_Selection selective-access-descriptor OPTIONAL, Value Data }

Set-Request-With-First-Datablock ::= SEQUENCE {

invoke-id-and-priority Invoke-Id-And-Priority, cosem-attribute-descriptor Cosem-Attribute-Descriptor,

access-selection Selective-Access-Descriptor OPTIONAL, datablock DataBlock-SA }

DataBlock-SA ::= SEQUENCE -- SA == DataBlock for the SET.request and ACTION.request services {

last-block BOOLEAN, block-number Unsigned32, raw-data OCTET STRING }

以设置时钟时间为例:

客户端:7E A0 29 48 68 FE FF 75 98 XX XX E6 E6 00 C1 01 81 00 08 00 00 01 00 00 FF 02 00 09 0C 07 D2 0C 04 03 0A 06 0B FF 00 78 00 XX XX 7E

解释:

7E A0 27 95 75 98 B8 DB E6 E6 00//Hdlc head

C1 01// SET.normal request(在DLMS认证第一阶段,规约里所有的设置操作ID均为C101) 81// invoke-id(000 0001) and priority(1) (数据域数据不超过数据域规定长度时,固定为81,超过

则为8C)

00 08// class id 00 00 01 00 00 FF// LN

02// set the 2nd attribute, time

00// haven’t access-selection-parameters

09 0C 07 D2 0C 04 03 0A 06 0B FF 00 78 00// just SET the value read before XX XX 7E//HDLC Tail

4.2.2. Set. Response

数据设置响应。

SET-Response::=CHOICE

32

DLMS/COSEM规约解析(本地部分)

{

Normal-Set-response [1] IMPLICIT Set-response-pdu

Set-response-datablock [2] IMPLICIT Set-response-for-datablock-pdu Set-response-last-datablock [3] IMPLICIT Set-response-for-last-datablock-pdu Set-response-for-last-datablock-with-list [4]IMPLICIT Set-response-for-last-datablock-with-list-pdu

Set-response-with-list [5]IMPLICIT Set-response-with-list-pdu }

Set-response-PDU::=SEQUENCE {

invoke-id-and-priority result }

Get-Data-Result ::= CHOICE {

data [0] Data,

data-access-result [1] IMPLICIT Data-Access-Result }

Set-Response-Datablock ::= SEQUENCE {

invoke-id-and-priority Invoke-Id-And-Priority, block-number Unsigned32 }

Set-Response-Last-Datablock ::= SEQUENCE {

invoke-id-and-priority Invoke-Id-And-Priority, result Data-Access-Result, block-number Unsigned32 }

已设置时间回应为例,设置成功情况如下:

服务端:7E A0 12 75 48 68 FE FF B8 XX XX E6 E7 00 C5 01 81 00 XX XX 7E

Invoke-Id-And-Priority, Get-Data-Result

解释:

7E A0 12 75 48 68 FE FF B8 XX XX E6 E7 00//Hdlc head

C5 01// SET.normal response(在DLMS认证第一阶段,规约里所有的设置操作响应ID均为C501) 81// invoke-id(000 0001) and priority(1) (数据域数据不超过数据域规定长度时,固定为81,超过

则为8C)

00// success XX XX 7E//HDLC Tail 设置失败,如temporary-failure:

服务端:7E A0 13 75 48 68 FE FF B8 XX XX E6 E7 00 C5 01 81 01 02 XX XX 7E

解释:

7E A0 13 75 48 68 FE FF B8 XX XX E6 E7 00//Hdlc head

33

DLMS/COSEM规约解析(本地部分)

C5 01// SET.normal response(在DLMS认证第一阶段,规约里所有的设置操作响应ID均为C501) 81// invoke-id(000 0001) and priority(1) (数据域数据不超过数据域规定长度时,固定为81,超过

则为8C)

01// data-access-result [1] IMPLICIT Data-Access-Result 02 //temporary-failure XX XX 7E//HDLC Tail

4.2.3. 设置数据块

当一次设置的数据量很大时可采用Set-request-with-first-datablock/ Set-request-with-datablock的方式实现,以设置节假日为例:

客户端:7E A0 29 48 68 FE FF 75 54 XX XX E6 E6 00 C1 02 81 00 0B 00 00 0B 00 00 FF 02 00 00 00 00 00 01 BA 01 14 02 03 12 07 D8 09 05 FF FF 01 01 FF 11 01 02 03 12 07 D8 09 05 FF FF 02 01 FF 11 01 02 03 12 07 D8 09 05 FF FF 03 01 FF 11 01 02 03 12 07 D8 09 05 FF FF 04 01 FF 11 01 02 03 12 07 D8 09 05 FF FF 05 01 FF 11 01 02 03 12 07 D8 09 05 FF FF 06 01 FF 11 01 02 03 12 07 D8 09 05 XX XX 7E

C1 02//Set-request-with-first-datablock 81// invoke-id and priority

00 0B 00 00 0B 00 00 FF 02 00//设置项的CLASS ID\\OBIS和属性等 00//不是最后一个数据块 00 00 00 01//第1数据块 BA//数据块长度 01 14//20个节假日

02 03 12 07 D8 09 05 FF FF 01 01 FF 11 01//第1个节假日 02 03 12 07 D8 09 05 FF FF 02 01 FF 11 01//第2个节假日 …

02 03 12 07 D8 09 05//续下一个数据块

服务端:7E A0 13 75 48 68 FE FF 74 XX XX E6 E7 00 C5 02 81 00 00 00 01 XX XX 7E

C5 02//Set-response-datablock 00 00 00 01//收到第1数据块

客户端:7E A0 29 48 68 FE FF 75 76 XX XX E6 E6 00 C1 03 81 00 00 00 00 02 LL FF FF 07 01 FF 11 01 02 03 12 07 D8 09 05 FF FF 08 01 FF 11 01 … XX XX 7E

C1 03//Set-request-with-datablock 81// invoke-id and priority 00//不是最后一个数据块 00 00 00 02//第2数据块 LL//数据块长度

FF FF 07 01 FF 11 01 02 03 12 07 D8 09 05 FF FF 08 01 FF 11 01 … //紧接上一数据快数据

服务端:7E A0 13 75 48 68 FE FF 96 XX XX E6 E7 00 C5 02 81 00 00 00 02 XX XX 7E

//收到第2数据块

客户端:7E A0 29 48 68 FE FF 75 98 XX XX E6 E6 00 C1 03 81 FF 00 00 00 03 LL… XX XX 7E

C1 03//Set-request-with-datablock 81// invoke-id and priority 00//不是最后一个数据块

34

DLMS/COSEM规约解析(本地部分)

00 00 00 03//第3数据块 LL//数据块长度

… //紧接上一数据快数据

服务端:7E A0 13 75 48 68 FE FF 96 XX XX E6 E7 00 C5 03 81 00 00 00 00 03 XX XX 7E

C5 03//Set-response-last-datablock 81//

00// Data-Access-Result:OK 00 00 00 03//收到弟3数据块

4.2.4. 写数据不成功情况的典型原因

1. 不支持的写操作,如表计中只支持Normal-Set-request l的写操作,而试图用其他来写数

据,如CTT发送:7EA0210321324571E6E600C106C1000F0000280000FF010009060000280000FF4F967E则表计回应的get.response数据域中应该为01 0C(scope-of-access-violated)

2. Set.Request的数据域中缺少参数或者没有的OBIS,比如缺少Class ID和属性 3. 设置对象不存在的属性

方法操作(Action)

分为ACTION Request和ACTION.Response。

4.3.1. ACTION. Request

ACTION-Request::=CHOICE {

Normal-Action-request

[1] IMPLICIT Normal-Action-request-pdu

Action-request-for-next-pblock [2] IMPLICIT Action-request-for-next-pblock-pdu Action-request-with-list [3] IMPLICIT Action-request-with-list-pdu Action-request-with-list-and-first-pblock [4] IMPLICIT Action-request-with-list-and-first-pblock-pdu

Action-request-with-pblock [5]IMPLICIT Action-request-with-pblock-pdu }

Normal-Action-request-pdu::=SEQUENCE {

invoke-id-and-priority Class-ld Instance-ld Method-ld }

以清当前正向有功电量为例:

35

Invoke-Id-And-Priority,

COSEM-CLASS-ID,

COSEM-OBJECT-INSTANCE-ID, COSEM-OBJECT-OPERATION-ID,

Method_Inv_Params Data OPTIONAL,(有些执行动作需要带参数)


规约dlms111(8).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:巴西的崛起对国际格局的影响

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: