Как стать автором
Обновить

Работа с кадрами протокола DLMS/COSEM для опроса приборов учета. Часть 1. Установление и завершение соединения

Время на прочтение12 мин
Количество просмотров5.2K
Всего голосов 4: ↑4 и ↓0+4
Комментарии3

Комментарии 3

Для начала, я бы начал с описания протокола HDLC, который используется, как "обертка". Это уместно, так как обмен данными с ПУ просходит, во многих случаях, по последовательному каналу связи. HDLC может не использоваться только при соединении TCP/IP.

У меня была такая мысль: начинать описание с нижних уровней и идти к верхним, а не как сейчас, сверху вниз. Но я рассматривал свои статьи как продолжение имеющихся на хабре и частично опираюсь на них в тексте. Поэтому выбрал такой, не совсем оптимальный путь. Следующая часть посвящена сервису получения данных GET, а уже потом будет описано, как эти кадры оборачиваются протоколом HDLC.

Подскажите, а то всю голову сломал. Есть, например, запрос к счетчику на получение даты изготвления. Выглядит так

7e a0 1a 02 21 41 dc 6b ac e6 e6 00 c0 01 c1 00 01 00 00 60 01 04 ff 02 00 65 d2 7e

Далее приходит ответ

7e a0 1f 41 02 21 fc 4d 11 e6 e7 00 c4 01 c1 00 09 0c 07 e5 0a 15 04 16 05 10 00 80 00 00 d5 5f 7e

Вроде все понятнно. c401c100 - за ним идет 09 - octet string и размер 0c - 12 байт. 075e - 2021, 0a - 10 15 - 21ю И так, счетчик выпустили 21 октября 2021 года. Там еще время есть, но это не важно.

А теперь я хочу получить данные по тарифам и сети. Счетчик воспринимает только одну команду (возможно я не разобрался, но отдельные он присылает отлуп) - 1.0.94.7.0.255 - получить списком.

Запрос.

7e a0 1a 02 21 61 1c 54 49 e6 e6 00 c0 01 c1 00 07 01 00 5e 07 00 ff 02 00 c3 40 7e

Ответ (не буду полностью, он почти 300 байт, стрелочек естественно в ответе нет)

7e a1 0e 61 02 21 f0 5d ef e6 e7 00 c4 01 c1 00 ->01 01 02 30<- 09 0c 07 e7 0a 1e 01 11 27 0e 00 80 00 00 06 00 00 18 ce 06 00 00 18 c1

Считаем. c401c100. Далее вот этот кусок мне и не понятен - 01010230, потому что, после него опять становится понятно - 090с - octet string длнной 12 байт - дата-время замера, 06000018сe - 06 - unsigned32 и само число и там дальше идут типы или 06, или 05, им длина не нужна.

Вопрос - что это за кусок и как его интерпретировать - ->01 01 02 30<-

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории