PDA

Просмотр полной версии : Библиотека OwenVendorProtocols для опроса тепло/электросчетчиков (релиз v3.5.14.9)



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

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

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

Теплосчетик ТЭМ-104/106;
Электросчетчики Меркурий 23x;
Электросчетчики Меркурий 20x;
Электросчетчики Энергомера CE102 с протоколом CE;
Электросчетчики Энергомера с протоколом МЭК 61107;
Теплосчетчик ВКТ-5 (Теплоком);
Теплосчетчик ВКТ-7 (Теплоком);
Электросчетчики СЭТ-4ТМ (НЗИФ, ТехноЭнерго);
счетчики Пульсар (протокол Пульсар-М).



58760



Мы выражаем благодарность и признательность тем, кто помог нам в процессе разработки библиотеки:


пользователю alextopaz (https://owen.ru/forum/member.php?u=81897) за предоставленный доступ к ТЭМ-106 и помощь в отладке;
пользователю f_rzh (https://owen.ru/forum/member.php?u=105368) и Алексею Иванову за найденные ошибки и помощь в отладке;
пользователю melky (https://owen.ru/forum/member.php?u=15000) за репозиторий на GitHub (https://github.com/Manjey73/OpnenKPs/tree/master/KpMercury20x) с реализацией протокола Меркурий 2xx на C#;
Анатолию Бритову - сотруднику Харьковского электротехнического завода «Энергомера» за предоставленный доступ к счетчикам Энергомера и помощь в отладке;
пользовательнице GoodLuck (https://owen.ru/forum/member.php?u=59778) за помощь с отладкой ВКТ-5 и ВКТ-7;
Дмитрию Данилаеву за найденные ошибки и помощь в отладке.
Евгению Рубану за помощь в отладке с СЭТ-4ТМ.03М.
пользователю nikontech (https://owen.ru/forum/member.php?u=103192) за найденные ошибки и помощь в отладке.
Алексею Титову (mad_kinder) (https://owen.ru/forum/member.php?u=106273) и Антону Леонову - за доступ к приборам Тензо-М.
Илье Люльчеву (https://owen.ru/forum/showthread.php?t=34449&p=435270&viewfull=1#post435270) за информацию об ошибке.



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

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


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

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

Библиотека: OwenVendorProtocols_v3.5.14.10.compiled-library (https://ftp.owen.ru/CoDeSys3/04_Library/05_3.5.11.5/02_Libraries/OwenVendorProtocols_v3.5.14.10.compiled-library) (требуется также установить OwenCommunication_v.3.5.11.7 (https://ftp.owen.ru/CoDeSys3/04_Library/05_3.5.11.5/02_Libraries/OwenCommunication_v3.5.11.7.compiled-library) и OwenStringUtils_3.5.4.9 (https://ftp.owen.ru/CoDeSys3/04_Library/05_3.5.11.5/02_Libraries/OwenStringUtils_v3.5.4.9.compiled-library))
Документация: CODESYS V3.5. Описание библиотеки OwenVendorProtocols [2.9] (https://ftp.owen.ru/CoDeSys3/11_Documentation/03_3.5.11.5/CDSv3.5_OwenVendorProtocols_v2.9.pdf)
Примеры: ТЭМ-106 (ТЭСМА-106) (https://ftp.owen.ru/CoDeSys3/21_Examples/01_3.5.11.5/07_User_protocols/Example_TEM106_3514v3.projectarchive) / Меркурий 236 (https://ftp.owen.ru/CoDeSys3/21_Examples/01_3.5.11.5/07_User_protocols/Example_Mercury236_3514v3.projectarchive) / Меркурий 206 (https://ftp.owen.ru/CoDeSys3/21_Examples/01_3.5.11.5/07_User_protocols/Example_Mercury206_3514v3.projectarchive) / Энергомера CE102 (протокол CE) (https://ftp.owen.ru/CoDeSys3/21_Examples/01_3.5.11.5/07_User_protocols/Example_Energomera_CE_3514v3.projectarchive) / Энергомера CE303 (протокол IEC 61107)
Теплоком ВКТ-5 (https://ftp.owen.ru/CoDeSys3/21_Examples/01_3.5.11.5/07_User_protocols/Example_Energomera_IEC61107_3514v3.projectarchive) / Теплоком ВКТ-7 (https://ftp.owen.ru/CoDeSys3/21_Examples/01_3.5.11.5/07_User_protocols/Example_Teplocom_VKT7_3514v3.projectarchive) / СЭТ-4ТМ.03М (https://ftp.owen.ru/CoDeSys3/21_Examples/01_3.5.11.5/07_User_protocols/Example_SET_4TM_3514v3.projectarchive) / Пульсар 6М (https://ftp.owen.ru/CoDeSys3/21_Examples/01_3.5.11.5/07_User_protocols/Example_Pulsar_6M_3514v3.projectarchive)

Дополнительные примеры: опрос нескольких счетчиков (Меркурий 236 и Меркурий 206) (https://ftp.owen.ru/CoDeSys3/21_Examples/01_3.5.11.5/07_User_protocols/Example_Mercury236_Mercury206_3514v3.projectarchiv e) / опрос Меркурий 236 через конвертер Ethernet/COM (https://ftp.owen.ru/CoDeSys3/21_Examples/01_3.5.11.5/07_User_protocols/Example_Mercury236_TCP_SPK_3514v3.projectarchive) / опрос весового преобразователя ТВ-003/05Н по протоколу Тензо-М (https://ftp.owen.ru/CoDeSys3/21_Examples/01_3.5.11.5/07_User_protocols/Example_Tenzo_M_3517v2.projectarchive)

Примеры опросы счетчиков по Modbus: Взлет ТСРВ-034 (https://ftp.owen.ru/CoDeSys3/21_Examples/01_3.5.11.5/03_Modbus/Example_Vzlet_TSRV03x_3514v1.projectarchive) / Термотроник ТВ7 (https://ftp.owen.ru/CoDeSys3/21_Examples/01_3.5.11.5/03_Modbus/Example_Termotronic_TV7_3517v1.projectarchive)

Примечания:

1. Рекомендуется вызывать блоки библиотеки в задаче, время цикла которой не менее 20 мс - иначе при "длинных" запросах (например, MERCURY23x_PARAMS.ADDITIONAL_PARAMS) блок может вернуть ошибку RESPONSE_CRC_FAIL.

2. Счетчики Меркурий 23x с определенными версиями прошивок не поддерживают ускоренное чтение вспомогательных параметров - поэтому не получится считать эти параметры (токи, напряжения, мощности) с помощью запроса MERCURY23x_PARAMS.ADDITIONAL_PARAMS.
Подробнее см. здесь: https://owen.ru/forum/showthread.php?t=34449&page=24&p=423565&viewfull=1#post423565

3. В версии 3.5.14.10 исправлена ошибка - ранее для запросов, которые заканчивались байтом со значением 0, не происходила отправка последнего байта.
Ошибка затрагивала блоки Mercury23x, Mercury23x_TCP, Energomera_CE, Energomera_IEC, Teplocom_VKT7, SET_4TM, Pulsar_M.
https://owen.ru/forum/showthread.php?t=34449&p=435270&viewfull=1#post435270

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.
Не работает.

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

pixiemosty
13.05.2021, 19:43
Разрабатываю протокол в данный момент между СПК 107 и Энергомера СЕ102М.
Буду рад помочь протестировать библиотеку.

Евгений Кислов
13.05.2021, 19:47
Разрабатываю протокол в данный момент между СПК 107 и Энергомера СЕ102М.
Буду рад помочь протестировать библиотеку.

Мы как раз приступаем к поддержке этого протокола.
Можете указать полную маркировку своего счетчика?

pixiemosty
14.05.2021, 15:37
CE102M R5 145-А, который осуществляет связь через RS485.

Евгений Кислов
14.05.2021, 15:52
CE102M R5 145-А, который осуществляет связь через RS485.

Если несложно - напишите, пожалуйста, мне на почту (в подписи) ваш контактный телефон.

melky
14.05.2021, 21:19
CE102M R5 145-А - это как раз тот самый однофазник, на котором я писал драйвер, тоже МЭК61107 с CRC от Энергомеры. Полностью в общем повторяет CE303 только переменных отдает меньше.

Евгений Кислов
15.05.2021, 11:38
CE102M R5 145-А - это как раз тот самый однофазник, на котором я писал драйвер, тоже МЭК61107 с CRC от Энергомеры. Полностью в общем повторяет CE303 только переменных отдает меньше.

А вы какие из 4-х режимов чтения поддерживали?

melky
15.05.2021, 13:57
Евгений Кислов так вроде счетчик только режим Тип С и поддерживает. Пока в своем драйвере только этот режим протокола и поддерживаю, не попадалось приборов с другими режимами. Корректоры газа EK260, 270, 280 да счетчики Энергомера 102М и 303. Отличия только в расчете контрольной суммы.

Вообще, по описанию протокола вроде как 3-и режима расчета CRC есть, или это в IEC каком-то описано, на который ссылается протокол 61107 но в свободном доступе я не нашел этот стандарт, в котором описан расчет CRC (не помню сейчас номер).

А, в документации на какой-то счетчик упоминается групповой запрос переменных, но он не соответствует протоколу IEC61107. У них это вообще какая-то отсебятина. Драйвер то я делал под протокол, по этому эту отсебятину реализовывать даже не буду в принципе. Не интересно.

https://owen.ru/forum/showthread.php?t=32322&p=333255&viewfull=1#post333255

Вот я выкладывал лог по 102-му, и там же ниже про групповое (быстрое) чтение...

Евгений Кислов
15.05.2021, 14:14
http://www.energomera.ru/documentations/product/ce301_303_rp.pdf
Я спрашивал о режиме чтения из вариантов 7.1.2 / 7.1.3 / 7.1.4

melky
15.05.2021, 19:59
Ну так там и написано


7.1.1.4 Счетчик осуществляет обмен данными по каналам связи, используя протокол обмена, в соответствии с ГОСТ IEC 61107-2011 в режиме С.

Там же ниже про отклонение расчета CRC и сноска на ISO, который я не нашел в доступе.
7.1.2 не пробовал, надо будет испытать, ответит 102-й что-нибудь в таком варианте ?

7.1.3 у меня был реализован ранее под корректоры газа EK, я просто добавил код расчета CRC и в шаблоне его указываю, остальное у меня просто перенастроилось шаблоном драйвера. Доступ всегда парольный, беспарольный не тестировал.

7.1.4

Подрежим быстрого чтения представляет собой реализацию дополнительного способа чтения произвольных параметров без входа в сеанс. Данный способ не соответствует требованиям ГОСТ IEC 61107-2011, однако основан на нем.

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

Если разобраться, то я не писал строго под счетчики Энергомера, оно так случайно получилось :) Все, что я добавил в код это CRC для Энергомеры и потом программную эмуляцию режима 7E1, чтобы счетчик можно было цеплять на линию 8N1

Filini
15.05.2021, 22:17
Интересуют ВКТ 7, ВКТ-9 и ТВ7, все теплоком

Евгений Кислов
16.05.2021, 08:32
Интересуют ВКТ 7, ВКТ-9 и ТВ7, все теплоком

ВКТ-7 в планах есть.
У ВКТ-9 и ТВ-7 - обычный Modbus, с ними не должно быть проблем.
ТВ-7, кстати, это Термотроник, а не Теплоком.

Filini
16.05.2021, 09:09
ТВ-7, кстати, это Термотроник, а не Теплоком.
Да, производителя забыл)))

melky
16.05.2021, 10:05
Поделитесь документацией на протокол ТВ-7 если есть, имеется ввиду собственный протокол, а не Modbus вариант, спасибо.

Евгений Кислов
16.05.2021, 10:07
Поделитесь документацией на протокол ТВ-7 если есть, имеется ввиду собственный протокол, а не Modbus вариант, спасибо.

Там нет собственного протокола, только Modbus с парой расширений.
http://termotronic.ru/download/files/tv7_protokol_obmena_red.7-05.pdf

melky
17.05.2021, 09:13
Евгений Кислов а, перепутал с Теплоком ВКГ-2 у них есть какой-то свой протокол, вот он то мне и нужен.

Евгений Кислов
17.05.2021, 09:22
Евгений Кислов а, перепутал с Теплоком ВКГ-2 у них есть какой-то свой протокол, вот он то мне и нужен.

Там как и у ВКТ-5 - слегка изуродованный Modbus:
http://www.teplocom.msk.ru/data/support/docs/gaz/vkg_2/protokol_obmena_2.04.pdf

melky
17.05.2021, 11:07
Евгений Кислов спасибо, поизучаю, а то чувствую придется ваять под этот прибор драйвер...

pixiemosty
17.05.2021, 12:01
Здравствуйте, на счет энергомеры СЕ102М и СПК107.
Пытаюсь реализовать через реализацию нестандартных протоколов.
Настроил КОМ_контрол. Связь есть.

Но ФБ COM_Write не хочет вообще запускаться, хотя COM_READ все время в режиме работы.
В чем может быть проблема?
55113
55114

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

Евгений Кислов
17.05.2021, 12:04
А вы по вашей машине состояний когда-нибудь на шаг 1 созвращаетесь?

pixiemosty
17.05.2021, 13:33
Отправляюсь на шаг 1 (отправка запроса) на шаге 0 после объявления запроса

Евгений Кислов
17.05.2021, 13:44
Обновили версию библиотеки до 3.5.14.4.
В новой версии добавлена поддержка протокола однофазных элекросчетчиков Энергомера CE102 (протокол CE).

Благодарим Анатолия Бритова - сотрудника Харьковского электротехнического завода «Энергомера» за помощь в отладке.

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

55117

Теперь берем в работу счетчики Энергомера с протоколом IEC 61107.

melky
17.05.2021, 13:50
Евгений Кислов Вот, теперь мне станет очень интересно, как вы организуете плавающий буфер для приема данных? :)

Евгений Кислов
17.05.2021, 14:00
Евгений Кислов Вот, теперь мне станет очень интересно, как вы организуете плавающий буфер для приема данных? :)

Судя по документам Энергомеры - достаточно заложиться размером буфера в 500 байт.

55120

melky
17.05.2021, 14:55
Евгений Кислов дело то не в закладке буфера больше, а в том, сколько тратится времени на ожидание ответа?

Я просто не знаю, как работает СПК в данном случае с портами.

Например ответ будет 200 байт, но мы этого не знаем, ставим буфер 500 байт и таймаут 1500 мс - каковы действия ПЛК ? он будет выжидать 1500 мс независимо, пришли эти 200 байт или нет ?

В случае со Scada, у разработчика были механизмы остановки по байту, и потом по просьбе (я мучал протокол DF1) были добавлены механизмы остановки по массиву(массивам) байт. То есть в данном случае я ловил 0x0D 0x0A, делал проверку читать дальше если несколько параметров, ловил ETX и прочитать еще CRC и остановиться. То есть не выжидать время таймаута.

Если при чтении раз в минуту для ПЛК это не критично то и ладно.

Евгений Кислов
17.05.2021, 16:37
Отправляюсь на шаг 1 (отправка запроса) на шаге 0 после объявления запроса

Выложите ваш проект, пожалуйста.

pixiemosty
17.05.2021, 16:38
Все таки тут вообще не получается до счетчика достучаться этим запросом.
На СПК подключен счетчик к COM1, пробовал и 1 и 2 задавать программно. 0 реакции.
А что висит пустая строка на COM_READ размером 256, то она и без счетчика висит :(
55125

Евгений Кислов
17.05.2021, 16:45
Все таки тут вообще не получается до счетчика достучаться этим запросом.
На СПК подключен счетчик к COM1, пробовал и 1 и 2 задавать программно. 0 реакции.
А что висит пустая строка на COM_READ размером 256, то она и без счетчика висит :(
55125

Выложите ваш проект, пожалуйста...

melky
17.05.2021, 17:12
pixiemosty кнопочку на счетчике нажали для разрешения передачи? :) есть там у него фокус с каким-то параметром, который управляется кнопкой либо разрешает передачу либо запрещает.

pixiemosty
17.05.2021, 17:21
Я извиняюсь, заработался тут)

Получилось получить ответ от счетчика!

Два момента осталось:
1. Расчет контрольной суммы, который реализуется немного другим способом, как я понимаю.
2. Во время опроса счетчика, на нем висит ошибка Error 05.
55127

п.с. нажимаю кнопку разрешения эту, она как то не влияет на опрос его, все равно опрос идет)

Вот ссылка на проект, если что: https://disk.yandex.ru/d/wc2VmdPabExuHA

melky
17.05.2021, 17:35
pixiemosty ну мне проект не поможет, некуда загружать. По CRC писал, могу дать код на C#, переделать в ST думаю не особая проблема погуглив.

Вот код расчета CRC для Энергомеры на C#



public static string CalcCS(string s)
{
byte[] bytes = Encoding.Default.GetBytes(s);
byte num = 0;
for (int i = 1; i < (int)bytes.Length; i++)
{
num = (byte)(num + bytes[i]);
}
bytes[0] = (byte)(num & 127);

return Encoding.Default.GetString(bytes, 0, 1);
}

pixiemosty
17.05.2021, 17:37
pixiemosty ну мне проект не поможет, некуда загружать. По CRC писал, могу дать код на C#, переделать в ST думаю не особая проблема погуглив.

Вот код расчета CRC для Энергомеры на C#



public static string CalcCS(string s)
{
byte[] bytes = Encoding.Default.GetBytes(s);
byte num = 0;
for (int i = 1; i < (int)bytes.Length; i++)
{
num = (byte)(num + bytes[i]);
}
bytes[0] = (byte)(num & 127);

return Encoding.Default.GetString(bytes, 0, 1);
}


Спасибо, буду пробовать!

П.с. делаю безадресный запрос /?! CR LF показывает, счетчик CE102Mv01.
Делаю адресный запрос /?01! CR LF и уже не хочет отвечать, что за странности

melky
17.05.2021, 20:44
pixiemosty а почему вы решили, что у счетчика адрес 01 ? у них адрес часть серийного номера по умолчанию. Почитайте документацию на счетчик

pixiemosty
17.05.2021, 21:43
Весь день промучился с попыткой отправить запрос на счетчик.
Никакой запрос не хочет отвечать, кроме самого первого /?! CR LF.
Пытаюсь следующим отправить ACK 0 5 (0 и 1) CR LF, но ответа нет.
Что я делаю не так? Почему на следующий запрос нет ответа?
Если есть возможность посмотреть проект, гляньте пожалуйста.
https://disk.yandex.ru/d/Ckbw_W07ZJhkxg
55163
55164


Пробую реализовать опрос по этому логу, попутно читая мэк 61107.

Отправка (5): /?!<0D><0A> // безадресный запрос
Приём (16): /EKT5CE102Mv01<0D><0A> // ответ счетчика

Отправка (6): <06>051<0D><0A> // запрос на чтение Режим С протокола МЭК61107
Приём (17): <01>P0<02>(145605366)<03>* // Ответ, что счетчик готов

Отправка (14): <01>P1<02>(777777)<03>! // Отправка пароля счетчика по умолчанию
Приём (1): <06> // подтверждающий ответ

п.с. Избавился от ошибки Err5 при запросе.
п.с.с. на счёт адресного запроса, по документации адрес это последние 4 цифры серийника, пытаюсь достучаться до счетчика с адресом /?1829! CR LF, где 1829 последние 4 цифры, пока безрезультатно

pixiemosty
20.05.2021, 12:46
Получилось, все таки адрес там не 4х значный.

melky
20.05.2021, 13:29
Ну да, там где-то 8 цифр в адресе :) если не весь серийник, не помню уже.

pixiemosty
20.05.2021, 14:03
Ну да, там где-то 8 цифр в адресе :) если не весь серийник, не помню уже.

Да, не весь. Около 8-9.

Нашли наконец преобразователь 485 в юсб, через софтину Энергомеры посмотрел логи запросов, стало легче)

Реализовал вчера:
1. Адресный запрос
2. Запрос на программирование
3. Вход с паролем
На все эти запросы счётчик отвечает, вот осталось реализовать именно считывание параметров, но с логами сейчас будет легче осуществлять.
Ну и контрольную сумму переделать, которую вы отправляли)

Евгений Кислов
20.05.2021, 14:13
Да, не весь. Около 8-9.

Нашли наконец преобразователь 485 в юсб, через софтину Энергомеры посмотрел логи запросов, стало легче)

Реализовал вчера:
1. Адресный запрос
2. Запрос на программирование
3. Вход с паролем
На все эти запросы счётчик отвечает, вот осталось реализовать именно считывание параметров, но с логами сейчас будет легче осуществлять.
Ну и контрольную сумму переделать, которую вы отправляли)

