Цитата Сообщение от Newcomer Посмотреть сообщение
To В.Ситников. В ФБ для ШД enable после отработки заданного количества импульсов лучше переводить в состояние FALSE в самом ФБ. Это избавит от лишних телодвижений в программе CoDeSys. В моем проекте, где надо управлять ШД каждая мс на счету.
А как вы себе представляете?
PRU же никак не может заставить основную программу передавать что-то другое.

Допустим, миллисекунда на счету. И что? В чём проблема-то?


Основная программа: "PRU, передаю enable=true".
PRU: "Вас понял, enable=true, запускаем ШД" <--- !!!
Основная программа: "PRU, передаю enable=true".
PRU: "Вас понял, всё ещё enable=true, продолжаем крутить ШД"
Основная программа: "PRU, передаю enable=true".
PRU: "Вас понял, всё ещё enable=true, продолжаем крутить ШД"
Основная программа: "PRU, передаю enable=true".
PRU: "Вас понял, всё ещё enable=true, продолжаем крутить ШД"
...
Основная программа: "PRU, передаю enable=true".
PRU: "А мне похрен, ШД отработал, поэтому enable=false"
Основная программа: "PRU, передаю enable=true".
PRU: "Вас понял, enable=true, запускаю ШД" <---!!!

Если enable будет сбрасываться само собой, то будут автоколебания. Поэтому сейчас и сделано, что enable так и остаётся true, но ШД переходит в состояние STOP и не продложает движение до передёргивания enable.