FFU (descarga FIFO)

A instrução FFU descarrega dados de 8, 16 ou 32 ou 64 bits de uma matriz unidimensional criada pelo usuário chamada de pilha FIFO (primeiro a entrar, primeiro a sair) na mesma ordem em que os dados foram carregados usando a instrução FFL.
Detalhes da operação:
  • Instrução FFU - Modo de não execução para modo de execução:
    • Quando Executar muda de FALSE para TRUE:
      • Condições de erro FFU são verificadas.
      • Descarrega o conteúdo da pilha FIFO na posição zero se a Posição for maior que zero e menor ou igual ao Comprimento.
      • Os elementos restantes deslocam-se uma posição na direção de zero e o elemento mais alto da pilha FIFO é definido com zero, a Position é reduzida por um.
      • Vazio é definido como TRUE se a Posição for igual a zero.
      • Concluído é definido quando a instrução é executada com êxito.
    • Quando Executar muda de TRUE para FALSE:
      • Erro, Concluído e ErrorID são definidos como FALSE.
      • Vazio é definido como TRUE se a Posição for igual a zero.
      • Total é definido como TRUE se Comprimento for igual a Posição. O Total é definido como FALSE se a Posição for menor ou igual a zero e menor que o Comprimento.
      • As condições de erro FFU não são verificadas.
    • Quando Executar muda de TRUE para TRUE:
      • Nenhuma operação de descarga é realizada.
      • Vazio é definido como TRUE se a Posição for igual a zero.
      • Total é definido como TRUE se Comprimento for igual a Posição.
      • As condições de erro FFU não são verificadas.
    • Quando Executar muda de FALSE para FALSE:
      • Erro, Concluído e ErrorID são definidos como FALSE.
      • Vazio é definido como TRUE se a Posição for igual a zero.
      • Total é definido como TRUE se Comprimento for igual a Posição. O Total é definido como FALSE se a Posição for menor ou igual a zero e menor que o Comprimento.
      • As condições de erro FLU não são verificadas.
  • Instrução FFU - Modo de execução para modo de não execução:
    • Erro, ErrorID, Concluído, Vazio e Total mantêm o estado do modo Executar.
  • Para criar um elemento simples para o parâmetro FIFO:
    • Não matriz:
      • Endereço baseado em variável, como Fifo1, é permitido para FIFO.
      • O comprimento deve ser configurado como 1.
    • Matriz unidimensional:
      • Endereço baseado em variável, como Fifo1 ou Fifo1[0], é permitido para FIFO.
      • O comprimento deve ser configurado como 1.
Linguagens suportadas: Diagrama de blocos de função, diagrama de ladder, texto estruturado.
Essa instrução aplica-se aos controladores L20E, L50E e L70E.
FFU
FFU
Parâmetros da FFU
Parâmetro
Tipo do parâmetro
Tipo de dados
Descrição
Execute
Entrada
BOOL
Habilitação do bloco de instruções.
  • TRUE: Se borda ascendente for detectada, iniciará a operação FFU.
  • FALSE: Borda ascendente não detectada.
Dest
Entrada
ANY_ELEMENTARY
Mantém o valor que existe na pilha FIFO.
Tipos de dados elementares suportados para Dest:
  • DWORD, REAL, TIME, DATE, LWORD, ULINT, LINT, LREAL, BOOL, SINT, USINT, BYTE, INT, UINT, WORD, DINT, UDINT.
  • String não é compatível.
  • É compatível apenas com matrizes unidimensionais como Matriz[1] ou Matriz[Índice].
DestOffset
Entrada
UINT
Offset do elemento de destino.
Offset de elemento se o destino for tipo de dados de matriz unidimensional, caso contrário, o offset deve ser definido como 0.
Para tipo de dados de matriz, para descarregar o primeiro elemento, o offset deve ser definido como 0.
FIFO
Entrada
ANY_ELEMENTARY
O endereço inicial da pilha. FIFO deve ser configurado igual nas instruções FFL e FFU.
  • Tipos de dados elementares suportados para FIFO:
    DWORD, REAL, TIME, DATE, LWORD, ULINT, LINT, LREAL, BOOL, SINT, USINT, BYTE, INT, UINT, WORD, DINT, UDINT.
  • String não é compatível.
  • Apenas matriz unidimensional é compatível para FIFO.
