Подключение светодиодного индикатора ОВЕН СМИ2-М по Modbus
Общая информация

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

Диапазон питания индикатора 18…36 В постоянного тока.
Подключите контакты 4 (A) и 3 (B) обесточенного индикатора к шине RS-485 контроллера Wiren Board в соответствии с рекомендациями.
| Номер клеммы | Описание |
|---|---|
| 1 | V+ |
| 2 | GND |
| 3 | B |
| 4 | A |
Параметры связи, установленные в приборе с завода по умолчанию:
| Параметр | Значение по умолчанию |
|---|---|
| Скорость | 9600 бит/с |
| Формат | 8-N-1 |
| Адрес | 1 |
Изменить параметры связи можно двумя способами: через ПО «Owen Configurator» по Micro-USB — при подключении по USB адрес прибора всегда равен 1 и не может быть изменён — либо из веб-интерфейса контроллера параметрами шаблона «Адрес устройства» и «Скорость обмена» на вкладке «Настройки Modbus».
Представление в веб-интерфейсе
Доступно с релиза wb-2609
Перед настройкой убедитесь, что индикатор настроен в режиме Slave согласно инструкции производителя.
Чтобы устройство появилось на вкладке Устройства в веб-интерфейсе контроллера Wiren Board, добавьте его вручную через выбор шаблона ОВЕН СМИ2-М.
Из-за особенностей программного обеспечения индикатора строка в канал «Значение STRING» записывается только целым блоком из 32 символов: дополняйте текст пробелами справа, иначе отображение будет некорректным. Параметр «Длина строки» на размер блока не влияет — он задаёт лишь число символов, прокручиваемых в режиме бегущей строки.
Контрол «Сохранить настройки во flash-память» расходует ресурс flash-памяти индикатора. Не рекомендуется использовать в циклах. Ресурс — примерно 10 000 перезаписей.
-
Представление ОВЕН СМИ2-М в веб-интерфейсе контроллера Wiren Board
-
Выбор шаблона и установка параметров подключения
Использование в правилах wb-rules
Индикатор отображает то, что в него записали, поэтому основной способ работы с ним — правила движка wb-rules: они создаются в веб-интерфейсе на вкладке Rules или файлами в каталоге /etc/wb-rules/.
В примерах ниже owen_smi2_m_1 — идентификатор устройства с адресом 1.
Перед использованием задайте параметр «Тип переменной» в настройках шаблона: он определяет, в каком виде прибор ждёт значение и какой из каналов — «Значение INT», «Значение REAL» или «Значение STRING» — будет виден в веб-интерфейсе:
- INT подходит для целых чисел и вывода с фиксированной точкой,
- REAL — для дробных значений,
- STRING — для текста.
Каналы «Цвет» и «Режим отображения» принимают из правил числовые значения пунктов списка:
- 0 — зелёный,
- 1 — красный,
- 2 — жёлтый.
При выводе текста учитывайте начертание символов: семь сегментов не могут изобразить заглавные B, D, Q и R, поэтому на табло они выглядят как строчные b, d, q, r (таблица 7.6 РЭ Руководства по эксплуатации СМИ2-М). Например, строка ABQB37FG отобразится как Abqb37FG — это нормальное поведение, а не ошибка. Подробнее про вывод текстовых символов можно посмотреть в инструкции производителя.
Вывод температуры платы контроллера
// Вывод температуры платы контроллера на индикатор ОВЕН СМИ2-М
// Тип переменной у индикатора должен быть REAL, положение точки - "--.--"
defineRule("smi2m_board_temp", {
whenChanged: "hwmon/Board Temperature",
then: function (newValue) {
dev["owen_smi2_m_1/value_real"] = newValue;
}
});
Бегущая точка
// Бегущая точка: значение постоянное, раз в секунду смещается десятичная точка
// Тип переменной у индикатора должен быть INT
// Выполняется один раз при загрузке правила
dev["owen_smi2_m_1/value_int"] = 2026;
dev["owen_smi2_m_1/color"] = 0;
dev["owen_smi2_m_1/blink"] = false;
var smi2mPointIndex = 0;
defineRule("smi2m_running_point", {
when: cron("@every 1s"),
then: function () {
dev["owen_smi2_m_1/decimal_point"] = smi2mPointIndex;
smi2mPointIndex = (smi2mPointIndex + 1) % 4;
}
});
Вывод серийного номера контроллера бегущей строкой
// Вывод серийного номера контроллера бегущей строкой на индикаторе ОВЕН СМИ2-М
// Тип переменной у индикатора должен быть STRING, длина строки - 8
// Выполняется один раз при загрузке правила
dev["owen_smi2_m_1/display_mode"] = 1;
dev["owen_smi2_m_1/scroll_period"] = 0.3;
dev["owen_smi2_m_1/blink"] = false;
dev["owen_smi2_m_1/color"] = 0;
// Прибор принимает только полный блок из 32 символов, дополняем пробелами
function smi2mText(text) {
var s = String(text).toUpperCase();
while (s.length < 32) {
s = s + " ";
}
return s.substring(0, 32);
}
// Серийный номер не меняется, поэтому записываем строку один раз,
// как только контроллер опубликует свой серийный номер
defineRule("smi2m_serial", {
asSoonAs: function () {
return dev["system/Short SN"] !== undefined;
},
then: function () {
dev["owen_smi2_m_1/value_string"] = smi2mText(dev["system/Short SN"]);
log("SMI2M serial written: {}", dev["system/Short SN"]);
}
});
Полезные ссылки
Страница ОВЕН СМИ2-М на сайте производителя.
Руководство по эксплуатации СМИ2-М.