А какие параметры вы собираетесь считывать?

pixiemosty
20.05.2021, 14:50
А какие параметры вы собираетесь считывать?

Действующее напряжение, ток, частота, потребление электроэнергии за месяц ну и еще может пользовательский период времени.

Не хочет выдавать запрос по напряжению. Запрос такой же, как в логе.
На счетчике висит нагрузка, хм.
В чем дело интересно.
55193

melky
20.05.2021, 15:43
После того как залогинились к счетчику уже проще, просто посылаете запрос того же напряжения VOLTA() и получаете ответ.

я использовал работу со строками и ) использовал как сепаратор для остановки и поиска индекса от (
Для трехфазника таких будет несколько переменных VOLTA(223.795)VOLTA(0.277)VOLTA(0.097)
Ну и так далее

pixiemosty
20.05.2021, 16:06
После того как залогинились к счетчику уже проще, просто посылаете запрос того же напряжения VOLTA() и получаете ответ.

я использовал работу со строками и ) использовал как сепаратор для остановки и поиска индекса от (
Для трехфазника таких будет несколько переменных VOLTA(223.795)VOLTA(0.277)VOLTA(0.097)
Ну и так далее

Ну вот я и делаю 4 шага.
Последним запрос VOLTA или CURRE. На первые три есть ответ, на последний нет.
Приложил сверху скрин запросов и сам запрос. Интересно, в логе 1 в 1. Почему же ответа нет.

melky
20.05.2021, 16:23
Как нет ответа? у вас же пришло VOLTA(220.48)

pixiemosty
20.05.2021, 16:31
Как нет ответа? у вас же пришло VOLTA(220.48)

Это лог с AdminTools (ПО Энергомеры).
Я по этому логу делаю запрос с СПК на счетчик) Первые 3 дают ответ, а последний VOLTA не дает)

melky
20.05.2021, 16:42
Контрольная сумма есть?, правильная ? Это уже запрос с контрольной суммой вроде

pixiemosty
20.05.2021, 17:33
Контрольная сумма есть?, правильная ? Это уже запрос с контрольной суммой вроде

Я делаю запрос с контрольной суммой55197

Евгений Кислов
20.05.2021, 17:44
Вам надо LEN делать, а не SIZEOF.

pixiemosty
20.05.2021, 18:16
Вам надо LEN делать, а не SIZEOF.
Тут у меня LEN)
Но я считал данные напряжения, считаю это успехом!:))
55198
55199

55200

pixiemosty
20.05.2021, 20:45
Единственное, почему-то счётчик не хочет отвечать на другой запрос после предыдущего.
Например делаю запрос:
VOLTA () - ответ
CURRE() - нет ответа.

Если делаю по отдельности, то все нормально.
Менял и время ожидания, все равно.
Надо разбираться почему не хочет так.

melky
20.05.2021, 21:00
Станьте снифером порта с ПК между счетчиком и ПЛК, возможно мусор на следующем шаге идет. Буфер не очищается или еще что-то, а то так гадать можно долго

pixiemosty
20.05.2021, 21:14
Так, вас понял, только в двух словах с помощью чего это реализовать, подскажите?

Но все же первые 4 шага реализуются без косяков, всегда ответ есть от счетчика.
1: / ? АДРЕС! CR LF Ответ есть
2: ACK 0 5 1 CR LF Ответ есть
3: <SOH>P1<STX>(777777)<ETX><BCC> Ответ есть
4: <SOH>R1<STX>VOLTA()<ETX><BCC> Ответ есть
5: <SOH>R1<STX>CURRE()<ETX><BCC> Тут ответа нет.

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

melky
20.05.2021, 21:33
На 5-м шаге BCC корректно считается?

ADVANCED SERIAL DATA LOGGER - trial версии вполне достаточно, можно настроить порт на прослушку, правда не помню, может ли он со стороны смотреть, но вроде должен.

Надо посмотреть что на пятом шаге реально уходит в порт.

pixiemosty вы контрольную сумму считаете программно или просто подставляете ?

pixiemosty
20.05.2021, 21:45
Считаю программно.

Сейчас уже не смогу запустить, ушел из кабинета.
Но вот на скриншоте приложил. Считает BCC корректно

melky
20.05.2021, 21:52
pixiemosty насколько помню, в BCC старший бит тоже сбрасывается, если он появляется. Но если вы вместо VOLTA делаете запрос CURRE и работает, думаю причина какая-то с буфером

pixiemosty
20.05.2021, 21:56
Да, если делаю отдельно CURRE, все работает. Также делаю и по месяцам потребление, тоже все работает.
А вот если пытаюсь опросить вместе, то все, ответа нет.
Завтра попробую поразбираться в чем причина, вроде буфер чищу функцией BUFFER CLEAR. Хммм.

pixiemosty
24.05.2021, 18:42
Получилось реализовать считывание параметры сети и потребление за месяц\день\общее в реальном времени отдельными запросами, считаю это успехом! Всем спасибо большое за помощь!)
55261

melky
24.05.2021, 20:36
pixiemosty и в чем была причина зависания ?

pixiemosty
24.05.2021, 20:56
Я наверно уже все методы перепробовал.
Я сделал несколько действий:
1) Сделал опрос цикличным со сбросом всех флагов запросов (xEnable := FALSE) в начале следующего запроса. Получается так, прошел запрос, начинается следующий, предыдущий сбрасывается и тд. Думаю это все и запустило.
2) Сделал такие задержки в таймере.
VAR CONSTANT
c_tTimeout: TIME:=T#1S; // таймаут опроса модуля (время ожидания ответа)
c_tDelay: TIME:=T#10MS; // задержка перед отправкой следующего запроса
END_VAR

melky
24.05.2021, 21:04
может задержка между запросами повлияла. Будет время, прикручу счетчик к Scada и попробую между запросами 0 поставить, посмотрю что произойдет.

pixiemosty
24.05.2021, 21:24
Я тоже поиграю со временем, хочу к минимально допустимому придти.

pixiemosty
31.05.2021, 18:35
Наконец осталось реализовать проверку контрольной суммы.
Но вот какое дело, у считываемого ответа с счетчика нет в конце контрольной суммы.
Почему в конце ее нет, хмм..

Filini
31.05.2021, 20:35
Наконец осталось реализовать проверку контрольной суммы.
Но вот какое дело, у считываемого ответа с счетчика нет в конце контрольной суммы.
Почему в конце ее нет, хмм..

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

melky
31.05.2021, 23:24
pixiemosty как нет? после $03 стоит же ' а $03 это ETX
А блин, это у ас так строка выделяется...

может буфер увеличить ?

pixiemosty
01.06.2021, 15:59
pixiemosty как нет? после $03 стоит же ' а $03 это ETX
А блин, это у ас так строка выделяется...

может буфер увеличить ?

Но такой же ответ в буфер влазит, значит не из за этого же
55376

melky
01.06.2021, 16:58
pixiemosty но и в этом ответе нет контрольной суммы, хотя должна же быть

pixiemosty
01.06.2021, 17:26
pixiemosty но и в этом ответе нет контрольной суммы, хотя должна же быть

так сам ответ же больше по размеру в любом случае.
сам буффер это строка(255), ответ явно меньше же от счетчика

melky
01.06.2021, 17:41
pixiemosty тогда непонятно, почему нет контрольной суммы, это наблюдается во всех ответах ?

pixiemosty
02.06.2021, 13:50
pixiemosty тогда непонятно, почему нет контрольной суммы, это наблюдается во всех ответах ?

Да, не в одном ответе нет КС.

melky
02.06.2021, 14:16
При этом в запросах у вас КС присутствует, иначе счетчик бы не отвечал.
Попробуйте удалить КС в запросах счетчику для проверки, ответит он или нет ?

pixiemosty
02.06.2021, 17:57
При этом в запросах у вас КС присутствует, иначе счетчик бы не отвечал.
Попробуйте удалить КС в запросах счетчику для проверки, ответит он или нет ?

Без КС висит ERR13

melky
02.06.2021, 21:59
Получается в запросе есть КС, тогда счетчик проверяет запрос и честно отвечает, но почему тогда не отображается КС в ответе? Тут что-то с приемом пакета не так.
При получении ответа ведь тоже надо убедиться что он пришел полным и корректным по КС

pixiemosty
04.06.2021, 17:00
Получается в запросе есть КС, тогда счетчик проверяет запрос и честно отвечает, но почему тогда не отображается КС в ответе? Тут что-то с приемом пакета не так.
При получении ответа ведь тоже надо убедиться что он пришел полным и корректным по КС

Вот да, странно. Но не в одном ответе нет КС. Хотя все они приходят корректно.

Евгений Кислов
12.07.2021, 08:57
Обновили версию библиотеки до 3.5.14.5.
В новой версии добавлена поддержка электросчетчиков Энергомера с протоколом IEC 61107, а также исправлена обработка запроса чтения массивов энергии для счетчиков Меркурий 23x.

Благодарим Анатолия Бритова - сотрудника Харьковского электротехнического завода «Энергомера» за помощь в отладке.

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

55970

Теперь берем в работу протоколы для счетчиков ВКТ-5 и ВКТ-7, производимых компанией Теплоком.

melky
12.07.2021, 12:23
Евгений Кислов по счетчику Меркурий 23х найден косяк. Если вы говорите о профилях мощности, то если не работает батарейка (ошибка E01 кажется) то последнее значение после включения питания ведет в далекое прошлое...

Евгений Кислов
12.07.2021, 12:46
Евгений Кислов по счетчику Меркурий 23х найден косяк. Если вы говорите о профилях мощности, то если не работает батарейка (ошибка E01 кажется) то последнее значение после включения питания ведет в далекое прошлое...

Уточните, пожалуйста, более подробно, что вы имеете в виду.

melky
12.07.2021, 13:03
Евгений Кислов При запросе профиля мощностей в архиве нет даты, есть дата в запросе последней ячейки записи, и зная, что получасовки лежат друг за другом происходит расчет ячейки памяти на требуемую дату и время. Если возникает ошибка "Села батарейка" то после выключения питания и подачи питания вновь, последняя ячейка памяти может иметь дату из прошлого.

Не знаю, как еще объяснить.

Евгений Кислов
12.07.2021, 13:15
Евгений Кислов При запросе профиля мощностей в архиве нет даты, есть дата в запросе последней ячейки записи, и зная, что получасовки лежат друг за другом происходит расчет ячейки памяти на требуемую дату и время. Если возникает ошибка "Села батарейка" то после выключения питания и подачи питания вновь, последняя ячейка памяти может иметь дату из прошлого.

Не знаю, как еще объяснить.

Вы это просто для информации написали, я правильно понял?
Или у вас какой-то вопрос по библиотеке?

melky
12.07.2021, 14:14
Для информации, если так произойдет со счетчиком, библиотека может зависнуть или прочитать не то, что требуется.
Есть счетчик с данной проблемой, долго искал причину зависания линии (не на вашей библиотеке)

Евгений Кислов
12.07.2021, 14:41
Для информации, если так произойдет со счетчиком, библиотека может зависнуть или прочитать не то, что требуется.
Есть счетчик с данной проблемой, долго искал причину зависания линии (не на вашей библиотеке)

Спасибо за информацию.

f_rzh
02.08.2021, 17:22
При работе со счётиком Меркурий 236 ART 01 (и 02 тоже) неправильно читаются мгновенные значения мощностей. Программа - просто пример с сайта. Немного её подправил, там индикация тока дублировалась фазы А, в остальном всё так же. Подключаю нагрузку 2 кВт на одну из фаз и наблюдаю следующие значения:
через конфигуратор счётчика: 2171 Вт
через фб OVP.Mercury23x : 185.3 Вт

melky
02.08.2021, 17:28
f_rzh трансформаторы тока у вас есть и какой коэффициент трансформации ?
Хотя ток правильно примерно показывает. 9.51 и 9.54 ну и напряжение 226.39 и 227.10

А теперь показываю фокус - 9.51*226.39=2152,96
и 9.54*227.10=2166.53

та-даммм, вы видите здесь цифры 1853.0(или 185.3) или 2171.87 ? :) а суслик есть....

Подайте строго фиксированную нагрузку, которая не будет меняться в течении короткого времени опроса и проверьте показания при опросе.

Евгений Кислов
02.08.2021, 17:28
При работе со счётиком Меркурий 236 ART 01 (и 02 тоже) неправильно читаются мгновенные значения мощностей. Программа - просто пример с сайта. Немного её подправил, там индикация тока дублировалась фазы А, в остальном всё так же. Подключаю нагрузку 2 кВт на одну из фаз и наблюдаю следующие значения:
через конфигуратор счётчика: 2171 Вт
через фб OVP.Mercury23x : 185.3 Вт

Выложите ваш проект, пожалуйста.
И напишите мне в личку вашу контактные данные (в частности, телефон и во сколько завтра с вами можно будет связаться).

f_rzh
02.08.2021, 17:51
Подайте строго фиксированную нагрузку
Счётчик прямоточный. Нагрузка единственная резистивная - фен строительный на третьей скорости. Счётчик лежит на столе, к нему подключена только розетка с феном.

melky
02.08.2021, 17:56
Очень странно, точнее ничего странного, учитывая, что меняется напряжение, ибо при изменении напряжения будет меняться и мощность, а вот 185.3 однозначно косяк....

ну и изменение тока объяснимо, нагрузка то резистивная, а напряжение меняется в сети.

f_rzh
02.08.2021, 17:58
Выложите ваш проект, пожалуйста.

Ссылка на проект (https://disk.yandex.ru/d/dSZAFU9dNqnO3Q)

f_rzh
02.08.2021, 18:01
меняется напряжение, ибо при изменении напряжения Напряжение не меняется почти. 226В и 227В в этих двух случаях на фазе А, куда и подключен фен. На картинках это видно.

Евгений Кислов
02.08.2021, 18:12
Ссылка на проект (https://disk.yandex.ru/d/dSZAFU9dNqnO3Q)

Напишите мне в личку вашу контактные данные (в частности, телефон и во сколько завтра с вами можно будет связаться).

melky
03.08.2021, 08:48
f_rzh проблема в том, что для мониторинга не очень подходит функция 16h протокола. Так как чтение напряжения, тока и мощности происходит последовательно, и чем медленнее опрос, тем больше разница. Если нагрузка не постоянна, то может быть ситуация, что напряжение и ток должны соответствовать мощности 2 кВт, а мощность при этом может быть прочитана как 1 кВт так и 5 кВт, так как ко времени опроса мощности уже изменился и ток и напряжение.

f_rzh
03.08.2021, 09:12
f_rzh проблема в том, что для мониторинга не очень подходит функция 16h протокола. Так как чтение напряжения, тока и мощности происходит последовательно, и чем медленнее опрос, тем больше разница. Если нагрузка не постоянна, то может быть ситуация, что напряжение и ток должны соответствовать мощности 2 кВт, а мощность при этом может быть прочитана как 1 кВт так и 5 кВт, так как ко времени опроса мощности уже изменился и ток и напряжение.
Нагрузка постоянна. Выше я уже написал, что это стенд из счётчика и включенного прямо в него на фазу А строительного фена на 2 кВт, так что ничего там не меняется всё время проведения эксперимента.

melky
03.08.2021, 09:29
f_rzh меняется
1. напряжение в сети
2. ток, так как это резистивная нагрузка, пусть и в малых пределах
3. ВРЕМЯ

даже если предположить, что вместо 185,3 у вас должно быть 1853,0 Вт то видно, что по току и напряжению эта цифра не соответствует. А все из-за опроса данных последовательно.
Тут зависит для каких целей счетчик. Но при этом ваш счетчик с внутренним тарификатором ART, следовательно он поддерживает команды опроса с кодом 14h (команда фиксации данных и последующее чтение) но вот реализован ли он в библиотеке я не знаю.

Если устраивает погрешность, описанная выше, то просто найти причину, почему он не ту цифру показывает или не так...

f_rzh
03.08.2021, 18:03
Помог с проблемой автор библиотеки, установив импровизированный "хотфикс". Владислав, Спасибо огромное!
Проблема (неправильные значения мгновенных мощностей по фазам на счётчиках Меркурий 236ART-xx) будет решена, насколько я понял, в следующей версии библиотеки, а в текущей (3.5.14.5) проблема сохраняется.

Евгений Кислов
03.08.2021, 18:06
Помог с проблемой автор библиотеки, установив импровизированный "хотфикс". Владислав, Спасибо огромное!
Проблема (неправильные значения мгновенных мощностей по фазам на счётчиках Меркурий 236ART-xx) будет решена, насколько я понял, в следующей версии библиотеки, а в текущей (3.5.14.5) проблема сохраняется.

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

melky
04.08.2021, 09:06
Евгений Кислов не совсем понял про 65535 ? у этих счетчиков при опросе командами 16h при прямом включении есть проблема нехватки бит выше 40 кВт (точную цифру не помню, можно посчитать) но уж точно не на 2-х кВт-ах... Общался по данному поводу с разработчиком родного Конфигуратора счетчиков.
Оказалось это наследие встроенного ПО старых счетчиков.

Как раз вроде по мощности при данной команде в ответе всего 3 байта на значение, минус два бита для направления мощности A+ или A- ну и Q соответственно.

41943,03 (3FFFFF)- вот, это максимальная мощность, которую может дать счетчик прямого включения по команде 16h
вот такая вот еще засада есть. Хотя счетчик может быть и 60А и 100А...

Евгений Кислов
04.08.2021, 09:21
Как раз вроде по мощности при данной команде в ответе всего 3 байта на значение, минус два бита для направления мощности A+ или A- ну и Q соответственно.

Именно так.
Но поскольку в документации в явном виде не указано, есть ли в начальном байте значимые биты или нет, а техподдержка Меркурия в свое время не дала четкого ответа на этот вопрос - в библиотеке при разборе ответа использовались только 2 байта из 3-х.
Мы исправили этот момент.

melky
04.08.2021, 09:38
Да вроде есть в документации на протокол все. Просто возможно не в явном виде. Там везде есть примеры разбора ответа и эти биты фигурируют. Для мощностей уж точно...

Самое интересное, что счетчики AR не поддерживают команду 14h и если счетчик вдруг до 100А прямого включения, то этих 3-х байт и не хватает, так как они могут только 41 кВт вместить, а при сотке это 66 кВт...

надо было общаться с разработчиком ПО а не техподдержкой Меркурия :)

Евгений Кислов
04.08.2021, 09:40
Да вроде есть в документации на протокол все. Просто возможно не в явном виде. Там везде есть примеры разбора ответа и эти биты фигурируют. Для мощностей уж точно...

Самое интересное, что счетчики AR не поддерживают команду 14h и если счетчик вдруг до 100А прямого включения, то этих 3-х байт и не хватает, так как они могут только 41 кВт вместить, а при сотке это 66 кВт...

надо было общаться с разработчиком ПО а не техподдержкой Меркурия :)

Биты знака в примерах используются, но другие биты этого байта - нет (потому что в примерах рассмотрены очень малые значения мощности).
Поэтому ранее этот момент был неясен.

