STACKINT (pilha inteiros)

A instrução STACKINT gerencia uma pilha de valores inteiros.
Detalhes da operação:
  • O STACKINT inclui uma detecção de borda ascendente para os comandos PUSH e POP. O tamanho máximo da pilha é 128. O valor OFLO é válido apenas após uma reinicialização (R1 foi definido para TRUE pelo menos uma vez e de volta para FALSE).
  • O tamanho da pilha (N) definido pelo aplicativo não pode ser menor que 1 ou maior que 128.
    • Se N < 1, STACKINT assume um tamanho de 1.
    • Se N > 128, STACKINT assume um tamanho de 128.
Linguagens suportadas: Diagrama de blocos de função, diagrama de ladder, texto estruturado.
Essa instrução aplica-se aos controladores Micro810, L20E, L50E e L70E.
STACKINT
STACKINT
Parâmetros da STACKINT
Parâmetro
Tipo do parâmetro
Tipo de dados
Descrição
PUSH
Entrada
BOOL
  • TRUE: Borda ascendente detectada, no comando PUSH. Adiciona o valor IN ao topo da pilha.
  • FALSE: Borda ascendente não detectada no comando PUSH.
POP
Entrada
BOOL
  • TRUE: Borda ascendente detectada, no comando POP. Exclui o último valor inserido no topo da pilha.
  • FALSE: Borda ascendente não detectada no comando POP.
R1
Entrada
BOOL
  • TRUE: Redefine a pilha para seu estado vazio.
  • FALSE: Sem redefinição.
IN
Entrada
DINT
Valor inserido.
N
Entrada
DINT
Tamanho da pilha definido pelo aplicativo. O tamanho máximo da pilha é 128
EMPTY
Saída
BOOL
  • TRUE: A pilha está vazia.
  • FALSE: A pilha contém valores.
OFLO
Saída
BOOL
  • TRUE: Estouro, a pilha está cheia e R1 foi definido como TRUE pelo menos uma vez e de volta como FALSE.
  • FALSE: O tamanho da pilha é 128 ou menos. Sem estouro.
OUT
Saída
DINT
Valor no topo da pilha.
OUT igual a 0 quando OFLO é TRUE.

Exemplos de STACKINT

Exemplo de diagrama de blocos de função STACKINT
Exemplo de diagrama de blocos de função STACKINT
Exemplo de diagrama de ladder STACKINT
Exemplo de diagrama de ladder STACKINT
Exemplo de texto estruturado STACKINT
Exemplo de texto estruturado STACKINT
(* ST Equivalence: STACKINT1 is an instance of a STACKINT block *) STACKINT1(err_detect, acknowledge, manual_mode, err_code, max_err); appli_alarm := auto_mode AND NOT(STACKINT1.EMPTY); err_alarm := STACKINT1.OFLO; last_error := STACKINT1.OUT;
Resultados
Resultados
Dê sua opinião
Tem dúvidas ou comentários sobre esta documentação? Por favor, envie seu comentário aqui.
Normal