Цитата Сообщение от МихаилГл Посмотреть сообщение
Буквально сегодня правил свой код, оптимизировал по размеру... У меня там для реверсивного механизма 17 состояний, каждое из которых это совокупность до 10 событий... Какая 4х значная, мне мало 4х значений, хоть режте.

Как дальше использовать эти 4 состояния. Как мне применить состояние авария, например, к необходимости запустить этот механизм в противоположную сторону, где у меня как таковой аварии то нет. Но авария у вас общая.
Я пока не представляю о чём вы говорите, но попытаюсь показать на своём примере...

Берём металлообрабатывающий станок у которого возможны движения по всем 3-м измерениям. За перемещение по оси X, Y, Z отвечает свой двигатель.
Если двигатель крутиться по часовой стрелке, то ось едет в сторону Х+, если двигатель крутиться против часовой стрелке, то ось едет в сторону Х-. и так далее с остальными осями.

У каждой из осей будут свои четыре состояния 00 01 10 11. Другими словами, есть "объект" у которого выделяются 4-ре логических состояния. Затем "объекты" могут изменять свои состояние в зависимости от событий относящихся к данному "объекту", либо изменять своё состояние в зависимости от состояния другого "объекта"

Например, ось Х встала по аварии "частотника", это событие оси Х - её состояние переходит в (11), при этом оси Y, Z переходят в состояние СТОП (00), т.к. объект ось Х в - (11)

stanok.png