melky
04.08.2021, 09:43
Евгений Кислов а, понятно, вы решили что они не значимые, а это оказалось не так, бывает. Сам долго разбирался с протоколом, там блин столько всего, что голову сломать можно, страниц на 70-ть :)

Вообще убил бы таких писателей... не помню точно в каких командах, но есть там такое, что в одном ответе цифра 30 может быть представлена на один параметр как 0х1E а на другой параметр в BCD как 0х30

вот на кой такое делать????

Евгений Кислов
10.08.2021, 09:18
Обновили версию библиотеки до 3.5.14.6.
В новой версии добавлена поддержка теплосчетчиков ВКТ-5 от компании Теплоком.
Кроме того, мы исправлили ошибку в ФБ опроса электросчетчика Меркурий 23x, из-за который вспомогательные параметры считывались некорректно, если значение параметра превышало 655.35.

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

56501

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

P.S. - а вот так выглядит наш тестовый стенд, на котором производится отладка библиотеки.

56502

GoodLuck
11.08.2021, 10:12
Добрый день!

При опросе ВКТ5 библиотекой и программой VKT5Easy почему-то не совпадают значения дат начала, конца архива и дата сброса архива.
Причем дата сброса архива при опросе постоянно меняется.

Если сбросить архив в ВКТ, то ситуация не меняется.

И версия прошивки по-разному отображается.

Евгений Кислов
11.08.2021, 10:42
Добрый день!

При опросе ВКТ5 библиотекой и программой VKT5Easy почему-то не совпадают значения дат начала, конца архива и дата сброса архива.
Причем дата сброса архива при опросе постоянно меняется.

Если сбросить архив в ВКТ, то ситуация не меняется.

И версия прошивки по-разному отображается.

Добрый день.
Насчет версии прошивки - мы просто отображаем ее таким образом, с ведущими нулями.

Насчет дат архива - предоставьте удаленный доступ, пожалуйста - посмотрим, в чем может быть дело.

Upd. - посмотрели.
При выполнении команды "Передача даты" (установка опорной даты архива) при следующем запросе "Чтение интервала дат архива" в ответ от ВКТ-5 приходят "странные" значения (с датой типа 1974 г.).
При последующих запросах снова считываются корректные даты.
Т.е. библиотека работает корректно - это особенность самого счетчика.

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

СергейНовосиб
17.08.2021, 07:59
Здравствуйте!
Подключил Энергомеру СЕ301 к СПК. Загрузил пример Example_Energomera_IEC61107_3514.
Счетчик на экран выдает ошибки Err05 "Ошибка протокола" и Err12 "Не поддерживаемый параметр".
Есть ли разница в опросе СЕ301 от СЕ303?

Евгений Кислов
17.08.2021, 08:08
Здравствуйте!
Подключил Энергомеру СЕ301 к СПК. Загрузил пример Example_Energomera_IEC61107_3514.
Счетчик на экран выдает ошибки Err05 "Ошибка протокола" и Err12 "Не поддерживаемый параметр".
Есть ли разница в опросе СЕ301 от СЕ303?

Добрый день.
Какая у вас модель счетчика? (укажите полное наименование)
В проекте CODESYS какие-нибудь данные считываются?
C помощью Multi-Protocol MasterOPC Server счетчик получается опросить без ошибок?

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

СергейНовосиб
17.08.2021, 10:29
СЕ301 R33 146 JAZ

СергейНовосиб
17.08.2021, 11:32
Убрал из опроса все, кроме напряжения и тока. Опрос идет кок-то хаотично.
И на экране все равно висит Err05.

Евгений Кислов
17.08.2021, 11:36
Убрал из опроса все, кроме напряжения и тока. Опрос идет кок-то хаотично.
И на экране все равно висит Err05.

Что вы подразумеваете под словом "хаотично"?



В проекте CODESYS какие-нибудь данные считываются?
C помощью Multi-Protocol MasterOPC Server счетчик получается опросить без ошибок?

СергейНовосиб
18.08.2021, 05:18
У меня нет "Multi-Protocol MasterOPC Server".
Из документации на счетчик:
• «Err 05» – «Ошибка протокола» появляется, если сообщение, полученное счетчиком через порт связи,
синтаксически неправильно. Если при повторных попытках сообщение повторяется, необходимо убедиться
в работоспособности счетчика и подключаемого к нему устройства, правильности соединения этих устройств
и работоспособности применяемой программы связи.

Через программу конфигуратора производителя все работает и опрашивает параметры.

Евгений Кислов
18.08.2021, 06:49
У меня нет "Multi-Protocol MasterOPC Server".
Из документации на счетчик:
• «Err 05» – «Ошибка протокола» появляется, если сообщение, полученное счетчиком через порт связи,
синтаксически неправильно. Если при повторных попытках сообщение повторяется, необходимо убедиться
в работоспособности счетчика и подключаемого к нему устройства, правильности соединения этих устройств
и работоспособности применяемой программы связи.

Через программу конфигуратора производителя все работает и опрашивает параметры.

Если вы заинтересованы в том, чтобы разобраться в данной ситуации - подключите, пожалуйста, счетчик к ПК с установленным CODESYS и предоставьте к нему удаленный доступ по TeamViewer или AnyDesk.

СергейНовосиб
19.08.2021, 07:47
отправил в личку на TeamViewer данные для входа

Евгений Кислов
19.08.2021, 07:54
отправил в личку на TeamViewer данные для входа

Ответил вам в личку.

СергейНовосиб
20.08.2021, 12:57
Пример Example_Mercury236_3514v2 из названия следует, что сделан в версии 3.5.14, реально в 3.5.16.
Можно его пересохранить в версии 3.5.14?

Евгений Кислов
20.08.2021, 13:11
Пример Example_Mercury236_3514v2 из названия следует, что сделан в версии 3.5.14, реально в 3.5.16.
Можно его пересохранить в версии 3.5.14?

Пересохранил и обновил на ftp.
Спасибо, что заметили.

StuG
21.09.2021, 10:15
Добрый день.

Пытаюсь опросить счетчик Меркурий 236 ART-01 через библиотеку. Связь со счетчиком установлена и опрос Additional_Params работает корректно (проверял на примере с форума).
При попытке опросить накопленную энергию по всем тарифам или по одному конкретному, данные не соответствуют показаниям на дисплее счетчика или отчету через конфигуратор.
Прикрепил скрины настроек и опроса устройства к сообщению.
57099 57100 57101 57102 57103

Евгений Кислов
21.09.2021, 10:17
Добрый день.

Пытаюсь опросить счетчик Меркурий 236 ART-01 через библиотеку. Связь со счетчиком установлена и опрос Additional_Params работает корректно (проверял на примере с форума).
При попытке опросить накопленную энергию по всем тарифам или по одному конкретному, данные не соответствуют показаниям на дисплее счетчика или отчету через конфигуратор.
Прикрепил скрины настроек и опроса устройства к сообщению.
57099 57100 57101 57102 57103

Добрый день.
Какую версию библиотеки вы используете?
Какие данные вы получаете через библиотеку?

Пришлите мне в личку или на почту, пожалуйста, ваш контактный телефон и подготовьте удаленный доступ через TeamViewer или AnyDesk.

StuG
21.09.2021, 10:19
OwenVendorProtocols v3.5.14.6

Евгений Кислов
21.09.2021, 10:22
OwenVendorProtocols v3.5.14.6

Пришлите мне в личку или на почту, пожалуйста, ваш контактный телефон и подготовьте удаленный доступ через TeamViewer или AnyDesk.

rogozin.ewgen
08.11.2021, 13:24
Добрый день!
Не могли бы подсказать в какую сторону копать: не получается добавить библиотеку OwenVendorProtocols в проект в CoDeSys3.5 SP16 Patch3, картина следующая (на скрине). CODESYS Repository Archive V3.5 SP4 устанавливал, сам CoDeSys3.5 (скачан с ftp Овен) тоже пробовал переустановить - результата не дало.57854

Евгений Кислов
08.11.2021, 13:28
Добрый день!
Не могли бы подсказать в какую сторону копать: не получается добавить библиотеку OwenVendorProtocols в проект в CoDeSys3.5 SP16 Patch3, картина следующая (на скрине). CODESYS Repository Archive V3.5 SP4 устанавливал, сам CoDeSys3.5 (скачан с ftp Овен) тоже пробовал переустановить - результата не дало.57854

Добрый день.
Нажмите кнопку Загрузка отсутствующих библиотек (ее видно на вашем скриншоте).

rogozin.ewgen
08.11.2021, 13:54
Пробовал. "Загрузка не удалась".57855

Евгений Кислов
08.11.2021, 13:56
Пробовал. "Загрузка не удалась".57855

Странно - возможно, в вашей сети что-то заблокировано.
Тогда можете скачать и распаковать архив проекта - в этот момент установятся все нужные библиотеки.
https://ftp.owen.ru/CoDeSys3/21_Examples/01_3.5.11.5/07_User_protocols/Example_Teplocom_VKT5_3514v1.projectarchive

rogozin.ewgen
08.11.2021, 14:13
Странно - возможно, в вашей сети что-то заблокировано.
Тогда можете скачать и распаковать архив проекта - в этот момент установятся все нужные библиотеки.
https://ftp.owen.ru/CoDeSys3/21_Examples/01_3.5.11.5/07_User_protocols/Example_Teplocom_VKT5_3514v1.projectarchive

Спасибо, распаковка архива помогла.

nikontech
16.01.2022, 07:17
Возможно ли в следующей версии библиотеки расширить "MERCURY23x_DEVICE_INFO" и включить в него пункт "2.6.4 Чтение коэффициента трансформации счетчика" (опрашиваем счетчики установленные в РП-10кВ в прибор записаны эти коэффициенты). Заранее благодарен.

Евгений Кислов
16.01.2022, 07:25
Возможно ли в следующей версии библиотеки расширить "MERCURY23x_DEVICE_INFO" и включить в него пункт "2.6.4 Чтение коэффициента трансформации счетчика" (опрашиваем счетчики установленные в РП-10кВ в прибор записаны эти коэффициенты). Заранее благодарен.

Добрый день.
Уточните, пожалуйста, п. 2.6.4 - это из какого документа?

Так или иначе - пожелание приняли, добавим такой запрос в версии библиотеки 3.5.14.8 (релиз версии 3.5.14.7 состоится в ближайшие пару дней).
В принципе, уже сейчас это можно сделать с помощью пользовательского запроса (USER_DEFINED).
Если вам требуется консультация, как его настроить - то мы, конечно, вам поможем.

nikontech
16.01.2022, 12:47
Добрый день.
Уточните, пожалуйста, п. 2.6.4 - это из какого документа?

Так или иначе - пожелание приняли, добавим такой запрос в версии библиотеки 3.5.14.8 (релиз версии 3.5.14.7 состоится в ближайшие пару дней).
В принципе, уже сейчас это можно сделать с помощью пользовательского запроса (USER_DEFINED).
Если вам требуется консультация, как его настроить - то мы, конечно, вам поможем.

Документ доступный из описания Библиотеки ссылка на документ https://ftp.owen.ru/CoDeSys3/04_Library/05_3.5.11.5/02_Libraries/02_vendor_protocols/merkuriy-sistema-komand-sogl-1-2021-02-02.pdf

Я думаю что эта информация будет не лишней и ее можно считать вместе с серийным номером.

Евгений Кислов
16.01.2022, 13:17
Документ доступный из описания Библиотеки ссылка на документ https://ftp.owen.ru/CoDeSys3/04_Library/05_3.5.11.5/02_Libraries/02_vendor_protocols/merkuriy-sistema-komand-sogl-1-2021-02-02.pdf

Я думаю что эта информация будет не лишней и ее можно считать вместе с серийным номером.

Понял, спасибо.
Мы добавим этот запрос как отдельную команду (просто потому, что это реализовано в приборе как отдельная команда и не имеет никакого отношения к серийному номеру).

nikontech
16.01.2022, 15:19
Понял, спасибо.
Мы добавим этот запрос как отдельную команду (просто потому, что это реализовано в приборе как отдельная команда и не имеет никакого отношения к серийному номеру).


Спасибо! будем ждать свежий релиз библиотеки.

Если не затруднит приведите пожалуйста пример работы с OVP.MERCURY23x_PARAMS.USER_DEFINED.
Заранее благодарен.

Евгений Кислов
17.01.2022, 08:23
Обновили версию библиотеки до 3.5.14.7.
В новой версии добавлена поддержка теплосчетчиков ВКТ-7 от компании Теплоком.

58745 58746

Кроме того, исправлен ряд ошибок:

