Мало что понятно.
Что есть на входе? Переменные состояния концевых выключателей типа bool?
Или word переменная с установленными битами?

На выходе тоже должен быть массив переменных типа bool? Или массив номеров нажатых кнопок?
Я бы сначала предложил изложить постановку задачи: что по сути есть на входе и что должно быть на выходе.

Код:
VAR_GLOBAL
........................
button_state:ARRAY [ 1..MAX_BUTTON] of bool;
END_VAR

FOR i := 1 TO MAX_BYTON DO 
         button_state[i]:= FALSE;
         button[ i ](Open:= check[i], button_state[i]);
END_FOR