По документации Codesys программу нельзя вызывать из функции.
Programs and function blocks can call a program. A program call is not allowed in a function. There are not instances of programs.
Кроме того, PRG сохраняет свои переменные между вызовами, т.е. ведёт себя как функциональный блок, только у него нет экземпляра. У него своя собственная область памяти, общая для любых вызовов извне.
PLC_PRG с переменной iStateSetPress возможно переделать в простую функцию?