Цитата Сообщение от Сергей0308 Посмотреть сообщение
Мне кажется мой вариант проще: цикл программы разбивается на шаги, диапазон кольцевого счётчика соответствует количеству шагов в цикле. Можно сделать энергонезависимость счётчика, тогда при возобновлении питания программа продолжится с того же шага, на каком была прервана! Если энергонезависимость счётчика не делать, при возобновлении питания программа начнётся заново с 1 шага цикла! И если надо чтобы после любого останова, программа начиналась сначала - при останове кольцевой счётчик надо сбросить!
Кроме того, что это проще, это и выглядеть будет проще: вам для возобновления программы сначала нужно все RS-триггеры сбросить. а мне один кольцевой счётчик - связей гораздо меньше! Кроме того у меня есть специальные кольцевые счётчики с дополнительным выходом на котором возникает импульс в конце цикла, который служит для подсчёта количества циклов программы и можно будет назначать и количество циклов в программе, когда это необходимо!
в целом идею вроде бы понял, кольцевой счетчик просто на обычном счетчике с самосбросом? а кто будет триггерить переключение счета? большущая конструкция из блоков "или"? ну и как корректно прервать текущие выполняющиеся операции? все равно надо прерывать операции, привязанные к соответствующему счетчику. а я когда на rs подаю сброс то как раз этот же импульс и прерывает операции в этом цикле. правда для этого пришлось сколхозить макрос "TP" с внешним сбросом. тоже на счетчике... поскольку вовремя понял, что TOF слишком опасный элемент.