Gate control: различия между версиями

Материал из Wiren Board
Строка 11: Строка 11:
В неактивном состоянии на клеммах ~12 вольт. Сработавший концвик замыкает клемму на землю привода. [https://wirenboard.com/wiki/WBIO-DI-WD-14_I/O_Module| WBIO-DI-WD-14] имеет гальванически развязанную землю - поэтому можно не беспокоиться о напряжении и привязать '''iGnd''' модуля к земле '''платы управления'''привода.
В неактивном состоянии на клеммах ~12 вольт. Сработавший концвик замыкает клемму на землю привода. [https://wirenboard.com/wiki/WBIO-DI-WD-14_I/O_Module| WBIO-DI-WD-14] имеет гальванически развязанную землю - поэтому можно не беспокоиться о напряжении и привязать '''iGnd''' модуля к земле '''платы управления'''привода.
Но привод не имеет выхода "В работе". Что делать? Вариант поставить токовый трансформатор на провод двигателя (или провод питания всего привода) рассматривался. И даже был опробован. И да, имеет право на жизнь. Но гораздо удобней использовать выход на "сигнальную лампу".
Но привод не имеет выхода "В работе". Что делать? Вариант поставить токовый трансформатор на провод двигателя (или провод питания всего привода) рассматривался. И даже был опробован. И да, имеет право на жизнь. Но гораздо удобней использовать выход на "сигнальную лампу".
В используемом приводе - на лмпу подается сетевое напряжение с помощью реле.


= как контролировать =
= как контролировать =

Версия 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) { //выполняй следующие действия
    
  }
});