Цитата(Jenya7 @ Jul 17 2017, 08:53)

В данном случае никак не соображу какую структуру создать под сценарий движения и как учитывать все логические условия.
Да не надо тут никакого сценария.
Просто запоминайте в каком направлении надо было двигаться по последней команде пользователя.
И пытайтесь включить одновременно все двигатели.
Но перед включением каждого двигателя проверяете все возможные запреты на его включение.
Это и все конечники,и цепи безопасности, и направления, и напряжение, и правильность фазировки напряжения, и таймауты от последней смены направления, а таймауты с предыдущего движения того же мотора и проч.
Тот мотор движение которого ничем не запрещено включится, а кому есть запрет не включиться.
И вы получите правильную последовательность работы моторов в любом случае.
И этот цикл повторяется каждый рабочий такт PLC.
Советую подсмотреть у PLC такие удобные компоненты как TOF, TON и TP
Буквально на прошлой неделе я сдал большой проект для нового аэропорта в Мельбурне.
Там таких моторов было 40 шт. управляемых одновременно по EtherCAT.
Цикл программы 4 мс.
И программа строилась именно так.
Никаких автоматов здесь придумывать не нужно. Сама среда исполнения PLC выполняет роль автомата.
По сути это stateless подход. Я считаю его наиболее надежным и безопасным для ответственной автоматики.