Pull to refresh

DLMS/COSEM – открытый протокол для обмена данными с приборами учета. Часть 2: интерфейсные классы, модель прибора учета

Reading time 8 min
Views 26K

В этой части серии публикаций, посвящённых протоколу DLMS/COSEM, дается определение интерфейсным классам и их экземплярам, рассматриваются способы обращения к объектам COSEM, приводится структура описания интерфейсных классов и диаграмма классов COSEM. Описывается модель прибора учета, рассказывается о роли логического устройства управления, а также приводится краткое описания системы идентификации объектов (OBIS).

Ссылки на опубликованные части серии публикаций


  1. DLMS/COSEM – открытый протокол для обмена данными с приборами учета. Часть 1: краткий обзор
  2. DLMS/COSEM – открытый протокол для обмена данными с приборами учета. Часть 2: интерфейсные классы, модель прибора учета

Интерфейсные классы


Интерфейсные классы являются одним из ключевых элементов протокола DLMS/COSEM, обеспечивающие взаимодействия между системами сбора данных и приборами учета различных производителей. Другими словами, та самая интероперабельность систем сбора данных и приборов учета, т.е. способность взаимодействия друг с другом, достигается, в частности, за счет применения интерфейсных классов. Поскольку и система сбора данных и прибор учета имеют единое представление информации.

Прежде чем дать определение интерфейсному классу рассмотрим сначала его экземпляры, т.е. объекты COSEM. Объекты COSEM представляют собой набор атрибутов и методов. Атрибуты отражают характеристики объекта, а значения атрибутов могут влиять на поведение объекта. Первый атрибут (logical_name) любого объекта содержит в качестве значения логическое имя, которое идентифицирует объект. Методы объекта позволяют или просматривать, или изменять значения атрибутов.

Объекты имеющие общие характеристики (атрибуты и методы) составляют интерфейсный класс, т.е. интерфейсный класс дает описание характеристик, присущих всем объектам этого интерфейсного класса.

Выше сказанное иллюстрирует рисунок 1.

Рисунок 1 – Интерфейсный класс и его экземпляры

На рисунке 1 прибор учета содержит два регистра, т.е. два экземпляра интерфейсного класса «Register». Причем оба экземпляра представляют различную информацию, так объект COSEM с логическим именем [1 1 1 8 0 255] представляет суммарное потребленное значение положительной активной энергии, а объект с логическим именем [1 1 3 8 0 255] — суммарное потребленное значение положительной реактивной энергии. Значение этих параметров доступно при чтении атрибута value. Забегая вперед скажем, что логическое имя представляет собой OBIS код, о котором речь пойдет в конце данной публикации.

Обратиться к объекту COSEM и считать/записать определенный атрибут или выполнить определенный метод, можно двумя способами, либо через его логическое имя (LN referencing), либо через короткое имя (SN referencing).

В случае обращения к объекту COSEM через логическое имя, ссылка на атрибут состоит из идентификатора класса (class_id), значения атрибута logical_name и параметра attribute_index, а ссылка на метод – из идентификатора класса (class_id), значения атрибута logical_name, и параметра method_index, где:
  • attribute_index – индекс (порядковый номер) атрибута. Индексы атрибутов определяются в описании интерфейсного класса, и нумеруются, начиная с 1.
  • method_index – индекс (порядковый номер) метода. Индексы методов определяются в описании интерфейсного класса, и нумеруются, начиная с 1.
Ссылка на объекты COSEM по короткому имени (SN referencing) используется в простых устройствах. В этом случае, каждый атрибут и метод объекта COSEM идентифицируются 13 битным целым числом. Более подробная информация находится в параграфе 4.1.2. голубой книге.

Описание интерфейсных классов придерживается структуры, представленной на рисунке 2.


Рисунок 2 – Структура описания интерфейсного класса

