Bloco que executa contagem dos pulsos de encoder.
Representação Ladder

Estrutura do Bloco
Tipo de Variável |
Nome |
Tipo de Dado |
Descrição |
VAR_INPUT |
EN |
BOOL |
Habilitação do bloco |
COUNT_SRC |
BYTE |
Determina qual o encoder será utilizado na contagem dos pulsos |
|
PRESET |
BOOL |
Atribui o valor de PV a CV |
|
RESET# |
BYTE |
Escolhe o controle do reset de CV |
|
RESET_VAR |
BOOL |
Caso a escolha de RESET# seja por variável, realiza o reset de CV quando em valor TRUE |
|
SAVE# |
BYTE |
Escolhe o controle do salvamento do contador |
|
SAVE_VAR |
BOOL |
Caso a escolha de SAVE# seja por variável, realiza o salvamento de CV em SV quando em valor TRUE |
|
REF_CNT |
LREAL |
Valor de pulso de referência para habilitação de saída |
|
PV |
LREAL |
Valor de configuração inicial |
|
RESTART |
LREAL |
Valor de referência para reset automático de CV |
|
VAR_OUTPUT |
Q |
BOOL |
Habilitação da saída |
RESET_OCC |
BOOL |
Sinalizador de reset |
|
SAVE_OCC |
BOOL |
Sinalizador de salvamento |
|
CV |
LREAL |
Valor do contador de pulsos |
|
SV |
LREAL |
Valor do contador salvo pela última vez |
|
VAR |
READENC5_INST_0 |
READENC5 |
Instância de acesso à estrutura do bloco |
Funcionamento
Este bloco, quando identifica uma borda de subida em EN, zera suas saídas e realiza a contagem dos pulsos do encoder especificado em COUNT_SRC enquanto habilitado. Esse valor de contagem é armazenado em CV.
O controle especificado em RESET# zera o contador quando for ativado, enquanto o controle especificado em SAVE#, quanto ativado, armazena o valor de CV em SV. Cada um desses controles seta seu respectivo sinalizador (RESET_OCC ou SAVE_OCC) por um ciclo de scan.
O bloco também permite configurar um reset automático, quando CV atinge o valore de RESTART.
O valor de Q é ativado por um ciclo de scan quando CV atinge o valor de REF_CNT.
Fluxograma do Bloco

Exemplo em Ladder

O exemplo acima realiza a leitura do encoder 1, armazenando o valor em COUNTER, com referência de contagem REF e controles de RESET e SAVE realizados pelas variáveis LOAD_ZERO e SAVE_COUNT, respectivamente. Quando COUNTER for igual a REF, a saída Q é ativada por um ciclo de scan.
Exemplo em ST
O exemplo abaixo, exibe as instruções para aplicação do exemplo acima na linguagem ST.
VAR LOAD_PRESET, LOAD_ZERO, SAVE_COUNT : BOOL; REF1, PRESET_VALUE, RESTART : LREAL; FLAG_RESET, FLAG_SAVE : BOOL; COUNTER, COUNTER_SAVED : LREAL; FB_READENC5_INST_0 : FB_READENC5; END_VAR
FB_READENC5_INST_0( EN:=DI1, COUNT_SRC:=1, PRESET:=LOAD_PRESET, RESET:=0, RESET_VAR:=LOAD_ZERO, SAVE:=0, SAVE_VAR:=SAVE_COUNT, REF_CNT:=REF1, PV:=PRESET_VALUE, RESTART:=RESTART, RESET_OCC=>FLAG_RESET, SAVE_OCC=>FLAG_SAVE, CV=>COUNTER, SV=>COUNTER_SAVED, Q=>DO1);
|
|---|