Primeiramente, para se usar um PID você precisa ter uma entrada analógica com a variável de processo que você deseja controlar,
e uma saída analógica para implementar o elemento final de controle pela MV.
Vamos supor que seja um controle de temperatura típico, em malha fechada, primeiro eu vou proteger o meu Set-Point, para que
nimguém digite ou coloque menos do que 0% e mais de 100% do range (de 0 a 100ºC por exemplo), podendo gerar problemas:
[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]
Na linha 27 eu setei alguns flags da palavra de controle do PID (no caso a N77:60), você pode ver a função de cada flag do PID no
help do RSLogix 500, na linha 28 eu defino se o PID vai trabalhar em automático ou manual:
[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]
Na linha 29 eu estou passando a PV (Variável primária) para unidade de engenharia, no caso, a unidade de engenharia de trabalho
do PID é de 0 ~ 16383, no caso, o valor que uso pra calcular a unidade de engenharia do PID é o valor já calculado anteriormente,
de -20 ~ 120 pois esse é o range do transmissor de temperatura, vindo da entrada analógica:
[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]
Logo depois o Set Point também precisa ser passado para unidade de engenharia do PID, no caso de 0 ~ 100% para 0 ~ 16383,
o Set-Point é jogado diretamente na palavra de controle do PLC, na segunda palavra, ele ocupa 23 palavras, algumas funções especiais
de algumas palavras, como a do set-point, podem ser encontradas no help do RSLogix 500:
[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]
Agora vem o cálculo da MV, que é praticamente igual, a única diferença é que ela “sai” do PID, ou seja, é necessário escalonar a
variável de saída do PID de 0 ~ 16383 para 0% ~ 100% por exemplo, e esses dois bits com o mesmo endereço (N77:60/1) são os
bit de automático manual, se o PID estiver em automático, o PID joga o valor para a MV, no caso, N77:88, caso contrário, o valor é
jogado na saída do PID, o valor da MV geralmente é consumido por uma lógica auxiliar que a transforma em unidade de engenharia
e joga para uma saída analógica N77:88 no caso:
[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]
E finalmente o PID, com suas respectivas palavras de entradas e saídas, Control Block são as palavras de controle do PID, as palavras
que ele consome, que são 23 no caso, algumas tem uso prático como o Set Point que é a terceira palavra, os flags também ficam nessas
palavras, o resto é consumido em cálculos internos:
[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]
Quando da implementação de alguns PID's no RSLogix 500, já havia me deparado com um problema que só solucionei essa semana,
não encontrei isso em nenhum manual, o que acontece é o seguinte, quando eu entrava com o PID na lógica o processador entrava em
falha e o PLC travava, a falha era a seguinte:
[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]
Falha 0036, após checar todas as variáveis que entravam e saiam do PID e não achar nada errado, acabei descobrindo que existe
uma variável no PID que vem zerada quando você vai implementá-lo na lógica, mas ela não pode ficar zerada, pois senão o PID entra
em um loop infinito, travando o PLC, esse parâmetro é o Loop Update:
[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]
Jogando um valor qualquer ele para de travar. E é isso, agora é só ajustar os parametros do PID e ser feliz!!
e uma saída analógica para implementar o elemento final de controle pela MV.
Vamos supor que seja um controle de temperatura típico, em malha fechada, primeiro eu vou proteger o meu Set-Point, para que
nimguém digite ou coloque menos do que 0% e mais de 100% do range (de 0 a 100ºC por exemplo), podendo gerar problemas:
[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]
Na linha 27 eu setei alguns flags da palavra de controle do PID (no caso a N77:60), você pode ver a função de cada flag do PID no
help do RSLogix 500, na linha 28 eu defino se o PID vai trabalhar em automático ou manual:
[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]
Na linha 29 eu estou passando a PV (Variável primária) para unidade de engenharia, no caso, a unidade de engenharia de trabalho
do PID é de 0 ~ 16383, no caso, o valor que uso pra calcular a unidade de engenharia do PID é o valor já calculado anteriormente,
de -20 ~ 120 pois esse é o range do transmissor de temperatura, vindo da entrada analógica:
[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]
Logo depois o Set Point também precisa ser passado para unidade de engenharia do PID, no caso de 0 ~ 100% para 0 ~ 16383,
o Set-Point é jogado diretamente na palavra de controle do PLC, na segunda palavra, ele ocupa 23 palavras, algumas funções especiais
de algumas palavras, como a do set-point, podem ser encontradas no help do RSLogix 500:
[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]
Agora vem o cálculo da MV, que é praticamente igual, a única diferença é que ela “sai” do PID, ou seja, é necessário escalonar a
variável de saída do PID de 0 ~ 16383 para 0% ~ 100% por exemplo, e esses dois bits com o mesmo endereço (N77:60/1) são os
bit de automático manual, se o PID estiver em automático, o PID joga o valor para a MV, no caso, N77:88, caso contrário, o valor é
jogado na saída do PID, o valor da MV geralmente é consumido por uma lógica auxiliar que a transforma em unidade de engenharia
e joga para uma saída analógica N77:88 no caso:
[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]
E finalmente o PID, com suas respectivas palavras de entradas e saídas, Control Block são as palavras de controle do PID, as palavras
que ele consome, que são 23 no caso, algumas tem uso prático como o Set Point que é a terceira palavra, os flags também ficam nessas
palavras, o resto é consumido em cálculos internos:
[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]
Quando da implementação de alguns PID's no RSLogix 500, já havia me deparado com um problema que só solucionei essa semana,
não encontrei isso em nenhum manual, o que acontece é o seguinte, quando eu entrava com o PID na lógica o processador entrava em
falha e o PLC travava, a falha era a seguinte:
[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]
Falha 0036, após checar todas as variáveis que entravam e saiam do PID e não achar nada errado, acabei descobrindo que existe
uma variável no PID que vem zerada quando você vai implementá-lo na lógica, mas ela não pode ficar zerada, pois senão o PID entra
em um loop infinito, travando o PLC, esse parâmetro é o Loop Update:
[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]
Jogando um valor qualquer ele para de travar. E é isso, agora é só ajustar os parametros do PID e ser feliz!!