Вход

Просмотр полной версии : (ПР200) Блокировка кнопок



Ekzo
24.07.2025, 16:08
Всем добрый день! Только начинаю осваивать ОЛ, по этому прошу камнями не кидаться)
Вопрос следующий:
Есть 3 кнопки без фиксации на входах ПР (каждая на своём). Каждая кнопка отвечает за вкл.- выкл. своего выхода. Между собой эти линии не связаны : I1 - Q1, I2 - Q2, I3 - Q3. Нужно реализовать логику, при которой включение 1-й (любой) из 3-х кнопок блокировало включение двух остальных, пока не будет отключена первая. Заранее спасибо за помощь!

EFrol
24.07.2025, 16:28
Вариант 1-й:
85004

Dimensy
24.07.2025, 16:36
Вариант 2 (в лоб)
85005

EFrol
24.07.2025, 19:21
Вариант 3:
85011

Ekzo
24.07.2025, 20:07
Вариант 3:
85011

Всем большое спасибо за примеры! Буду разбираться :)

EFrol
24.07.2025, 20:37
Всегда, пожалуйста!

Вариант 4:
85012


function_block OnOff

var_input
I1, I2, I3 : bool;
end_var

var_output
Q1, Q2, Q3 : bool;
end_var

var
IN, OUT : udint;
tr : SYS.RTRIG;
end_var

IN.0 := I1; IN.1 := I2; IN.2 := I3; tr(I := (IN > 0)); // Фиксируем факт нажатия
if tr.Q Then
if OUT = 0 then
OUT := IN; // Фиксируем номер объекта
else
if IN = OUT then OUT := 0; end_if // Повторное нажатие - сброс объекта
end_if
end_if

Q1 := OUT.0; Q2 := OUT.1; Q3 := OUT.2; // Включаем зафиксированный объект
end_function_block

Сергей0308
27.07.2025, 23:42
Мне кажется, чтобы не ошибиться, надо приоритеты обозначить, в смысле, какой выход включится при одновременном нажатии более одной кнопки и мне не понятно нужно ли блокировать выключение выхода(прохождение команды) если предварительно нажаты другие кнопки(других выходов)?

lord2210
28.07.2025, 07:18
Очередь пригодится

Всем добрый день! Только начинаю осваивать ОЛ, по этому прошу камнями не кидаться)
Вопрос следующий:
Есть 3 кнопки без фиксации на входах ПР (каждая на своём). Каждая кнопка отвечает за вкл.- выкл. своего выхода. Между собой эти линии не связаны : I1 - Q1, I2 - Q2, I3 - Q3. Нужно реализовать логику, при которой включение 1-й (любой) из 3-х кнопок блокировало включение двух остальных, пока не будет отключена первая. Заранее спасибо за помощь!

Сергей0308
28.07.2025, 15:43
Очередь пригодится

Это же очень старая версия моей очереди, в смысле, я много раз выкладывал более совершенные версии этого алгоритма, где устранены некоторые недостатки!

lord2210
29.07.2025, 12:11
Зачем менять то что работает годами? Хороший макрос.

Это же очень старая версия моей очереди, в смысле, я много раз выкладывал более совершенные версии этого алгоритма, где устранены некоторые недостатки!