в ФБ Energomera_IEC добавлен обязательный запрос закрытия канала после отсутствия запросов в течение 1.3 секунд (чтобы избежать подобных проблем (https://owen.ru/forum/showthread.php?t=34449&p=362348&viewfull=1#post362348) и по рекомендации разработчиков (http://forum.energomera.ru/viewtopic.php?f=13&t=45100#p65865));
в ФБ Mercury23x исправлена обработка массивов энергий (в прошлых версиях некорректно обрабатывались биты направления) и межфазных углов (в прошлых версиях их значения в 10 раз превышали действительные), а также изменен принцип обработки "отсутствующих" значений - теперь они отображаются как 0 (ранее отображались как 0xFFFFFFFF).


Также мы обновили все примеры - актуализировали версии библиотек, добавили таймеры для периода опроса и задержки между отдельными запросами, исправили опечатки.
В примере для Меркурий 236 добавили считывание массивов энергий.

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

Теперь приступаем к поддержке протокола счетчиков СЭТ (в частности, популярного у клиентов СЭТ-4ТМ.03М).

Евгений Кислов
17.01.2022, 08:53
Спасибо! будем ждать свежий релиз библиотеки.

Если не затруднит приведите пожалуйста пример работы с OVP.MERCURY23x_PARAMS.USER_DEFINED.
Заранее благодарен.

Подготовил пример:
https://ftp.owen.ru/CoDeSys3/21_Examples/01_3.5.11.5/07_User_protocols/Example_Mercury236_TransformCoeff_3514v3.projectar chive

58747

f_rzh
19.01.2022, 13:44
Добрый День! Судя по всему, некорректно считывается массив энергий для счетчика Меркурий 230 ART-02 CLN и для счётчика Меркурий 230 ART-03 PQRSIDN. Значение второго и четвёртого элементов массива энергий всегда остаётся нулевым. Если я правильно понимаю, это должны быть энергия по 2-й фазе и суммарная энергия.

Евгений Кислов
19.01.2022, 13:49
Добрый День! Судя по всему, некорректно считывается массив энергий для счетчика Меркурий 230 ART-02 CLN и для счётчика Меркурий 230 ART-03 PQRSIDN. Значение второго и четвёртого элементов массива энергий всегда остаётся нулевым. Если я правильно понимаю, это должны быть энергия по 2-й фазе и суммарная энергия.

Добрый день.
Какую версию библиотеки вы используете?

f_rzh
19.01.2022, 13:59
Добрый день, Евгений!
3.5.14.7 с сайта. С предыдущей версией было то же самое.

Евгений Кислов
19.01.2022, 14:08
Добрый день, Евгений!
3.5.14.7 с сайта. С предыдущей версией было то же самое.

В конфигураторе Меркурий эти значения отображаются ненулевыми?
Если да - то подключите счетчики к ПК и пришлите мне в личку ваш телефон, пожалуйста.



Если я правильно понимаю, это должны быть энергия по 2-й фазе и суммарная энергия

Из документации на протокол Меркурий:
"...поле данных ответа содержит 16 байт, отводится по четыре двоичных байта
на каждый вид энергии в последовательности: активная прямая (А+), активная
обратная (А-), реактивная прямая (R+), реактивная обратная (R-)"

f_rzh
19.01.2022, 14:20
Спасибо, разобрался. Я считал, что в массиве энергий первые 3 элемента - энергии по фазам, но это не так.

Евгений Кислов
28.01.2022, 09:31
Обновили версию библиотеки до 3.5.14.8.
В новой версии добавлена поддержка электросчетчиков СЭТ-4ТМ (ограниченно поддерживаются и другие счетчики с СЭТ-подобным протоколом - СЭБ, ПСЧ, ТЕ3000 и т.д.).

58972

Также по запросу пользователя nikontech (https://owen.ru/forum/member.php?u=103192) добавили для Меркурия 23x запрос чтение коэффициентов трансформации.

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

Теперь приступаем к поддержке протокола счетчиков Пульсар.

melky
28.01.2022, 10:29
Евгений Кислов счетчиков Пульсар (электро ? )или всей линейки устройств Пульсар?

з.ы. если выудите у них инфу, как рассчитывается пароль на счетчики воды и поделитесь, буду признателен :)

Евгений Кислов
28.01.2022, 10:31
Евгений Кислов счетчиков Пульсар (электро ? )или всей линейки устройств Пульсар?

з.ы. если выудите у них инфу, как рассчитывается пароль на счетчики воды и поделитесь, буду признателен :)

Речь о протоколе Пульсар-М в целом - он у них поддерживается большим количеством приборов.
Отлаживаться будем на приборе, который называется "cчетчик импульсов-регистратор Пульсар 6-канальный".

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

melky
28.01.2022, 10:39
Евгений Кислов пароль требуется для корректировки времени, и он каким-то образом рассчитывается из серийного номера счетчика.

з.ы. Убил бы таких программеров, дело в том, что при корректировке времени сбрасываются биты взлома или антимагнитной плобмы (что-то в этом духе), почему корректировку времени не вынести отдельно, а сброс этих битов по паролю, мой мозг не понял...

Ну если Пульсар-М это то, что писал и я (у меня был 10-ти канальный регистратор, счетчик воды, тепла и удаленно еще варианты счетчиков тепла) то обращайтесь.
Подскажу, что вспомню. В принципе код там же на GIT лежит в открытом доступе, саму логику опроса сможете посмотреть.
Разные приборы характеризуются различными командами, кроме общих. Если распечатаете описание протоколов для разных приборов и начнете сравнивать, увидите.

Евгений Кислов
28.01.2022, 10:41
Ну если Пульсар-М это то, что писал и я (у меня был 10-ти канальный регистратор, счетчик воды, тепла и удаленно еще варианты счетчиков тепла) то обращайтесь.
Подскажу, что вспомню.

Спасибо. Пока вопросов нет - судя по описанию, протокол предельно простой.
В той документации, которую читал я - нет никаких упоминаний, что изменение времени требует пароля.
Будем разбираться с этим уже при тестах с реальным прибором.

melky
28.01.2022, 10:57
Это у счетчика воды мне встретилось, про тепло не помню.

lectorleo
28.01.2022, 13:59
Добрый день
Энергомера CE301 R33 043 JAZ EIA485 (согласно инструкции номер порта это 9 последних цифр.)
codesys 16 patch 3, плк210-02 3.5.14.36, библиотека 3.5.14.7

Сделал ФБ из примера, что прилагается к библиотеке(удалил только всё связанное с датой). Ради эксперимента ФБ загнал в отдельный PRG который через конфигурацию задач запускается как самостоятельная единица.
При каждом считывании нового параметра загорается значок батарейки
При считывании Напряжения возникает ошибка Err12(Неподдерживаемый параметр) и Err05 (Ошибка протокола), хотя раз в 10-15 секунд обновляет считанное напряжение (прибор на столе, 220в по одной фазе)

ну и второй вопрос, если будет пример как реализовать работу с двумя приборами, буду благодарен)

Евгений Кислов
28.01.2022, 14:06
Добрый день
Энергомера CE301 R33 043 JAZ EIA485 (согласно инструкции номер порта это 9 последних цифр.)
codesys 16 patch 3, плк210-02 3.5.14.36, библиотека 3.5.14.7

Сделал ФБ из примера, что прилагается к библиотеке(удалил только всё связанное с датой). Ради эксперимента ФБ загнал в отдельный PRG который через конфигурацию задач запускается как самостоятельная единица.
При каждом считывании нового параметра загорается значок батарейки
При считывании Напряжения возникает ошибка Err12(Неподдерживаемый параметр) и Err05 (Ошибка протокола), хотя раз в 10-15 секунд обновляет считанное напряжение (прибор на столе, 220в по одной фазе)

ну и второй вопрос, если будет пример как реализовать работу с двумя приборами, буду благодарен)

Добрый день.
Предоставьте на следующей неделе удаленный доступ к ПК, с которого можно будет загрузить проекты в ПЛК - посмотрим, в чем дело.

melky
28.01.2022, 16:42
У 301 параметры отличаются от 303-его, например нет косинуса, зато есть тангенс.

Соврал, косинус есть, реактивки нет...


Отправка (14): /?163127043!<0D><0A>
Приём (15): /EKT5CE301v11<0D><0A>
OK!
Отправка (6): <06>051<0D><0A>
Приём (17): <01>P0<02>(163127043)<03>!
OK!
Отправка (14): <01>P1<02>(777777)<03>!
Приём (1): <06>
OK!
Отправка (13): <01>R1<02>VOLTA()<03>_
Приём (37): <02>VOLTA(237.09)<0D><0A>(235.8)<0D><0A>(253.08)<0D><0A><03>$
OK!
Отправка (13): <01>R1<02>CURRE()<03>Z
Приём (40): <02>CURRE(13.1036)<0D><0A>(12.6098)<0D><0A>(15.995)<0D><0A><03>;
OK!
Отправка (13): <01>R1<02>POWPP()<03>o
Приём (35): <02>POWPP(1.955)<0D><0A>(1.879)<0D><0A>(1.973)<0D><0A><03>\
OK!
Отправка (13): <01>R1<02>COS_f()<03><03>
Приём (40): <02>COS_f(0.77)<0D><0A>(0.81)<0D><0A>(0.83)<0D><0A>(0.68)<0D><0A><03>u
OK!
Отправка (13): <01>R1<02>FREQU()<03>\
Приём (16): <02>FREQU(50.0)<0D><0A><03>1
OK!
Отправка (13): <01>R1<02>ET0PE()<03>7
Приём (70): <02>ET0PE(12467.1736206)<0D><0A>(12467.1736206)<0D><0A>(0.0)<0D><0A>(0.0)<0D><0A>(0.0)<0D><0A>(0.0)<0D><0A><03>?
OK!
Отправка (13): <01>R1<02>TAN_f()<03><01>
Приём (43): <02>TAN_f(0.84)<0D><0A>(-0.73)<0D><0A>(-0.66)<0D><0A>(-1.13)<0D><0A><03>q
OK!
Отправка (13): <01>R1<02>TIME_()<03>g
Приём (20): <02>TIME_(16:50:18)<0D><0A><03>"
OK!
Отправка (13): <01>R1<02>DATE_()<03>V
Приём (23): <02>DATE_(05.28.01.22)<0D><0A><03><06>
OK!
Отправка (5): <01>B0<03>u

lectorleo
31.01.2022, 10:45
Добрый день.
Предоставьте на следующей неделе удаленный доступ к ПК, с которого можно будет загрузить проекты в ПЛК - посмотрим, в чем дело.

Позвонили, помогли
Спасибо огромное

По результатам:
Энергомера СЕ301 не умеет считать реактивную энергию, от этого и ошибка была
Ну а несколько счетчиков опрашивать - как вариант решение увеличить CASE в 2 раза с изменением адреса счетчика.

Например:
// Напряжения на фазах
OVP.ENERGOMERA_IEC_PARAMS.VOLTA:
IF blinkAddr THEN
fb_Energomera_IEC_Poll.pResponseData := ADR (stVoltage_1);
fb_Energomera_IEC_Poll.szResponseData := SIZEOF (stVoltage_1);
ELSE
fb_Energomera_IEC_Poll.pResponseData := ADR (stVoltage_2);
fb_Energomera_IEC_Poll.szResponseData := SIZEOF (stVoltage_2);
END_IF

В самом последнем опросе:blinkAddr:=NOT(blinkAddr);
Ну и перед вызовом блока энергомеры сделать присвоение первого или второго адреса

melky
31.01.2022, 12:10
lectorleo у 301 есть тангенс, так что можно рассчитать по формулам реактивку. Сам удивился, когда в офисе для мониторинга серверных установил...

lectorleo
31.01.2022, 12:25
lectorleo у 301 есть тангенс, так что можно рассчитать по формулам реактивку. Сам удивился, когда в офисе для мониторинга серверных установил...

о, прикольно. спасибо

nikontech
31.01.2022, 12:34
Подготовил пример:
https://ftp.owen.ru/CoDeSys3/21_Examples/01_3.5.11.5/07_User_protocols/Example_Mercury236_TransformCoeff_3514v3.projectar chive

58747

Евгений добрый день, подскажите а не планируется ли сделать обмен данным через TCP, имеем в хозяйстве несколько Подстанций 110/10 и ряд РП, где осуществляем технический учет, в РП сбор необходимы данных наладили с вашей помощью, там контроллер стоит локально, есть желание собирать данные с удаленных объектов, купил для тестов конвертер RS485 - Ethernet Родное меркурию по счетчик через него увидело.
Скажите существует ли возможно к библиотеке прикрутить TCP ?

Заранее благодарен.

melky
31.01.2022, 12:41
nikontech тут не TCP нужен а COM_over_TCP. Самый простой способ это со стороны ПЛК установить Ethernet-RS485 соответственно 485-м портом в ПЛК.
Но если не ошибаюсь, то будет связь только между парами устройств ПЛК -> RS485/Ethernet --- Ethernet/RS485 -> счетчик
Один из преобразователей сервер, второй клиент

Есть вариант поиграться с Болид С2000-Ethernet в UDP режиме, но не уверен, что взлетит, так как там настройка на несколько IP адресов скорее всего работает только для протокола Орион, а если использовать как прозрачный шлюз, то скорее всего так же будет точка точка.

Вот бы МКОН кроме Modbus имел бы прозрачный режим и в настройках по адресу умел биться в другой МКОН... цены бы не было.
Вроде на просторах нета встречал подобные устройства, но сейчас с ходу не найду.

Евгений Кислов
31.01.2022, 12:42
Евгений добрый день, подскажите а не планируется ли сделать обмен данным через TCP, имеем в хозяйстве несколько Подстанций 110/10 и ряд РП, где осуществляем технический учет, в РП сбор необходимы данных наладили с вашей помощью, там контроллер стоит локально, есть желание собирать данные с удаленных объектов, купил для тестов конвертер RS485 - Ethernet Родное меркурию по счетчик через него увидело.
Скажите существует ли возможно к библиотеке прикрутить TCP ?

Заранее благодарен.

Добрый день.
Мы прорабатывали этот вопрос.
Конкретно в данный момент наши блоки работают только через COM-порт.
Сделать аналоги для TCP (для работы с конвертерами COM/TCP) не должно стать проблемой - но пока мы не планировали эту работу.

