Индикаторные дисплеи ОВЕН СМИ-2М (Modbus Master, Slave, Spy): удобное отображение параметров в щитах

Число просмотров: 4 539 

Индикаторы ОВЕН СМИ-2м, которые отображают данные по Modbus

Индикаторы ОВЕН СМИ-2м, которые отображают данные по Modbus

Ура! Первым в 2022 году выходит пост, который все ждали ещё с прошлого года (и особенно ребята из ОВЕН) — про индикаторы разных величин, которые работают по Modbus аж в трёх режимах! Но вообще то, что пост запоздал, сыграло всем на руку: я смог без нервов и спешки дописать программу управления этими индикаторами, а ОВЕН — прямо под новый 2022 год выпустить обновление прошивки, которое стало очень важным для удобного использования этих индикаторов в режиме Slave при управлении ими с ПЛК.

Так о каких же индикаторах идёт речь? А об обновлённой модели индикатора ОВЕН СМИ-2 — ОВЕН СМИ-2М (ссылка на сайт ОВЕНа)! Несмотря на маленькую буковку «М» индикаторы эти отличаются очень мощно по функциям и возможностям: у новой модели есть три цвета отображения и условия, по которым эти цвета меняются автоматически (в зависимости от значения, которое индикатор показывает), и есть три режима работы: Master, Spy и Slave. Про это всё я и буду рассказывать в этом подробном посте (а в конце поста будет большое видео про обзор и работу этого индикатора).

А для чего же нужен этот индикатор? Это офигенный мини-дисплей на 4 знака (используются семисегментные символы и точка), который позволяет отображать получаемые по Modbus значения в удобном для человека виде! При этом в зависимости от режима работы (Master, Spy, Slave) он может или сам запрашивать значения у устройства с поддержкой Modbus (ПЛК тут вообще не нужен), может подслушивать запросы обращения к устройствам в готовом проекте (когда ПЛК опрашивает какие-то устройства по Modbus, получая с них данные) и отображать передаваемые данные, или же может работать как мини-дисплейчик с полным управлением от ПЛК. Короче, если вам нужно быстро сделать простой показометр информации с датчика с Modbus (температура, влажность, CO2, ток частотника и так далее) или же быстренько добавить индикацию какого-то из параметров в проект с ПЛК без перепрограммирования ПЛК (или если нет доступа к исходникам программы) — то это ваш выбор!

В начале 2022 года для этих СМИшек вышла новая прошивка 1.0.8 (описание на форуме ОВЕНа), в которой в режиме Slave в индикаторе можно перезаписывать на лету не только значения данных, которые он должен отобразить, а вообще все настройки (зоны, мигание, цвет): без указания специального флага эти настройки считаются обычными параметрами Slave-устройства (а не параметрами конфигурации, которые часто менять нельзя). Про новую прошивку я тоже скажу в посте. Все индикаторы, выпущенные с 2022 года, будут идти с этой новой прошивкой прямо с завода. Прошивка выпущена для версий индикатора с обоими моделями микроконтроллеров внутри: STM и GigaDevice.

Содержание

1. Общее описание возможностей СМИ-2М и идея моей индикаторной панельки.

Вот список всего, что может и умеет этот крутой индикатор:

  • Индикатор выпускается в корпусе формата СветоСигнальнойАрматуры (ССА) диаметром 22 мм (стандартный размер). Монтируется он в отверстие панели (двери) щита, которое можно пробить любым гидравлическим или механическим прессом (мой пост про пресс КВТ ПГПО-60А);
  • Питание индикатора — 24V DC (диапазон напряжений 10-48 вольт), потребляемая мощность — 1,6 Вт максимум. Если индикатор подключен кабелем USB (для его конфигурирования или обновления прошивки), то питание берётся оттуда и дополнительный блок питания не нужен.
    У индикатора есть развязка на 500 вольт между RS-485 и питанием, поэтому если на питание прилетит 230V — индикатор сдохнет, но 230V по RS-485 не уйдут в шину RS-485 (и остальные устройства вместе с ПЛК). А вот 230V прилетит на RS-485 — то там всему хана.
    Также будьте внимательны (на всякий случай) при питании индикатора от блока питания щита и одновременном программировании его через USB-кабель, подключенный в компьютеру со своим блоком питания: по USB может быть вынос потенциала, из-за которого может жахнуть порт или блок питания (есть мой очень старый пост про такие случаи). Если вы не уверены в том, имеет ли блок питания (от которого работает индикатор) развязку, лучше на время подключения индикатора к USB отключайте от него съёмную клеммную колодку;
  • Индикатор работает по Modbus RTU/ASCII на скоростях до 115 200 бит/сек и понимает все варианты стоп-битов и контроля чётности. Также можно задать определение конца кадра (посылки протокола Modbus) по времени IDLE или по времени t3,5 (из спецификации протокола Modbus);
  • Умеет переставлять порядок регистров и байт в них для того чтобы правильно собирать Старшие и Младшие регистры и байты в нужные данные. Разные производители делают свой порядок байт и регистров для отображения значений INT, REAL (FLOAT) или других — вот тут поддерживаются все комбинации данных;
  • Имеет три режима работы:
    • Master — Индикатор сам без ПЛК и автономно делает запрос протокола Modbus к указанному устройству (задаются адрес устройства, тип команды опроса и номер регистра), получает из него данные и отображает их;
    • Spy — Индикатор работает в общей сети Modbus вместе с другими устройствами. Эти устройства опрашиваются другим мастером сети (ПЛК, ПР и прочими контроллерами), а индикатор «слушает» нужный запрос к или от нужного устройства (задаются адрес, тип команды опроса и номер регистра), расшифровывает передаваемые данные и отображает их. Поддерживается подслушивание команд как на чтение, так и на запись данных в устройство;
    • Slave — Индикатор работает как обычное Slave-устройство: принимает данные от ПЛК и отображает их. В новой прошивке можно менять настройки его цвета, мигания и другого поведения: без специальнгго флага они не сохраняются, а тоже являются оперативными значениями.
  • Имеет режим безопасного состояния: если с индикатором нет связи больше указанного времени, то индикатор отображает вместо настоящих данных специальные символы (которые можно настроить под себя). В безопасном режиме можно настроить цвет и мигание индикатора для того, чтобы его поведение визуально отличалось от нормальной работы.
  • Имеет три цвета отображения: Красный, Зелёный, Жёлтый. Это сделано специально для того, чтобы можно было выводить все три типа сигнализации: Опасно, Норма, Предупреждение. Можно настроить яркость индикатора в процентах от 0 до 100;
  • Имеет режим мигания (с настройкой частоты) и режим бегущей строки (с настройкой скорости). В режиме бегущей строки можно выводить длинные значения, которые не поместятся в 4 знака;
  • Поддерживает сдвиг и масштабирование значений, выбор значащих нулей и числа знаков после запятой: к исходному значению можно прибавить или отнять число, а можно домножить или поделить исходное значение. Это сделано для таких случаев, когда надо подкорректировать величину значения и для тех случаев, когда устройства передают значение с плавающей точкой в виде целого, домноженного на сколько-то: например, температура, умноженная на 100 — когда 2145 означает 21,45 градуса. Индикатор всё это может правильно переварить и отобразить автоматически по заданным настройкам;
  • Умеет получать и отображать много типов значений (взяты распространённые типы данных, которые передаются одним или двумя регистрами): INT, WORD (UINT), REAL (FLOAT), TIME, STRING до 32 знаков. Значения с плавающей точкой округляются до заданных знаков после запятой. В зависимости от типа данных считываются один регистр (для INT, WORD/UINT) или два регистра подряд (REAL/FLOAT/TIME) или несколько регистров (для STRING — по два знака на один регистр).
    Да-да! Тут есть типа STRING! Если хочется — то вы можете запихать в индикатор строку в виде потока байт, и он её отобразит (те символы, которые можно отобразить на семисегментном индикаторе). А если включить режим бегущей строки… Вау! У меня дома индикаторы в режиме STRING выводят значения с префиксом «t» — температура или «p» — давление. Прям на одном и том же индикаторе с переключением раз в 10 секунд. Вот что можно теперь мутить!
  • Поддерживает встроенную логику (до 5 зон), по которой в зависимости от значения (которое индикатор получает и отображает) меняется стиль отображения: цвет и мигание. В зонах поддерживается гистерезис, и можно настроить индикатор так, чтобы он получал значение, например, температуры — и показывал его зелёным, если температура ниже 30 градусов, жёлтым, если температура от 30 до 50 градусов и красным, если температура выше 50 градусов. АВТОМАТИЧЕСКИ!! Без какого-то анализа данных в программе ПЛК, без программирования!
  • В специальном режиме «Портрет» можно при помощи битовых масок управлять отдельными сегментами индикатора. Я не умею, но чувствую что кто-то скоро напишет на матрице этих индикаторов тетрис! ;)

Штука — очень мега крутая! В предыдущей модели индикатора СМИ-2 был только один красный цвет и не было режима Spy. А в новой модели сделали большую кучу фишек, и за это ОВЕНу — респект!

Применять её можно везде, где она влезет в плане монтажа (в панель или дверь щита, в кнопочный пост):

  • Простое и лёгкое (без ПЛК, без программирования) отображение данных с какого-то Modbus-устройства. Простой показометр, в общем. Например, можно взять датчик температуры с Modbus, взять СМИшку в режиме Master, соединить их питанием и RS-485 — и получить показывалку температуры, которая меняет цвет в зависимости от величины этой температуры. Точно так же можно вытащить ток с частотника (токарного станка, хехе), мощность с какого-нибудь анализатора сети. И это БЕЗ ПРОГРАММИРОВАНИЯ! Воткнул индикатор в USB, покликал галочки настроек — и всё заработало.
  • Добавление индикации какого-то параметра или данных в уже существующем проекте на ПЛК опять БЕЗ программирования (режим Spy): вам не надо рыться в исходниках (которых может и не быть), переписывать программу, добавлять туда устройство — просто настраиваете Spy и получаете аппаратный показометр нужных данных, если они передаются по Modbus.
  • Можно выводить на щиты нужные значения токов, напряжений, мощности (а в режиме STRING — писать вручную нужный текст, показывая на одном индикаторе разные величины), давления, температуры — везде, где надо не листать страницы на экране панели оператора или SCADA-системы, а надо оперативно глянуть на панель или щит.

Для меня режим Spy — это офигенское чудо! Ну и Master тоже: если мне надо будет быстро сделать показометр уровня CO2, то я возьму датчик WirenBoard WB-MSW v3 (который умеет мерить CO2), СМИшку, соберу схемку, ткну в блок питания +24V — и решение готово. Сразу. За 20-30 минут. Без программирования!

Я не пишу никакие обзоры на заказ (таково моё правило), потому что в некоторых случаях я не смогу выдумать и показать примеры работы какого-то устройства. Но тут СМИшки мне зашли ещё до того, как я их купил! В посте про новости от Марта 2021 года я уже упоминал идею с домашней панелькой индикации, и щас расскажу подробнее.

У меня дома есть крутой 19″ шкаф, куда сведена вся электрика и домашняя СКС. Можете прочитать самый первый пост про него здесь, а тут посмотреть на его переделку и переокучивание. В домашнем шкафу стоит регистратор НоваТек РПМ-16-4-3 (старой модели — вот мой пост про него и его переделку), и уже тогда — в 2012 году — мне было интересно следить за температурами и другими данными с экрана регистратора, имея обратную связь с общедомовыми системами.

Мой домашний щиток электрики с регистратором РПМ-16-4-3

Мой домашний щиток электрики с регистратором РПМ-16-4-3

Точно так же мне хотелось знать о температуре горячей воды в Одинцово, чтобы понимать: отключили её (упала температура), дали ли обратно (температура в норме) или нет. Регистратор имел удобный дисплей, на который можно было выводить сразу несколько параметров для отображения и заодно записывать их. Вот, в другом проекте (вот пост про него — и заодно обзор анализатора качества сети OMIX) мы ставили анализатор параметров электросети и то же регистратор, чтобы отображать и записывать все данные:

Домашний измерительный узел (КИП) на базе OMIX P1414-MA-3R и НоваТек РПМ-16-4-3

Домашний измерительный узел (КИП) на базе OMIX P1414-MA-3R и НоваТек РПМ-16-4-3

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

И я стал думать дальше о том, где найти удобные и недорогие показометры. Когда в 2017 году мои руки добрались до Алишки, то я наткнулся там на термостаты STC-1000, которые стоят недорого, работают с обычным термосопротивлением (NTC вроде как) и имеют офигенски красивые и крупные цифры для наблюдения. Вот тогда у меня и родилась идея сделать себе на базе заглушки 19″ 1U в свой шкафчик панельку, где выводились бы температуры ГВС, улицы и отопления. Я уже врезал всё в заглушку и примерял её к 19″ шкафу:

Панель индикации температур из термостатов с AliExpress (не доделана, будет заменена на ОВЕН СМИ-2М)

Панель индикации температур из термостатов с AliExpress (не доделана, будет заменена на ОВЕН СМИ-2М)

…но руки не доходили до самого главного — протащить кабели от датчиков по квартире до нужных мест измерения (потому что 2021ый был мутный и тяжкий). Тут меня и злость брала: у меня уже есть датчики! Блин! Есть! ОВЕНовские датчики ДТС как раз стоят на всех нужных местах и всё меряют. А тут понадобится тянуть ещё одни датчики для показометров…

Вот тут-то и получается самый лучший случай для СМИшек: у нас уже есть система на базе ПЛК для измерения всех нужных параметров, и нам нужно при помощи СМИшек сделать только лишь удобную панельку, на которой отображаются самые важные параметры системы для удобного наблюденния: проходишь мимо щита, сразу глянул на панельку — и всё увидел (одевать шапко или не одевать, ахаха!).

Панельку индикации на термостатах STC-1000 я почти доделал (надо снабдить её блоком питания термостатов), и оставлю её на другие квартиры и проекты. А мы переходим к индикатору ОВЕН СМИ-2М.

Версия панельки для индикации температур на термостатах STC-1000 с AliExpress

Версия панельки для индикации температур на термостатах STC-1000 с AliExpress

2. Внешний вид СМИ-2М, его упаковка, монтаж и подключение цепей.

Индикатор продаётся в удобной коробочке, где под него из картона сделан ложемент: СМИшка лежит плотно, и не болтается внутри. Передняя панель СМИшки затянута плёночкой, чтобы она меньше повреждалась при монтаже.

Упаковка индикатора ОВЕН СМИ-2М

Упаковка индикатора ОВЕН СМИ-2М

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

Комплект поставки индикатора ОВЕН СМИ-2м: прокладка, гайка для крепления и съёмный клеммник

Комплект поставки индикатора ОВЕН СМИ-2м: прокладка, гайка для крепления и съёмный клеммник

На корпусе индикатора есть USB-разъём для конфигурирования или для обновления прошивки, а так же сервисная кнопка: её надо зажать для обновления прошивки (я покажу это далее).

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

Обозначения на корпусе СМИ-2М (напряжение питания, потребляемая мощность, назначения контактов)

Обозначения на корпусе СМИ-2М (напряжение питания, потребляемая мощность, назначения контактов)

На одном торце индикатора нанесён заводской серийный номер, а на другом — год выпуска. У меня один из индикаторов — горяченький первый образец (его я и разбирал), а другие три куплены позже. И ещё один купил про запас — если надо будет сделать простой показометр на лету для каких-нибудь целей.

Серийный номер нанесён на обратной стороне лицевой части индикатора СМИ-2М

Серийный номер нанесён на обратной стороне лицевой части индикатора СМИ-2М

Клеммы ОВЕН применил более удобные и более компактные, чем другие производители. Обычно все ставят разъёмные клеммы с маленькими контактами и винтиками (как любит WirenBoard делать), а тут ОВЕН поставил клеммы, которые снимаются с вертикальных штырей. Они более компактные, а их контакты — надёжные.

Контакты клемм для подключения питания и RS-485

Контакты клемм для подключения питания и RS-485

Клеммы почти без проблем принимают провода ПуГВ, обжатые наконечниками НШВИ(2) на 0,5 квадратов. «Почти без проблем» означает то, что концы наконечников надо подрезать по длине (глубина клемм небольшая), и эти подрезанные концы НШВИ цепляются за край клемм: надо подрезать НШВИ (я использую ножницы КВТ МС-04 — они режут, не сжимая НШВИ по диаметру), а потом дообжать его ещё раз.

В клеммы входят (с небольшим трудом) наконечники НШВИ(2) на 0,5 кв.мм

В клеммы входят (с небольшим трудом) наконечники НШВИ(2) на 0,5 кв.мм

Собственно, НШВИ(2) мы и будем использовать всегда: ведь индикаторам для работы как раз и надо подать шлейфом питание и RS-485. Напоминаю, что для RS-485 существуют специальные кабели, про которые я говорил в этом посте, а не грёбаная обычная витая пара!

Клеммная колодка снимается легко и быстро: достаточно её потянуть. Это просто удобно: можно сам шлейф собирать отдельно, а потом подключать его в щите на индикаторы, можно индикатор отключать от шлейфа и нести на настройку или перепрошивку.

Клеммник для подключения цепей к СМИ-2М можно легко снять (для замены или перепрошивки СМИшки)

Клеммник для подключения цепей к СМИ-2М можно легко снять (для замены или перепрошивки СМИшки)

Тут надо обратить внимание на удобно продуманную фишку: если индикатор смонтирован правильно, то сервисная кнопка и USB-разъём у него будут находиться сверху, и можно подключаться к индикатору, не снимая его с панели щита.

Чтобы установить индикатор на панель (или на корпус, на дверь шкафа), для начала нам надо сделать в панели отверстие диаметром 22 мм (напоминаю пост про свой гидравлический пресс КВТ ПГПО-60А для проделки отверстий), а потом правильно установить на него резиновую прокладку.

Обратите внимание, что она ставится выступом в сторону дисплея индикатора, а не в сторону панели. Этот выступ как раз закрывает шов панели индикатора, чтобы обеспечить защиту IP65.

Установка резиновой прокладки для обеспечения степени влагозащиты IP65 с передней стороны (пазом к индикатору)

Установка резиновой прокладки для обеспечения степени влагозащиты IP65 с передней стороны (пазом к индикатору)

Прокладка у индикатора выполняет три задачи: поддерживает степень пылевлагозащиты IP65, добавляет толщину для того, чтобы хватило длины резьбы при затягивании гайки и фиксирует индикатор от того, чтобы он не прокручивался и не скользил по панели.

Дальше нам остаётся только закрутить гайку и зафиксировать индикатор на панели.

Сам индикатор СМИ-2М монтируется в стандартное отверстие для щитовой ССА на 22 мм

Сам индикатор СМИ-2М монтируется в стандартное отверстие для щитовой ССА на 22 мм

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

Комментарий от ОВЕН: На первых партиях СМИшек (а я покупал самые первые; запускал и пост писал позже) иногда такое случалось, сейчас всё поправлено и гайки держат хорошо.

А вот так индикатор выглядит спереди:

Modbus-индикатор ОВЕН СМИ-2М, смонтированный на передней панели

Modbus-индикатор ОВЕН СМИ-2М, смонтированный на передней панели

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

Для того, чтобы вскрыть индикатор — надо снять его переднюю панель. И тут нам открывается хитрая хитрота!

Устройство передней панели СМИ-2М: крышка, световоды и плата со светодиодами

Устройство передней панели СМИ-2М: крышка, световоды и плата со светодиодами

Оказывается, ОВЕН не стал искать дорогой двухцветный семисегментный индикатор, а сделал его сам из двухцветных светодиодов! Крутая идея! И это сильно удешевляет производство и даёт большую взаимозаменяемость!

Двухцветные светодиоды напаяны на плату в нужных местах сегментов:

Устройство передней панели СМИ-2М: светодиоды крупным планом

Устройство передней панели СМИ-2М: светодиоды крупным планом

А чтобы они правильно имитировали и засвечивали сегменты, они закрываются специальными световодами:

Устройство передней панели СМИ-2М: световоды крупным планом

Устройство передней панели СМИ-2М: световоды крупным планом

Ещё раз обращу внимание на изящность решения: найти двухцветный LED-индикатор (красный и зелёный, вместе эти два цвета дают жёлтый) нужного размера и с нужным общим выводом — сложная проблема, а учитывая текущий дефицит компонентов — ужасная проблема. Получится что вся СМИшка будет зависеть от этого индикатора и, если сорвутся его поставки, будет плохо. А ещё обычные LED-индикаторы имеют большую глубину установки, и передняя панель СМИшки стала бы выступать снаружи щитов ещё больше.

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

Платы вставляются в корпус спереди, и вынимать их надо вперёд, аккуратно поджав контактые штыри клемм:

Чтобы вынуть плату из корпуса, надо протолкнуть туда контакты индикатора

Чтобы вынуть плату из корпуса, надо протолкнуть туда контакты индикатора

Вот сколько всего запихано в этот маленький индикатор! Вау!

Внутренние платы индикатора СМИ-2М

Внутренние платы индикатора СМИ-2М

Теперь понятно, почему USB-разъём стоит глубоко внутри (это относится к настройкам индикатора, про которые я скажу чуть позже): он запаян на плату, которая вынимается из корпуса. Если бы разъём стоял ближе к корпусу — то плату нельзя было бы вынуть. Поэтому тут конструкторы отдали приоритет лёгкой сборке устройства: USB-разъём нужен не так часто, и можно использовать один USB-кабель с подрезанным разъёмом для настройки всех индикаторов.

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

Индикатор СМИ-2М состоит из двух плат, соединённых Т-образно

Индикатор СМИ-2М состоит из двух плат, соединённых Т-образно

Всё работает на процессоре STM32. Сейчас, в годы дефицита компонентов, многие переходят на процессоры не от STM, а от GigaDevice, и ОВЕН — не исключение. Новые партии индикаторов будут идти с этим процессором, но работают они без сбоев точно так же, как и предыдущие.

Логика индикатора СМИ-2М построена на процессоре STM32 или его аналоге

Логика индикатора СМИ-2М построена на процессоре STM32 или его аналоге

Как же тут всё продумано!! Процессор находится на той же плате, что и светодиоды, так как для работы со светодиодами нужно много выводов IO. На основной плате находятся драйвер RS-485, DC/DC-преобразователь блока питания и обвязка USB-разъёма.

Часть основной платы СМИ-2М (все платы залиты лаком для надёжности)

Часть основной платы СМИ-2М (все платы залиты лаком для надёжности)

Все платы покрыты защитным лаком, как и во всех изделиях ОВЕНа. На этом хватит смотреть на индикатор изнутри — давайте обновим его прошивку и займёмся его настройками и испытаниями!

3. Подключение СМИ-2М по USB для конфигурирования или обновления прошивки.

Эти индикаторы конфигурируются через USB-порт, а не по Modbus (но это можно сделать, если хочется, записав нужные значения в нужные регистры напрямую). Конфигурация по USB-порту для таких небольших индикаторов более проста и удобна: не надо использовать преобразователь интерфейсов, не надо менять настройки сети или адреса в программе-конфигураторе. Ещё через USB-порт обновляется прошивка индикатора, про которую мы поговорим в этом заголовке.

Для подключения к индикатору используется обычный кабель MicroUSB. Вы уже поняли, что USB-разъём запрятан глубже обычного, и некоторые кабели плохо контачат, потому что длины металлической части разъёма не хватает, и она не может зафиксироваться в ответной части разъёма в индикаторе.

Я решил этот баг просто: взял один из кабелей и немного подрезал ему край пластика разъёма примерно на миллиметр:

Для некоторых USB-кабелей надо подрезать часть разъёма, чтобы они надёжно подключались к СМИшкам

Для некоторых USB-кабелей надо подрезать часть разъёма, чтобы они надёжно подключались к СМИшкам

После этого разъём USB-кабеля входит плотно и защёлкивается в разъёме индикатора как обычно.

Подключение USB-кабеля к СМИ-2М для редактирования его настроек или обновления прошивки

Подключение USB-кабеля к СМИ-2М для редактирования его настроек или обновления прошивки

Теперь поговорим о прошивках и их версиях, так как с ними из-за дефицита компонентов (и перехода с STM на GigaDevice — это щас делают все производители) получился небольшой зоопарк.

  • Версия 1.0.3 и ранее — самая первая прошивка индикаторов, заводская выпуска до 2022 года.
  • Версия 1.0.4 (ссыль на форум ОВЕНа) — поправлена работа безопасного состояния в режиме Slave: если есть запросы чтения из индикатора, то он не переходит в безопасное состояние (раньше переходил везде). Прошивка сделана под STM32 — тогда не было ещё нового процессора;
  • Версия 1.0.6c (ссыль на форум ОВЕНа) — прошивка для индикаторов с новым процессором (GigaDevice), выпущенных после 15 октября 2021 года. Она такая же, как и прошлая, но именно под GigaDevice — другой процессор;
  • Версия 1.0.8 и 1.0.8.c (ссыль на форум ОВЕНа) — обновлено поведение индикатора в режиме Slave: теперь по умолчанию он не сохраняет свою конфигурацию, и менять настройки цвета, бегущей строки, мигания, зон встроенной логики и типа отображаемых данных можно на лету. Ниже я подробно расскажу про эти изменения, забегая вперёд в плане настроек индикатора.

Так как в индикаторах есть два вида контроллеров-процессоров, то прошивки и поведение индикаторов при запускае отличаются следующим образом:

  • Если в прошивке НЕТ буквы «c» — то это прошивка для STM32, который стоит в индикаторах, выпущенных ДО 15 октября 2021. Такие индикаторы при прошивке показывают надпись «LOAD» зелёным цветом (как все мои).
  • Если в прошивке ЕСТЬ буква «c» — то это прошивка для GigaDevice, который стоит в индикаторах, выпущенных ПОСЛЕ 15 октября 2021. Эти индикаторы показывают надпись «LOAD» жёлтым цветом.

На практике оказалось, что программа прошивки — тупенькая, и она вливает что угодно куда угодно. При этом если влить прошивку от GigaDevice (с буквой «c») в STM32 — то всё работает (только драйвера USB для GigaDevice надо скачать). А вот обратная совместимость не получится: влить в GigaDevice прошивку от STM32 — не прокатит. Если говорить кратко — то обновляйтесь до прошивки 1.0.8 (в зависимости от типа процессора) и радуйтесь — там сделаны офигенные изменения, про которые я сейчас и расскажу.

Когда делалась первая СМИшка (СМИ-2 просто, без «М»), то никто не мог предположить что там будут цвета и другие фишки: всех приучили к тому, что СМИшку надо один раз настроить в режим Slave и передавать на неё только данные с ПЛК (INT, UINT, FLOAT/REAL), которые она и должна отображать. В новой СМИ-2М предполагалось то же самое: поэтому для охрененного удобства в ней сделали встроенную логику и зоны, благодаря которым можно настроить индикатор в разные режимы вида «Если значение превысило 125 — мигай красным». И снова предполагалось, что пользователь один раз настроит индикатор и будет передавать на него только данные для отображения.

Однако пытливые ручки пользователей, прочитав карту регистров в инструкции увидели, что все настройки индикатора доступны в регистрах Modbus (собственно, по USB через конфигуратор они туда же и сохраняются), и каааак начали писать в регистры настройки на лету, чтобы заставить индикатор вести себя извращённым образом: то мигать попеременно красно-жёлтым, то скорость мигания разную задавать. Вот тут-то Globality Fatality и вылезло!

Дело в том, что ЛЮБАЯ флеш-память имеет свой ресурс на число записей (10 000, 50 000 или чуть более). И если писать в неё много и часто — то она быстро сдохнет и перестанет что-то сохранять. Как вы уже можете догадаться, именно такое и стало происходить. И довольно быстро, так как большинство промышленных ПЛК все данные пишут циклически бесконечно: сказали вы ему писать их каждые 500 мсек — вот каждые 500 мсек он и будет писать их. Если поделить 10 000 циклов записи на 500 мсек (0,5 секунды), то получится что через 20 000 секунд память умрёт. А это у нас… 333 минуты или 5,5 часов! Вуаля!

Ещё раз поясняю: эти значения задумывались как НАСТРОЙКИ. Которые пишутся 1-5 раз за всё время эксплуатации индикатора (и то если его сняли с одного щита, перенастроили и поставили в другой). Для примера, это как настройки параметров связи или периода ШИМ модулей ввода-вывода линейки Mx110 (напоминаю про них свой пост): ну какой дурак их будет писать постоянно (дураки находились)? Один раз настроил модуль на нужный адрес и скорость — и используй его.

Так вот по просьбам многих пользователей (включая и меня, находчивого чувака с принципом «предусмотрим всё на все случаи жизни, какие вспомним») и вышла новая прошивка 1.0.8. В ней по умолчанию индикатор ведёт себя в режиме Slave как полноценное Slave-устройство: ВСЕ его параметры теперь являются оперативными — доступными для постоянной записи на лету без сохранения в память. Хотите циклически писать цвет? Пишите! Хотите на лету писать конфигурацию зон — пишите! Индикатор ничего не будет сохранять в память, и не будет её портить. При этом для тех, кому нужно вернуть старое поведение, сделали специальный регистр за номером 5000. Если туда записать значение «1», то по его фронту индикатор один раз сохранит текущие настройки в память. Ещё добавили регистр номер 61624, который показывает остаток живой флеш-памяти процессора.

Итого, в прошивке 1.0.8с теперь есть два сценария поведения индикатора в режиме Slave:

  • Настроить его как обычно по USB через конфигуратор (он автоматически выставит флаг для сохранения параметров): задать встроенную логику зон, их границы, безопасное состояние и прочие параметры. После этого посылать на него только данные, которые он будет отображать. В настройки больше не лазить.
  • Настроить по USB только базовые параметры связи: скорость, Slave-адрес. А дальше менять все настройки из ПЛК на лету, задавая нужные границы зон встроенной логики, скорость мигания и так далее. Можно вообще зоны не задавать, а на лету задавать цвет и мигание, обрабатывая логику их поведения прямо в ПЛК. В этом случае индикатор будет слушаться и не сохранять все эти данные в памяти (кроме настроек связи, сделанных через конфигуратор, которые будут сохранены в памяти).

