Поразмыслил - можно обойтись и без массива
Как таковой цикл не нужен, достаточно, чтобы задача в ПЛК была свободная или циклическая.
Входные данные ФБ: Разрешение работы, Дескриптор порта, Адрес устройства, Смещение индекса выходного массива данных.
Выходные данные ФБ: Флаг окончания, Код ошибки.

Алгоритм примерно такой: После окончания работы ФБ меняется адрес устройства и смещение индекса и заново разрешается работа.
Данные можно записывать внутри в один глобальный массив

Как-то так, пробуйте.