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

Материал из Wiren Board
(Перенаправление на Wb-equipment-selection)
Метка: новое перенаправление
 
(не показана 1 промежуточная версия этого же участника)
Строка 1: Строка 1:
#REDIRECT [[wb-equipment-selection]]
Ворота, роллеты, шлагбаумы и прочие способы что-то закрыть.
Ворота, роллеты, шлагбаумы и прочие способы что-то закрыть.
= зачем =
= зачем =
Строка 12: Строка 14:
Но привод не имеет выхода "В работе". Что делать? Вариант поставить токовый трансформатор на провод двигателя (или провод питания всего привода) рассматривался. И даже был опробован. И да, имеет право на жизнь. Но гораздо удобней использовать выход на "сигнальную лампу".
Но привод не имеет выхода "В работе". Что делать? Вариант поставить токовый трансформатор на провод двигателя (или провод питания всего привода) рассматривался. И даже был опробован. И да, имеет право на жизнь. Но гораздо удобней использовать выход на "сигнальную лампу".
В используемом приводе - на лмпу подается сетевое напряжение с помощью реле.
В используемом приводе - на лмпу подается сетевое напряжение с помощью реле.
= Вариант для страницы о подборе оборудования =
Ворота с электроприводом имеют свой модуль управления, в котором предусмотрены дискретные входы для управления открытием и закрытием ворот. Эти входы можно использовать для управления воротами с помощью Wiren Board. В качестве источников управляющих сигналов можно использовать модули реле WB-MR6C v.3, WB-MRM2-mini и др. К ним можно подключить сигналы с датчиков положения ворот и вывести сигналы управления.
Для контроля работоспособности электропривода можно использовать токовый трансформатор или программно контролировать промежуток времени между крайними положениями ворот.
Более подробную информацию можно найти в статье Управление воротами.


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

Текущая версия на 11:07, 9 сентября 2022

Перенаправление на:

Ворота, роллеты, шлагбаумы и прочие способы что-то закрыть.

зачем

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

Для нас важно три момента:

  • Значть что ворота закрыты
  • Знать что ворота открыты
  • Контролировать примежуток времени между двумя состояниями, чтобы отследить состояние "авария" (застряли, сработал предохранитель).

Как можно реализовать контроль? Для состояния "Открыто" и "Закрыто" - подключиться к штатным концевикам привода. Благо на используемом - они выведены на клеммы для подключения дополнительных внешних. В неактивном состоянии на клеммах ~12 вольт. Сработавший концвик замыкает клемму на землю привода. WBIO-DI-WD-14 имеет гальванически развязанную землю - поэтому можно не беспокоиться о напряжении и привязать iGnd модуля к земле платы управленияпривода. Но привод не имеет выхода "В работе". Что делать? Вариант поставить токовый трансформатор на провод двигателя (или провод питания всего привода) рассматривался. И даже был опробован. И да, имеет право на жизнь. Но гораздо удобней использовать выход на "сигнальную лампу". В используемом приводе - на лмпу подается сетевое напряжение с помощью реле.

Вариант для страницы о подборе оборудования

Ворота с электроприводом имеют свой модуль управления, в котором предусмотрены дискретные входы для управления открытием и закрытием ворот. Эти входы можно использовать для управления воротами с помощью Wiren Board. В качестве источников управляющих сигналов можно использовать модули реле WB-MR6C v.3, WB-MRM2-mini и др. К ним можно подключить сигналы с датчиков положения ворот и вывести сигналы управления.

Для контроля работоспособности электропривода можно использовать токовый трансформатор или программно контролировать промежуток времени между крайними положениями ворот.

Более подробную информацию можно найти в статье Управление воротами.

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

Сразу условимся: Внутрь схемы привода не лезем и ничего не изменяем.

Вариантов два

как управлять

Заготовка скрипта. Кажется - все предусмотрел'

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