- PVSM.RU - https://www.pvsm.ru -
В последнее время протокол DLMS/COSEM стал активно применяться в приборах учета (счетчики электрической энергии, тепла, воды, газа) отечественного производства. Почти у каждой компании, специализирующейся на выпуске микроконтроллеров, имеется, сертифицированный стек DLMS/COSEM, используя который можно сократить стоимость и время разработки прибора учета, поддерживающий данный протокол. В этой статье речь пойдет о стеке DLMS/COSEM для микроконтроллеров семейства MSP430 компании Texas Instruments.
Стек DLMS/COSEM от компании TI имеет следующие особенности:
Для того чтобы «пощупать» стек нам понадобятся:
Стек DLMS/COSEM доступен по адресу (http://www.ti.com/tool/dlmsobj-eval [2]), для его загрузки необходимо иметь учетную запись TI. Сам стек упакован в дистрибутив под названием DLMS-4.0.6-windows-installer. После его установки, в папке установки будет лежать zip-папка «DLMS_Object» в которой находятся файлы стека.
Библиотека состоит из следующих файлов:
Все эти файлы уже собраны в проект под название dlms_obj.eww.
В этой части мы запустим демонстрационный проект и посмотрим, как представляются объекты COSEM. Для этого, открываем файл dlms_obj.eww в IAR for MSP430 и выбираем требуемый микроконтроллер, в нашем случае это MSP430F67791.
Собираем проект и программируем контроллер. Открываем программу DLMSDirector и добавляем новое устройство со следующими параметрами:
Нажимаем кнопку «ОК». Затем в дереве «Devices» выбираем наше устройство, нажимаем кнопку «Connect» и … получаем вот такую ошибку:
Исправляется она легко, открываем файл uart_comms.c проекта dlms_obj.eww и в строке 132 видим, что при конфигурировании UART была допущена «опечатка»:
Правильная строка должна иметь вид:
P3SEL0 |=(BIT0|BIT1);
После исправления, связь с прибором учета успешно устанавливается, в результате чего становится доступной кнопка «Read», а в статусной строке мы видим «Ready»:
Для загрузки информации с прибора учета нажимаем кнопку «Read». Процесс этот не быстрый, поэтому придется чуть-чуть подождать. В результате получаем дерево из объектов COSEM:
В данном стеке, в открытом доступе, по умолчанию, отображается пять объектов:
Например, информация о текущем времени в приборе учета представляется следующим образом:
Мы можем не только узнать время, но и получить информацию о часовом поясе, об источнике тактирования, о дате и времени перехода на летнее время и обратно, а в режиме высокой секретности появляется возможность задавать эти параметры.
Для доступа к прибору учета в режиме низкой секретности необходимо использовать следующие настройки (Пароль по умолчанию — 00000000):
В этом режиме доступно гораздо больше объектов COSEM:
Для добавления нового объекта открываем файл config.c проекта dlms_obj.eww, находим структуру:
const struct object_desc_s object_list[]
и добавляем в нее следующую строку:
{ASSOC_PC_MR_US, CLASS_ID_DATA, 0, { 0, 0, 96, 1, 0, 255}, 2, Obj_Meter_Sr_No, 0, NULL}
Где:
Затем создаем структуру со списком атрибутов в том же файле:
static const struct attribute_desc_s Obj_Meter_Sr_No[] =
{
{1, ACCESS_PCR__MRR__USR_, TAG_OCTET_STRING, (void *) object_list[11].instance_id, NULL},
{2, ACCESS_PCR__MRR__USR_, TAG_OCTET_STRING, (void *) Meter_Sr_No, NULL},
};
Где:
В нашем случае объект не имеет функции обратного вызова, а в качестве типа данных используется строка байтов.
Meter_Sr_No указывает на следующую структуру:
const uint8_t Meter_Sr_No[] =
{
8, 'A','B','C','D','1','2','3','4'
};
Вот и все процедуры по созданию нового объекта. Результат:
В данной статье не приводится полного описания библиотеки DLMS/COSEM для микроконтроллеров семейства MSP430, так как без освещения основных моментов самого протокола это сделать трудно. Однако тем, кому такое описания необходимо могут ознакомиться с ним загрузив его с сайта компании TI (http://www.ti.com/tool/dlmsobj-eval [2]).
Автор: AlexFTF
Источник [3]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/msp430/123792
Ссылки в тексте:
[1] DLMSDirector: http://www.gurux.fi/Download
[2] http://www.ti.com/tool/dlmsobj-eval: http://www.ti.com/tool/dlmsobj-eval
[3] Источник: https://habrahabr.ru/post/302180/?utm_source=habrahabr&utm_medium=rss&utm_campaign=sandbox
Нажмите здесь для печати.