Вы правы, глубину можно задать цифрой на входе SEL, до 31 в данном случае, я просто не вникал в логику работы и тупо повторил ваше 1:1!
Вид для печати
Как то так.
Вложение 29974
А зачем там вообще стеки какие-то
Не проще ли
Вложение 29975
здесь в переменной Reg находится двоичный образ пузырьков на конвейере 0 - годный, 1 - брак
По сигналу от микрика бутылок в Reg задвигается 0, если кнопка Брак не нажата, или 1, если кнопка брак нажата.
Получилась линия задержки.
С 11 или 12 или 16 бита Reg имеем информацию о том, годный был пузырек или нет 11, 12 или 16 пузырьков тому.
И детектор переднего фронта не нужен, там уже один есть, два последовательно, ни к чему:
Вложение 29977
Петера, там и стоит регистр сдвига:
Вложение 29978
Вот ещё поубирал лишнее:
Вложение 29984
Начинаю вникать в происходящее(у Петера такая логика)!
Попробовал Конвеер_М2.owl. Не заработала, ничего не выбраковывает.
Конвеер_М1.owl работает хорошо до тех пор, пока не начинаются остановки роликового транспортера от датчика очереди или от педали оператора. Начинается чехарда с выбраковкой.
На этом изыскания завершились, перешли на ПЛК100. Всем большое человеческое спасибо.
Может быть если очередь заполнена, пузырёк призадерживается на микрике за счёт впереди стоящих пузырьков не менее чем на 200 мс, а так(если очередь не заполнена и нет впереди стоящих пузырьков) проскакивает микрик менее чем за 200 мс??? Короче, я бы попробовал уменьшить время таймера до 20 мс!
Я конечно заранее извиняюсь, но без грамотного ТЗ боюсь вам и суперкомпьютер не поможет!
Сергей, дело не во времени, когда на конвейере закачиваются флаконы, микрик перестаёт подавать тактовые импульсы и стек останавливается, конвейер движется, а команда на толкатель не подаётся, и последние флаконы не выбраковываются. А когда на конвейере снова появляются флаконы, микрик запускает работу стека и ранее записанный в стек брак, выбрасывает нормальные флаконы.
Короче, для правильной работы, нужно чтобы на конвейере не было пропусков в очереди из флаконов.