Cs-Cs, я предоставил конкретный пример с ВОРОТАМИ - это простейшая задача, но понимать вы её отказываетесь и в упор не видите !!!
Вы можете отличить СОСТОЯНИЕ от СОБЫТИЯ ? если не можете, то о чём разговаривать
СОСТОЯНИЕ - это процесс (открытие / закрытие), СОБЫТИЕ - это срабатывание дискретного датчика, то есть переход из одного состояния в другое
Есть логическая цепочка из событий - которая определяет состояние и состояние может участвовать в логике как событие
Корпускулярно волновой дуализм, свет может быть волной, может быть частицей.
Формируется логическая цепочка, которая определяет состояние объекта
Если брать релейную схему, то просто идёт срабатывание Реле из 4-х состояний - вот и всё!
Последний раз редактировалось Geenerator; 02.05.2025 в 10:53.
Cs-Cs, тут вы чуть не правы. Вперёд и Назад тоже состояние.
Была команда двигаться вперёд (внешняя ессно) и в 4х "слове" поменялось состояние со "стоп" на "двигаюсь вперёд". Потом если чё, может поменяться на "ой, всё, отвалите от меня, я устал"![]()
Geenerator, вас все просят показать не состояние ворот, мотора или насосов, а показать пример управления любого из перечисленного в виде программы на ПР. Начиная от входов и заканчивая выходами. Чтобы можно было оценить 4х логику, запустив эмуляцию.
Но вы отказываетесь, постоянно повторяя, как попугай, одну и ту же мантру.
Просим, просим, просим![]()
melky Точняк. Может быть и СОСТОЯНИЕ.
Но ты мне помешал его запутать ещё больше =)
GeeneratorУ реле же ДВА состояния...идёт срабатывание Реле из 4-х состояний
Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живёте. © Steve McConnell
Мой рабочий блог со статьями про щиты и автоматику ОВЕН - Cs-Cs.Net | Почта: Info@Cs-Cs.Net | Канал в ТГ @CsCsNetLab
Долго не лез в тему. У меня есть старший товарищ, который еще во времена СССР работал с троичной логикой. Серьёзно работал, без дураков.
На выходных, употребляли с ним вкусные напитки и показал я ему эту тему. Он долго ее перечитывал и сказал "Хрень полная, практического смысла нет".
На мой вопрос "а в чем тогда смысл в твоей троичной, ты же на нее жизнь потратил?" Мне ответил: тогда были параллельные шины и малые скорости. Троичное исчисление использовали для уменьшения линий в интерфейсах. Условно, можно было сделать IDE-ATA на 30 жилах вместо 40. И это имело смысл. Ну а уже если ввязались в троичное, то и внутреннюю логику, сколько могли, "затроили".
С появлением быстрых последовательных шин все это потеряло смысл и отмерло природою вещей. И не надо откапывать стюардессу.
Последний раз редактировалось SlavikP; 05.05.2025 в 04:47.
Работа не волк, а work.
SlavikP, согласен, хрень полная, тут и обсуждать не чего.
Мне для описания работы исполнительных механизмов станка требуется 4-ре состояния. Либо исполнительный механизм стоит, либо едет в одну сторону, либо едет в другую сторону, либо в состоянии Авария - я использовал 4-х значную логику.
Валенок так никто не просил супер-пупер программу. Достаточно примитива, но чтобы захватывал начиная от входов и заканчивая выходами. а не словами бла-бла-бла у нас есть 4-е состояния.
Да хоть 20-ть. Просто интересно как собрались дружить одно с другим![]()
melky, я привёл пример с ВОРОТАМИ на языке ST, как мне кажется должно быть понятно. Состояние это реле из 4-х положений, каждое положение определяется своей логической цепочкой
Код:; Входные сигналы ; I00A00 – Кнопка ворота открыть ; I00A01 – Кнопка ворота закрыть ; I00A02 – Кнопка ворота стоп ; I00A03 – Датчик препятствия ; I00A04 – Конечник открыто ; I00A05 – Конечник закрыто ; Выходные сигналы ; U00A00 – Ворота открыть ; U00A01 – Ворота закрыть ; U00A02 – Лампа Стоп ; U00A03 – Лампа Открытие ; U00A04 – Лампа Закрытие ; U00A05 – Лампа Авария ; -------- формирование состояний на основе событий ----------------- ; Если (Кн. ворота стоп or Датчик препятствия or Конечник открыто or Конечник закрыто) IF (I00A02 or I00A03 or I00A04 or I00A05) W20K0=0 ; состояние СТОП END ; Если (Кн. ворота открыть or Ворота отрыть) IF (I00A00 or U00A00) W20K0=1 ; состояние Открытие ворот ENDF ; Если (Кн. ворота закрыть or Ворота закрыть) IF (I00A01 or U00A01) W20K0=2 ; состояние Закрытие ворот ENDF ; Если (Ворота открыть and Ворота закрыть) IF (U00A00 and U00A01) W20K0=3 ; состояние Авария ENDF ; --------------- Алгоритм ------------------- ; Ворота открыть = Кн. ворота открыть or Ворота открыть and NOTСостояние СТОП and NOTСостояние Авария U00A00 = (I00A00 or U00A00) and NOT[W20K0=0] and NOT[W20K0=3] ; Ворота закрыть = Кн. ворота закрыть or Ворота закрыть and NOTСостояние СТОП and NOTСостояние Авария U00A01 = (I00A01 or U00A01) and NOT[W20K0=0] and NOT[W20K0=3] ; Лампа Стоп U00A02 = [W20K0=0] ; Лампа Открытие U00A03 = [W20K0=1] ; Лампа Закрытие U00A04 = [W20K0=2] ; Лампа Авария U00A05 = [W20K0=3]