Saltar al contenido principal

SUB

Resta Value2 de Value1 y almacena el resultado en Result.

Representación en Ladder

Bloque SUB

Estructura de bloques

Tipo de variableNombreTipo de datosDescripción
VAR_INPUTENBOOLHabilita el bloque.
VAR_INPUTValue1BYTE USINT SINT WORD UINT INT DWORD UDINT DINT REALMinuendo de la operación.
VAR_INPUTValue2BYTE USINT SINT WORD UINT INT DWORD UDINT DINT REALSustraendo de la operación.
VAR_OUTPUTDoneBOOLIndica que la operación finalizó.
VAR_OUTPUTResultBYTE USINT SINT WORD UINT INT DWORD UDINT DINT REALVariable que almacena el resultado de la operación.

Operación

Cuando EN es TRUE, el bloque escribe el resultado de la resta entre Value1 y Value2 en Result.

Si la operación se completa sin errores, se establece Done. Si se produce un error en la operación, Done permanece como FALSE y Result conserva su valor anterior.

Cuando EN es FALSE, Result permanece inalterado y Done permanece FALSE.

Diagrama de flujo de ejecución

Diagrama de flujo de ejecución de la subrutina

Ejemplos

Ejemplo 1 de subrutina tipo Ladder

Este ejemplo resta VALUE2 de VALUE1 y almacena el resultado final en RESULT.

Ejemplo 2 de subrutina Ladder

Este ejemplo resta VALUE2 de VALUE1 y almacena el resultado final en RESULT. El bloque acepta argumentos con signos diferentes.

Ejemplo 3 de Diagrama Ladder SUB

Este ejemplo resta VALUE2 de VALUE1. El resultado final, 141, no puede almacenarse en RESULT porque queda fuera del rango aceptado para SINT. Por este motivo, RESULT permanece inalterado y la salida se deshabilita.