Добрый день, пишу правило чтобы при нажатии на кнопку включалось реле:
defineRule("mr3-button-1", {
whenChanged: "wb-mr3_13/Input 1 counter",
then: function () {
dev["wb-mr3_13/K1"] = true;
}
});
реле включается, но тут же отключается. Подскажите как сделать чтобы после включения оно оставалось в состоянии true
Настройки реле
Если отключить правила и поставить стандартный режим работы кнопки, то реле отрабатывает адекватно
Так же если сделать виртуальную кнопку, то реле тоже срабатывает хорошо.
Очевидно что происходит конфликт правила и сработки кнопки, возможно дело в её настройке.
Доброго дня.
По поводу скрипта:
defineRule("mr3-button-1", {
whenChanged: "wb-mr3_13/Input 1",
then: function () {
dev["wb-mr3_13/K1"] = !dev["wb-mr3_13/K1"];
}
});
Изменения:
- В качестве триггера используется состояние входа, а не счетчик нажатий этого входа.
- В теле функции состояние выхода меняется на противоположное.
Я возможно не так понимаю вопрос. Попробуйте, пожалуйста, более подробно описать.
Что делаете?
Что ожидаете получить?
Что получаете по факту?
И для чего вам писать скрипт, если вход и выход модуля связаны на уровне прошивки? Вход 1 и так управляет выходом 1.
Попробовал Ваш скрипт (https://cloud.mail.ru/public/SaNr/auFzd8iQp), результат тот же - реле включается, затем переключается обратно. Очевидно дело не в скрипте. Скрипт отрабатывает так как нужно - включает реле, но затем сразу же происходит его отключение (задержки от дребезга выставлял).
Если сделать виртуальную кнопку и подключить к ней скрипт то реле работает адекватно, также если не использовать скрипт, а использовать стандартную прошивку то кнопка тоже отрабатывает адекватно. Проблемы начинаются при попытке использовать скрипт с реальной кнопкой.
Зачем мне это нужно - дело в том что мне нужно управлять реле 1 - кнопкой и выключателем, которые подключены к разным входам (например 1 и 2). При этом если выключатель замкнут и реле работает, должна быть возможность отключить реле через кнопку.
Ну и всё равно хотелось бы понять как управлять реле через кнопку + скрипт
Ну, у вас довольно странная реализация. Если управляете программно - то надо отключить аппаратное управление в настройках реле. И наоборот, собственно.
Подскажите пожалуйста как отключить аппаратное управление в настройках реле?
Здравствуйте! Можно с помощью WEB-интерфейса, настройки драйвера serial устройств настроить режим работы входов.
UPD: Возможно неправильно понимаю вопрос, т.к. вы это уже делали в своём первом сообщении.
Чтобы не было конфликта, лучше прописать весь нужный функционал с помощью правил.
Да, я делал это при помощи настройки “Режим работы” - “Отключить все выходы”. Я правильно понимаю что этой настройки достаточно?
Тогда давайте упростим запрос, мне нужно чтобы реле управлялось через физическую кнопку, но при помощи правила. В данный момент у меня это не получается даже с настройкой выше, правило отрабатывает но при этом отрабатывает и само реле будто оно находится в режиме “Кнопка без фиксации”. Другими словами правило при нажатии кнопки включает реле и затем оно тут же отключается
Тогда так правило пропишите.
defineRule("mr3-button-1", {
whenChanged: "wb-mr3_13/Input 1",
then: function (newValue, devName, cellName) {
if (newValue) {
dev["wb-mr3_13/K1"] = !dev["wb-mr3_13/K1"];
}
}
});
“Отключить все выходы” - значит при замыкании данного входа, все выходы реле будут разомкнуты.
тогда как мне настроить реле чтобы правила заработали, в инструкции написано следующее:
но я не вижу такой опции в настройках
Режим “кнопка без фиксации”, если у вас кнопка без фиксации.
Тогда возникает другой интересный момент, если я в правиле настраиваю чтобы по нажатию первой кнопки включалось второе реле, при этом у меня настройка первого входа “Кнопка без фиксации” при нажатии кнопки срабатывает первое и второе реле))) Первое срабатывает по настройке “Кнопка без фиксации”, а второе по правилу. Есть ли действительно настройка Отключить реакцию на нажатия, так чтобы реле вообще работало только по правилам, считывало состояние входов и затем через правило управляло реле
Прошу прощения, моя ошибка. На стенде работает “Управление отключено, вход измеряет частоту”
Разобрался, если кому-то будет такое полезно то, вот как это можно сделать
для каждого входа отключить все действия на выходах
1 лайк