Спасибо, что откликнулись.
Да, у меня тоже :) Были мысли взять и переписать всё с нуля, но пока нет на это времени.
Авария возникает только на датчике температуры обратки, а он используется только для того, чтобы прижать клапан регулировки отопления когда обратка приходит слишком холодная, чтоб успевала прогреваться.
Да и нет в проекте обработки аварии этого датчика, продувку и закрытие заслонки туда добавить не было бы проблемой.
Пробовал на стенде отключать этот датчик: аварии не возникает, горелка не отключается, температура обратки просто игнорируется.
На объекте же горелка просто встаёт и начинает снова процесс запуска: старт дутьевого насоса, продувка и т. д.
Хотя на любую аварию, судя по тому, что я вижу в программе, должна реагировать закрытием газа,
продувкой камеры сгорания и ожиданием сброса ошибки с клавиатуры.
Пробовали: вы же видите в PLC_PRG закомментированы CASE/END_CASE?
Не помогло, да и не удивительно: счётчик максимального времени цикла, расположенный в начале PLC_PRG, не поднимается выше 70 мс.
И поднимается он до таких значений только в момент подключения к контроллеру из CoDeSys, в штатном режиме время цикла держится около 2 - 25 мс.