Неа. Не катит. Приоритет должен возникать у входа, на которым первым нажата кнопка. Минут через пять выложу свой вариант реализации. Просто не считаю его оптимальным, как новичок. Поэтому и обратился.
Вид для печати
Прошу прощения. Уже ранее извинился. Извиняюсь еще раз. Выкладываю свой вариант реализации. Не претендую на оригинальность или оптимальность. Главное, вроде бы, работает..... Спасибо всем за участие.
Ну вот хоть убейте мне непонятно.
1. ПР200 стоит где-то
2. кнопки в разных местах, человек подходит к кнопке, наживает 2 раза, считая, что запустится некий алгоритм, а ему болт по всему фейсу, потому что в соседнем помещении кто-то нажал кнопку раньше...
Где логика ?
Вообще-то здесь приоритет у более старшего входа, во всяком случае в симуляторе, т. е. если одновременно нажали все четыре кнопки, сработает четвёртая:
Вложение 30236
1.melky
А Вы не обратили внимание на то, что есть выход "Priority", который заблокирует все его (человека) потуги, если включить логику дальше. Есть такое понятие - система "ЗАНЯТА", как телефонная линия :-) Во всяком случае, если логику продолжить, то можно включить сирену для "человека", который не увидит мигающий светодиод с маркировкой "Занято".
2. Сергей0308 Перепроверил, Ваш результат получается, если Вы нажимаете 4-ю кнопку тогда, когда по нажатию первой кнопки TOF1 уже отработал. Можете перепроверить, увеличив уставки TOF-ов. Это раз. Второе, кнопки типа - нажал и отпустил, а не нажал и зафиксировалось.
Если кто-то сильно хочет или это очень принципиально, то можно FTRIG или RTRIG, в зависимости от конкретной схемы и целей, поставить для формирования кратковременного импульса.
ПР-ка - не только для управления котельными, насосами и т.д. и т.п., но и для других целей годится тоже. Для каких - сказать не могу, так как конкуренты не "спят".
Извините, не претендовал на нобелевскую премию, но все получилось без "мажоритарной" логики. Главное - что работает.
Выкладываю макрос, может кому пригодится.
В этом макросе куча циклов из связей. Такое может либо совсем не работать, либо работать криво.
Нужно ставить линии задержки (обратные связи).
Попробуйте нарисовать такое в ОЛ 1.9 -- оно должно подсветить проблему.
"Чёто" меня это, блин, совсем не радует, в особенности как начинающего. Убил пол дня воскресенья, чтобы добиться работы этого макроса на симуляторе.
Насчет обратных связей можно поподробнее и ткнуть носом где посмотреть. Спасибо.
Я уже спрашивал, но повторюсь. Есть ли готовые варианты реализации подобной задачи, чтобы велосипед не изобретать?
Насчет ОЛ 1.9, то я там ничего для себя нужного не нашел. Видать пока еще не тот уровень подготовки для работы с ОЛ.
PS:
Макрос не верен. Обнаружил это после подключения к проекту. Кнопка отрабатывает только одно нажатие. Последующие - не передаются на выход. Переделать!
Отредактировал. ТОФы вынес за пределы макроса. Теперь все ОК.
GAlex при наличии обратной связи в принципе вопрос снимается, но мне все одно не совсем понятно. Почему ? если выходы от каждой кнопки разные, то почему им не выполнять разные алгоритмы, а если выход один, но с разными алгоритмами в зависимости от нажатой кнопки, то алгоритм то немного другой будет. Так как вы не рассказываете для чего это, то вам и выбирать как и что делать.
з.ы. я уже писал, что TOF может быть вообще один, или 3 если на несколько нажатий свой алгоритм запускается, а в таймеры будет записываться разное время в зависимости от точки запуска.
2 melky и всем кто участвовал в помощи
Огромное спасибо за деловую настойчивость. По неопытности у себя в проекте все сделал очень сложно. Вы мне подсказали хорошую идею. Действительно, я могу сделать общий для всех кнопок выход с использованием моего макроса, но оставить блокировку кнопок как это сделано в макросе. При этом буду использовать только один ТОФ вместо четырех как у меня сейчас (тем более, что уставки у них одинаковые), а разделение по выполняемому алгоритму сделаю еще до входа в макрос. Количество нажатий у меня контролирует группа счетчиков CTU с уставками N1=1 N2=2, N3=3 (слава богу сам допер сделать эту группу счетчиков общей). Кнопки до входа в макрос через четырех-входовый элемент ИЛИ подключены к этим CTU. В зависимости от того с какого рабочего места нажата кнопка и какое количество раз нажата, формируется набор команд, выполняемых последующими устройствами. Так что еще раз огромное спасибо за идею. Буду дерзать дальше. Нет худа без добра, блокировщик входных кнопок тоже неплохой получился. Если честно, то я и сам не ожидал.