Принцип работы ПЛК примерно такой:
опрос ОБЛАСТИ ПАМЯТИ ВХОДОВ(не физических входов)
Выполнение ПОЛЬЗОВАТЕЛЬСКОЙ ПРОГРАММЫ
Запись ОБЛАСТИ ПАМЯТИ ВЫХОДОВ (не физические выходы)
Сервисное состояние - опрос себя, запись в драйвера, обмен по интерфейсу и т.д.

Если несколько устройств - значит действительно нужно массив.
Last Error - одна.
Last Address - для всех устройств.
If last_error <>0 and (last address=adres_mva)then;
status_mva:=1;
end_if;

Ну или возьмите библиотеку ModBus и самостоятельно организуйте обмен в цикле ПЛК. Тогда уж Вам все флаги в руки.