ONF_CTRL

Este bloco implementa um controlador do tipo ON-OFF com histeresse.

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 de LOCK define um tempo mínimo para a variação da saída de controle. Ou seja, se o tempo de LOCK for por exemplo igual a 5 segundos, a sáida de controle após alterar o 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 será mantiva no estado presente quando ocorreu a transição deste sinal.

Bloco

             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 estiver inativa o valor da saida OUT é zero e o bloco de controle não é executado

Quando a entrada RUN estiver ativa o valor da entrada MAN_AUT define o comportamento do bloco. Se MAN_AUT estiver inativo, valor da saída é definido pela entrada MAN_OUT. Se MAN_AUT estiver ativo, valor da saída é calculada em função dos parâmetros de entrada PV, SP e HIS.

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

Nome

Parâmetro

Tipo Dado

V. Ini.

Descrição

RUN

Entrada

BOOL

TRUE

Habilita o controle quando igual a TRUE, desliga a saída se FALSE

INV

Entrada

BOOL

FALSE

Habilita controle invertido [ Default = OFF ]

MAN_AUT

Entrada

BOOL

TRUE

Controle manual (OFF) ou automático (ON) [ Default = ON ]

MAN_OUT

Entrada

BOOL

0

Valor da saída de controle em modo manual

SP

Entrada

REAL

0.0

Setpoint do processo

PV

Entrada

REAL

0.0

Variável de processo

HIS

Entrada

REAL

0.0

Histeresse de controle

LOCK

Entrada

TIME

T#1s

Tempo de congelamento da saída após alteração de valor [ Default = 1 seg ]

FREEZE

Entrada

BOOL

FALSE

Congela o valor da saida de controle no estado corrente

OUT

Saída

BOOL

FALSE

Saída de controle

Exemplo

Declaração de Variáveis

Nome

Tipo

Descrição

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

Clique aqui para baixar a tabela de variáveis

Código ST

(* 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
  ...
end_if;
...