Bloco que executa a função de um controlador PID discreto. A partir das variáveis de entrada, ele calcula a saída correspondente do controlador.
Representação Ladder

Estrutura do Bloco
Tipo de Variável |
Nome |
Tipo de Dado |
Descrição |
VAR_INPUT |
EN |
BOOL |
Habilitação do bloco |
SetPoint |
REAL |
Referência automática (pré-controle) |
|
ManualSetPoint |
REAL |
Referência forçada (pós-controle) |
|
SelectSetPoint |
BOOL |
Seleciona qual referência utilizar |
|
Feedback |
REAL |
Variável de realimentação da malha |
|
MinimumOutput |
REAL |
Valor mínimo da saída do controlador |
|
MaximumOutput |
REAL |
Valor máximo da saída do controlador |
|
Kp |
REAL |
Ganho proporcional |
|
Ki |
REAL |
Ganho integral |
|
Kd |
REAL |
Ganho derivativo |
|
TauSetPoint# |
REAL |
Constante de tempo do filtro de entrada de referência automática |
|
Type# |
BYTE |
Tipo de controlador |
|
Action# |
BYTE |
Ação de controle |
|
Ts# |
UINT |
Período de amostragem [ms] |
|
VAR_OUTPUT |
ENO |
BOOL |
Habilitação de saída |
Output |
REAL |
Saída do controlador |
|
VAR |
PID_INST_0 |
PID |
Instância de acesso à estrutura do bloco |
Funcionamento
Na transição positiva de borda em EN, Output recebe valor zero, e o bloco executa sua funcionalidade enquanto EN estiver em nível TRUE.
Quando habilitado, este bloco executa uma rotina de controle PID com os parâmetros Kp, Ki e Kd escolhidos. A topologia PID utilizada poderá ser a Acadêmica ou a Paralela, dependendo do que for escolhido em Type#.
Topologia acadêmica:

Topologia paralela:

Os níveis do sinal da saída do controlador são saturados pelo valor de MinimumOutput e MaximumOutput. A entrada SelectSetPoint em nível FALSE faz com que a referência adotada seja SetPoint, permitindo que o controlador exerça domínio sobre o processo. Quando SelectSetPoint vai para nível TRUE, o controlador não exerce mais domínio, sendo que ManualSetPoint passa a ser considerado o sinal de saída do controlador.
Action# definirá a operação de realimentação. Se Action# for DIRECT, a operação será SetPoint – Feedback. Se Action# for REVERSE, a operação será Feedback – SetPoint.
Feedback recebe a variável de processo considerada como saída da planta. Ts# recebe o período de amostragem para o controlador e TauSetPoint# recebe a constante de tempo para o filtro de entrada da referência automática.
Quando EN possui valor FALSE, Output permanece inalterado.
O valor de ENO repassa para o próximo bloco Ladder o valor de EN após finalizada a operação.
|
NOTA! Efeito da alteração dos ganhos sobre o processo:
|
|
NOTA! Como melhorar o desempenho do processo pelo ajuste dos ganhos (válido para o PID Acadêmico)
|
Fluxograma do Bloco

Exemplo em Ladder

O exemplo acima cria uma malha de um PID acadêmico digital, com tempo de amostragem de 50 ms, utilizando as constantes KP, KI e KD para o controle. É utilizada a referência automática SETPOINT, filtrada por um filtro de primeira ordem com constante de tempo 0.01. O sinal de erro é calculado como a diferença entre a referência filtrada e a variável SAIDA_PLANTA. A saída do controlador é saturada entre os valores 0.1 e 2.5 e enviada para a variável ENTRADA_PLANTA.
Exemplo em ST
O exemplo abaixo, exibe as instruções para aplicação do exemplo acima na linguagem ST.
VAR SETPOINT, SAIDA_PLANTA, ENTRADA_PLANTA : REAL; KP : REAL := 6.2; KI : REAL := 1.3; KD : REAL := 1.8; PID_INST_2 : FB_PID; END_VAR
PID_INST_2.EN := DI1; PID_INST_2( SetPoint:=SETPOINT, ManualSetPoint:=1, SelectSetPoint:=FALSE, Feedback:=SAIDA_PLANTA, MinimumOutput:=0.1, MaximumOutput:=2.5, Kp:=KP, Ki:=KI, Kd:=KD, TauSetPoint:=0.01, Type:=0, Action:=0, Ts:=50); ENTRADA_PLANTA := PID_INST_2.Output; DO1 := PID_INST_2.ENO;
|
|---|