Итак, давайте обновляться! Скриншоты у меня сделаны от прошивки 1.0.4, но принцип обновления тот же самый. Программа обновления старается выдать инструкции, но они менее последовательные, чем реальная жизнь.

Зажимаем сервисную кнопку на индикаторе и ПОСЛЕ этого подключаем его по USB в компьютер. На индикаторе появится надпись «LOAD», которая означает то, что индикатор готов к прошивке. После этого кнопку можно отпустить.

Для обновления прошивки надо подключить СМИ-2М к USB с зажатой кнопкой - появится надпись LOAD

Для обновления прошивки надо подключить СМИ-2М к USB с зажатой кнопкой - появится надпись LOAD

Дальше запускаем программу прошивки на нужную версию.

Внимание! Программа прошивки простая и тупенькая: она НЕ следит за совпадением версий железа и прошивки. Она просто вливает прошивку куда попало. Поэтому следите за тем, что и куда вы загружаете!

Если всё сделано верно, то программа найдёт виртуальный COM-порт индикатора и отобразит его в настройках. Прошивка всегда заливается на скорости 9600, 8, N, 1:

Обновление прошивки СМИ-2М: Выбор настроек связи с индикатором

Обновление прошивки СМИ-2М: Выбор настроек связи с индикатором

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

После этого нажимаем «Далее» и попадаем на этот экран, где расписано всё, что программа будет делать:

Обновление прошивки СМИ-2М: Подготовка к загрузке прошивки

Обновление прошивки СМИ-2М: Подготовка к загрузке прошивки

С этим экраном на некоторых компах есть баг: в этот момент мастер прошивки передёргивает порт, и индикатор выходит из режима «LOAD». Если этот баг у вас есть, то нефиг на этот экран смотреть, а скорее жмите «Далее». Или, если говорить проще, после того как мы увидели что для индикатора нашёлся COM-порт — сразу быстро два раза жмём на «Далее».

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

Обновление прошивки СМИ-2М: Процесс загрузки прошивки в индикатор

Обновление прошивки СМИ-2М: Процесс загрузки прошивки в индикатор

Можно всплакнуть, вспомнив как раньше порнуха грузилась на скорости 28 800 по телефонному модему. Тогда и придумали, наверное, JPEG Progressive Encoding, чтобы самое интересное загружалось побыстрее… ;)

После заливки всей прошивки настройки индикатора СБРАСЫВАЮТСЯ, и он готов к работе и настройке. Вот щас их время и настало!

4. Базовые настройки СМИ-2М в конфигураторе (парамеры связи, режим работы, безопасное состояние).

Для настройки нам нужно просто подключить СМИшку USB-кабелем к компьютеру и запустить ОВЕНовский конфигуратор. Я ругался про него в посте про Модули ввода-вывода, и с тех пор он так и остался неудобным. Добавили только копирование настроек между похожими каналами устройств (ура).

Итак, подключаем индикатор, в интерфейсе связи выбираем COM-порт индикатора (вот было бы удобно, если бы сначала шёл номер порта, а потом его название), протокол «Owen Auto Detection Protocol», «Найти одно устройство» с адресом 1 и нажимаем кнопку «Найти»:

Добавление СМИ-2М в конфигуратор ОВЕН для редактирования настроек

Добавление СМИ-2М в конфигуратор ОВЕН для редактирования настроек

Дальше наш индикатор добавляется в список устройств, и его можно будет настраивать как обычно, изменяя разные параметры. Конкретно для СМИшек есть удобная фишка: так как любая СМИшка всегда подключается по USB и имеет адрес USB-порта равным «1», то если вам надо настроить несколько СМИшек подряд — не надо каждую удалять и снова добавлять в конфигуратор. Можно добавить первую, а потом перетыкать другие в тот же USB-кабель. Однако НЕ ЗАБУДЬТЕ при этом считать параметры новой подключенной СМИшки кнопкой «Прочитать значения», чтобы они увиделись конфигуратором.

Самые-самые базовые настройки — это параметры порта RS-485 (настройки связи):

Настройка параметров связи СМИ-2М (скорость, канал связи)

Настройка параметров связи СМИ-2М (скорость, канал связи)

Напоминаю что для шины RS-485 настройки связи (скорость, длина данных, число стоп-битов, контроль чётности) должны быть одинаковыми для всех-всех устройств, иначе ничего не будет работать. В СМИшках эти настройки связи одинаковы для всех режимов работы (Master, Spy, Slave).

Дополнительно для особо сложных случаев есть специальная настройка «Признак конца кадра» (когда я напишу пост про Modbus, я расскажу про эти кадры данных), по которой индикатор определяет конец посылки протокола Modbus по RS-485. Настройка появилась из-за того что разные устройства разных производителей не всегда чётко следуют спецификации протокола Modbus, и могут высылать данные с её нарушениями.

Конец посылки данных определяется по паузе в их передаче (то есть, ждём стартового бита, принимаем, принимаем, ждём паузы и после паузы считаем что данные кончились). Да, местами Modbus — тупенький протокол. А эта самая пауза может рассчитываться двумя способами:

  • IDLE frame — выдержка равна времени, которое нужно для передачи одного байта (плюс старт, стоп и чётность) на выбранной скорости обмена;
  • 3.5 char (Modbus spec) — выдержка равна времени, которое нужно для передачи 3,5 байт (плюс старт, стоп и чётность) данных на выбранной скорости обмена. Это стандарт работы по протоколу Modbus.

Если устройство мутное и шлёт данные слишком быстро, не выдерживая паузу t3.5, то можно попробовать настройку «IDLE frame».

Дальше пробежимся по настройкам, которые зависят от трёх режимов работы индикатора: Master, Spy, Slave:

Варианты настроек связи для режимов Master/Spy/Slave (команды и регистры для отслеживания)

Варианты настроек связи для режимов Master/Spy/Slave (команды и регистры для отслеживания)

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

  • Режим Master: протокол опроса (в других случаях протокол отслеживается автоматически); адрес устройства, которое индикатор должен опросить; таймаут ответа (после него индикатор перейдёт в безопасное состояние); команда чтения регистра (поддерживаются 0x03 Read Holding Registers и 0x04 Read Input Registers); номер регистра и период его опроса (обновления данных).
    Команды 0x03 Read Holding Registers и 0x04 Read Input Registers позволяют читать несколько регистров, расположенных подряд (в них указывается количество регистров в штуках). Поэтому индикатор сам запросит два регистра для типа REAL (FLOAT) или других, и сам сможет прочитать значение типа STRING, если оно расположено как несколько байтов (двухбайтовых регистров), идущих подряд.
    Смысл настроек простой: задаём то, от какого устройства какой командой какой регистр будем опрашивать.
  • Режим Spy: адрес устройства, за которым индикатор будет следить; команда, за которой индикатор индикатор будет следить (поддерживаются 0x03 Read Holding Registers, 0x04 Read Input Registers, 0x06 Write Single Register и 0x10 Write Multiple Registers) и номер регистра, за которым надо следить.
    Смысл настроек чуть более сложный: задаём то, за какой посылкой надо следить и какие данные из неё надо отображать.
  • Общие настройки: Кроме адреса (Slave ID) самого индикатора для режима Slave (понятно, что в этом режиме мы пишем и читаем регистры индикатора), тут есть настройки, которые подходят под все три режима работы.

Самая важная настройка — «Порядок байт», которая показывает то, каким образом надо переставить байты данных, чтобы собрать из них нужное значение. Связана она с тем, что в мире компьютеров и микроконтроллеров существует два вида кодирования данных: Little-Endian (младщим байтом вперёд) и Big-Endian (старшим байтом вперёд) (ссылка на Википедию). Из-за этого и начинается чёртова путаница: протокол Modbus пересылает тупо БАЙТЫ или двухбайтовые СЛОВА. Что они значат — ему пофиг, а нам — мучиться. В результате всех перестановок байты и пары байт могут стоять четырьмя вариантами, которые описаны так:

  • Не менять = байты идут как шли: 11 22, 33 44;
  • Перестановка только байтов = старший и младший байт меняются местами: 22 11, 44 33;
  • Перестановка регистров = меняются местами два набора по два байта (регистры): 33 44, 11 22;
  • Перестановка байтов и регистров = меняются местами сначала байты, потом пары байт: 44 33, 22 11;

С таким мучается дофига производителей именно из-за того, что протокол Modbus не описывает значение пересылаемых байтов. Вон, например в ПРках (один из постов про них) тоже есть галочки для смены порядка байт (стрелочка относится к тому посту и тут не имеет значения):

Настройка параметров опроса ModBus в OWEN Logic (и переменная для запуска работы)

Настройка параметров опроса ModBus в OWEN Logic (и переменная для запуска работы)

Пользоваться этой настройкой надо таким образом: если вы точно знаете нужный порядок регистров (его иногда пишут в виде «старшим регистром вперёд», «младшим байтом вперёд» и так далее) — то так и настраиваете индикатор. А если не знаете и индикатор вместо «33.5» градуса показывает «-4005345» — то подбирайте эту настройку до тех пор, пока всё не заработает верно.

Ну и для всех режимов есть настройка Таймаута безпасного состояния и того, как индикатор себя должен в нём вести:

Настройки Безопасного режима для индикатора (что отображать при потере связи)

Настройки Безопасного режима для индикатора (что отображать при потере связи)

Если за время таймаута к индикатору не шло никаких запросов (или он не отследил их в режиме Spy, или случился таймаут опроса в режиме Master), то он и переходит в безопасное состояние. А для безопасного состояния можно настроить цвет и мигание, и маску сегментов в этом состоянии — какие сегменты будут гореть.

Вот таблица того, как обозначаются сегменты индикатора в битах маски (выдержка из инструкции к индикатору):

Таблица бит сегментов индикатора СМИ-2М для Безопасного режима и режима Портрет

Таблица бит сегментов индикатора СМИ-2М для Безопасного режима и режима Портрет

Заодно для справки вставлю табличку знаков индикатора в режиме STRING:

Таблица знаков, которые выводятся на индикатор СМИ-2М в режиме STRING

