Bloque que lee continuamente el valor de pulsos de un encoder de acuerdo con un tipo de lectura escogido.
Representación Ladder
![]()
Estructura del Bloque
Tipo de Variable |
Nombre |
Tipo de Dato |
Descripción |
VAR_INPUT |
EN |
BOOL |
Habilitación del bloque |
Source# |
BYTE |
Fuente de conteo |
|
VAR_OUTPUT |
ENO |
BOOL |
Habilitación de salida |
Value |
DINT DWORD UDINT |
Valor de conteo |
|
VAR |
READENC_INST_0 |
READENC |
Instancia de acceso a la estructura del bloque |
Operación
Este bloque, cuando tiene un valor TRUE en EN, obtiene el número de pulsos contados en el encoder, conforme es seleccionado en Source#, y los transfiere a Value.
Cuando EN tiene valor FALSE, Value permanece inalterado.
El valor de ENO pasa al próximo bloque Ladder el valor de EN, luego de finalizada la operación.
Diagrama de Flujo del Bloque

Ejemplo en Ladder

El ejemplo de arriba, al identificar un flanco de subida en DI1, comienza a contar el número de pulsos en el encoder conectado en conformación de cuadratura AB, almacenando el valor en VALUE. El bloque finaliza exitosamente y la salida ENO es activada.
Ejemplo en ST
El siguiente ejemplo muestra las instrucciones para aplicar el ejemplo anterior en el lenguaje ST.
VAR VALUE : UDINT; READENC_INST_0 : FB_READENC; END_VAR
READENC_INST_0.EN := DI1; READENC_INST_0(Source:=0); VALUE := READENC_INST_0.Value; DO1 := READENC_INST_0.ENO;
|
|---|