Пишем протоколы счетчиков Меркурий 230 и Меркурий 200 для OpenSCADA
Для кого
— Для тех кто использует OpenSCADA, но не может реализовать больше чем решения «из коробки»
— Для тех кто ищет СКАДу для себя, но так и не может определится
— Для тех кто забросил этот проект, так и не разобравшись как он работает
Зачем
— Данное решение позволяет считывать показания счетчиков меркурий 230 и меркурий 200 без каких либо лимитов
— Это бесплатно
Проекту openscada (oscada.org) уделяют не заслужено мало внимания, о нем написана всего одна статья на хабре. Большинство инженеров боятся трогать и трехметровой палкой этот продукт, черт его знает какой этот ваш линукс. Разрабатывает его уже не первый десяток лет фактически один человек, Роман Савоченко.
Не имея раньше опыта со СКАДА вообще (а с линуксом немного дружил) выбрал именно его для реализации мониторинга объектов на предприятии. Так как сравнить мне было не с чем, интерфейс и все связи данных с друг другом я воспринял как должное. Очень помог видеоурок «быстрый старт», лично я считаю таких уроков можно было сделать и побольше. Документацию тоже пришлось перечитывать не раз, но оно того стоило. Подключив первый модуль сбора данных Невод+ долго не мог понять почему он не работает. Ведь как совместимый с протоколом DCON он в списке проекта числился(точнее его аналог). Полез в исходник протокола и… оказалось что совсем он с ним не совместим, как и многие другие модули сбора из списка. Первое обращение на форум проблему мою исправило и еще несколько ошибок довольно оперативно. Рассказывать обо всех тонкостях системы я не буду, лучше прочтите вышеупомянутую статью на хабре или посмотрите «быстрый старт».
Спустя какое то время мне понадобилось снимать показания с электросчетчиков Меркурий 230. Поддержки этих счетчиков в openscada нет. Попробовал утилиту taskgroup от создателя всем известного konfiguratorа, опрашивать счетчики по CSD ей оказалось дохлым номером. Но все не так плохо как могло быть, openscada система предельно модульная и написать свой модуль можно хоть на С++, хоть на языке высокого уровня прямо в ней. Описание протокола обмена для меркурия 230 без проблем можно найти в сети, производитель «Инкотекс» конечно может предоставить вам описание по запросу, но мне не хотелось связываться с этой волокитой.
Итак, подключаем шину со счетчиками, для наглядности и лучшей ориентации в протоколе ставим konfigurator и сниффер последовательно порта, открываем документацию. Пытаемся прочитать данные со счетчика с адресом 75.
все скриншоты кликабельны
Видим как побежали наши данные.
Протокол обмена для меркурий 230 очень похож на протокол modbus.
Запрос на открытие канала связи предназначен для разрешения доступа к данным с указанием уровня доступа. В счетчике реализован двухуровневый доступ к данным: первый (низший) — уровень потребителя, и второй (высший) — уровень хозяина
Попытаемся с помощью конфигуратора опросить наш счетчик и видим что первый запрос это и есть пароль, а ответ счетчика это 4 байта. включающие в себя
Теперь попытаемся это реализовать на openscada. В С++ я не силен, поэтому решил реализовать на языке, встроенном в саму СКАДу, который там зовется JavaLikeCalc.Javascript. Сам код опроса реализуется в двух модулях UserProtocol и DevLib. Создадим устройство в библиотеке устройств и назовем m230. Добавим атрибуты netaddr(сетевой адрес), password(пароль), transport(последовательный порт) и answer(ответ на запрос пароля). И напишем запрос.
Теперь перейдем к протокольной части и создадим в UserProtocol наш пользовательский протокол и назовем его так же m230. Начнем с преобразования сетевого адреса. Код расчета контрольной суммы modbus CRC16 уже был написан давно, мне осталось его только вставить в свой код.
Создадим и транспорт, прописав в нем нужный порт, скорость и тайминги.
Теперь создадим устройства в LogivLev, в нем создадим контроллер а так же параметры (они же и есть счетчики). Выбираем наш шаблон, в конфигурации прописываем сетевой адрес, пароль и транспорт.
Не лишним будет и включить архивацию в соответствующей вкладке.
Переходим ко вкладке Атрибуты и видим наши 4 байта ответа от счетчика. Пароль принят, отлично.
Что же попробуем считать показания электроэнергии. Добавляем в в атрибуты шаблона несколько записей еще несколько строк кода для каждого тарифа и для их суммы.
Далее добавим в наш протокол еще строки. Не лишнем будет проверить ответ на тот ли запрос пришел и проверить длину пакета. Каждый 4 байта полезной информации ответа интерпретируется своей последовательностью байт, для чтения энергии она видна на скриншоте. В конце из 16ричной системы данные переводим в десятичную, к тому же это число надо разделить на 1000.
Заходим опять в конфигурацию шаблона, ставим галку «Считывать энергию от сброса» и в атрибутах у нас уже видны данные о тарифах.
На этом останавливаться мы не собираемся и попробуем добавить мгновенные данные — напряжение, ток и мощность. Здесь все тоже самое, меняем только второй, третий и четвертый байт, которые отвечают у нас за то, какую информацию мы хотим получить от счетчика.
Немного изменений добавим и на стороне протокола.Проверяем ответ на байты из чего строим предположение о его длине и проверяем ее, добавляем свою последовательность байт, переводим в десятичную систему и делим на 100 для ответа о напряжении и мощности и на 1000 для ответа о токе.
Теперь в атрибутах нашего счетчика видим все его основные данные, которых конечно в разы больше и при желании можно добавить еще, например частоту в герцах и многое другое.
Добавим для наглядности еще несколько счетчиков. Но это не все, данные надо не просто считывать но и представить их в удобном виде. Для этого в openscada существует Vision (рабочий пользовательский интерфейс) в котором данные можно представить в любом удобном для вас виде, хоть в виде мнемосхемы, в виде графиков, в виде документов итд. Возьмем стандартный документ из шаблона и отредактируем его чтобы получилось так.
А в обработку документа добавим строку, чтобы можно было легко читать архивы данных по дням.
В итоге запускаем проект и открываем наш документ.
Если нужно представить мгновенные значения или из архива то создаем график, добавляя туда наши значения. Вот пример значений для счетчика по напряжению.
Но спустя некоторое время не отпускала идея написать заодно и протокол для однофазных счетчиков меркурий 200. Описание протокола я в сети не нашел, но мир не без добрых людей.
Сетевой адрес тут и есть пароль счетчика. По умолчанию он равен последним 6 цифрам серийного номера. Попробуем написать шаблон.
Вот схема пакета запроса и ответа
Серийный номер счетчика слишком длинный чтоб уместить его в 32-битное целое число, поэтому поделим его на две части.
Код запроса тарифа 0x27, пишем структуру запроса и выделяем какие байты за какой тариф у нас отвечают. И делим это значение на 100. И проверяем наш ответ на объем символов.
Чтобы считывать мгновенные значения используем код запроса 0х63. Также проверим наш ответ на количество байтов. Нюансы по каждому из этих значений тоже учитываем.
Но что делать если счетчик закодирован программой наладчик+? К счастью как кодирует наладчик+ всем уже давно известно, поэтому добавляем строку в начало нашего кода.
Перейдем к протокольной стороне. Преобразовываем наш адрес в шестнадцатеричную систему. Расчет контрольной суммы и запрос как и в предыдущем протоколе.
Добавим несколько счетчиков и в конфигурации шаблона пропишем наши настройки.
И во вкладке Атрибуты видим как счетчик отдает нужные нам значения.
Создадим документ чтобы просматривать эти значения в более удобном виде. Отредактируем наш шаблон документа. Запустим наш проект.
Источник
Перепрограммирование многотарифных электросчетчиков Меркурий
Действующее свидетельство на данный вид деятельности (в случаи необходимости предоставления подтверждения в энергосбытовую организацию, возможно предоставление всех необходимых документов, данная услуга рассчитывается индивидуально )
Оказываемые услуги по сервисным работам с электросчётчиками марки Меркурий:
- Настройка тарифного расписания — однотарифный (Т1), двухтарифный (Т1 и Т2), многотарифный (Т1, Т2, Т3)
- Коррекция сбившегося времени и даты на приборах учёта (установка точного времени и даты)
- Настройка индикации параметров электросчётчика, которые будут отображаться на ЖК дисплее
- Установка пароля на электросчётчики (замена заводского пароля для доступа через программы опроса)
Стоимость работ с выездом в пределах МКАД:
Программирование трехфазного электросчетчика Меркурий — от 1 500 руб.
Программирование однофазного электросчетчика Меркурий — от 1 500 руб.
Стоимость выезда технического специалиста за пределы МКАД:
Обговаривается индивидуально. Зависит от количества приборов учёта, удаленности и направления движения от МКАД. Но не менее чем 70 руб. за км. к стоимости предварительно согласованных работ.
Стоимость работ с передачей электросчётчика Меркурий к нам:
Программирование трехфазного электросчетчика Меркурий — от 1 000 руб.
Программирование однофазного электросчетчика Меркурий — от 1 000 руб.
Счетчик можно передать самостоятельно, предварительно согласовав передачу по телефону. По Москве электросчётчик от заказчика к нам и обратно заказчику, может передаваться через курьера (+1000р.), срок исполнения 1-2 рабочих дня.
У нас можно купить счетчики электроэнергии Меркурий, уже настроенные на трёхтарифный режим (дифференцированный по трём зонам суток Т1, Т2 и Т3) Подробнее >>
Программирование счетчиков Меркурий
Программирование электросчетчиков Меркурий для СНТ, ТСЖ, ЖСК и др. организаций, использующих внутренние абонентские приборы учета электроэнергии. Настройка тарифного расписания и других параметров в многотарифных электросчетчиках Меркурий изначальна возможна при заказе приборов учёта в нашей организации. По договоренности, можем настроить уже имеющиеся приборы учёта.
Для консультаций по вопросам программирования / перепрограммирования электросчетчиков Меркурий звоните +7 (495) 922-17-70, 8 903 685-55-36
Можем программировать электросчетчики Меркурий различных серий (однофазные — 200, 206, 203; трехфазные — 230, 231, 234, 236).
Услуги по настройкам многотарифных счетчиков электроэнергии Меркурий
Программирование тарифного расписания:
- Однотарифный учёт с применением одноставочного тарифа
- Двухтарифный учёт с применением тарифа, дифференцированного по зонам суток (дневная зона Т1 — 7.00-23.00, ночная зона Т2 — 23.00-7.00, «народное» название — тариф день ночь)
- Многотарифный учёт с применением тарифа, дифференцированного по зонам суток (пиковая зона Т1 — 7.00-10.00; 17.00-21.00, полупиковая зона Т3 — 10.00-17.00; 21.00-23.00, ночная зона Т2 — 23.00-7.00)
Настройки параметров электросчетчиков:
- переход на зимнее/летнее время (отмена перехода)
- индикация (настройка отображаемых параметров)
Перепрограммирование электросчетчиков — это правомерные дополнительные сервисно-технические работы по настройке и активации функций, которые имеются в каждой конкретной модификации прибора учёта и заложены в неё производителем данного оборудования. Выполняются при помощи специального дополнительного оборудования (адаптеров) и программного обеспечения с использованием компьютера. По умолчанию, с производства идут предустановленные базовые настройки, в том числе установленное тарифное расписание. У многотарифных электросчётчиков Меркурий с завода установлено двухтарифное расписание, по этому часто такие приборы учёта называют — двухтарифный счётчик. Однако, имеющие функцию тарификации счётчики электроэнергии Меркурий, позволяют устанавливать и другое тарифное расписание. Возможно перепрограммировать счетчик на три тарифа (трехтарифное расписание), два тарифа (двухтарифное расписание), один тариф (однотарифное расписание). Кроме тарифного расписания возможны настройка и других имеющихся в счетчиках параметров, которые не настроены или не активированы изначально производителем. Мы можем перепрограммировать электросчетчики Меркурий различных модификаций (однофазные — 200, 206, 203, трехфазные 230, 231, 234, 236). По другим производителям приборов учёта уточняйте. Работы возможны только с приборами, которые предназначены для внутреннего учета энергопотребления абонентов.
Услуга по перепрограммированию многотарифных электросчетчиков Меркурий (перепрошивка Меркурий, настройка счетчиков электрической энергии) может быть необходима, если счетчик Меркурий был изначально настроен на другую тарификацию, неверно отображает нужную информацию, сбит или не правильно выводится какой-то из требующихся параметров индикации. Ряд других ситуаций и технических моментов в работе многотарифных электронных приборов учета электрической энергии.
Стоимость и порядок выполнения работ уточняйте по телефонам.
Для желающих заказать услуги по программированию электросчётчиков через наш сайт www.77cs.ru , просим обязательно вначале ознакомиться с информацией ниже.
Сообщаем, что данная деятельность не является ЛИЦЕНЗИРУЕМОЙ, т.е. не требует лицензии от организации или частного мастера, которые могут её оказывать. При наличии навыков, специализированного оборудования и программного обеспечения, можно даже самостоятельно настроить купленный электросчётчик, принадлежащий вам, после его приобретения, на праве собственности. Это правомерно в том случаи, если покупку нового прибора учёта электроэнергии (электросчётчика) сетевые или сбытовые организации требуют от вас. После программирования, вы вправе установить данный электросчётчик там, где это необходимо, далее предоставить его сетевой или сбытовой организации для пломбировки и выдачи акта допуска (ввода) прибора учёта в эксплуатацию. О требованиях по лицензии или других аналогичных документов, которые не обязательны для данных услуг, вам могут сообщать по телефонам не грамотные или специально вводящие в заблуждение, сотрудники ряда сетевых и сбытовых организаций. Такие организации, при необходимости, сами должны программировать электросчётчики своих абонентов, но ряд из них, перестали это делать, т.к., видимо, им это не выгодно. Информируем, что все лицензированные виды деятельности на территории РФ, регулирует — Федеральный закон «О лицензировании отдельных видов деятельности» от 04.05.2011 N 99-ФЗ . Всё, что не указано в данном законе, лицензированию не подлежит. Про необходимость лицензии на программирование и настройку приборов учёта электроэнергии (электросчётчиков), в этом законе не сообщается. Это подтверждает безосновательность требований по лицензии на услуги по программированию электросчётчиков.
Ниже приводиться порядок действий для двух основных причин, по которым может понадобиться перепрограммирование электросчётчиков.
Если установленный электросчётчик не вышел из МПИ (Межповерочный интервал), но требуется, к примеру, перенастроить тарифное расписание или критично сбилось время:
Перед программированием, если электросчётчик уже установлен и имеет пломбы сетевой или сбытовой организации, заказчик должен обратиться к поставщику электроэнергии (в энергосбыт) с заявлением о распломбировке прибора учёта электроэнергии (электросчётчика) для проведения сервисных работ, с указанием причины, например, что ему необходим — Многотарифный учёт с применением тарифа, дифференцированного по зонам суток. Простым языком, для Москвы и области это трёхтарифный режим (Т1, Т2, Т3). После согласования с энергосбытом вопроса распломбировки прибора учёта и деталей по цене его повторной пломбировки, можно проводить программирование электросчётчика.
Если установленный электросчётчик вышел из МПИ (Межповерочный интервал) и требуется его замена по предписанию энергосбытовой организации:
В данном случаи, перепрограммирование может понадобиться тоже. Объсняем когда. Многотарифные электросчётчики Меркурий по умолчанию идут с двухтарифным расписанием (Т1 и Т2) и с предустановленным Московским временем (МСК, MSK) (UTC+3). Если, к примеру, необходимо трёхтарифное расписание или другое время, данные счётчики надо перепрограммировать. Если электросчётчик Меркурий уже вами приобретён, можем его настроить на нужное тарифное расписание или настроить индикацию, отображающуюся на ЖК дисплее. Если электросчётчик предполагается к установке в другом регионе, с отличающимся часовым поясом, но с идентичными Москве временными зонами, перенастроим время под данный регион. Тарифных расписаний для других регионов у нас нет и мы их не настраиваем.
Источник
Счетчик меркурий 230 прошивка
На 1.7 и 2.7 настройки в концентраторах вместе с их номерами так и продолжают слетать.
Очевидно причина в аппаратной части
Подскажите,почему после перепрошивки концентраторов c PLC1 на PLC2 не возможно изменить режим IDLE на MASTER?
Возможно дело в версии залитой прошивки. Если залили 2.7 или 2.5, то перезалейте используя 1.7.
На новых прошивках продолжают слетать настройки концентраторов.
Тогда причина в аппаратной части. Необходим ремонт концентратора.
Прошил 1.7 в концентратор 225.21
После прошивки концентратор не видно в NetMonitor
В статус баре пишет Байт принято = 0
Что делать?
Нашел на 300А
Стоит в режиме IDLE переходить в мастер отказывается.
Перепрошил 1.5
Не помогло.
Адрес записать дает.
Дату и время — нет.
В режим мастер не переходит.
Прошил 2.7 — убежал на 3001 и заработал
Из этого можно сделать вывод, что Ваш концентратор оснащен увеличенной памятью. Для таких концентраторов требуется прошивка 2.7 или 2.5. Сейчас с завода все концентраторы идет такие, с увеличенной памятью.
Добрый день!
В универсальном конфигураторе есть функция записи PLC адреса в счетчик. Очень удобна при работе со счетчиками М236, нет необходимости вскрывать крышку счетчика. Но вчера попались три счетчика М236 PQL 2017г. выпуска, в которые мы не смогли записать PLC адрес через универсальный конфигуратор. При попытке прочитать конфигурацию модема выводилась ошибка ( если правильно помню «ошибка CRC посылки» и «Возможно модем не отвечает»). А через программу TMcomm 3.2 с помощью технологического модема все записалось без проблем. Еще в программе TMcomm пишется версия прошивки модема, у данных счетчиков версия 5.7, раньше я встречал только 5.31. В PLC модемы начали заливать новую прошивку и программа не видит их или причина в другом?
Пока не смогу дать точный ответ. Я передал Ваше обращение разработчику ПО Конфигуратор, что бы он протестировал его работу с версией прошивки 5.7. Результат его работы сообщу здесь , а также могу сообщить Вам на электронную почту, если дадите адрес.
Сообщите на почту PopovOST@mail.ru. И еще вопрос по счетчикам М200.04, в них реализована возможность записи PLC адреса через Универсальный конфигуратор? Много раз пытались это сделать, но не получается, хоть со старыми счетчиками хоть с новыми.
Функция программирования сетевых PLC адресов в Конфигураторе многократно проверялась. Функция работоспособна.
Где можно скачать прошивку версия 2.8 для Меркурий 225?
Добавил в статью
Скажите, что изменилось в прошивке 1.7 для 225.21 по сравнению с 1.5?
Отличие в том, что хранение конфигурации переведено в SRAM
Поступили три концентратора 225.11 с версией прошивки 3.4.
Настройки все держит нормально , а вот текущее время концентратора всегда 01.01.2000 0:00:00.
Записываю время , а оно обратно 01.01.2000 0:00:00.
Концентраторы все новые.
Конфигурация хранится в микросхеме энергонезависимой памяти. Время — в микросхеме часов реального времени. Нет доступа к часам RTC. Устройство неисправно. Необходимо возвращать по гарантии.
Да, проблема в том ,что некому отправлять.
Украинского представительства Инкотекс-Украина уже нет.
Грешил на микросхему , которая отвечает за RTC , поменял её с другого рабочего концентратора , результат прежний (измерил все точки и сравнил с рабочим , отклонений не нашёл).
Теперь грешу на внутреннее ПО контроллера.
В чём отличие прошивок 2.7 и 2.8?
Техподдержка перестала работать? 5 месяцев нет ответа на последний вопрос.
Источник