ONF_CTRL

Implementa um controlador liga-desliga (ON-OFF) com histerese sobre a variável de processo, com modos manual/automático, inversão da saída, congelamento e tempo mínimo entre comutações; é um bloco de função (mantém estado entre scans; requer instância).

Biblioteca: HI_STD · Namespace: HILS · Tipo: bloco de função

Bloco de função

             ONF_CTRL
         +---------------+
BOOL ----|RUN         OUT|---- BOOL
         |               |
BOOL ----|INV            |
         |               |
BOOL ----|MAN_AUT        |
         |               |
BOOL ----|MAN_OUT        |
         |               |
REAL ----|SP             |
         |               |
REAL ----|PV             |
         |               |
REAL ----|HIS            |
         |               |
TIME ----|LOCK           |
         |               |
BOOL ----|FREEZE         |
         +---------------+

Quando a entrada RUN está inativa a saída OUT é zero e o bloco de controle não é executado.

Quando RUN está ativa, a entrada MAN_AUT define o comportamento do bloco. Se MAN_AUT estiver inativa, o valor da saída é definido pela entrada MAN_OUT (modo manual). Se MAN_AUT estiver ativa, o valor da saída é calculado em função das entradas PV, SP e HIS (modo automático).

Os valores de PV, SP e HIS devem estar na mesma faixa de unidade de engenharia.

Se o valor da histerese for maior que zero, o comportamento do controle é o seguinte:

       |
       |                 ...
       |                .   ...               ...
SP+HIS |_______________._______._____________.___._______
       |            ...         .           .     .
       |           .             ..        .       .
    SP |________...________________.______._________.____
       |     ..                     ..   .           ..
       |   ..                         . .
       |  .                            .
    PV |..
       |
       +-------------------------------------------------

    OV |---------------+           +---------+      +----
       |               |           |         |      |
       +               +-----------+         +------+

Se PV >= SP + HIS   => OV = FALSE
Se PV <  SP         => OV = TRUE

Se o valor da histerese for menor que zero, o comportamento do controle é o seguinte:

       |
       |                 ...
       |                .   ...               ...
    SP |_______________._______._____________.___._______
       |            ...         .           .     .
       |           .             ..        .       .
SP-HIS |________...________________.______._________.____
       |     ..                     ..   .           ..
       |   ..                         . .
       |  .                            .
    PV |..
       |
       +-------------------------------------------------

    OV |---------------+           +---------+      +----
       |               |           |         |      |
       +               +-----------+         +------+

Se PV >  SP        => OV = FALSE
Se PV <= SP - HIS  => OV = TRUE

A entrada INV, quando ativada, inverte o estado da saída de controle.

A entrada LOCK define um tempo mínimo para a variação da saída de controle. Ou seja, se LOCK for igual a 5 segundos, a saída de controle, após alterar seu estado, se manterá na mesma condição por pelo menos 5 segundos, mesmo que o bloco de controle leve o sinal de saída para o outro estado.

Se a entrada FREEZE se tornar ativa, a saída de controle é mantida no estado presente no instante da transição desse sinal.

Parâmetros

Nome

Direção

Tipo

Padrão

Faixa / Unidade

Descrição

RUN

IN

BOOL

TRUE

—

Habilita o controle (TRUE); desliga a saída quando FALSE.

INV

IN

BOOL

FALSE

—

Habilita o controle invertido (inverte o estado da saída).

MAN_AUT

IN

BOOL

TRUE

—

Modo manual (FALSE) ou automático (TRUE).

MAN_OUT

IN

BOOL

FALSE

—

Valor da saída de controle no modo manual.

SP

IN

REAL

0.0

Unid. de engenharia

Setpoint do processo.

PV

IN

REAL

0.0

Unid. de engenharia

Variável de processo.

HIS

IN

REAL

0.0

Unid. de engenharia

Histerese de controle.

LOCK

IN

TIME

T#1s

—

Tempo de congelamento da saída após alteração de valor.

FREEZE

IN

BOOL

FALSE

—

Congela o valor da saída de controle no estado corrente.

OUT

OUT

BOOL

FALSE

—

Saída de controle.

Pré-condições

  • PV, SP e HIS devem estar na mesma faixa de unidade de engenharia.

  • RUN deve estar ativa para que o bloco de controle seja executado.

Observações

  • Com RUN inativa, OUT permanece em FALSE e o controle não é processado.

  • No modo manual (MAN_AUT inativa), OUT acompanha diretamente MAN_OUT.

  • LOCK garante um tempo mínimo entre comutações da saída; FREEZE mantém a saída no estado corrente enquanto ativo.

Exemplo

Clique aqui para baixar a tabela de variáveis

Código ST

VAR
    my_ONF    : HILS.ONF_CTRL; (* Instancia do bloco ONF_CTRL *)
    sp_value  : REAL;          (* Setpoint do processo *)
    pv_value  : REAL;          (* Variável de processo *)
    his_value : REAL;          (* Histeresse de controle *)
END_VAR

(* Exemplo de utilização do ONF_CTRL *)
sp_value  := 80.0; (* Setpoint do processo *)
pv_value  := 70.0; (* Variável de processo, ler de uma entrada analógica *)
his_value := 1.5;  (* Histeresse de controle *)

my_ONF(
        RUN    := TRUE,
        (* INV    := FALSE,   nao necessita ser atribuido se controle direto *)
        (* MAN_AUT:= TRUE,    nao necessita ser atribuido se operando sempre em automatico *)
        (* MAN_OUT:= FALSE,   nao necessita ser atribuido se operando sempre em automatico *)
        SP     := sp_value,
        PV     := pv_value,
        HIS    := his_value
        (* LOCK   := T#1s,    nao necessita ser atribuido se recurso de LOCK for de 1 seg *)
        (* FREEZE := FALSE    nao necessita ser atribuido se recurso de FREEZE nao for utilizado *)
      );

IF my_ONF.OUT THEN
    (* ... acao quando a saida de controle esta ativa ... *)
    ;
END_IF;