Ejemplo de FCs en fuentes AWL



FUNCTION FC 1: VOID // ¡Sólo a causa del Call!!
VAR_INPUT
   param1 : bool;
   param2 : bool;
END_VAR
begin
end_function
FUNCTION FC2 : INT
TITLE = Aumento del número de piezas // En tanto que el valor transferido sea < 1000, esta función aumenta el valor transferido. Si el número de piezas es superior a 1000, se obtiene nuevamente la función (RET_VAL) "-1" a través del valor de respuesta.
AUTHOR : ??????
FAMILY : Ejemplo
Nombre : Test FC
VERSION : 1.0
VAR_IN_OUT
STUECKZAHL : INT; // Número de piezas fabricado actualmente
END_VAR
BEGIN
NETWORK
TITLE = Aumento del número de piezas en 1 // En tanto que el número de piezas actual sea inferior a 1000, puede incrementarse (+1)
L STUECKZAHL; L 1000;  // Ejemplo de varias
> I; SPB ERR; // instrucciones en una línea.
L 0; T RET_VAL;
L STUECKZAHL; INC 1; T STUECKZAHL; BEA;
ERR: L -1;
T RET_VAL;
END_FUNCTION
FUNCTION FC3 {S7_m_c := 'true'} : INT
TITLE = Aumento del número de piezas // En tanto que el valor transferido sea < 1000, esta función aumenta el valor transferido. Si el número de piezas es superior a 1000, se obtiene nuevamente la función (RET_VAL) "-1" a través del valor de respuesta. //RET_VAL tiene aquí un atributo de sistema para parámetros
AUTHOR : ??????
FAMILY : POR
NOMBRE : ???????
VERSION : 1.0
VAR_IN_OUT
STUECKZAHL {S7_visible := 'true'}: INT; // Número de piezas fabricado actualmente. Atributos de sistema para parámetros.
END_VAR
BEGIN
NETWORK
TITLE = Aumento del número de piezas en 1 // En tanto que el número de piezas actual sea inferior a 1000, puede incrementarse (+1)
L STUECKZAHL; L 1000; // Ejemplo de varias instrucciones en una línea.
> I; SPB ERR;
L 0; T RET_VAL;
L STUECKZAHL; INC 1; T STUECKZAHL; BEA;
ERR: L -1;
T RET_VAL;
END_FUNCTION