Bloque lógico utilizado para realizar reset de un bit específico en un campo.
Representación Ladder

Estructura del Bloque
Tipo de Variable |
Nombre |
Tipo de Dato |
Descripción |
VAR_IN_OUT |
Data |
BYTE USINT SINT WORD UINT INT DWORD UDINT DINT |
Variable cuyo bit será alterado |
VAR_INPUT |
EN |
BOOL |
Habilitación del bloque |
Position |
BYTE USINT |
Posición del bit que será alterado |
|
VAR_OUTPUT |
DONE |
BOOL |
Operación exitosa |
Operación
Cuando este bloque tenga un valor TRUE en EN, reseteará el bit indicado en Position, en la variable Data, que será pasada a la salida con su valor actualizado.
Cuando EN tiene valor FALSE, Data permanece inalterada.
La variable DONE recibe el mismo valor de EN, excepto cuando hay error en el reset del bit, recibiendo un valor FALSE.
|
¡NOTA! Es importante verificar que Position esté dentro del rango de valores de bits correspondiente al tipo de variable en Fecha. Por ejemplo: si Data es un BYTE, logo posee 8 bits, y Position debe comprender un valor entre 0 y 7. |
Diagrama de Flujo del Bloque

Ejemplo en Ladder

El ejemplo de arriba resetea el bit de la posición cero de AUX, cuyo valor inicial es 200 (1100 1000, en binario). Como este bit ya poseía valor FALSE, nada fue alterado.

El ejemplo de arriba resetea el bit de la posición tres de AUX, alterando su valor binario y, consecuentemente, su representación decimal.

El ejemplo de arriba resetea el bit de la posición nueve de AUX. Como AUX es una variable del tipo BYTE, tiene solamente ocho bits. Siendo así, el ejemplo de arriba genera un error de ejecución en el bloque y, por eso, la salida no es habilitada.
Ejemplo en ST
El siguiente ejemplo muestra las instrucciones para aplicar el ejemplo anterior en el lenguaje ST.
VAR AUX : BYTE := 2#1101_0000; POS : BYTE := 3; END_VAR
DO1 := FB_RESETBIT( EN:=DI1, Data:=AUX, Position:=POS);
|
|---|