Владислав Г.
Hardella IDE вам в помощь. Сам пользуюсь активно для написания высокоскоростных модулей со своими хотелками для входов FDI1..FDI4.
--------------------
По вашей программе.
...IF encoder = 0 AND count = 65535 THEN...
Из за медленности цикла ПЛЦ_ПРГ и короткого импульса encoder = 0 происходит пропуск этого импульса. Т. е. ПЛЦ_ПРГ его просто "не видит". Поэтому n и не меняется.
--------------------------
...IF btn_top = TRUE THEN...
= TRUE писать не обязательно, без этого Кодесис проверяет переменную на true.
Т. е. достаточно будет ...IF btn_top THEN...
или ...IF NOT btn_top THEN... , если нужно проверить на FALSE.