Напомните, вы используете трехфазные Меркурии? (серия 23x)

Если речь только о них - то можем попробовать включить такой блок (Mercury23x_TCP) в текущую итерацию, если вы сможете предоставить нам удаленный доступ для отладки.

nikontech
31.01.2022, 13:35
Добрый день.
Мы прорабатывали этот вопрос.
Конкретно в данный момент наши блоки работают только через COM-порт.
Сделать аналоги для TCP (для работы с конвертерами COM/TCP) не должно стать проблемой - но пока мы не планировали эту работу.

Напомните, вы используете трехфазные Меркурии? (серия 23x)

Если речь только о них - то можем попробовать включить такой блок (Mercury23x_TCP) в текущую итерацию, если вы сможете предоставить нам удаленный доступ для отладки.

95 % именно Меркурий 234, Если необходимо удаленный доступ могу предоставить к стенду (стенд состоит из Меркурий 234, СПК110, конвертер USR-DR302, Устройство испытательное Ретом-21 для создания нагрузки и напряжение на Меркурии)

Евгений Кислов
31.01.2022, 13:36
95 % именно Меркурий 234, Если необходимо удаленный доступ могу предоставить к стенду (стенд состоит из Меркурий 234, СПК110, конвертер USR-DR302, Устройство испытательное Ретом-21 для создания нагрузки и напряжение на Меркурии)

Да, доступ к стенду подойдет.
Напишите мне в личку ваш контактный телефон - на следующей неделе мы с вами свяжемся, чтобы провести отладку.

Евгений Кислов
08.02.2022, 09:30
Обновили версию библиотеки до 3.5.14.9.
В новой версии добавлена поддержка счетчиков Пульсар.

59178

