Gate control: различия между версиями
Matveevrj (обсуждение | вклад) (Перенаправление на Wb-equipment-selection) Метка: новое перенаправление |
Brainroot (обсуждение | вклад) |
||
(не показаны 2 промежуточные версии 2 участников) | |||
Строка 1: | Строка 1: | ||
Ворота, роллеты, шлагбаумы и прочие способы что-то закрыть. | Ворота, роллеты, шлагбаумы и прочие способы что-то закрыть. | ||
= зачем = | = зачем = | ||
Строка 14: | Строка 12: | ||
Но привод не имеет выхода "В работе". Что делать? Вариант поставить токовый трансформатор на провод двигателя (или провод питания всего привода) рассматривался. И даже был опробован. И да, имеет право на жизнь. Но гораздо удобней использовать выход на "сигнальную лампу". | Но привод не имеет выхода "В работе". Что делать? Вариант поставить токовый трансформатор на провод двигателя (или провод питания всего привода) рассматривался. И даже был опробован. И да, имеет право на жизнь. Но гораздо удобней использовать выход на "сигнальную лампу". | ||
В используемом приводе - на лмпу подается сетевое напряжение с помощью реле. | В используемом приводе - на лмпу подается сетевое напряжение с помощью реле. | ||
= как контролировать = | = как контролировать = | ||
Вариантов два | Вариантов два | ||
Версия 15:07, 4 сентября 2020
Ворота, роллеты, шлагбаумы и прочие способы что-то закрыть.
зачем
Что контролировать
Для нас важно три момента:
- Значть что ворота закрыты
- Знать что ворота открыты
- Контролировать примежуток времени между двумя состояниями, чтобы отследить состояние "авария" (застряли, сработал предохранитель).
Как можно реализовать контроль? Для состояния "Открыто" и "Закрыто" - подключиться к штатным концевикам привода. Благо на используемом - они выведены на клеммы для подключения дополнительных внешних. В неактивном состоянии на клеммах ~12 вольт. Сработавший концвик замыкает клемму на землю привода. WBIO-DI-WD-14 имеет гальванически развязанную землю - поэтому можно не беспокоиться о напряжении и привязать iGnd модуля к земле платы управленияпривода. Но привод не имеет выхода "В работе". Что делать? Вариант поставить токовый трансформатор на провод двигателя (или провод питания всего привода) рассматривался. И даже был опробован. И да, имеет право на жизнь. Но гораздо удобней использовать выход на "сигнальную лампу". В используемом приводе - на лмпу подается сетевое напряжение с помощью реле.
как контролировать
Вариантов два
как управлять
Заготовка скрипта. Кажется - все предусмотрел'
//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) { //выполняй следующие действия
}
});