translator, wb_editors
4344
правки
Brainroot (обсуждение | вклад) |
Matveevrj (обсуждение | вклад) (Перенаправление на Wb-equipment-selection) Метка: новое перенаправление |
||
(не показано 7 промежуточных версий 2 участников) | |||
Строка 1: | Строка 1: | ||
#REDIRECT [[wb-equipment-selection]] | |||
Ворота, роллеты, шлагбаумы и прочие способы что-то закрыть. | Ворота, роллеты, шлагбаумы и прочие способы что-то закрыть. | ||
= зачем = | = зачем = | ||
= Что контролировать= | = Что контролировать= | ||
Для нас важно | Для нас важно три момента: | ||
* Значть что ворота закрыты | * Значть что ворота закрыты | ||
* Знать что ворота открыты | * Знать что ворота открыты | ||
* Контролировать примежуток времени между двумя состояниями, чтобы отследить состояние "авария" (застряли, сработал предохранитель). | * Контролировать примежуток времени между двумя состояниями, чтобы отследить состояние "авария" (застряли, сработал предохранитель). | ||
Как можно реализовать контроль? | |||
Для состояния "Открыто" и "Закрыто" - подключиться к штатным концевикам привода. Благо на используемом - они выведены на клеммы для подключения дополнительных внешних. | |||
В неактивном состоянии на клеммах ~12 вольт. Сработавший концвик замыкает клемму на землю привода. [https://wirenboard.com/wiki/WBIO-DI-WD-14_I/O_Module| WBIO-DI-WD-14] имеет гальванически развязанную землю - поэтому можно не беспокоиться о напряжении и привязать '''iGnd''' модуля к земле '''платы управления'''привода. | |||
Но привод не имеет выхода "В работе". Что делать? Вариант поставить токовый трансформатор на провод двигателя (или провод питания всего привода) рассматривался. И даже был опробован. И да, имеет право на жизнь. Но гораздо удобней использовать выход на "сигнальную лампу". | |||
В используемом приводе - на лмпу подается сетевое напряжение с помощью реле. | |||
= Вариант для страницы о подборе оборудования = | |||
Ворота с электроприводом имеют свой модуль управления, в котором предусмотрены дискретные входы для управления открытием и закрытием ворот. Эти входы можно использовать для управления воротами с помощью Wiren Board. В качестве источников управляющих сигналов можно использовать модули реле WB-MR6C v.3, WB-MRM2-mini и др. К ним можно подключить сигналы с датчиков положения ворот и вывести сигналы управления. | |||
Для контроля работоспособности электропривода можно использовать токовый трансформатор или программно контролировать промежуток времени между крайними положениями ворот. | |||
Более подробную информацию можно найти в статье Управление воротами. | |||
= как контролировать = | = как контролировать = | ||
Сразу условимся: Внутрь схемы привода не лезем и ничего не изменяем. | |||
Вариантов два | Вариантов два | ||
= как управлять = | = как управлять = | ||
''Заготовка скрипта. Кажется - все предусмотрел''' | |||
<syntaxhighlight lang="ecmascript"> | |||
//gate_control.js | |||
//'use strict'; | |||
var gate_name = "gate1"; // CHANGE_ME! имя устройства. Выводится в заголовок окна и служит для разделения устройств | |||
log.info("Gate_"+gate_name+"START######################"); //Это лог. | |||
var buttonOpen = "wb-mio-gpio_157:2/IN14"; // CHANGE_ME! Кнопка "открыть" | |||
var buttonClose = "wb-mio-gpio_157:2/IN13"; // CHANGE_ME! Кнопка "Закрыть" | |||
var limit_Open_input = "wb-mio-gpio_157:2/IN12"; // CHANGE_ME! Вход с концевика "Открыто" | |||
var limit_Open_NC = true; // CHANGE_ME! концевик "Открыто" Нормально замкнут (когда сработал, полностью открыто). | |||
var limit_Close_input = "wb-mio-gpio_157:2/IN11"; // CHANGE_ME! Вход с концевика "Закрыто" | |||
var limit_Close_NC = true; // CHANGE_ME! концевик "Закрыто" Нормально замкнут (когда сработал, полностью закрыто). | |||
var gate_action_input = "wb-mio-gpio_157:2/IN10"; // CHANGE_ME! Вход активности ворот | |||
var gate_action_NC = true; // CHANGE_ME! "false" когда привод активен | |||
var gate_open_output = "wb-mio-gpio_157:1/K5"; // CHANGE_ME! Выход "Открыть ворота" | |||
var gate_close_output = "wb-mio-gpio_157:1/K6"; // CHANGE_ME! Выход "Закрыть ворота" | |||
var ps = new PersistentStorage("storage_gate_"+gate_name, {global: true});// Определим объект-хранилище. | |||
//Элементы виртуального устройства | |||
//управления | |||
var deviceCells = { | |||
"GateOpen" : { | |||
type : "pushbutton", | |||
value : false, | |||
order: 1 | |||
}, | |||
"GateClose" : { | |||
type : "pushbutton", | |||
value : false, | |||
order: 2 | |||
}, | |||
"isOpen": { | |||
type : "switch", | |||
value : false, | |||
order: 4 | |||
}, | |||
"isClosed": { | |||
type : "switch", | |||
value : false, | |||
order: 5 | |||
}, | |||
//Привод сейчас работает | |||
"isAction": { | |||
type : "switch", | |||
value : false, | |||
order: 3 | |||
}, | |||
}; | |||
//Создадим виртуальное устройство и добавим в него элементы | |||
defineVirtualDevice("Gate_"+gate_name, { | |||
title:"Gate_"+gate_name, | |||
cells: deviceCells | |||
}); | |||
//Правило _Изменение_ limit_Close_input | |||
defineRule("GateStartOpen", { //название правила | |||
whenChanged: limit_Close_input , | |||
then: function (newValue, devName, cellName) { //выполняй следующие действия | |||
} | |||
}); | |||
//Правило На _начало_ открытия | |||
defineRule("GateStartClose", { //название правила | |||
whenChanged: limit_Close_input, | |||
then: function (newValue, devName, cellName) { //выполняй следующие действия | |||
} | |||
}); | |||
</syntaxhighlight> |