Также по запросу пользователя nikontech (https://owen.ru/forum/member.php?u=103192) добавили для Меркурия 23x ФБ для опроса через конвертер Ethernet/COM.
В будущем мы планируем выпустить варианты ФБ для опроса через конвертеры для всех блоков библиотеки.

Кроме того, исправили ошибку в ФБ Mercury 23x - ранее в ряде специфических ситуаций при получении некорректного пакета (например, из-за действия помехи на линию связи) могло произойти исключение в программе ПЛК.
Поэтому если вы уже используете этот ФБ в своих проектах - мы настоятельно рекомендуем вам обновить версию библиотеки.

По результатам общения с пользователем lectorleo (https://owen.ru/forum/member.php?u=79900) мы поняли, что для клиентов не всегда может быть очевидно, как использовать блоки библиотеки для опроса сразу нескольких счетчиков, подключенных к одному COM-порту контроллера. Поэтому мы разработали отдельный пример, который это демонстрирует.

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

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

Евгений Кислов
21.02.2022, 10:36
Кстати, кроме нестандартных протоколов мы также готовы консультировать наших клиентов по настройке опроса между нашими контроллерами и тепло/электросчетчиками и другими приборами по протоколу Modbus.
Например, недавно сделали пример опроса (https://ftp.owen.ru/CoDeSys3/21_Examples/01_3.5.11.5/03_Modbus/Example_Vzlet_TSRV03x_3514v1.projectarchive) теплосчетчика Взлет ТСРВ-034.

59425 59426

Если вам нужно опрашивать какие-то другие приборы (Термотроник, Питерфлоу, ВИС.Т и т.д.) - пишите в этой теме или мне в skype/на почту - мы заинтересованы в создании примеров опроса различного рода устройств.
С вашей стороны потребуется организация удаленного доступа к ПК с CODESYS и подключение к нему счетчика, а также его конфигурирование и формирование или имитация измеряемых значений.

melky
21.02.2022, 14:21
А почему Пульсар только 6 каналов? протокол у 2, 4, 6, 10, 16 абсолютно одинаковый, просто разное количество каналов.
Есть 10-ка регистратор, есть счетчик воды и тепла(один из вариантов), могу дать доступ если необходимо.

Евгений Кислов
21.02.2022, 14:29
А почему Пульсар только 6 каналов? протокол у 2, 4, 6, 10, 16 абсолютно одинаковый, просто разное количество каналов.
Есть 10-ка регистратор, есть счетчик воды и тепла(один из вариантов), могу дать доступ если необходимо.

Мы тестировали на 6-канальном приборе, потому что именно он у нас есть в наличии.
Сам блок библиотеки может работать с любой моделью счетчика с любым числом каналов (если в них нет отступлений от спецификации протокола).
Вы можете самостоятельно проверить работу блока с вашим конкретным прибором - достаточно подключить его к ПК с установленным CODESYS.
Если возникнут сложности - обращайтесь, поможем.

AlexZ
16.03.2022, 11:09
Счетчик Меркурий 236: в каких единицах получаем массивы энергии от сброса вт/ч, квт/ч ?

Евгений Кислов
16.03.2022, 11:12
Счетчик Меркурий 236: в каких единицах получаем массивы энергии от сброса вт/ч, квт/ч ?

В описании протокола указано, что счетчик возвращает значения активной энергии в кВт*ч.

AlexZ
16.03.2022, 12:18
В описании протокола указано, что счетчик возвращает значения активной энергии в кВт*ч.
Библиотека OwenVendorProtocols
Руководство пользователя
07.02.2022
версия 2.8
для Меркурия не нашел только для СЭТ-4ТМ

Евгений Кислов
16.03.2022, 12:25
Библиотека OwenVendorProtocols
Руководство пользователя
07.02.2022
версия 2.8
для Меркурия не нашел только для СЭТ-4ТМ

В описании протокола счетчика (п. 4.3.1).
https://www.incotexcom.ru/files/em/docs/merkuriy-sistema-komand-ver-1-2021-12-24.pdf

AlexZ
16.03.2022, 13:57
В описании протокола счетчика (п. 4.3.1).
https://www.incotexcom.ru/files/em/docs/merkuriy-sistema-komand-ver-1-2021-12-24.pdf

Прочитал, но все же в описании библиотеки нужно указывать, т.к. неизвестно как в ФБ преобразуются полученные данные

Евгений Кислов
16.03.2022, 14:00
Прочитал, но все же в описании библиотеки нужно указывать, т.к. неизвестно как в ФБ преобразуются полученные данные

Преобразуются согласно описанию протокола.
Я понимаю, что вы имеете в виду, но ничто не мешает Меркурию в следующей прошивке изменить единицы измерения или сделать возможность выбора единиц измерения пользователем или что-то еще.
Я добавлю ваше пожелание в список правок для следующей версии документа.

lectorleo
24.03.2022, 06:38
Добры... Здравствуйте
счетчик энергомера CE301 R33 043-JAZ R
библиотека 3.5.14.7
Приехал на обьект, запускаем и Активная энергия 0.9 считывается, а на экране показывается 18.4
в общем совсем другое что то считывается. прямой зависимости нет, в считывании может повышаться до 1.14 а на экране падает.
подключиться удаленно возможности нету.

Евгений Кислов
24.03.2022, 07:16
Добры... Здравствуйте
счетчик энергомера CE301 R33 043-JAZ R
библиотека 3.5.14.7
Приехал на обьект, запускаем и Активная энергия 0.9 считывается, а на экране показывается 18.4
в общем совсем другое что то считывается. прямой зависимости нет, в считывании может повышаться до 1.14 а на экране падает.
подключиться удаленно возможности нету.

Все остальные параметры, кроме активной энергии, считываются корректно?
Попробуйте опросить счетчик с помощью Multi-Protocol OPC Server и посмотреть, какие значения будут там.
Но без удаленного подключения разобраться в ситуации будет крайне затруднительно.

lectorleo
28.03.2022, 10:25
Все остальные параметры, кроме активной энергии, считываются корректно?
Попробуйте опросить счетчик с помощью Multi-Protocol OPC Server и посмотреть, какие значения будут там.
Но без удаленного подключения разобраться в ситуации будет крайне затруднительно.

Все остальные нормально и правдиво. С интернетом там проблемы. Точно адрес активной энергии верный?

Евгений Кислов
28.03.2022, 10:32
Все остальные нормально и правдиво. С интернетом там проблемы. Точно адрес активной энергии верный?

В протоколе МЭК 61107 нет понятия "адрес параметра".
Для чтения активной энергии используется команда ENEP3.
Попробуйте опросить счетчик с помощью Multi-Protocol OPC Server и посмотреть, какие значения будут там.

melky
28.03.2022, 10:35
Лучше опросить при помощи AdminTool от производителя. ET0PE() у меня таким параметром опрашивает 301-й. Там сумма энергии, тарифы 1, 2, 3, 4 и чего-то еще, не помню.

lectorleo
05.04.2022, 12:29
В протоколе МЭК 61107 нет понятия "адрес параметра".
Для чтения активной энергии используется команда ENEP3.
Попробуйте опросить счетчик с помощью Multi-Protocol OPC Server и посмотреть, какие значения будут там.

Параметр который необходим: EP.E.Sum или EP.E.T1 , а какое значение считывается пока не смог посмотреть, возможно завтра
60122

melky
05.04.2022, 12:39
lectorleo я выше написал каким запросом читается на 301-м энергия.

Отправка (13): <01>R1<02>ET0PE()<03>7
Приём (70): <02>ET0PE(30094.5518723)<0D><0A>(30094.5518723)<0D><0A>(0.0)<0D><0A>(0.0)<0D><0A>(0.0)<0D><0A>(0.0)<0D><0A><03>C
OK!

в ответе соответственно первое значение это Сумма, второе Тариф 1 ну и далее должен быть Тариф 2, 3, 4 а последнее не помню. То есть сумма и по тарифам прилетают на один запрос ET0PE() - это и есть так называемый адрес параметра (параметров в данном случае).

lectorleo
05.04.2022, 14:22
lectorleo я выше написал каким запросом читается на 301-м энергия.

Отправка (13): <01>R1<02>ET0PE()<03>7
Приём (70): <02>ET0PE(30094.5518723)<0D><0A>(30094.5518723)<0D><0A>(0.0)<0D><0A>(0.0)<0D><0A>(0.0)<0D><0A>(0.0)<0D><0A><03>C
OK!

в ответе соответственно первое значение это Сумма, второе Тариф 1 ну и далее должен быть Тариф 2, 3, 4 а последнее не помню. То есть сумма и по тарифам прилетают на один запрос ET0PE() - это и есть так называемый адрес параметра (параметров в данном случае).

Есть возможность написать как изменить пример от Овена?
// Активная энергия
OVP.ENERGOMERA_IEC_PARAMS.ENEP3:
fb_Energomera_IEC_Poll.pResponseData := ADR (stActiveEnergy_1);
fb_Energomera_IEC_Poll.szResponseData := SIZEOF (stActiveEnergy_1);

я так понял что в вашем варианте необходимо еще вытаскивать значение из массива или строки

melky
05.04.2022, 14:41
Да вроде 301-й библиотека должна поддерживать. Но это лучше уточнить у Евгения Кислова.
Или ваш пост был первым по 301-му?

Евгений Кислов
05.04.2022, 18:10
У нас есть клиенты, которые успешно опрашивали CE301.

lectorleo, вам надо сделать следующее - в руководстве на счетчик открыть приложение Б и определить имя параметра, который вам требуется, и аргументы его запроса (можете связаться с техподдержкой Энергомеры, если вам что-то будет неочевидно в документе):
http://www.energomera.ru/documentations/product/ce301_303_rp.pdf

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

melky
05.04.2022, 21:50
Евгений Кислов Самый первый параметр EXYZT где XY = T0 - нарастающим итогом с момента обнуления счетчика, Z = P - Активная, T = E потребленная
ET0PE()

Выдается массивами по 6 одноименных параметров, из которых первый – суммарная энергия, а второй– шестой – энергия, накопленная соответственно в период действия первого – пятого тарифов. Количество массивов суточных и месячных накоплений соответствует количеству дат, накопленных в параметрах DATED и DATEM соответственно

Кстати так никогда не пробовал ET0PE(1) или 2-6 вместо 1

lectorleo
06.04.2022, 12:30
У нас есть клиенты, которые успешно опрашивали CE301.

Чтобы увидеть то, что показывается на экране СЕ301:
OVP.ENERGOMERA_IEC_PARAMS.ET0PE:
fb_Energomera_IEC_Poll.pResponseData := ADR (stActiveEnergyEtope_1);
fb_Energomera_IEC_Poll.szResponseData := SIZEOF (stActiveEnergyEtope_1);

Чтобы увидеть то же самое значение, что в МЭ210 называется активная энергия на каждой фазе(если их суммировать) то это:
OVP.ENERGOMERA_IEC_PARAMS.POWEz:
fb_Energomera_IEC_Poll.pResponseData := ADR (stActiveEnergyPoweP_1);
fb_Energomera_IEC_Poll.szResponseData := SIZEOF (stActiveEnergyPoweP_1);

А OVP.ENERGOMERA_IEC_PARAMS.ENEP3 согласно инструкции это "Запрос энергии активной последней3-хминутки". Хотя у вас в комментариях просто "Активная энергия" , которая ни как не сочетается с "Активной энергией" в МЭ210-701

Евгений Кислов
06.04.2022, 12:39
А OVP.ENERGOMERA_IEC_PARAMS.ENEP3 согласно инструкции это "Запрос энергии активной последней3-хминутки". Хотя у вас в комментариях просто "Активная энергия"

Поправим при ревизии документации, спасибо.

melky
06.04.2022, 13:03
POWEz чтение данных параметров немного бесполезное для данных счетчиков, если их читать одновременно с током и напряжением, так как все три параметра читаются разными запросами, то будет несовпадение.

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

Kirillx
16.05.2022, 05:45
Здравствуйте. Имеется счётчики МАРС NEO - тепло(По шине MBUS). Читаются как 0x68,0x0B,0x0B,0x68,0x73,0xFD,0x52,00,00,00,00,0xF F,0xFF,0xFF,Medium,CS,0x16

Есть возможность их чтения ? Интересует всё что с них можно достать. Ибо на данный момент читается только текущее показания. А на приборке доступна к примеру история. Нагуглить никак не удаётся

Евгений Кислов
16.05.2022, 06:23
Здравствуйте. Имеется счётчики МАРС NEO - тепло(По шине MBUS). Читаются как 0x68,0x0B,0x0B,0x68,0x73,0xFD,0x52,00,00,00,00,0xF F,0xFF,0xFF,Medium,CS,0x16

Есть возможность их чтения ? Интересует всё что с них можно достать. Ибо на данный момент читается только текущее показания. А на приборке доступна к примеру история. Нагуглить никак не удаётся

Добрый день.
Если у вашего счетчика физический интерфейс M-bus - то вы не сможете опросить ваш счетчик с помощью наших контроллеров.
Если у вашего счетчика физический интерфейс RS-485, поверх которого передаются фреймы протокола M-Bus - то эта задача решаема, но вам потребуется реализовать протокол самостоятельно (в библиотеке OwenVendorProtocols протокол M-bus не поддержан).
Для этого необходимо запросить у производителя счетчика документацию на реализацию протокола (хотя M-Bus является стандартом - обычно у разных производителей есть свои нюансы в его реализации).

melky
16.05.2022, 09:25
Kirillx протокол MBus в помощь, у счетчика может быть два вида запросов, для текущих и архивных данных.

Евгений Кислов RS485 - MBus никто не отменял, так же как USB-MBus, Ethernet-MBus

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

Kirillx
16.05.2022, 16:25
Спасибо за ответ. Вообще, чтение идёт у меня на PHP так как всё в стеке воткнуто под VDS(онлайн - ip connect. Не COM решение).
Но было интересно подглядеть решения на других продуктах :rolleyes:

confiden
02.06.2022, 13:22
Добрый день.
Подскажите возможно ли считывать параметры OVP.MERCURY23x_ADDITIONAL_PARAMS с учетом коэффициентов трансформации (I) или только их дальнейший пересчет. Было бы очень неплохо сделать некий вход для задание данного параметра

Евгений Кислов
02.06.2022, 13:40
Добрый день.
Подскажите возможно ли считывать параметры OVP.MERCURY23x_ADDITIONAL_PARAMS с учетом коэффициентов трансформации (I) или только их дальнейший пересчет. Было бы очень неплохо сделать некий вход для задание данного параметра

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

Это реализуется предельно просто, так что я не вижу смысла добавлять в блок еще один вход (у него их и так не мало).

confiden
02.06.2022, 14:05
Подскажите не у кого нет примера на CFC для вычитывания параметров Mercury 230 - интересует массивы энергии, не могу сообразить как
это сделать

Евгений Кислов
02.06.2022, 14:10
Подскажите не у кого нет примера на CFC для вычитывания параметров Mercury 230 - интересует массивы энергии, не могу сообразить как
это сделать

Что именно вызывает у вас затруднения?

confiden
02.06.2022, 14:27
согласно описания должен формироваться запрос OVP.MERCURY23x_PARAMS.ENERGY_ARRAYS. , а также массивы с тарифами месяцами и подобным. не понимаю куда и что подставить что бы получить данные? С примере на ST все работает, но хочу разобрать с CFC ( так более близок для моего понимания)

Евгений Кислов
03.06.2022, 08:03
согласно описания должен формироваться запрос OVP.MERCURY23x_PARAMS.ENERGY_ARRAYS. , а также массивы с тарифами месяцами и подобным. не понимаю куда и что подставить что бы получить данные? С примере на ST все работает, но хочу разобрать с CFC ( так более близок для моего понимания)

См. пример считывания массива энергий за май по тарифу 0.

61048

Filipp
12.12.2022, 16:34
Приветствую всех!

Будет ли библиотека корректно функционировать с Меркурием 23x в CODESYS V3.5 SP17 Patch 3 (СПК107 [М01], прошивка 2.4)?

Евгений Кислов
12.12.2022, 16:37
Приветствую всех!

Будет ли библиотека корректно функционировать с Меркурием 23x в CODESYS V3.5 SP17 Patch 3 (СПК107 [М01], прошивка 2.4)?

Добрый день.
Будет - работа библиотеки никак не зависит от версии CODESYS (при условии, что она не ниже 3.5.14.0) и прошивки.

MUSulmanin
22.12.2022, 11:48
Добрый день. Подскажите, возможно ли заполучить дистрибутив библиотеки, т.к. есть желание реализовать опрос при помощи С# на Raspberry Pi 4?

Евгений Кислов
22.12.2022, 11:56
Добрый день. Подскажите, возможно ли заполучить дистрибутив библиотеки, т.к. есть желание реализовать опрос при помощи С# на Raspberry Pi 4?

Добрый день.
Вы, видимо, имеете в виду исходники.
Они не распространяются.
Для некоторых из приборов, поддержанных в библиотеке, можно найти примеры опроса на Github на различных языках.

MUSulmanin
23.12.2022, 15:17
Добрый вечер.
Я понял, спасибо.
Подскажите плиз, как организовать опрос 13-ти счетчиков наибыстрейшим способом?
Что то никак не получается(

Евгений Кислов
23.12.2022, 15:26
Добрый вечер.
Я понял, спасибо.
Подскажите плиз, как организовать опрос 13-ти счетчиков наибыстрейшим способом?
Что то никак не получается(

Каких именно счетчиков?

MUSulmanin
23.12.2022, 15:49
Меркурий 234

MUSulmanin
23.12.2022, 15:57
Взял Ваш пример и в теле условия
IF fb_ComControl.xActive THEN // Если COM-порт открыт, настраиваем и запускаем обмен
fb_Mercury23xPoll_1 (); //Опрос счетчика
Case eCurrentParameter_2 OF
End_Case
fb_DoneTrig (CLK := fb_Mercury23xPoll_1.xDone); // Ловим окончание работы ФБ
fb_ErrorTrig (CLK := fb_Mercury23xPoll_1.xError);

fb_DelayBetweenPoll_1( IN := fb_DoneTrig.Q OR fb_ErrorTrig.Q, PT := c_tDelayBetweenRequests); // Задержка между запросами
fb_PollingPeriodTimer_1 (IN := NOT fb_PollingPeriodTimer_1.Q,PT := c_tPollingPeriod); // Задержка запуска новой цепочки опроса

IF fb_PollingPeriodTimer_1.Q THEN
xIsPollingChainEnd := FALSE; // Сбрасываем признак окончания цепочки обмена
END_IF
fb_Mercury23xPoll_2();
--------------------- //Тоже самое
End_If

И так далее. Пытался через цикл сделать For, но не понял как ловить окончание опроса предыдущего счетчика, поэтому вернулся c copy-pass)

MUSulmanin
23.12.2022, 16:02
В fb_Mercury23xPoll_1 () в качестве условия запуска xExecute:= (NOT fb_DelayBetweenPoll_2.Q) AND (NOT xIsPollingChainEnd_2 AND fb_PollingPeriodTimer_1.Q) ловлю завершение опроса и таймер паузы, а также таймер перезапуска предыдущего счетчика

MUSulmanin
23.12.2022, 16:06
Вроде опрос идет, но первый счетчик опрашивается гораздо быстрее чем все остальные. Третий очень медленно, хотя все лежат на столе рядышком(

Евгений Кислов
23.12.2022, 16:08
Выложите ваш проект, посмотрим.

MUSulmanin
23.12.2022, 16:52
Правда в txt, что бы не захломляться)

MUSulmanin
23.12.2022, 16:59
Есть вариант через цикл For еще. Но думаю если в этом отчетливо разобраться по наилучшей скорости, то в For нет необходимости.

MUSulmanin
23.12.2022, 17:28
Изменил условие запуска FB на xExecute :=(NOT fb_DelayBetweenPoll_1.Q) AND (NOT xIsPollingChainEnd ) and fb_DoneTrig_4.Q и опрос пошел очень бодро и без ошибок.
Теперь хочется сделать это в цикле. Не подскажите, как я могу сделать массив из тригеров fb_DoneTrig.Q что бы отлавливать завершение предыдущего опроса счетчика

Евгений Кислов
23.12.2022, 18:20
Вызывать в цикле FOR именно ФБ опроса не получится - потому что FOR выполняется в одном цикле задачи контроллера, а выполнение ФБ опроса занимает несколько циклов.
В моем понимании, в вашем случае проще всего сделать так: оставляете один CASE. Когда выполните все запросы из него - изменяете адрес счетчика (т.е. значение переменной на входе usiDeviceAddr).
Особенно удобно, если вы можете всем счетчикам задать последовательные адреса (57, 58 и т.д.) - тогда будет достаточно увеличить значение переменной на 1.
Когда опросили последний счетчик - присваиваете этой переменной значение начального счетчика.
В итоге вы и получите некий аналог "цикла".

grisha-faulty
10.02.2023, 16:40
Добрый день! В описании контроллера ПЛК210-KR указано, что он имеет возможность работы с протоколом DLMS/COSEM (в спецификации СПОДЭС) по интерфейсу RS-485. Скажите пожалуйста, имеет ли такую возможность контроллер ПЛК210? Если да, то какие библиотеки для этого требуются? Спасибо

Евгений Кислов
10.02.2023, 16:43
Добрый день! В описании контроллера ПЛК210-KR указано, что он имеет возможность работы с протоколом DLMS/COSEM (в спецификации СПОДЭС) по интерфейсу RS-485. Скажите пожалуйста, имеет ли такую возможность контроллер ПЛК210? Если да, то какие библиотеки для этого требуются? Спасибо

Добрый день.
ПЛК210 с системой исполнения CODEYS не поддерживают протокол DLMS/COSEM.

grisha-faulty
15.02.2023, 10:50
Спасибо, Евгений!

Подскажите ещё пожалуйста, поддерживает ли ПЛК210 работу с протоколом СЭТ-4ТМ.02 счетчика ПСЧ-4ТМ? Если для него библиотека?

Евгений Кислов
15.02.2023, 11:01
Спасибо, Евгений!

Подскажите ещё пожалуйста, поддерживает ли ПЛК210 работу с протоколом СЭТ-4ТМ.02 счетчика ПСЧ-4ТМ? Если для него библиотека?

В библиотеку OwenVendorProtocols входит блок SET_4TM - он реализует этот протокол обмена.
Мы поддержали набор основных команд и есть возможность отправить произвольный запрос (например, если нужна какая-то специфическая команда, которая есть только у ПСЧ).

AlexZ
17.04.2023, 13:14
Есть необходимость подключить Меркурий-234 на один порт (ПЛК-210) вместе с теплосчетчиком, имеющим Modbus RTU. Вроде протокол Меркурия похож на Modbus RTU, однако смущают сообщения, периодически посылаемые библиотекой:
FF FF 10 10 3F FF 00 00 CC 80 00 00 00 30 94

Евгений Кислов
17.04.2023, 13:16
Есть необходимость подключить Меркурий-234 на один порт (ПЛК-210) вместе с теплосчетчиком, имеющим Modbus RTU. Вроде протокол Меркурия похож на Modbus RTU, однако смущают сообщения, периодически посылаемые библиотекой:
FF FF 10 10 3F FF 00 00 CC 80 00 00 00 30 94

Это совершенно не так.
В данный момент в чем именно у вас проблема?

AlexZ
17.04.2023, 13:25
Вот что зафиксировано приложением терминал:
Запрос из стандартного набора массивов от сброса и по сумме тарифов
33 01 01 01 01 01 01 01 01 37 70 33 00 15 40 33 05 04 00 1D A1 33 00 00 01 0D 00 00 03 00 00 00 B1 00 00 00 53 08 51 DB
FF FF 10 10 3F FF 00 00 CC 80 00 00 00 30 94

Евгений Кислов
17.04.2023, 13:29
Вот что зафиксировано приложением терминал:
Запрос из стандартного набора массивов от сброса и по сумме тарифов
33 01 01 01 01 01 01 01 01 37 70 33 00 15 40 33 05 04 00 1D A1 33 00 00 01 0D 00 00 03 00 00 00 B1 00 00 00 53 08 51 DB
FF FF 10 10 3F FF 00 00 CC 80 00 00 00 30 94

Вторая строка - это вообще похоже на работу блока опроса теплосчетчика ВКТ-7.
Вы его тоже добавили в свой проект?
Предприняли усилия, чтобы он не вызывался одновременно с блоком опроса Меркурия?

AlexZ
17.04.2023, 13:31
Да Вы правы, извините за беспокойство

Сергей1988
13.05.2023, 17:45
тепловычислителей ТВ7 есть кого пример или библиотека на Codesys 3.5

Евгений Кислов
14.05.2023, 18:34
тепловычислителей ТВ7 есть кого пример или библиотека на Codesys 3.5

У ТВ7 - обычный Modbus, так что библиотека не нужна.
Если у вас есть тепловычислитель - то совместно с вами можем сделать пример опроса.

Сергей1988
15.05.2023, 08:06
Есть 2 штуки) ПЛК 210 напишите на почту sergei.chapaikin@sintec.ru и начнем совместно

Евгений Кислов
23.06.2023, 08:34
Подготовлен пример опроса тепловычислителя Термотроник ТВ7 (https://ftp.owen.ru/CoDeSys3/21_Examples/01_3.5.11.5/03_Modbus/Example_Termotronic_TV7_3517v1.projectarchive).
Подходит для приборов с версией прошивки 2.20 и выше (в ранних прошивках была другая карта регистров).
http://termotronic.ru/download/files/tv7_protokol_obmena_red.7-06.pdf

Спасибо Сергей Чапайкину (https://owen.ru/forum/member.php?u=135617) за предоставление доступа к прибору и помощь в отладке.

68435 68437 68436 68438

ultra76
14.11.2023, 15:09
Добрый день.
Можно ли на одну ветку интерфейса RS485 ПЛК210 посадить счетчик Меркурий (со своим протоколом) и другие устройства с протоколом Modbus RTU?

melky
14.11.2023, 15:17
ultra76 физически можно, главное, чтобы у устройств Modbus адрес не повторялся с адресом счетчика. Проверено но со стороны Scada системы, у меня происходит опрос счетчика Меркурий 236 и ПР200 - полет нормальный.

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

Юрий А
30.11.2023, 16:28
Добрый день Евгений!

Поставил ваш скрипт из образца опроса счетчика Меркурий, добавил библиотеки, подключил проверенные счетчики Меркурий236 (проверяю обмен другим своим решением данные с 4х шт. пришли) по итогу приходит очень мало значений. Не могли бы подсказать куда смотреть, что может быть не так72023 ?

Евгений Кислов
30.11.2023, 16:51
Добрый день Евгений!

Поставил ваш скрипт из образца опроса счетчика Меркурий, добавил библиотеки, подключил проверенные счетчики Меркурий236 (проверяю обмен другим своим решением данные с 4х шт. пришли) по итогу приходит очень мало значений. Не могли бы подсказать куда смотреть, что может быть не так72023 ?

Добрый день.
Выложите скриншот из конфигуратора Меркурия, на котором будет видна его версия ПО, версия неметрологической части ПО и дата его производства.

Юрий А
30.11.2023, 17:06
Добрый день.
Выложите скриншот из конфигуратора Меркурия, на котором будет видна его версия ПО, версия метрологической части ПО и дата его производства.

Вот этот Счетчик, протокол стоял СПОДЭС, я их переключил на Меркурий.
Преобразователь протокола которым я пользуюсь считал данные, я тоже решил сначала что в счетчики изменили регистры и поэтому он в них не попадает, но проверил своим преобразователем все данные пришли как и прежде.
Возможно это я что то неправильно делаю в CS.
72026

Евгений Кислов
30.11.2023, 17:08
Вот этот Счетчик, протокол стоял СПОДЭС, я их переключил на Меркурий.
Преобразователь протокола которым я пользуюсь считал данные, я тоже решил сначала что в счетчики изменили регистры и поэтому он в них не попадает, но проверил своим преобразователем все данные пришли как и прежде.
Возможно это я что то неправильно делаю в CS.
72026

Тут не видно параметра "Неметрологическая часть".
Скорее всего, у вас версия прошивки для новых счетчиков (где и СПОДЭС, и протокол Меркурий), в которой еще не поддержан "ускоренный режим чтения вспомогательных параметров" - а в нашей библиотеке использован именно он.

Юрий А
30.11.2023, 17:21
Тут не видно параметра "Неметрологическая часть".
Скорее всего, у вас версия прошивки для новых счетчиков (где и СПОДЭС, и протокол Меркурий), в которой еще не поддержан "ускоренный режим чтения вспомогательных параметров" - а в нашей библиотеке использован именно он.

72027

Это тоже не то ?

Александр Пинэко-Скворцов
30.11.2023, 17:22
Вот этот Счетчик, протокол стоял СПОДЭС, я их переключил на Меркурий.
Преобразователь протокола которым я пользуюсь считал данные, я тоже решил сначала что в счетчики изменили регистры и поэтому он в них не попадает, но проверил своим преобразователем все данные пришли как и прежде.
Возможно это я что то неправильно делаю в CS.
72026


Добрый день!

Ответ от поддержки Инкотекс:

Ускоренное чтение вспомогательных параметров реализовано начиная с ВПО 5.56.1.59 от 11.09.2023.
Для обновления ВПО счётчика его надо будет отправлять в сервисный центр Инкотекс https://www.incotexcom.ru/support
При закупках нужно ориентироваться на дату производства не ранее октября 2023 года или смотреть ВПО.

Номер ВПО можно увидеть через ПО "Конфигуратор универсальный" на форме "Служебная информация" или через ПО "Конфигуратор СПОДЭС" на форме "Паспортные данные".
В счётчиках без литеры X (выпускаются в модификациях на 3*57.7/100В) ошибка ускоренного чтения вспомогательных параметров не возникнет.

Юрий А
01.12.2023, 08:33
Добрый день!

Ответ от поддержки Инкотекс:

Ускоренное чтение вспомогательных параметров реализовано начиная с ВПО 5.56.1.59 от 11.09.2023.
Для обновления ВПО счётчика его надо будет отправлять в сервисный центр Инкотекс https://www.incotexcom.ru/support
При закупках нужно ориентироваться на дату производства не ранее октября 2023 года или смотреть ВПО.

Номер ВПО можно увидеть через ПО "Конфигуратор универсальный" на форме "Служебная информация" или через ПО "Конфигуратор СПОДЭС" на форме "Паспортные данные".
В счётчиках без литеры X (выпускаются в модификациях на 3*57.7/100В) ошибка ускоренного чтения вспомогательных параметров не возникнет.

Добрый день!

Я не нашел в указанных формах в ПО "Конфигуратор универсальный" на форме "Служебная информация" или через ПО "Конфигуратор СПОДЭС" на форме "Паспортные данные". (Скрин прилагаю)
Посмотрите пожалуйста, подобные цифры есть на скрине из ПО "Конфигуратор СПОДЭС" слева внизу, "версия сборки", это оно?7203272033

Евгений Кислов
01.12.2023, 08:39
Добрый день!

Я не нашел в указанных формах в ПО "Конфигуратор универсальный" на форме "Служебная информация" или через ПО "Конфигуратор СПОДЭС" на форме "Паспортные данные". (Скрин прилагаю)
Посмотрите пожалуйста, подобные цифры есть на скрине из ПО "Конфигуратор СПОДЭС" слева внизу, "версия сборки", это оно?7203272033

Я думаю, это версия конфигуратора.
ВПО, о котором говорит саппорт Инкотекс, обозначается вот так:

72034

Юрий А
01.12.2023, 08:42
Добрый день!

Ответ от поддержки Инкотекс:

Ускоренное чтение вспомогательных параметров реализовано начиная с ВПО 5.56.1.59 от 11.09.2023.
Для обновления ВПО счётчика его надо будет отправлять в сервисный центр Инкотекс https://www.incotexcom.ru/support
При закупках нужно ориентироваться на дату производства не ранее октября 2023 года или смотреть ВПО.

Номер ВПО можно увидеть через ПО "Конфигуратор универсальный" на форме "Служебная информация" или через ПО "Конфигуратор СПОДЭС" на форме "Паспортные данные".
В счётчиках без литеры X (выпускаются в модификациях на 3*57.7/100В) ошибка ускоренного чтения вспомогательных параметров не возникнет.

Литера Х это в названии вы имеете ввиду, ARTMX2-03 DBR.R ?72035

Юрий А
01.12.2023, 08:56
Я скачал крайнюю версию универсального конфигуратора. 1.8.08.
Посмотрю с её помощью, может покажет этот параметр.

Юрий А
04.12.2023, 15:15
Действительно, оказалась версия конфигуратора немного не та (1.8.04), при считывании не было параметра "Неметрологическая часть".7210372103

Получается данные модели не будут работать с библиотекой OVP?

Евгений Кислов
04.12.2023, 15:17
Действительно, оказалась версия конфигуратора немного не та (1.8.04), при считывании не было параметра "Неметрологическая часть".7210372103

Получается данные модели не будут работать с библиотекой OVP?

Данные модели не будут. Нужно обновить их до ВПО 5.56.1.59 или выше.
Для этого нужно связаться с поддержкой Инкотекс.

Юрий А
04.12.2023, 15:25
Данные модели не будут. Нужно обновить их до ВПО 5.56.1.59 или выше.
Для этого нужно связаться с поддержкой Инкотекс.

Спасибо!
А вы можете дать некое информационное письмо по этому вопросу?
Мне для отчета заказчику.

Евгений Кислов
04.12.2023, 15:30
Спасибо!
А вы можете дать некое информационное письмо по этому вопросу?
Мне для отчета заказчику.

Уточните, какое содержание и форма должны быть у этого письма.

Юрий А
04.12.2023, 16:27
Уточните, какое содержание и форма должны быть у этого письма.

Форма свободная, на вашем бланке.

Содержание примерно такое:

Данным информационным письмом сообщаем, что библиотека Owen Vendor Protocol (версия3.5.17)
разработанная нашей компанией для организации опроса счетчиков энергии контроллерами СПК1хх, ПЛК2хх,
не работает с электросчетчиками Меркурий234 в которых не реализована функция ускоренного чтения вспомогательных параметров.
Электросчётчики без указанной функции имеют ВПО с х.хх.х.хх по 5.56.1.58 включительно.

Ускоренное чтение вспомогательных параметров реализовано начиная с ВПО 5.56.1.59 от 11.09.2023
Для обновления ВПО необходимо связаться сервисный центр Инкотекс https://www.incotexcom.ru/support
Если вам необходимо организовать опрос электросчетчиков Меркурий234, при помощи решений компании Owen,
то при закупках нужно ориентироваться на дату производства электросчетчиков не ранее октября 2023 года или смотреть ВПО.

Номер ВПО можно увидеть через ПО "Конфигуратор универсальный" 1.8.08 на форме "Служебная информация" или
через ПО "Конфигуратор СПОДЭС" на форме "Паспортные данные".
В счётчиках без литеры X (выпускаются в модификациях на 3*57.7/100В) ошибка ускоренного чтения вспомогательных параметров не возникнет.


Как то так. Орфографические ошибки и неточности прошу исправить :)

Евгений Кислов
04.12.2023, 16:37
Укажите почту, на которую его нужно отправить.
Подготовим его, ориентировочно, в среду.

Юрий А
04.12.2023, 16:49
Укажите почту, на которую его нужно отправить.
Подготовим его, ориентировочно, в среду.

Отправил в личном сообщении, спасибо.

Евгений Кислов
27.12.2023, 12:54
Подготовлен пример опроса весового преобразователя ТВ-003/05Н (https://www.tenso-m.ru/vesovye-terminaly/dlja-staticheskih-vesov/172/) по протоколу Тензо-М.
На базе примера можно реализовать обмен с другими приборами, которые поддерживают данный протокол.

Спасибо Алексею Титову (mad_kinder) (https://owen.ru/forum/member.php?u=106273) за доступ к прибору и помощь с отладкой.

Ссылка на пример: https://ftp.owen.ru/CoDeSys3/21_Examples/01_3.5.11.5/07_User_protocols/Example_Tenzo_M_3517v2.projectarchive
Общая спецификация протокола Тензо-М (см. также описание специализированных команд в руководствах на конкретные приборы (https://wiki.tenso-m.ru/doku.php?id=start:%D0%B4%D0%BE%D0%BA%D1%83%D0%BC%D 0%B5%D0%BD%D1%82%D1%8B:%D0%BF%D1%80%D0%BE%D1%82%D0 %BE%D0%BA%D0%BE%D0%BB%D1%8B_%D0%BE%D0%B1%D0%BC%D0% B5%D0%BD%D0%B0)):
https://www.tenso-m.ru/pdf/Protocol_Tenso-M.pdf

72649 72650

Upd. - работа примера также проверена с ТВ-011 (https://www.tenso-m.ru/vesovye-terminaly/kontrollery/144/).
Спасибо Антону Леонову за предоставление доступа к прибору.

73087 73088

Artyom
18.01.2024, 17:59
Если мне нужно всего два счетчика "Меркурий 236" опросить, то могу взять пример Example_Mercury236_Mercury206_3514v3, и там попробовать заменить 206 на 236?

Евгений Кислов
18.01.2024, 19:04
Если мне нужно всего два счетчика "Меркурий 236" опросить, то могу взять пример Example_Mercury236_Mercury206_3514v3, и там попробовать заменить 206 на 236?

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

Евгений Кислов
16.04.2024, 10:47
Библиотека обновлена до версии 3.5.14.10.

Исправлена ошибка - ранее для запросов, которые заканчивались байтом со значением 0, не происходила отправка последнего байта.
Ошибка затрагивала блоки Mercury23x, Mercury23x_TCP, Energomera_CE, Energomera_IEC, Teplocom_VKT7, SET_4TM, Pulsar_M.

Спасибо Илье Люльчеву за детализированное сообщение об ошибке.