Bloque que lee el valor de pulsos de un encoder de acuerdo con un tipo de lectura escogido, calculando diferenciales entre llamadas al bloque.
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 |
|
Delta |
DINT DWORD UDINT |
Diferencial entre conteo actual y conteo anterior |
Operación
Este bloque, cuando tiene un valor TRUE en EN, obtiene el número de pulsos contados en el encoder desde la energización del PLC300, conforme seleccionado en Source#, y los transfiere a Value. El valor de Delta será la diferencia entre los pulsos contados en esa ejecución y en la ejecución anterior.
Cuando EN tiene valor FALSE, Value y Delta permanecen inalterados.
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, obtiene el número de pulsos en la entrada A desde la energización del equipo, almacenando el valor en VALUE. La diferencia entre el valor actual y el valor leído anteriormente es almacenada en DIFFERENCE. 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; DIFFERENCE : UDINT; END_VAR
DO1 := FB_READENC3( EN:=DI1, Source:=1, Value=>VALUE, Delta=>DIFFERENCE);
|
|---|