Таблица знаков, которые выводятся на индикатор СМИ-2М в режиме STRING

Я оставил снадартную маску из палочек и чёрточек, и поставил мигание жёлтым и поймал кадр:

Тестирование Безопасного режима для индикатора СМИ-2М

Тестирование Безопасного режима для индикатора СМИ-2М

Ну а теперь будем мучить нашу СМИшку и исследуем все режимы. Примеры мои будут немного выдуманные, но вполне возможные.

5. Работа СМИ-2М в режиме Slave (отображение получаемых от ПЛК данных).

Начинаем с простого режима — Slave, на примере которого мы пробежимся по типам значений (которые индикатор может отображать) и настройкам их масштабирования.

Настройки СМИ-2М в режиме Slave: выводим INT, делённое на 100 с двумя знаками после запятой

Настройки СМИ-2М в режиме Slave: выводим INT, делённое на 100 с двумя знаками после запятой

В режиме Slave индикатор получает значение от ПЛК (ПЛК пишет его в заданные регистры), приводит его к заданному типу, масштабирует и отображает. Приведение к заданному типу и масштабирование действуют во всех режимах. Вот краткие тезисы:

  • Тип значения определяет то, какие исходные данные получает индикатор: целое число со знаком (INT), целое число без знака (UINT), число с плавающей точкой (REAL/FLOAT) и так далее.
  • Число ведущих нулей — нужны ли нули перед значащими цифрами и сколько их должно быть. Речь идёт о том, выводить ли «1.2» или «01.2» или «001.2». Мне нравится видеть данные без ведущих нулей, но в некоторых системах людям нравится индастриал-стиль с ведущими нулями. Как по мне — так они только захламляют зрительное пространство, и если смотришь на индикатор без ведущих нулей издали — то там можно быстро понять величину значения по количеству знаков (например, двухзначное — нора, трёхзначное — уже повышенное).
  • Положение десятичной точки — до скольких знаков ОКРУГЛИТЬ результат после преобразования и масштабирования. Да, именно округлить (мы это увидим на примерах). Это очень удобно для случаев, когда значение получается с плавающей точкой и не умещается в 4 знака индикатора.
  • Коэффициент сдвига — какое значение надо прибавить или отнять от исходных данных для их коррекции (число может быть меньше нуля и больше нуля).
  • Коэффициент наклона — на какое значение надо умножить или разделить исходные данные для их коррекции (всегда идёт умножение, а деление получаем умножением на число, равное 1/x; число может быть меньше нуля и больше нуля). Это самый часто используемый параметр, так как многие датчики отдают информацию в виде «Влажность, умноженная на 10», «Температура, умноженная на 100» и так далее: тут-то и надо делить эти значения на 10 или 100, чтобы получить знаки после запятой.

В моём примере я делаю такие операции:

  • Получаю целое число со знаком (INT) со значением «2768»;
  • Делю его на 100 — умножаю на «0,01», чтобы получить дробную часть;
  • Вывожу его с двумя знаками после запятой.

Вот что мы получаем — число с плавающей точкой:

Работа СМИ-2М в режиме Slave: выводим INT, делённое на 100 с двумя знаками после запятой

Работа СМИ-2М в режиме Slave: выводим INT, делённое на 100 с двумя знаками после запятой

Теперь представим, что у нас есть уже готовое число с плавающей точкой, которое надо округлить и вывести до первого знака после запятой, потому что эта — какая-нибудь температура в диапазоне от -40 до +300 градусов.

Датчик меряет нашу температуру точнее, чем надо надо показать, поэтому мы делаем такие настройки, чтобы уложиться в четыре знака индикатора и хватило места на «208.4» градуса, например:

Настройки СМИ-2М в режиме Slave: выводим REAL (с плавающей точкой) с одним знаком после запятой

Настройки СМИ-2М в режиме Slave: выводим REAL (с плавающей точкой) с одним знаком после запятой

Выставляем тип REAL (подбирая порядок регистров и байт, как было показано раньше), выставляем один знак после запятой и посылаем на индикатор значение «-16,88» градуса.

Индикатор это округляет до первого знака, и мы получаем «-16,9», как и должно быть по правилам округления:

Работа СМИ-2М в режиме Slave: выводим REAL (с плавающей точкой) с одним знаком после запятой - индикатор автоматически округляет значение

Работа СМИ-2М в режиме Slave: выводим REAL (с плавающей точкой) с одним знаком после запятой - индикатор автоматически округляет значение

Именно так у меня работают первые две СМИшки, отображая значение температуры улицы и отопления.

Этот режим Slave — самый подходящий для проектов, которые делаются на СМИшках с нуля и где СМИшки исползуются как управляемый показометр: вывод самых важных данных на панель щита напрямую большими цифрами, которые не надо листать и искать на экранах визуализаций ПЛК. Это может быть сфера водоснабжения (токи насосов, температура воды, вычисленная при помощи ПЛК характеристика типа pH, содержания хлора, примесей), отопления (давление, температура, расход газа котла), электроснабжения (токи фаз, частота, напряжение, мощность), вентиляции и кондиционирования (температуры, давление в магистрали хладогента, скорость потока воздуха, частота вращения вентилятора). Кирич Funt вообще думает взять СМИшки, чтобы выводить на дверь сантехшкафа показания счётчиков воды (надо будет подсунуть ему ПРку и научить программировать).

6. Работа СМИ-2М в режиме Master (самостоятельный опрос устройств и получение от них данных).

А теперь давайте баловаться с режимом Master, который очень удобен для того, чтобы сделать из СМИшки отдельный показометр. Здесь я сначала придумаю несколько примеров из жизни, а потом мы уже посмотрим на то, как этот режим настраивается и работает:

  • Вспомним хорошими словами Игоря Негоду и Олега Певцова, которые работают на токарных станках с частотными приводами. В старых советских станках был амперметр, который показывал ток через двигатель на уровне «Норма», «Средний», «Высокий»: по этому току можно было отслеживать нагрузку на двигатель и станок.
    Теперь, если частотник поддерживает протокол Modbus и ток двигателя лежит в одном из его регистров, можно БЕЗ ПЛК взять СМИшку, настроить её — и отображать этот ток на станке. Например, встроив СМИшку в переднюю панель станка. Если частотник может отдавать и другие параметры по тому же Modbus, можно подключить несколько СМИшек на общую шину RS-485 и отображать ещё что-нибудь (частоту, обороты, мощность и так далее);
  • У меня иногда возникает спор про количество CO2 в воздухе и то, как концентрация CO2 влияет на работоспособность. В образцах у меня валяется датчик WirenBoard WB-MSW v3 (я буду писать про него пост), который умеет мерить эту концентрацию. Теперь я могу взять СМИшку в режиме Master, быстро прикрутить её к этому датчику (или прикрутить пару СМИшек — ещё и чтобы температуру мерить), снабдить блоком питания Mean Well HDR-15-24 (пост про блоки питания), и дать кому-то погонять. Кайф идеи в том, что ничего не надо программировать: потыкал галочки, и всё;
  • По такому же примеру можно легко сделать простой измерительный стенд: взять самые простые (но точные) датчики температуры ДТС014 (-50…+150 градусов), измерительный модуль МВ110-224.8А (8 аналоговых входов), напихать туда СМИшек и без ПЛК получать точные температуры. С контролем диапазонов по зонам (зелёный, жёлтый, красный);
  • Любое устройство или установка с Modbus, которая УЖЕ установлена и работает, и которая может отдать нужную вам величину по Modbus: вентмашина, кондиционер, блок АВР, крутые автоматы с интеллектуальными расцепителями, контроллеры отопления, вентиляции — что угодно. При помощи СМИшки в режиме Master вы без программирования ПЛК можете вывести одну (или несколько) характеристик на понятные и наглядные индикаторы.

Итак, начинаем! У меня есть два датчика с Modbus — это ОВЕН ПВТ-10 и WirenBoard WB-MSW v3 (про них позже я напишу отдельный пост), с которых я хочу снимать показания температуры и концентрации CO2. Вот с них-то мы и будем снимать в автономном режиме (без ПЛК) эти параметры и выводить на СМИшки.

Первым делом я собрал самую простую схему из проводов, которые попались мне под руку: на все четыре устройства (две СМИшки и два датчика) подаём питание и соединяем шину RS-485 (часть разъёмов осталась за кадром):

Стенд для проверки СМИ-2М в режиме Master: датчики ОВЕН ПВТ-10 и WirenBoard WB-MSW v3

Стенд для проверки СМИ-2М в режиме Master: датчики ОВЕН ПВТ-10 и WirenBoard WB-MSW v3

Прежде чем подключать и настраивать СМИшки, проверим настройки самих датчиков. Для этого возьмём преобразователь USB<>RS-485 и подключимся им к датчику ОВЕН ПВТ-10, чтобы посмотреть на его настройки через конфигуратор:

Подключаемся преобразователем USB/RS-485 к датчику ПВТ-10 и будем его настраивать

Подключаемся преобразователем USB/RS-485 к датчику ПВТ-10 и будем его настраивать

Мы видим, что у этого датчика адрес равен 16 (адрес по умолчанию), и что он работает — отдаёт нам температуру, влажность и расчётную точку росы:

Работа датчика ОВЕН ПВТ-10 с конфигуратором: адрес прибора и проверка значений

Работа датчика ОВЕН ПВТ-10 с конфигуратором: адрес прибора и проверка значений

Теперь почитаем инструкцию и возьмём из неё карту регистров датчика:

Таблица регистров датчика ОВЕН ПВТ-10 (берём значение температуры)

Таблица регистров датчика ОВЕН ПВТ-10 (берём значение температуры)

Температура хранится в регистре 0x102 = 258 в десятичной системе, и она умножена на 100, чтобы можно было при помощи одного целого регистра возвращать значения до двух знаков после запятой.

Теперь берём СМИшку, переводим её в режим Master и вбиваем наши данные:

Настройки СМИ-2М в режиме Master для опроса датчика ОВЕН ПВТ-10 (температура)

Настройки СМИ-2М в режиме Master для опроса датчика ОВЕН ПВТ-10 (температура)

