Implementação em CLP
Retorna para tópico anterior | Conteúdo deste tópico – CLPs Baseados em Ciclo de Scan Único – Efeitos de Ciclos de Execução Irregulares – Método de Temporização |
Avança para próximo tópico |
A figura abaixo mostra o esquema de uma malha de controle baseada em CLP. O cálculo PID é realizado no CLP por meio de operações matemáticas programadas ou utilizando um bloco funcional dedicado. A interação com o processo se dá por meio de cartões analógicos de entrada e saída, que funcionam como conversores A/D e D/A respectivamente.
A cada ciclo de scan, o sinal de entrada (variável controlada) é processado e uma ação de controle é gerada e transmitida para o atuador. A Figura 21, à esquerda, mostra um fragmento de um programa em Ladder com a chamada de um bloco PID em um CLP comercial. Um temporizador é utilizado para determinar o intervalo de execução (ou tempo de ciclo) do bloco. Para configuração do bloco, devem-se informar os valores dos parâmetros de sintonia (P, I e D), os endereços das variáveis para leitura dos sinais (PV/SP) e o endereço da variável para escrita da saída (MV). À direita, a figura mostra a janela de configuração do bloco, onde alguns dos parâmetros são:
- “PID Equation: Independent” (algoritmo do tipo paralelo);
- “Derivative Of: PV” (ação derivativa a partir da PV)
- “Control Action: SP-PV” (Ação de controle direta)
- “PV Tracking: No” (Transferência suave do tipo PV-Track desativada)
- “Update Time (Secs): 0.5” (Tempo de amostragem do bloco de 500 ms)
- Engineering Units e Input Range (Valores para normalização de escala da PV e SP)
CLPs Baseados em Ciclo de Scan Único
CLPs modernos incorporaram tecnologias de gerenciamento de tarefas herdadas dos sistemas operacionais multi-tarefas com escalonamento preemptivo ou não-preemptivo de tarefas. Nesses sistemas, as instruções são divididas em tarefas com períodos de scan e níveis de prioridades determinados. Este tipo de CLP é mais adequado para implementação de malhas de controle, pois consegue garantir um intervalo de execução regular para os blocos as instruções de controle.
Porém até o final da década de 1990, todos os CLPs executavam as lógicas como uma seqüência única de instruções que eram “quebradas” apenas por desvios condicionais (chamadas a sub-rotinas) ou incondicionais (jump’s). Chamaremos estes controladores de CLPs baseado em ciclo de scan único.
A Figura abaixo é uma representação do ciclo típico de operação de um CLP.
O tempo que se leva para completar um ciclo depende da quantidade de pontos de Entrada e Saída (E/S) e do tamanho do programa. Ciclos de scan típicos são de 10 a 200 mseg, apesar de poderem variar de poucos milissegundos a vários segundos. As partes de inicialização e a atualização de E/S normalmente não variam de um ciclo para outro. Entretanto, o período de um ciclo de scan pode mudar devido à chamada de subrotinas ou devido ao tratamento de interrupções e eventos de comunicação.
A linha de tempo abaixo mostra a tendência do período de scan de um CLP cujo programa faz chamada para uma sub-rotina de cálculos. Em dado momento, o período de scan pulou de 50 para mais de 100 ms.
Esse ciclo de scan variável irá causar erros no cálculo do bloco PID de não for considerado. A chamada a um bloco PID deve ser realizada em intervalos rigidamente regulares. Se isso não for possível, as variações no tempo de scan devem ser compensadas no cálculo do PID.
Efeitos de Ciclos de Execução Irregulares
O tempo de execução de um controlador PID é determinado via programação mas em muitos controladores ele também deve ser informado como um parâmetro interno do bloco PID. Este parâmetro, chamado “update time” ou “tempo de atualização”, é utilizado diretamente no cálculo dos termos integral e derivativo (ver equação abaixo).
Equação PID na forma discreta
Dessa forma, para que o cálculo seja executado corretamente, o parâmetro Update Time deve ser necessariamente igual ao período em que o bloco é executado. Porém, quando o tempo de scan do CLP varia, esta condição deixa de existir, pois o UpdateTime é geralmente um parâmetro fixo. A conseqüência é um erro no cálculo do controlador, ilustrado na Figura 24. Este problema é significativo quando a variação do ciclo de scan do CLP representa mais de 10% do tempo de atualização do bloco PID.
Método de Temporização
Para contornar o problema causada pela variação no ciclo de scan, uma solução é o uso de um temporizador controlando a execução do bloco PID e o uso de uma instrução para correção do parâmetro interno UPD Time com o valor do último tempo de scan. O preset do temporizador deve ser ajustado com o maior valor possível, respeitando as recomendações sobre o tempo de amostragem do controlador.
A Figura 25 mostra um exemplo de uma implementação de malha PID. A chamada do bloco PID (PD18:11) é determinada pelo temporizador T9:416, com um intervalo de execução de 200ms. Note que, após o final da contagem, o valor acumulado no temporizador é movido para o parâmetro PD18:11.UPD (UpdateTime do bloco PID). Esta operação, feita sempre que o PID é ativado, considera as variações de ciclo de Scan, aumentando a precisão do cálculo do controlador.
Esta solução, no entanto, funciona bem para PIDs com atualização acima de 100ms. Para valores inferiores, recomenda-se o uso de instruções de tempo real disponíveis em alguns CLPs. Estas instruções são executadas como interrupções independentes do ciclo de execução.