Вспомнил пример из собственной практики, когда в буквальном смысле пришлось использовать подход функция + тип, вместо ФБ.
Этот пример не совсем корректен здесь, так как случился на Сименсе. Но все же приведу. Мало ли кому пригодится где-то как идея.
В одном из проектов использовали S7-300. При написании кода был создан ФБ сушильная установка, код которого занимал где-то 60 Кб.
При отладке на PLCSim (имитатор контроллера в Сименсе) все работало отлично. Впоследствии, при наладке на реальном контроллере оказалось, что в контроллере блоки не должны превышать размера в 16 Кб.
Пришлось переменные ФБ сушильная установка сделать как тип, а весь код разделить на 4 функции (~ по 15 Кб), которые вызывать последовательно.