Задаём то, что мы будем обращаться к устройству с адресом 16 и читать регистр номер 258 командой 0x03 Read Holding Registers. Также в Масштабировании надо будет настроить умножение на коэффициент 0,01 для того, чтобы поделить полученное значение на 100. Тип значения — INT (знаковый, один регистр).

Подаём питание, и наша СМИшка отображает температуру:

Работа СМИ-2М в режиме Master - опрос температуры с датчика ОВЕН ПВТ-10

Работа СМИ-2М в режиме Master - опрос температуры с датчика ОВЕН ПВТ-10

Видите, как просто?! До очертения просто!!

7. Встроенная логика (зоны) для отображения значений разным цветом и миганием.

Прежде чем двигаться дальше и ставить опыты со СМИшками, поговорим о крутой встроенной фиче этого индикатора — встроенной логике отображения значений. Суть её проста: можно задать до пяти разных зон, в которых значение отображается разными способами (настраиваются цвет и мигание; период мигания один на всех). Встроенная логика работает во всех трёх режимах (Master, Spy, Slave) и реагирует на значение данных, полученное после всех масштабирований и преобразований типов — на то, что выводится на индикатор. То есть, если мы получили из «2608» темпратуру в «26,08» градуса — то настраивать пороги зон надо именно в полученных градусах, а не в исходных единицах.

Все зоны лежат в диапазоне максимальной величины, которую индикатор будет отображать: от «-999» до «9999», поэтому зоны всегда будут расположены по возрастанию от первой к пятой, и для настройки каждой зоны хватит всего лишь одного параметра — её границы. Дополнительно настраивается гистерезис перехода между каждой зоной — порог её включения. Каждая из зон может включаться или выключаться, как и весь режим работы встроенной логики целиком.

Я вставил схематический рисунок из инструкции, чтобы на его примере показать то, как считаются границы зон (с цветом у них какие-то непонятки, не обращаем на него):

Скриншот из инструкции к СМИ-2М про зоны и гистерезисы

Скриншот из инструкции к СМИ-2М про зоны и гистерезисы

Пересказываю инструкцию. Настройки зон сделаны таким образом:

  • Зона 1: 100 с гистерезисом 10, цвет зелёный;
  • Зона 2: 150 с гистерезисом 20, цвет жёлтый.

Тогда мы получим 3 диапазона значений:

  • от -999 до 100 — зелёный;
  • от 100 до 150 — жёлтый;
  • от 150 до 9999 — красный (автоматическая верхняя граница, Зона 5).

Также на рисунке из инструкции показана работа гистерезиса на увеличение или уменьшение значения:

  • Значение растёт от -999 до 99 — цвет зелёный;
  • Значение растёт от 100 до 149 — цвет жёлтый;
  • Значение растёт от 150 до 9999 — цвет красный;
  • Значение снижается от 9999 до (150-20) 130 — цвет красный (гистерезис);
  • Значение снижается от 130 до (100-10) 90 — цвет жёлтый (гистерезис);
  • Значение меньше 90 — цвет зелёный (гистерезис).

А теперь применяем знания на практике и настроим такие диапазоны зон для нашей температуры с ПВТшки:

  • Зона 1: от -999 до +26 с гистерезисом 0,5 — Зелёный, без мигания;
  • Зона 2: от +26 до +30 с гистерезисом 0,6 — Жёлтый, с миганием;
  • Зона 5: от +30 до +999 с гистерезисом 0,6 — Красный, с миганием.

Настройка зон для отображения температуры с датчика ПВТ-10 разным цветом в разных зонах

Настройка зон для отображения температуры с датчика ПВТ-10 разным цветом в разных зонах

На деле на Жёлтой зоне не должно быть мигания, но это баг моего скриншота: если быстро крутить колесо мышки, чтобы пролистать список настроек в конфигураторе, иногда списки настроек пролистываются. Тяжело быть барабанщиком с быстрыми руками ;)

Тем временем я подключил оба датчика к нашиим тестовым СМИшкам и тестирую их:

Два СМИ-2М в режиме Master на одном шлейфе опрашивают датчики ОВЕН ПВТ-10 и WirenBoard WB-MSW v3

Два СМИ-2М в режиме Master на одном шлейфе опрашивают датчики ОВЕН ПВТ-10 и WirenBoard WB-MSW v3

Настройка зон для датчика температуры уже работают: температура чуть выше 26 градусов (+26,55 градусов), и индикатор отображает её жёлтым, как мы этого и хотели.

Давайте пройдёмся по настройкам датчика WirenBoard WB-MSW v3 и посмотрим, как из него достать данные о концентрации CO2. Прежде всего подключимся к датчику через Modbus Poll, чтобы посмотреть его адрес (равный 46) и то, что он успешно возвращает данные (на скриншот попали данные о температуре и VOC):

Проверка параметров датчика WirenBoard WB-MSW v3 в Modbus Poll (адрес, значения с датчика)

Проверка параметров датчика WirenBoard WB-MSW v3 в Modbus Poll (адрес, значения с датчика)

Дальше лезем в справку по датчику (поминая Wiren нехорошими словами, так как у них вся докума раскидана по разным ссылкам, а не собрана в один PDF как у ОВЕНа) и видим, что концентрация CO2 лежит в регистре номер 8, а регистр называется «Input»…и тут это означает тот же Holding — команда чтения 0x03.

Таблица регистров датчика WirenBoard WB-MSW v3 (будем опрашивать концентрацию CO2)

Таблица регистров датчика WirenBoard WB-MSW v3 (будем опрашивать концентрацию CO2)

Так как концентрация CO2 передаётся как есть, уже готовым значением, то никаких преобразований нам с ним делать не надо. Просто задаём все параметры так же, как и в случае с ПВТ-10: адрес устройства, команду чтения, номер регистра:

Настройки СМИ-2М в режиме Master для опроса датчика WirenBoard WB-MSW v3 (концентрация CO2)

Настройки СМИ-2М в режиме Master для опроса датчика WirenBoard WB-MSW v3 (концентрация CO2)

А также сразу зададим зоны для наших тестов: если концентрация CO2 ниже 900 ppm — то светим зелёным, если от 900 до 1300 ppm — светим жёлтым, а если выше — мигаем красным, так как это уже ни в какие ворота не годится, и надо срочно проветривать помещение.

Настройка зон для отображения концентрации CO2 с датчика WirenBoard WB-MSW v3 разным цветом в разных зонах

Настройка зон для отображения концентрации CO2 с датчика WirenBoard WB-MSW v3 разным цветом в разных зонах

Ну и начинаем баловаться с нашими зонами. Погреем датчик температуры и попадём в красную зону:

Работа стенда с двумя СМИ-2М в режиме Master: разные зоны отображаются разным цветом

Работа стенда с двумя СМИ-2М в режиме Master: разные зоны отображаются разным цветом

Пока датчик температуры остывает (и его показания находятся в жёлтой зоне), жёстко надышим в датчик CO2 и тоже получим красную зону:

Работа стенда с двумя СМИ-2М в режиме Master: аварийная концентрация CO2 и повышенная температура (для примера)

Работа стенда с двумя СМИ-2М в режиме Master: аварийная концентрация CO2 и повышенная температура (для примера)

Таким образом мы собрали в один пример и чтение информации по общей шине RS-485 с двух разных устройств двумя разными СМИшками, и заодно настроили в них наши зоны, при помощи которых сигнализируем о состоянии измеряемых параметров: «Норма», «Хреноватенько», «Ахтунг, ужасть!». И — всё это БЕЗ ПЛК и программирования! Вау!

8. Работа СМИ-2М в режиме Spy (отслеживание обмена данными с нужным устройством, когда его опрашивает кто-то другой).

Разбираем следующий режим работы индикатора — Spy. Сразу напоминаю, что в нём действуют все те же настройки безопасного состояния, зон встроенной логики, масштабирования и округления, как и в других режимах.

Что такое режим Spy? Это режим, в котором СМИшка СЛУШАЕТ все запросы на общей шине RS-485, в которую он подключен. «Слушает» — означает что он НЕ передаёт никакие данные в линию и тем самым не занимает время на ней (которое требуется для обмена данными), а только лишь ловит пакет данных с нужными параметрами, забирает оттуда данные и отображает их.

Приведу идиотский пример для пояснения. Предположим, на скорости 9600 требуется 100 мсек на опрос одного датчика. Датчиков на шине 10 штук. Значит каждый датчик будет опрашиваться 10 х 100 мсек = 1000 мсек = один раз в секунду. Если мы хотим выводить показания с каждого датчика СМИшкой, то без режима Spy нам надо было бы при помощи ПЛК читать данные с датчиков, и потом писать их в СМИшки, расположенные на той же шине. Положим, информация в СМИшку тоже пишется раз в 100 мсек. Значит время опроса датчиков тупо удвоится из-за того, что нам ещё и в СМИшки надо писать. Если же задействовать режим Spy — то СМИшки будут работать автономно, и общее время обмена по шине (опроса датчиков) не изменится (а нам не понадобится переписывать программу в ПЛК).

Важно! Режим Spy не посылает команды, а только ловит чужие. Это хорошо тем, что он не нагружает линию и плохо тем, что поймать можно только те запросы, которые есть в линии: если ПЛК или другой Master сети читает или пишет те данные, которые вам нужны — вам повезло. А если вам нужны другие данные — то не повезло, так как в сети должен быть только один Master: поставить в ту же сеть СМИшку для чтения недостающих данных будет нельзя, так как из-за неё будет глючить весь обмен данными.

Вот где это можно применить:

  • Доработка существующей системы объекта на базе ПЛК или ПРки: если эта система уже опрашивает частотник, модуль ввода-вывода или какой-то датчик, а вам хочется красиво вывести основные показания или продублировать их на табло/щите/панели — то вы настраиваете СМИшку на режим Spy и получаете результат;
  • Расширение точек индикации одного и того же параметра: режим Spy НЕ занимает линию запросами — он только следит за нужным обменом данных в существующей линии. Поэтому можно наставить несколько СМИшек, настроенных на слежение за одном и тем же запросом, в разных местах. Все они будут показывать одно и то же. Более того, можно извратиться и сделать сеть, где одна СМИшка будет в режиме Master запрашивать данные с устройства, а другие СМИшки в режиме Spy будут следить за тем, как СМИшка опрашивает данные и дублировать их O_o;
  • Вытащить информацию по месту рядом с тем, где находится измерительный датчик или устройство с Modbus. Положим, у нас есть некая распределённая система (на базе ПЛК или SCADA), которая опрашивает дофига подчинённых систем по RS-485 (шкафов управления или каких-то датчиков). Все данные из них стекаются в одну систему, но нам хочется видеть осовные параметры систем по месту в шкафах. Нет проблем! Снова ставим СМИшки в режиме Spy и радуемся!
  • Один мой заказчик уже как года два мучается и ищет себе какой-нибудь датчик CO2 с отображением показаний. Свою домашнюю систему он хочет собрать на WirenBoard и ждёт допиливания программ под новую версию контроллера (пока я делаю всё на ОВЕНе, хехехе). Так вот используя СМИшку в режиме Spy он мог бы подключить её на ту же шину RS-485, раскиданную по квартире для опроса датчиков WirenBoard: ведь там есть RS-485 и питание +24V, которые как раз и нужны для СМИшки. Контроллер опрашивает датчик, а СМИшка ловит информацию о концентрации CO2 и отображает её по месту разными цветами (настройками зон). А саму СМИшку можно установить в заглушку в глубокий подрозетник под датчиком.
  • В моём любимом Папушево (куда мы делали щит котельной на СПК и делаем другие щиты) мы сделаем сеть RS-485 из измерительных модулей в коллекторных шкафах отопления по этажам: модули будут мерить общую температуру подачи и обратки и индивидуальные температуры обратки по каждой линии радиатора отопления (это желание заказчика побаловаться так). Конечно же теперь можно взять две СМИшки, настроить их на Spy подачи и обратки, прикрутить на дверь коллекторного шкафа — и по месту получать самые оперативные данные!

Для примера мы получим данные с моей домашней помоечной шины RS-485, к которой подключено три датчика RazumDom MSU44 (пост про них, датчики и продукция не зашла) и модуль аналоговых входов МВ110-224.8А, на котором висят датчики температуры (улицы, ГВС, отопления). Все устройства на шине опрашивает мой домашний ПЛК — СПК110, который и является Master’ом сети.

Моя шина работает на 9600 и проведена помоечной телефонной лапшой, по которой передаются линии A/B RS-485 и питание +24V. Чтобы добавить СМИшки, мне надо присоединиться к моей же магистрали. Я добавил туда разъёмчик для СМИ-2М:

Включение ОВЕН СМИ-2М в режиме Spy в действующую сеть RS-485 (датчики по квартире)

Включение ОВЕН СМИ-2М в режиме Spy в действующую сеть RS-485 (датчики по квартире)

Модуль аналоговых входов вообще находится в туалете (так вышло, когда я его ради прикола прицепил на тест) — в другом месте нашего примера. Нам важно то, что он связан общей шиной вместе с датчиками и СМИшками.

Модуль аналоговых входов в санузле для измерения температур ГВС и отопления

Модуль аналоговых входов в санузле для измерения температур ГВС и отопления

После того как мы подключили СМИшки в общую шину вместе с нашими устройствами, лезем изучать таблицы регистров. Начинать будем с более «сложного» модуля — аналоговых входов. Данные с него можно получить в двух вариантах: или целым числом со смещением точки (домноженное на десять в степени положения точки), или в режиме FLOAT32 (REAL).

Конечно же мы займёмся типом FLOAT, который в разных случаях называется FLOAT, REAL, FLOAT32. Такой тип данных передаёт значение с плавающей точкой сразу напрямую и занимает два регистра подряд. Поэтому для канала 4 (температуры улицы) нам нужны регистры 22-23, а для СМИшки (которая знает что для Float надо читать два регистра подряд) — регистр номер 22:

Таблица регистров модуля аналоговых входов ОВЕН Мх110.8А (канал 4 REAL/FLOAT)

Таблица регистров модуля аналоговых входов ОВЕН Мх110.8А (канал 4 REAL/FLOAT)

Переводим СМИшку в режим Spy и настраиваем адрес модуля (16), режим отлавливания команды 0x03 Read Holding Registers, чтение регистра 22, тип значения REAL, инверсию только регистров (старшего и младшего) и положение десятичной точки в один знак после запятой:

Настройки СМИ-2М для работы в режиме Spy: отслеживание чтения информации с канала 4 Мх110.8А (температура улицы)

Настройки СМИ-2М для работы в режиме Spy: отслеживание чтения информации с канала 4 Мх110.8А (температура улицы)

Теперь читаем документацию по датчика RazumDom MSU44 (у меня датчик MSU44RHT — температура и влажность и датчик MSH44RD — то же, но с OLED-экраном), и видим что RazumDom местами сцуки: у них никакого FLOAT или INT со смещением точки нет, а целая и дробная части передаются у них ОТДЕЛЬНО, блядь!

Таблица регистров датчика RazumDom MSU44RHT (температура комнаты)

Таблица регистров датчика RazumDom MSU44RHT (температура комнаты)

Склеить их вместе НЕ получится, так как это не старшая и младшая части одного числа (HSW/LSW), а именно два разных числа, которые ПЛК должен сам поделить и сложить в одно число с плавающей точкой. Ну кто так делает уродски?

Будем ловить чтение только целой части значения температуры комнаты. Для этого настраиваем вторую СМИшку: адрес датчика — 14, команда чтения 0x04 Read Input Registers (у них даже команда нестандартная, чаще юзается 0x03), адрес регистра — 30, тип переменной — INT:

Настройки СМИ-2М для работы в режиме Spy: отслеживание чтения информации с датчика MSU44RHT (температура комнаты)

Настройки СМИ-2М для работы в режиме Spy: отслеживание чтения информации с датчика MSU44RHT (температура комнаты)

Подключаем наши СМИшки и получаем искомые данные на них (температура улицы и температура с датчика с дисплеем):

Работа двух СМИ-2М в режиме Spy: отслеживание данных температуры улицы и температуры комнату

Работа двух СМИ-2М в режиме Spy: отслеживание данных температуры улицы и температуры комнату

Ещё раз напоминаю магию этого режима: СМИшка тут работает в пассивном режиме, не посылая в сеть никаких запросов, и поэтому не занимает время, требуемое на обмен данными. Зато очень просто можно вытащить на неё нужный параметр (если он опрашивается по этой шине).

9. Настройка СМИ-2М для работы в режиме Slave и сборка индикаторной панели.

Теперь все тесты и демонстрашки СМИшек закончены, и мы настроим их для моей панели индикации. В моей панели все СМИшки будут висеть на отдельном интерфейсе RS-485, и ПЛК будет ими рулить по сложным алгоритмам — менять цвет, мигание и выводить данные в режиме STRING с текстами вида «t57.4» или «p2.76», что означает температуру и давление.

Какой режим нам нужен для этого? Ну конечно Slave. И свежая прошивка, при которой все значения цвета, мигания, настройки зон и другие не пишутся в память СМИшки и не сжирают её.

Как вы помните, на новой прошивке сохраняются только те настройки, которые сделаны через конфигуратор. Поэтому мы настроим режим Slave, скорость обмена данными по шине RS-485 и адрес (Slave ID) для каждого индикатора. На скриншоте ниже показаны настройки для простого режима Slave, когда индикатор будет получать от ПЛК только число типа REAL и выводить его штатным образом:

Базовые настройки СМИ-2М для работы в режиме Slave для управления с ПЛК (значение, зоны и прочие настройки)

Базовые настройки СМИ-2М для работы в режиме Slave для управления с ПЛК (значение, зоны и прочие настройки)

В моём случае ПЛК будет задавать все настройки на лету, а при запуске системы вообще выводить бегущую строку «Cs-Cs.Net Laboratory» для красотищи (меняя параметры индикатора на STRING, задавая текст и режим бегущей строки)!

Заканчиваем монтаж моей панельки и собираем цепь из всех четырёх СМИшек (на них уже есть наклейки с адресами и настройками сети):

Соединения всех СМИ-2М параллельно в общую шину для работы в моей индикаторной панели

Соединения всех СМИ-2М параллельно в общую шину для работы в моей индикаторной панели

Устанавливаем все СМИшки на рэковую заглушку и нащёлкиваем клеммы на них сзади:

Индикаторная панель на базе заглушки для рэкового шкафа и индикаторов ОВЕН СМИ-2М (вид сзади)

Индикаторная панель на базе заглушки для рэкового шкафа и индикаторов ОВЕН СМИ-2М (вид сзади)

Делаем спереди надписи (я их делал позже, поэтому на некоторых фотках их не будет):

Индикаторная панель на базе заглушки для рэкового шкафа и индикаторов ОВЕН СМИ-2М (вид спереди)

Индикаторная панель на базе заглушки для рэкового шкафа и индикаторов ОВЕН СМИ-2М (вид спереди)

И теперь можно программировать!

10. Общие принципы сложного программирования СМИ-2М для управления зонами и цветом из ПЛК.

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

Скриншоты программы для управления СМИ из ПЛК: каналы опроса индикаторов СМИ-2М

Скриншоты программы для управления СМИ из ПЛК: каналы опроса индикаторов СМИ-2М

Из-за такого количества данных, передаваемых на индикатор, я увеличил скорость работы шины с 9600 до 57 600 бит/сек, чтобы индикаторы успевали быстро обновляться. Напоминаю вам ещё раз о том, что штатно на индикатор должен был идти один запрос — запись значения, которое он будет отображать. А встроенная логика индикатора должна доканчивать остальное: менять цвет, масштабировать данные и прочее.

Я написал жуткую копипасту кода, которая в течение 10 секунд после запуска ПЛК переводит все СМИшки в режим бегущей строки и выводит текст заставки:

Скриншоты программы для управления СМИ из ПЛК: конфигурирование СМИшек при запуске ПЛК

Скриншоты программы для управления СМИ из ПЛК: конфигурирование СМИшек при запуске ПЛК

После этого индиаторы переводятся в нужные режимы работы (REAL для первых двух и STRING для вторых двух) и отображают раз в 10 секунд строку с температурой нужным цветом (на зоны я забил), вставляя его на лету:

Скриншоты программы для управления СМИ из ПЛК: Код для вывода температур в режиме STRING

Скриншоты программы для управления СМИ из ПЛК: Код для вывода температур в режиме STRING

Или строку давления также с нужным мне цветом в зависимости от его величины:

Скриншоты программы для управления СМИ из ПЛК: Код для вывода давлений в режиме STRING

Скриншоты программы для управления СМИ из ПЛК: Код для вывода давлений в режиме STRING

Вот первые тесты моей панельки. Заработалооо!!

Первые запуски моей индикаторной панельки на базе СМИ-2М (температуры, давление воды)

Первые запуски моей индикаторной панельки на базе СМИ-2М (температуры, давление воды)

До прошивки версии 1.0.8 так делать было НЕЛЬЗЯ, потому постоянная запись убивала всю флеш-память напрочь. Так как я знал, что скоро выйдет новая прошивка, то переписал код на запись изменений настроек индикаторов так, чтобы он писался тогда, когда их надо менять (раз в 10 секунд, при смене отображения температуры ил давления).

В CodeSys для этих регистров задавались настройки записи по Переднему фронту. После выхода новой прошивки 1.0.8 все ргеистры были переведены в обычную циклическую запись:

После обновления прошивки СМИ-2М в 2022 году все регистры Modbus можно записывать циклически

После обновления прошивки СМИ-2М в 2022 году все регистры Modbus можно записывать циклически

Наша панелька и код для неё отлажены в первом простом варианте жуткой копипасты — и панельку можно устанавливать и баловаться!

11. Готовая индикаторная панелька, её работа и выводы.

Крепим мою панельку в мой домашний 19″ шкаф:

Установки панельки на базе СМИ-2М в домашний рэковый шкаф

Установки панельки на базе СМИ-2М в домашний рэковый шкаф

Включаем её в питание +24V и R-485 от ПЛК и наслаждаемся результатом:

Работа панели индикации параметров домашнего ПЛК на базе Modbus-индикаторов ОВЕН СМИ-2М

Работа панели индикации параметров домашнего ПЛК на базе Modbus-индикаторов ОВЕН СМИ-2М

Вот вам классный коллажик из разных показаний СМИшек, заснятых подряд:

Разные значения информации (температуры, давления) с индикаторов СМИ-2М (нормальные и аварийные)

Разные значения информации (температуры, давления) с индикаторов СМИ-2М (нормальные и аварийные)

Температура улицы и отопления тогда не менялись, а вот температуры воды и давление ГВС и ХВС — менялись (я, сливая воду, подгонял их для красивых кадров): вы видим и нормальную (выше 50 градусов) и хреновую температуру ГВС (ниже 50 градусов), видим нормальные, средние и аварийные давления ХВС на правом индикаторе.

В настоящей автоматике так, как сделал я, делать нельзя — разные показания на одном и том же индикаторе запутают оператора нафиг: глянул на индикатор, а он зелёный — и ты подумал что параметр в норме. А глянул через 10 секунд (когда там отображается совсем другой аварийный параметр) — а он мигающий красный, а ты это упустил.

В общем, СМИшки мне так зашли, что я прикупил ещё штучку про запас. И может прикуплю ещё при случае! Все три режима мной испытаны, и для всех трёх режимов я найду применение. Продукт оказался ОЧЕНЬ удачным, а новая прошивка позволяет мутить с ним самые нестандартные применения! Если будет спрос — то можно думать о СМИшках с бОльшими цифрами и/или бОльшим числом знаков. Или другим типом индикатора (например, матричным).

Панелька светит через прозрачное стекло моего шкафа, и я периодически на неё гляжу при погашенном основном экране СПК:

Панель индикации на базе СМИ-2М работает. Индикаторы просвечивают через стекло шкафа

Панель индикации на базе СМИ-2М работает. Индикаторы просвечивают через стекло шкафа

А в конце поста держите длинное видео с полным обзором, настройкой СМИшек и демонстрацией работы моей домашней панельки:

11 Отзывов на “Индикаторные дисплеи ОВЕН СМИ-2М (Modbus Master, Slave, Spy): удобное отображение параметров в щитах”


  • 1 eteh  [Санкт-Петербург]

    Хм, интересная вещь)
    Просьба отписаться об эксплуатации их. Я в свое время покупал ИТП (индикатор токовой петли) у ОВНА из 10 шт. 3 вышло из строя в течении пары недель. Интересная статистика по похожим на них девайсам.

  • 2 Zaebasto

    Крутые штуки! Но я подожду когда ОВЕН или кто нибудь другой сделает подобный индикатор на OLED дисплее. В наше время это будет дешевле и технологичнее нежели лепить диоды на плату, делать для них пластиковую маску и т.д.
    Да и функционал у OLED дисплея будет пошире — даже мнемосхему можно вывести. Единственный ньюанс — выгорание таких дисплеев. Но это решается програмным способом.

  • 3 CS  [Москва]

    eteh У меня месяц уже работают. Не надо тебе с ОВЕНом работать — тебе на него не везёт просто никогда.

    Zaebasto Нет уж, спасибо! Наелся я OLED выше крыши. Сначала его ставят, чтобы было красиво, а потом делают ебучие ужасный СринСейвер, где показания начинают ездить по экрану, меняться шрифт и прочие бредни.
    Промка отличается от бытовой хуйни тем, что там надо быстро издали (с места дежурного оператора в двух метрах от щита, например) глянуть на дисплей и понять: как скоро котёл бахнет, а не подходить к каждому индикатору, убирать скринсейвер и смотреть что там он показывает.
    Я хочу ОВЕН защитить — литьё у них охеренное и крутое. Не знаю, где они его делают — но это КРУТО. Все корпуса и пластиковые детальки ровные, чистые, гладкие. Поэтому лучше пусть они маску льют.
    И ещё, уже просто ради интереса: а как ты себе представляешь передачу по Modbus мнемосхемы на OLED? Сколько регистров это займёт?
    Может просще сенсорную панель оператора купить? С LAN?

  • 4 Zaebasto

    А зачем по модбасу мнемосхему передавать? В индикаторе нарисовал и в нужные места вывел параметры. Для промки да, семисегментник самый оптимум.
    Но иметь в ассортименте с OLED — было бы неплохо. Для простеньких решений — типа ИТП или насосной станции для повышения давления воды.
    Где даже не мнемосхема важна или какой либо параметр, а текстовый вывод ошибки. Не любят у нас люди смотреть сначала код ошибки а потом его расшифровку в мануале. А вот мануал потерять/выкинуть — очень даже любят.
    Поэтому я если делаю какой нибудь проект на плк то стараюсь выбрать плк с дисплеем. Чтоб прям на него вывести текстовое сообщение об ошибке. Даже если плк не умеет кириллицу(было и такое у меня) я транслитом выводил ошибки, вроде все понимали, в том числе эксплуатация и слесаря.
    Панель оператора купить проще, но не всегда она нужна. Да и есть такое слово — бюджет. В реальности, к сожалению, далеко не всегда на объекты бывают бюджеты как у тебя на щит в однушку)

  • 5 CS  [Москва]

    Zaebasto Так это ты уже о панели оператора и говоришь… Я не про всё в курсе, поэтому соображаю как умею:
    а) ОВЕН ИПП120 — какая-то была простая хреновина, с текстовым дисплеем, во: https://owen.ru/product/ipp120 — самая дешёвая дурь. Может как простая ПРка работать.
    б) Сразу ПР200 херачить — там и экранчик есть, и управление.

    Я против OLED. Мне не зашло вообще нигде. Тем более что ты ж сам про бюджет говоришь, а OLED — адски дорого.

  • 6 Zaebasto

    О, про ИПП не знал. Придётся видимо всё таки кодесис осваивать, до этого только с FBD работал.
    Оледы 128×64 (монохромные) стартуют от 340р в России. Если брать у производителя — думаю меньше 200р выйдет.

  • 7 CS  [Москва]

    Zaebasto ИПП120 — это прям самая мелкая срань, она из Owen Logic прогается, на FBD (правда щас в OwenLogic потихоньку внедряют ST, что очень охуенно)!

    Ну я против. Не понимаю: вот нафиг OLED, и ещё и монохромный, если он будет выгорать, а тут нужна работа круглыми сутками в шкафу например котельной. А снаружи шкафа котельной температура может быть +60 градусов. Воздуха.
    И сколько там проработает этот OLED?

  • 8 Zaebasto

    У меня дома есть спутниковый рессивер DreamBox 7020HD. У него монохромный OLED. Года с 2014 пашет 24/7 чаще в режиме часов) Никакого плавающего скринсейвера, дисплей как новый. Хз в чём секрет.
    Куплю пожалуй одну СМИшку — поставлю на первом этаже вместо лампы аварии в котельной. Пусть температуру за бортом кажет, температуру в помещении и если что моргает красным АВАР

  • 9 CS  [Москва]

    Zaebasto Ну шут его знает. Я вот знаю что мелкие OLED Горят как суки. На ЮТубе было видео… кажется от канала «Электроника в объективе» что ли. Пошёл искать, вот: https://www.youtube.com/watch?v=GWOFF5tMv_A — ну нахер так рисковать.

    Ты понял, что в таком режиме (если ты разные значения на одном хочешь показывать) он в режиме STRING должен быть в Slave? Есть чем регистры туда писать? Там надо будет писать сразу все регистры на нужную длину строки. То есть, если строка в 4 символа — то она занимает 4 байта — два регистра. И их писать надо одним запросом подряд.

  • 10 ducemollari  [Москва]

    У меня есть несколько OLED’ов, взял один собрать термогигрометр на стол поставить на работе — после нескольких лет в столе я на экране чётко вижу старое изображение.

    Такое себе можно ставить, а продавать такое за деньги нельзя.

  • 11 CS  [Москва]

    ducemollari Именно что! Как на том видео, ссылку на которое я давал!

    Если уж все хотите повеселиться и постебаться, то вот от Артёма Кашканова:
    https://www.youtube.com/watch?v=uzdB3YLdzu0 — обзорчик на электролюменисцентные индикаторы
    https://www.youtube.com/watch?v=XiAWYUZLJ1s — можно самому изготовить! =)

Оставить отзыв

Вы должны войти на блог, чтобы оставить комментарий.