Wirenboard 6/7/8 - Особенности работы
Контроллеры Wirenboard имеют встроенные средства опроса и обмена с различыми модулями, например, WBIO, которые работают по шине I2C. Для работы совместно с ПО ТМИУС будет использоваться протокол MQTT с подключением по localhost или удаленный IP адрес для работы с другими контроллерами в сети.
В качестве примера рассмотрим варианты опроса модулей WBIO-DI-WD-14 и WBIO-DO-R1G-16
Опрос WBIO-DI-WD-14
1. Модуль следует прописать в штатной конфигурации Wirenboard (Hardware Modules Configuration). Удостовериться, что модуль представлен в виде MQTT топиков (MQTT Channels)
2. В ПО ТМИУС добавить опрос по MQTT с параметрами
- IP:127.0.0.1 для опроса собственного контроллера или удаленный IP для опроса смежного контроллера в локальной сети
- Порт:1883
- Клиент ID:Произвольный, например, TMIUS
- Keepalive: например, 10
3. Далее следует добавить подписку на топики входов, например, /devices/wb-gpio/controls/EXT1_IN1

Опрос WBIO-DO-R1G-16
п.1,2 - аналогично WBIO-DI-WD-14
п.3 Модуль WBIO-DO-R1G-16 формирует как команды состояния выходов, так и принимает команды управления, например, для приема состояния выхода 1 следует добавить подписку на топик /devices/wb-gpio/controls/EXT3_K1 и привязать сигнал к базе с типом - ТС
п.4 для управления выходом 1 следует создать Публикацию на топик /devices/wb-gpio/controls/EXT3_K1/on и привязать к сигналы с типом ТС, Команда - Да

Импульсный режим работы
Вариант 1 (Через ПО ТМИУС)

Традиционно управление силовым оборудование производится импульсными командами
- ВКЛЮЧИТЬ
- ОТКЛЮЧИТЬ
Для данной задачи предполагается использовать механизм автоматов.
1. Создать в среднем столбце раздел для удаленного управления, например, tu с 8 сигналами типа ТС, Команда - Да

2. Создать автомат с 4 командами для управления 2 выходами (ВКЛ и ОТКЛ).
Первая команда (ВКЛЮЧИТЬ)
- Сигнал tu_1
- Сигнал команды, например, R1G16:1_do_1
- Тип Включить
- Пауза 0
- Значение команды 1
Вторая команда (ВКЛЮЧИТЬ - обнуление)
- Сигнал tu_1
- Сигнал команды, например, R1G16:1_do_1
- Тип Включить
- Пауза 1000
- Значение команды 0
Третья команда (ОТКЛЮЧИТЬ)
- Сигнал tu_1
- Сигнал команды, например, R1G16:1_do_2
- Тип Отключить
- Пауза 0
- Значение команды 1
Четвертая команда (ОТКЛЮЧИТЬ - обнуление)
- Сигнал tu_1
- Сигнал команды, например, R1G16:1_do_2
- Тип Отключить
- Пауза 1000
- Значение команды 0
Вариант 2 (через rules)
Добавить скрипт для каждого модуля для обнуления регистров через 2 с
Автомат в ПО ТМИУС будет в упрощенном виде и будет служить только для объединения 2 выходов ТУ для одного логического сигнала
[
"EXT1_K1",
"EXT1_K2",
"EXT1_K3",
"EXT1_K4",
"EXT1_K5",
"EXT1_K6",
"EXT1_K7",
"EXT1_K8",
"EXT1_K9",
"EXT1_K10",
"EXT1_K11",
"EXT1_K12",
"EXT1_K13",
"EXT1_K14",
"EXT1_K15",
"EXT1_K16"
].forEach(function(channel) {
defineRule("auto_off_" + channel, {
whenChanged: "wb-gpio/" + channel,
then: function(newValue) {
if (newValue === true) {
log(channel + " is ON, starting 2s timer");
setTimeout(function () {
dev["wb-gpio/" + channel] = false;
log(channel + " turned OFF after 2s");
}, 2000);
}
}
});
});