Такое иногда встречается, я не долго думая правлю з.х. что - и идет дальше.
Таймером TON умеете пользоваться? Так вот когда вы программу в ФБ переделали, то на месте вызова у вас осталось TON(), а надо же сначала объявить экземпляр ton1: TON, и уже потом вызывать ton1().

Дальше — вот написали вы аналог TON в виде программы, но переменную IN сделали глобальной. Теперь если вы свой TON в ФБ преобразуете, то больше одного TON у вас работать не будет, т.к. все будут работать от одной IN. Придётся эту IN из глобальных переменных убрать, перенести в ваш TON и отдельно для каждого экземпляра ФБ назначать: ton1(IN := X).

Вообще не ожидал, что такие вещи буду рассказывать. Мы же журналирование на ПЛК вместе делали пару лет назад.