Вопрос скорее про синтаксис языка 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
Или синтаксис языка такого не позволяет?