Resta
El contenido del acumulador se resta del operando definido en este campo. El resultado se transfiere al acumulador.
Entrada
Primera entrada: minuendo
Segunda entrada: sustraendo
Salida
Salida: resultado
Todos los operandos tienen que ser del mismo tipo de datos.
Todas las variables de entrada y de salida utilizadas para la programación de esta función han sido declaradas en la Cabecera de la POU. Se utiliza la misma cabecera de la POU para todos los lenguajes de programación.
VAR
bStart: BOOL:=FALSE;
iMinuend: INT:=0;
iSubtrahend: INT:=0;
iResult: INT:=0;
END_VAR
En este ejemplo se han declarado las variables de entrada (iMinuend, iSubtrahend y bStart). También se pueden introducir constantes directamente en la función (por ejemplo, para hacer pruebas).
Si bStart está a TRUE, iSubtrahend (tipo de datos INT) se resta de iMinuend. El resultado se escribe en iResult (tipo de datos INT).
BODY
WORKSPACE
NETWORK_LIST_TYPE := NWTYPELD ;
ACTIVE_NETWORK := 0 ;
END_WORKSPACE
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 8 ;
NETWORK_BODY
B(B_VARIN,,minuend,6,3,8,5,);
B(B_VARIN,,subtrahend,6,4,8,6,);
B(B_VAROUT,,result,14,3,16,5,);
B(B_CONTACT,,enable,3,2,5,4,);
B(B_F,E_SUB!,Instance,8,1,14,6,,?DEN?D?D?AENO?C);
L(1,3,3,3);
L(5,3,8,3);
L(1,0,1,8);
END_NETWORK_BODY
END_NET_WORK
END_BODY
IF bStart then
iResult:=iMinuend-iSubtrahend;
END_IF;