Назначение определений, используемых в структуре описания интерфейсного класса следующее:
Class name
Название интерфейсного класса (например «Register», «Data», «Clock» и т.д.).
Cardinality
Число экземпляров интерфейсного класса в логическом устройстве.
Class_id
Идентификатор интерфейсного класса.
Version
Версия интерфейсного класса.
Attributes
Атрибуты присущие данному интерфейсному классу. Атрибуты могут быть как динамическими (dyn.), их значения обновляет сам прибор учета, так и статическими (static), в этом случае прибор учета не может обновлять их значения сам (например, конфигурационные данные).
Logical name
Значение этого атрибута представляется в виде строки байтов (octet string), attribute_index этого атрибута всегда равен 1. По значению этого атрибута идентифицируются экземпляры интерфейсного класса, т.е. объекты COSEM.
Data type
Типы данных для атрибута.
Min.
Минимальное значение атрибута.
Max.
Максимальное значение атрибута.
Def.
Значение атрибута по умолчанию.
Short name
Короткое имя атрибута или метода если используется SN referencing.
Specific method
Методы присущие данному интерфейсному классу.
m/o
Тип метода: обязательный (m) или опциональный (o).

Пример интерфейсного класса «Register» приведен на рисунке 3, а его описание на рисунке 4.


Рисунок 3 – интерфейсный класс «Register»


Рисунок 4 — Описание интерфейсного класса «Register»

Все интерфейсные классы можно условно разделить на 12 групп, наименование этих групп, а также наименования классов, которые в них входят, приведены на диаграмме классов (рисунок 5 [кликабельный]).


Рисунок 5 — Диаграмма интерфейсных классов (кликабельный)

С кратким описанием интерфейсных классов можно ознакомиться в сокращенной версии голубой книге.

Модель прибора учета


В основе протокола DLMS/COSEM лежит клиент-серверная архитектура. Прибор учета выполняет роль сервера, а система сбора данных – роль клиента. Инициатором обмена информацией является система сбора данных, прибор учета лишь предоставляет требуемую информацию в ответ на запрос системы сбора данных. Однако, в определённых ситуациях сам прибор учета может инициировать обмен данными с системой сбора данных.

На рисунке 6 приведена модель прибора учета. Прибор учета представляет собой физическое устройство (COSEM physical device), в рамках которого есть, как минимум, одно логическое устройство (Management logical device). Использование нескольких логических устройств позволяет реализовать комбинированные приборы учета. Например, теплосчетчик с импульсным входом для измерения расхода воды.


Рисунок 6 – Модель прибора учета DLMS/COSEM

За адресацию как физических, так и логических устройств отвечают нижние уровни используемого стека протокола. Например, при использовании на канальном уровне протокола HDLC, адрес прибора учета представляется в виде последовательности байт, причем возможны три схемы адресации: однобайтовая (только адрес логического устройства), двухбайтовая (адрес логического и физического устройства, значение которых не превышает 127) и четырехбайтовая (адрес логического и физического устройства, значения которых превышает 127). Более подробная информация об адресации при использовании протокола HDLC находится в главе 8 зеленой книге.

Каждое логическое устройство имеет уникальное имя LDN, оно доступно или через объект интерфейсного класса «SAP Assignment», или через COSEM объект «COSEM logical device name» (как правило, это экземпляр интерфейсного класса «Data»).

LDN представляет собой строку байтов размером до 16 байт. Первые три байта – это идентификатор производителя. Производитель гарантирует, что LDN, начинающийся с трех байтов и следующие за ними 13 байтов являются уникальными.

Объект, содержащий LDN, обязательно присутствует в логическом устройстве, как, впрочем, и объекты ассоциации (Association objects).

Для того, чтобы клиент получил доступ к объектам COSEM расположенным на сервере (прибор учета), он должен быть с ним ассоциирован. В процессе ассоциации определяются партнеры (клиент и сервер) и контекст в котором они свяжутся. Основными элементами контекста являются:
  • Контекст приложения. Определяется способ обращения к объектам COSEM (LN или SN referencing) и возможность шифрования передаваемой информации.
  • Механизм аутентификации. Определяется способ доступа к логическому устройству: открытый доступ (lowest level security), доступ по паролю (low level security), доступ с аутентификацией (high level security using AES128/MD5/SHA-1/GMAC/SHA-256/ECDSA).
  • Контекст xDLMS. Определяются параметры прикладного уровня.
Вся информация, об ассоциации клиента и сервера, находится в объектах ассоциации:
  • Объекты интерфейсного класса «Association SN» — в случае SN referencing;
  • Объекты интерфейсного класса «Association LN» — в случае LN referencing.
В зависимости от ассоциации, установленной между клиентом и сервером, сервер может предоставлять различные права доступа для объектов COSEM. Кроме того, к атрибутам и методам этих объектов также могут быть применены ограничения (например, определенный тип клиента может иметь такие права доступа, которые позволят ему только читать конкретный атрибут, при этом запись значений в этот атрибут будет недоступна).

Список видимых объектов COSEM находится в атрибуте object_list соответствующего объекта ассоциации.

Как было сказано ранее, в каждом физическом устройстве всегда есть хотя бы одно логическое устройство, которое называется логическое устройство управления (Management logical device). Оно имеет зарезервированный адрес (0x01) и поддерживает ассоциацию публичного клиента с самым низким уровнем секретности. Таким образом, логическое устройство управления всегда находится в открытом доступе.

Основная роль логического устройства управления — представление внутренней структуры физического устройства и поддержка уведомлений о событиях в приборе учета.

Внутренняя структура физического устройства представляется объектом интерфейсного класса «SAP assignment» и содержит SAP и LDN каждого логического устройства. По сути, SAP это и есть адрес логического устройства. Таким образом, для того чтобы узнать сколько логических устройств есть в приборе учета, а также получить их SAP и LDN необходимо считать атрибуты объекта интерфейсного класса «SAP assignment». Этот объект также находится в открытом доступе.

Система идентификации объектов (OBIS код)


Система идентификации объектов определяет идентификационные коды для широко используемых элементов данных в измерительных устройствах. OBIS предоставляет уникальные идентификаторы для всех данных внутри измерительного устройства, включая идентификаторы не только измеряемых значений, но и также идентификаторы абстрактных значений, используемые для конфигурации или получения информация о поведении измерительного оборудования.

Применительно к экземплярам интерфейсных классов COSEM, OBIS код используется в качестве логического имени объекта COSEM и однозначно идентифицирует информацию, которую данный объект представляет.

OBIS код, являющийся значением первого атрибута любого объекта COSEM, представляет собой числовую комбинацию из шести групп цифр. Каждая группа содержит число из диапазона от 0 до 255. Структура OBIS кода и назначение каждой группы чисел следующее:
Группа A
Значение этой группы определяет тип энергоресурса, с которым связано измерение (электричество, тепло, газ и т.п.) или абстрактные данные. Под абстрактными данными понимается та информация, которая присуща прибору учета, а не измеряемой величине. Например, к абстрактным объектам относятся объект, представляющий имя логического устройства, объекты ассоциации, объект, представляющий версию прошивки прибора учета и др.
Группа B
Значение этой группы, как правило, определяет номер измерительного канала, но также может определять и номер коммуникационного канала, а в некоторых случаях, и другие элементы. Интерпретация значений этой группы не зависит от значения группы A.
Группа С
Значение этой группы определяет наименование измеряемой величины (ток, напряжение, мощность, объем, температура) или абстрактные данные. Интерпретация значения этой группы зависит от значения группы A. Методы обработки, классификации и хранения определяются значениями групп D, E и F. Для абстрактных данных значения групп D, E и F обеспечивают дальнейшую классификацию данных определенных значениями групп A, B и C.
Группа D
Значение этой группы определяет типы, или результат обработки физических величин, определенных значениями групп А и С, в соответствии с различными конкретными алгоритмами.
Группа E
Значение этой группы определяет дальнейшую обработку или классификацию величин определенных значениями групп A – D.
Группа F
Значение этой группы определяет накопленные данные, идентифицируемые через значения групп A – E, в соответствии с различными расчетными периодами.

Значения стандартных OBIS кодов доступно для скачивания в виде excel-документа с официального сайта DLMS UA, более подробная информацию об OBIS находится в главе 7 голубой книге.
Tags:
Hubs:
If this publication inspired you and you want to support the author, do not hesitate to click on the button
+5
Comments 27
Comments Comments 27

Articles