FIFOCon
Entrada
FF_LF_CON
Configuração e controle de FIFO. A mesma configuração deve ser definida para as instruções FFL e FFU.
Use o tipo de dados FF_LF_CON para configurar a Posição e o Comprimento.
Done
Saída
BOOL
Indica quando a operação FFU é concluída.
  • TRUE: Operação concluída com êxito.
  • FALSE: Operação encontrou uma condição de erro ou a instrução FFU não está executando.
Full
Saída
BOOL
Indica quando a pilha FIFO está cheia.
  • TRUE: Quando o Comprimento for igual à Posição.
  • FALSE: Quando a Posição for maior que zero e menor que o Comprimento.
Empty
Saída
BOOL
Indica quando a pilha FIFO está vazia.
  • TRUE: Quando a Posição for igual a 0.
  • FALSE: Quando a Posição não for igual a 0.
Error
Saída
BOOL
Indica a existência de uma condição de erro.
  • TRUE: A operação encontrou um erro.
  • FALSE: Operação concluída com êxito ou a instrução não está sendo executada.
ErrorID
Saída
USINT
Um numérico exclusivo que identifica o erro. Os erros são definidos nos códigos de erro FFU.
Tipo de dados FF_LF_CON
Parâmetro
Tipo de dados
Descrição
Length
UINT
Número de elementos usados para a operação de FIFO. O limite máximo é 1024.
Position
USINT
Determina o próximo local disponível no FIFO para a entrada ou remoção de origem. A posição é o deslocamento da matriz.
  • Exemplo 1:
    Matriz configurada pelo usuário, arr[0..5]. A posição inicial é configurada como 1. Os dados são enviados em arr[1] e a posição aumenta em incrementos pela posição + 1.
  • Exemplo 2:
    Matriz unidimensional configurada pelo usuário como arr[1..5]. A posição inicial é configurada como 1. Os dados são enviados em arr[2] e a posição aumenta em incrementos pela posição + 1.
Códigos de erro FFU
Código de erro
Descrição do erro
0
Sem erro.
1
O tipo de dados de origem FFL não é suportado.
2
O tipo de dados de destino FFU não é suportado.
3
O tipo de dados FIFO não é suportado.
4
Incompatibilidade do tipo de dados de origem e de destino com o tipo de dados FIFO.
Ação corretiva:
Os tipos de dados do parâmetro de origem FFL e do parâmetro de destino FFU devem coincidir com o tipo de dados da matriz FIFO.
5
FIFO: A dimensão da matriz não é compatível.
Ação corretiva:
FIFO é compatível apenas com matrizes unidimensionais.
6
O comprimento de controle de FIFOCon excede o tamanho da matriz FIFO.
Ação corretiva:
O comprimento de controle de FIFOCon não pode exceder o tamanho da matriz FIFO.
7
O comprimento de FIFOCon excede o comprimento máximo.
8
O comprimento de FIFOCon é zero.
9
A posição de FIFOCon excede o comprimento de FIFOCon.
10
O comprimento de controle de FFL e a posição são iguais.
11
A posição de controle de FFU é zero.
12
A dimensão da matriz FFL ou FFU não é suportada.
Ação corretiva:
FFL e FFU são compatíveis apenas com matrizes unidimensionais.
13
DestOffset de FFL ou FFU excede o tamanho da matriz de destino.

Exemplos de FFU

Exemplo de diagrama de blocos de função FFU
Exemplo de diagrama de blocos de função FFU
Exemplo de diagrama de ladder FFU
Exemplo de diagrama de ladder FFU
Exemplo de texto estruturado FFU
Exemplo de texto estruturado FFU
Resultados
Resultados
Dê sua opinião
Tem dúvidas ou comentários sobre esta documentação? Por favor, envie seu comentário aqui.
Normal