Страница 1 из 1

Одновременная работа сценариев

Добавлено: Вс мар 29, 2020 12:58 pm
Forth
Добрый день!
Столкнулся с такой проблемой, есть 2 кнопки (реле) включаются по времени или нажатием на кнопку одновременно, то сценарий и метод на отключения не срабатывает, отключается только реле которое включилось последнее, а реле включенное первым не отключается :(
Если включать по очереди все работает.
Отключение прикрутил к методу logicAction *
Подскажите пожалуйста решение проблемы? Нужно, чтоб одновременно срабатывали все методу, сценарии, а не по очереди.
if (getGlobal('Kr_1_2min'.'.'.'status') == 1)
{
setTimeOut('Выключить через', "setGlobal('Rele_1_K.status', 0);", 120);
}

у другой кнопки

if (getGlobal('Kr_2_2min'.'.'.'status') == 1)
{
setTimeOut('Выключить через', "setGlobal('Rele_2_K.status', 0);", 120);
}

Re: Одновременная работа сценариев

Добавлено: Вс мар 29, 2020 1:10 pm
Chainik
Forth писал(а):
Вс мар 29, 2020 12:58 pm
...
Подскажите пожалуйста решение проблемы? Нужно, чтоб одновременно срабатывали все методу, сценарии, а не по очереди.
...
Судя по коду, все правильно, так и должно работать. Дело в том, что имена таймеров у вас совпадают. И при запуске второго таймера первый ликвидируется (и действие на него завязанное -- не выполняется).
Чтобы избежать этого, надо, чтобы имена таймеров различались. Например

Код: Выделить всё

setTimeOut('Выключить Rele_1_K через', "setGlobal('Rele_1_K.status', 0);", 120);
//...
setTimeOut('Выключить Rele_2_K через', "setGlobal('Rele_2_K.status', 0);", 120);

Re: Одновременная работа сценариев

Добавлено: Вс мар 29, 2020 1:58 pm
Forth
Chainik писал(а):
Вс мар 29, 2020 1:10 pm
Forth писал(а):
Вс мар 29, 2020 12:58 pm
...
Подскажите пожалуйста решение проблемы? Нужно, чтоб одновременно срабатывали все методу, сценарии, а не по очереди.
...
Судя по коду, все правильно, так и должно работать. Дело в том, что имена таймеров у вас совпадают. И при запуске второго таймера первый ликвидируется (и действие на него завязанное -- не выполняется).
Чтобы избежать этого, надо, чтобы имена таймеров различались. Например

Код: Выделить всё

setTimeOut('Выключить Rele_1_K через', "setGlobal('Rele_1_K.status', 0);", 120);
//...
setTimeOut('Выключить Rele_2_K через', "setGlobal('Rele_2_K.status', 0);", 120);
Помогло!!!
Спасибо большое, добрый и умный человек!