Вопрос скорее про синтаксис языка ST. Необходимо создать несколько одинаковых условий. Вот упрощенный вариант:

IF SET1=TRUE THEN
p1:=TRUE;
END_IF
...
IF SET16=TRUE THEN
p16:=TRUE;
END_IF

Так вот, можно не писать это все 16 раз, а задать какую-либо переменную, к примеру n и задать его в цикле от 1 до 16, чтобы было только одно условие типа этого:

FOR n:=1 TO 16
DO
IF SET(n)=TRUE THEN
p(n):=TRUE;
END_IF
END_FOR

Или синтаксис языка такого не позволяет?