Salida a set o a reset
SET: Cuando se cumple la condición de ejecución, la salida pasa a TRUE, y se mantiene el estado.
RST: Cuando se cumple la condición de ejecución, la salida pasa a FALSE, y se mantiene el estado.
Con las instrucciones SET y RST se puede utilizar la misma salida o relé interno tantas veces como se quiera. (Incluso si se ejecuta una revisión completa, no se considera como un error de sintaxis.)
Cuando se utilizan las instrucciones SET y RST, la salida cambia con cada paso durante la ejecución.
Para enviar a la salida un resultado durante la ejecución, utilizar las instrucciones de refresco parcial de E/S (F143_IORF).
La salida de una instrucción SET mantiene su estado incluso durante la ejecución de una instrucción MC.
La salida de una instrucción SET se resetea cuando se pasa de modo RUN a modo PROG. o cuando se quita la alimentación del sistema, excepto si el relé se encuentra dentro del área de retención.
Para asegurar que las instrucciones SET y RST solo se ejecutan en el flanco de subida, insertar delante de estas una instrucción DF (o especificar un flanco de subida en LD).
Los relés pueden pasar a FALSE utilizando la instrucción RST.
Si se utilizan varios relés con las instrucciones SET y RSTno genera una salida doble.
En las salida de las instrucciones SET o RST no se puede especificar un relé de pulso (P).
Puesto que se utiliza direccionamiento directo FP, no es necesario declarar variables en la cabecera de la POU.
En diagrama de contactos, especificar un flanco de subida en contacto y un SET o RESET en la salida:
BODY
WORKSPACE
NETWORK_LIST_TYPE := NWTYPELD ;
ACTIVE_NETWORK := 0 ;
END_WORKSPACE
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 3 ;
NETWORK_BODY
B(B_CONTACT,,X0,4,1,6,3,R);
B(B_COIL,,Y0,10,1,12,3,S);
L(6,2,10,2);
L(1,0,1,3);
L(1,2,4,2);
END_NETWORK_BODY
END_NET_WORK
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 3 ;
NETWORK_BODY
B(B_CONTACT,,X1,4,1,6,3,R);
B(B_COIL,,Y1,10,1,12,3,E);
L(1,2,4,2);
L(1,0,1,3);
L(6,2,10,2);
END_NETWORK_BODY
END_NET_WORK
END_BODY
(*TRUE and FALSE are assigned to Y0*)
IF DF(X0) THEN
Y0:= TRUE;
END_IF;
IF DF(X1) THEN
Y0:= FALSE;
END_IF;
En lista de instrucciones, se utiliza S y R para SET y RESET respectivamente: