Зачем в PLC_PRG это объявление:
VAR_INPUT
start:BOOL;
END_VAR
у вас так дискретный вход вашего ПЛК никогда не отработает...

А вообще с SFC надо быть поосторожней так как повторно вызываемая функция на SFC начинает работу с того места на котором остановилось предыдущее её выполнение, это надо учитывать.(я поначалу думал это глюк такой)))

А вообще лучше ST нет ничего, все просто и понятно, пишите на нём и не парьтесь...