Это мой первый опыт работы с ПЛК и языком LD (взрыв мозга уже 5й день, но приходится учится

Итак в проекте будет работать следующая связка:
Частотник: LS IG5A (7,5 кВт) + Мотор редуктор на эту же мощность
HMI: Kinco MT4414T
PLC: Kinco K306-AR + Инкрементальный энкодер от Autonics (100 оборотов - комплиментарка) + пульт управления из 5 кнопок, сирена, мигалка и прочая мелочевка.
Есть 2 режима работы:
1) Автоматический - включается при нажатии на пульте кнопки "START" после чего контроллер гоняет каретку вправо до позиции "UST_Hi", останавливается, дает "Delay_1" сек задержки и идет влево до позиции UST_Lo, опять останавливается и ждет "Delay_2" сек задержки.
Цикл повторяется либо "X" кругов, либо "Y" минут (если выставлено условие по времени, по достижении заданного периода - цикл не сразу останавливается, а дожидается когда положение Энкодера будет равно "UST_Lo" т.е. каретка приедет в точку старта)
В управлении циклом задействованы 3 кнопки пульта: "START", "Pause", "Stop-RESET"
В случае нажатия кнопки Пауза - кнопками вправо, влево можно менять положения транспортера вручную, после повторного нажатия программа продолжает выполнятся.
2) Ручной режим работы - кроме описанных выше работают кнопки пульта: "Вправо", "Влево" контроллер "ждет нажатия кнопки "старт" или повторного нажатия кнопки "пауза"
Теперь самое интересное:
При выполнении основной программы мне придется обрабатывать сразу 3 прерывания:
1) Прерывание от HSC (счетчика энкодера) по условию CV=PV при достижении верхней или нижней уставки , уход на паузу и реверсирование двигателя.
(как мне уже подсказали нижняя уставка не должна быть равна 0 чтоб не возникало проблем с минусовыми значениями в случае если не смогли быстро затормозится и пролетели нижнюю уставку.
2) Прерывание по нажатию кнопок (тут немного проще в основном цикле это может быть даже не прерывание а проверка условия на IL будет выглядеть наверное так:
LD %V0.4 (Не нажата ли кнопка паузы)
Cal Pause
LD %V0.5 (не нажата ли кнопка стоп)
Cal Stop_engine
3) Прерывание по времени - тут вроде тоже все понятно задаем обработчик в цикле таймер TOF при достижении 0 отрабатываем прерывание ET=PT и ставим флаг (как достигли UST_Lo - останавливаемся) .
Собственно вопрос следующий:
Как правильно последовательно реализовать основной цикл и вход выход по прерываниями, чтобы с одной стороны не перегружать контроллер циклом в цикле, с другой стороны корректно считать импульсы от энкодера без пропусков (у ПЛК почти 20 кратный запас по скорости счета).
Мозг просто отказывается понимать как это все уложить вместе.
В настоящий момент написаны только:
1) подпрограммы опроса счетчика (переписана из примера).
2) Написал 10 строк подпрограммы реверсирования двигателя (в самом частотнике заложено что при нажатии кнопки "5" тормозим и включаем реверс) подпрограмма у меня просто тупо включает выходное реле ПЛК и тем самым замыкает кнопку "5" частотника.
Пытаюсь продумать основной цикл программы и не понимаю с чего начать...