Páginas

segunda-feira, 8 de novembro de 2010

PID no RSLogix 500

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 ninguém digite ou coloque menos do que 0% e mais de 100%, podendo gerar problemas:



Na linha 27 eu setei alguns bits 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:


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 (214), 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:


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:


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 o 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:


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:


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:


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:


Jogando um valor qualquer ele para de travar. E é isso, agora é só ajustar os parametros do PID e ser feliz!!

Um comentário: