PDA

Просмотр полной версии : Библиотека OwenVendorProtocols для опроса тепло/электросчетчиков и других устройств



Евгений Кислов
26.02.2021, 11:17
Добрый день, коллеги.
Мы выпустили первую версию библиотеки OwenVendorProtocols, которая включает в себя блоки опроса тепло/электросчетчиков других приборов по нестандартным протоколам обмена.
По мере поддержки новых приборов будут выпускаться новые версии библиотеки.

Список поддержанных устройств:

Реализовано:

Теплосчетик ТЭМ-104/106 (благодарим alextopaz (https://owen.ru/forum/member.php?u=81897) за предоставленный прибор и помощь в отладке);
Электросчетчики Меркурий 23x;
Электросчетчики Меркурий 20x (благодарим melky (https://owen.ru/forum/member.php?u=15000) за репозиторий на GitHub (https://github.com/Manjey73/OpnenKPs/tree/master/KpMercury20x) с реализацией протокола на C#).


В работе:

Электросчетчики Энергомера (протоколы CE и МЭК 61107);


В планах:

Теплосчетчики ВКТ-5, ВКТ-7 (Теплоком );
Теплосчетчик КМ-5new (ТБН Энергосервис);
Электросчетчик СЭТ-4ТМ.03М (НЗИФ).


Если вы заинтересованы в разработке блоков опроса для приборов, которые в данный момент отсутствуют в библиотеке – то оставляйте свои предложения в этой теме или присылайте их на почту e.kislov@owen.ru.
Разработка новых блоков по запросу возможна в том случае, если:

у вас есть нужный прибор;
вы можете подключить его к ПК с адекватными характеристиками (не хуже Intel Core i5, 8 Gb RAM);
вы можете обеспечить удаленный доступ к этому ПК по стабильному каналу связи и принимать участие в отладке (имитировать изменение параметров и т. д.)


Также мы готовы проводить консультации по настройке обмена между нашими контроллерами и счетчиками, расходомерами, газоанализаторами и другими устройствами по протоколу Modbus.

Вопросы и пожелания по библиотеке вы можете оставлять прямо в этой теме.

Библиотека: OwenVendorProtocols_v3.5.14.3.compiled-library (https://ftp.owen.ru/CoDeSys3/04_Library/05_3.5.11.5/02_Libraries/OwenVendorProtocols_v3.5.14.3.compiled-library)
Документация: CODESYS V3.5. Описание библиотеки OwenVendorProtocols [2.2] (https://ftp.owen.ru/CoDeSys3/11_Documentation/03_3.5.11.5/CDSv3.5_OwenVendorProtocols_v2.2.pdf)
Примеры: ТЭМ-106 (ТЭСМА-106) (https://ftp.owen.ru/CoDeSys3/21_Examples/01_3.5.11.5/07_User_protocols/Example_TEM106_3514v1.projectarchive) / Меркурий 236 (https://ftp.owen.ru/CoDeSys3/21_Examples/01_3.5.11.5/07_User_protocols/Example_Mercury236_3514v1.projectarchive) / Меркурий 206 (https://ftp.owen.ru/CoDeSys3/21_Examples/01_3.5.11.5/07_User_protocols/Example_Mercury206_3514v1.projectarchive)

melky
26.02.2021, 12:45
Доступ к счетчику Энергомера 102 (однофазный с МЭК61107 - косяк по CRC или производитель не понял или применил одну из реализаций)
И счетчику Меркурий 200 нужен?

Есть еще Меркурий 236

Если что пишите, организую по удаленке через Ethernet-RS485 преобразователь. в некоторой части могу дать пояснения по алгоритму опроса.

Евгений Кислов
26.02.2021, 13:06
С Меркуриями проблем нет - у нас есть эти счетчики.
Насчет Энергомеры - я правильно понял, что у вас СЕ 102М? (потому что насколько я понимаю - модели без литеры М поддерживают только протокол CE)
Спасибо, по этому поводу обязательно свяжемся с вами, когда дойдем до их протокола. У нас в наличии только CE303 с IEC 61107 - будет полезно провести отладку на разных устройствах.

melky
26.02.2021, 16:45
Евгений Кислов да, у меня однофазник с 61107 протоколом, одна беда, он не чистый, на самом деле, в самом описании протокола есть ссылки на 3-и (если не ошибаюсь) способа расчета CRC, но где-то в документации на Энергомеру встречал, что у них он отличается от общепринятого.

мой драйвер для Scada читает как счетчик Энергомера 102М так и корректоры газа EK260, 270, 280 за счет настроек шаблона и использования разных CRC.
Покупал однофазный счетчик, так как на 3-х фазный зажал денег :) но разницы там особо нет, просто больше переменных.
Ну и других приборов у меня нет с подобным протоколом, а в этих тип С при опросе.

По счетчику Меркурий 236 (вероятно и 230) если хотите сделать синхронизацию часов с паролем первого уровня доступа, следите, чтобы разница времени была менее 4-х минут, если она более, корректируйте за несколько дней. В пользовательском режиме счетчик можно корректировать только раз в сутки.
И советую сделать два вида опроса, по фиксированным значениям для счетчиков с тарификатором и по стандартным. Протокол Меркурия тот еще зверь. ПоубЫвав бы таких программистов :)

Евгений Кислов
26.02.2021, 17:00
По счетчику Меркурий 236 (вероятно и 230) если хотите сделать синхронизацию часов с паролем первого уровня доступа, следите, чтобы разница времени была менее 4-х минут, если она более, корректируйте за несколько дней. В пользовательском режиме счетчик можно корректировать только раз в сутки.

Мы планируем поддержать в готовом виде "нормальную" установку времени (для которой нужен 2 или 3-й уровень доступа).
У пользователя будет возможность с помощью блока отправить произвольный запрос (указав функцию, код параметра и т.д) - так что синхронизировать время с 1 уровнем доступа он тоже сможет.
Ни о какой автоматической синхронизации в блоке, естественно, речи не идет - это задача программы пользователя.


И советую сделать два вида опроса, по фиксированным значениям для счетчиков с тарификатором и по стандартным.

Если вы имеете в виду запросы из п. 2.5.17 (Запросы на чтение массивов регистров накопленной энергии) и 2.6.16 (Чтение вспомогательных параметров) - то да, они будут поддерживаться "из коробки". (номера пунктов взял из этого документа (https://www.incotexcom.ru/files/em/docs/merkuriy-sistema-komand-sogl-1-2021-02-02.pdf)).

melky
27.02.2021, 14:20
Не, имел ввиду чтение мгновенных параметров. Счётчики с тарификатором имеют функцию фиксации данных, при чем по широковещательной команде.
Важно для счётчиков прямого включения. Так как регистры данных по другим командам не вмещают больше 40-ка с чем-то ампер. Наследие старых счётчиков.

Евгений Кислов
27.02.2021, 14:42
Не, имел ввиду чтение мгновенных параметров. Счётчики с тарификатором имеют функцию фиксации данных, при чем по широковещательной команде.
Важно для счётчиков прямого включения. Так как регистры данных по другим командам не вмещают больше 40-ка с чем-то ампер. Наследие старых счётчиков.

В терминологии спецификации Меркурия "мгновенные" параметры называются "вспомогательными".
В общем, я пока не понял вашу мысль, но если вы сопроводите ее номерами пунктов из спецификации (я привел ссылку в прошлом посте) - то мы рассмотрим возможность добавления этого функционала в блок.

melky
27.02.2021, 21:58
Надо будет вспомнить, давно не лазил в документацию по протоколу.
Команда 0х08 0х14

Есть еще команда 0х16, так вот по ней при ответе на часть параметров отведено 3 байта и старшие 2 бита отвечают за направление Активной и реактивной, и в оставшиеся биты не влезают значения выше какой-то мощности, если счетчик прямого включения, для трансформаторного проблем нет. Общался по данной теме с разработчиками Меркурий, сказали что это просто оставлено для совместимости с древних времен :)

Что касается корректировки времени, то уровень доступа 2 может быть не доступен, например счетчик используется для коммерческого учета и сменен пароль 2-ого уровня доступа.

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

А если использовать команду 0х16 то сперва мы читаем напряжение, потом мощность и так далее и происходит расхождение данных.
Но к сожалению фиксация данных доступна только для версий счетчиков с тарификатором (кажется буква P в маркировке)

Евгений Кислов
27.02.2021, 22:29
Насчет фиксации я понял - постараемся поддержать.


Что касается корректировки времени, то уровень доступа 2 может быть не доступен, например счетчик используется для коммерческого учета и сменен пароль 2-ого уровня доступа.

Как писал выше - у пользователя будет возможность с помощью блока отправить произвольный запрос, так что эту задачу тоже можно будет решить.
Возможно, добавим ее к списку уже готовых запросов.

Евгений Кислов
22.03.2021, 11:36
Обновили версию библиотеки до 3.5.14.2.
В новой версии добавлена поддержка протокола трехфазных элекросчетчиков Меркурий (203.2TD, 204, 208, 230, 231, 234, 236, 238).

Ссылка на обновленную версию библиотеки, пример и документацию -ссылки в шапке.

54127

Сейчас берем в работу протокол для однофазных электросчетчиков Меркурий.

melky
22.03.2021, 13:47
Евгений Кислов какие у вас однофазники? могу организовать доступ к Меркурий 206.

Евгений Кислов
22.03.2021, 13:50
Евгений Кислов какие у вас однофазники? могу организовать доступ к Меркурий 206.

У нас тоже Меркурий 206 как раз.

melky
22.03.2021, 14:40
ну тогда ладно. :) единственное, мне писали, что Меркурий 200 не поддерживает какие-то команды, которые есть в 206-м. у меня тоже, кроме 206-го других нет.

Евгений Кислов
29.03.2021, 10:45
Обновили версию библиотеки до 3.5.14.3.
В новой версии добавлена поддержка протокола однофазных элекросчетчиков Меркурий (200, 201, 203 (кроме Меркурий 203.2TD), 206).

Благодарим melky (https://owen.ru/forum/member.php?u=15000) за репозиторий на GitHub (https://github.com/Manjey73/OpnenKPs/tree/master/KpMercury20x) с реализацией протокола на C#.

Ссылка на обновленную версию библиотеки, пример и документацию - ссылки в шапке.

54248

Теперь берем в работу протоколы для электросчетчиков Энергомера.

Mikael
02.04.2021, 14:54
По ссылке Библиотека: OwenVendorProtocols_v3.5.14.3.compiled-library лежит библиотека OwenVendorProtocols_v3.5.14.2.
Не работает.

Евгений Кислов
02.04.2021, 15:00
По ссылке Библиотека: OwenVendorProtocols_v3.5.14.3.compiled-library лежит библиотека OwenVendorProtocols_v3.5.14.2.
Не работает.

По какой именно ссылке?
Покажите, пожалуйста, скриншотом.