Метка: новое перенаправление |
|
(не показано 9 промежуточных версий 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>
| |