FIFO
Este bloco implementa um buffer do tipo FIFO. É fornecido um vetor de um estrutura (ou tipo nativo qualquer). Implementa uma FIFO no vetor fornecido, disponibilizando recursos para inserir e remover dados.
Bloco
FIFO
+--------------+
BOOL ----|RD EMPTY|---- BOOL
| |
BOOL ----|WR FULL|---- BOOL
| |
BOOL ----|CLEAR RESULT|---- INT
| |
| COUNT|---- UINT
| |
ANY ----|FIFO -------- |---- ANY
| |
ANY ----|DATA -------- |---- ANY
+--------------+
..Important:
Comandos de escrita e leitura simultâneos não são permitidos gerando erro.
Parâmetros
Nome |
Parâmetro |
Tipo Dado |
V. Ini. |
Descrição |
RD |
Entrada |
BOOL |
FALSE |
Leitura da FIFO (POP) |
WR |
Entrada |
BOOL |
FALSE |
Escrita da FIFO (PUSH) |
CLEAR |
Entrada |
BOOL |
FALSE |
Limpa FIFO |
EMPTY |
Saída |
BOOL |
TRUE |
FIFO vazia |
FULL |
Saída |
BOOL |
FALSE |
FIFO cheia |
RESULT |
Saída |
INT |
0 |
Resultado da operação |
COUNT |
Saída |
UINT |
0 |
Número de registros presentes na FIFO |
FIFO |
Entrada/Saída |
ANY |
Estrutura de dados da FIFO (vetor de DATA) |
|
DATA |
Entrada/Saída |
ANY |
Variável a ser inserida ou obtida da FIFO |
RESULT
Tipo Dado |
Descrição |
INT |
Código de retorno na execução da função, do tipo RET_CODE, onde:
|
Exemplo
Declaração de Variáveis
Nome |
Tipo |
Dimensão |
Descrição |
|---|---|---|---|
my_FIFO |
HILS.FIFO |
Instancia da FIFO |
|
my_BUF |
UINT |
[0..29] |
Buffer para os ultimos 30 dias de dados |
value |
UINT |
Valor da FIFO |
Código ST
(* Exemplo de utilização de FIFO *)
(* ... *)
(* Insere valor na FIFO *)
value := 100;
my_FIFO(
RD := FALSE,
WR := TRUE,
CLEAR := FALSE,
FIFO := my_BUF, (* buffer de valores *)
DATA := value (* valor a ser inserido na FIFO *)
);
(* ... *)
(* Obtem o valor mais antigo da FIFO *)
my_FIFO(
RD := TRUE,
WR := FALSE,
CLEAR := FALSE,
FIFO := my_BUF, (* buffer de valores *)
DATA := value (* obtem o valor mais antigo da FIFO *)
);
(* ... *)