Я привел пример своей работы. Задача была обрабатывать в цикле четыре одинаковых процесса, но с разными параметрами для каждого процесса. Причем в одно время должен работать только один процесс, остальные ждать его завершения. Что бы не городить тонны букав на ST я делал свою ПОУ на LD, а в PLC_PRG на ST делается общий контроль всей работы.
В моем случае массивы объявлены глобально, следовательно доступны из любого ФБ\ПОУ как прямо указанному индексу, так и по индексу, в качестве которого работает переменная типа INT.
Вообще, упрощено ФБ работает так - затолкали ему на вход данные>ФБ их прожевал, используя только локальные переменные своего экземпляра, а так же глобальные>выкинул на выход. Используя массивы можно затолкать в цикл FOR (например) свои ФБ, которые используют переменную цикла (глобальная) в качестве индекса, а это сильно сократит количество кода при выполнении большого количества однотипных задач.