O terceiro passo é dividido em duas partes. Na primeira parte é chamada uma sub- rotina denominada ATUALIZA, visto na Figura 4.5, que faz uma cópia dos valores armazenados no grupo de memórias M1Bi para um grupo de memórias M2Bi de modo a salvar neste grupo as informações dos eventos não controláveis Bi que ocorrem na planta. Esta duplicação de informação ocorre para evitar o efeito avalanche e não perder a informação dos eventos para os próximos passos.
Figura 4.5 - Bloco ATUALIZA
Na segunda parte são chamadas as sub-rotinas responsáveis pelas transições de estado devido aos eventos não controláveis (ENC) em cada um dos subsistemas Gi que compõem o sistema produto, ENC G1, ENC G2, ... Como o sistema produto é composto por subsistemas assíncronos, então o mesmo evento não provoca transição de estado em mais de um subsistema, de forma que não é necessário atualizar o grupo M1Bi chamando o bloco ATUALIZA antes de cada subsistema. Quando um subsistema Gi muda de estado, o evento que gerou a mudança torna-se falso. Isto é feito para não ocorrer o problema do efeito avalanche (FABIAN e HELLGREN, 1998). Na Figura 4.6 (a) é apresentado o ENC G1, referente ao autômato G1 na Figura 4.6 (b). Se o subsistema G1 estiver no estado “1” e o evento B1 ocorrer, variável M2B1 estiver verdadeira, G1 muda para o estado “0” e o valor de B1 do grupo de variáveis M2, M2B1, torna-se falso.
Figura 4.6 – Eventos não controláveis no subsistema Gi (a) ENC G1; (b) Autômato G1
4.2.4 Quarto passo
Neste passo são chamados os supervisores (ENC SA, ENC SB,...) para tratar os eventos não controláveis. Porém, antes da chamada a cada um dos supervisores é necessário fazer a atualização dos eventos, chamando o bloco ATUALIZA, pois os supervisores não são necessariamente assíncronos e então o mesmo evento pode promover a transição de estado em mais de um supervisor. Esta chamada pode ser vista na Figura 4.3 passo 4.
A Figura 4.7 mostra o supervisor SA, que trata os eventos não controláveis, ENC SA. Se o supervisor SA estiver no estado “0” e o ocorrer o evento B1, o supervisor muda para o estado “1” e o evento B1 do grupo de variáveis M2, M2B1, torna-se falso. A variável M2B1 torna-se falsa para evitar o efeito avalanche. Antes de chamar o próximo supervisor, são atualizados novamente os eventos, M2Bi, chamando o bloco ATUALIZA. Depois deste quarto passo, todos os eventos não controláveis gerados pela planta foram tratados.
Figura 4.7 –Eventos não controláveis nos supervisores (a) ENC SA; (b) Autômato SA
4.2.5 Quinto passo
Neste passo são feitas as desabilitações dos eventos controláveis em função do estado atual dos supervisores. Na Figura 4.3 mostra-se a chamada da função DESABILITAÇÕES e na Figura 4.8 mostra-se parte do programa de como é feita a desabilitação dos eventos A1, A2 e A3. Se o estado do supervisor SA for igual a “1”, é
desabilitado o evento A1. Se o estado do supervisor SA for zero ou o estado do supervisor SC for “1” ou “2”, é desabilitado o evento A2.
Figura 4.8 – Parte do programa de DESABILITAÇÕES
4.2.6 Sexto passo
O sexto passo é dedicado ao tratamento da escolha e só é executado quando este problema é detectado. Isto ocorre quando dois eventos controláveis estão habilitados e podem ser gerados, porém só um pode ocorrer. No exemplo utilizado, o problema da escolha é encontrado no estado 0 do supervisor SC Figura 2.12 (b), pois os eventos A2 e A4 estão habilitados e a ocorrência de um destes leva à desabilitação do outro. Assim, somente um deles poderá ser gerado.
Na solução adotada pelos autores foi de que a cada ciclo de varredura do CLP a variável INTERCALA_A2_A4 muda de valor (verdadeiro ou falso). Assim, quando as duas variáveis dA2 e dA4 estão falsas (os eventos A2 e A4 não estão desabilitados), é feita a chamada ao bloco “TRATA ESCOLHA”, conforme mostrado na Figura 4.3. Desta forma, de acordo com o valor assumido pela variável INTERCALA_A2_A4, o bloco TRATA ESCOLHA desabilita aleatoriamente um dos eventos (LEAL et al., 2009). Como pode ser visto na Figura 4.9, quando a variável INTERCALA_A2_A4 for verdadeira, o evento A2 é desabilitado, quando falsa o evento A4 que será desabilitado. Se no sistema não existir o problema de escolha, este sexto passo não é implementado (CRUZ, 2011).
Figura 4.9 – Bloco TRATA ESCOLHA
4.2.7 Sétimo passo
Neste passo são tratados os eventos controláveis (EC) no nível do sistema produto. Assim, os eventos controláveis que não foram desabilitados no ciclo de varredura atual são gerados neste passo. Na Figura 4.3 é mostrada a chamada destes blocos, EC G1, EC G2... Por exemplo, a Figura 4.10 (a) mostra o bloco EC G1 referente ao autômato G1 da Figura 4.10 (b). Quando G1 está no estado “0” e o evento A1 não está desabilitado, o evento A1 é gerado e G1 vai para o estado “1”.
Figura 4.10 –Eventos controláveis no subsistema Gi (a) EC G1; (b) Autômato G1
4.2.8 Oitavo passo
O oitavo passo faz a atualização de estados nos supervisores devido aos eventos controláveis gerados no nível do sistema produto. Na Figura 4.3 é mostrada a chamada destes blocos, EC SA, EC SB... Na Figura 4.11 (a) mostra-se o supervisor EC SA. Se o supervisor SA está no estado “1” e o evento A2 ocorreu, o supervisor muda para o estado “0”.
4.2.9 Nono passo
No nono passo as informações sobre os eventos controláveis são mapeadas em endereços de saídas do CLP de forma a atuar sobre a planta. Na Figura 4.3 pode ser visto a chamada do bloco de escrita. Mais detalhes podem ser vistos em Cruz (2011).
4.3
RESULTADOS
Implementando o exemplo acima e feita a simulação conforme a proposta de Cruz (2011) têm-se os resultados vistos na Tabela 4.1. Nesta simulação foi considerado que o evento não controlável ocorreu no ciclo seguinte do evento controlável equivalente.
Tabela 4.1 - Resultado da execução do DECON9
Ciclo Eventos Não Controláveis Controláveis Eventos
1 A1, A3 2 B1, B3 A4 3 B4 A3, A5 4 B3, B5 A2, A6 5 B2, B6 A1, A5 6 B1, B5 A4, A6 7 B4, B6 A3, A5 8 B3, B5 A2, A6 9 B2, B6 A1, A5
Pode ser observado que nesta metodologia o programa é capaz de tratar diversos eventos num mesmo ciclo de varredura do CLP, o que consiste numa característica importante da mesma. Note por exemplo que com o término de operação das máquinas M3 e M5 (eventos B3 e B5) no ciclo de número 4, o CLP trata os respectivos eventos não controláveis e ainda atua nas saídas de forma a iniciar a operação das máquinas M2 e M6 (eventos A2 e A6). Esta característica de tratar mais eventos por ciclo de varredura torna o sistema mais rápido e consegue responder e tratar os eventos assim que ocorreram na planta.
Neste capítulo foi estudada a proposta de Cruz (2011), que trata vários eventos no mesmo ciclo de varredura. Esta implementação foi feita na linguagem Ladder Diagram que é muito utilizada nas empresas. A seguir será apresentada a proposta de Vieira (2007), que propõe uma implementação em linguagem de alto, a qual apresenta vantagens de desenvolvimento e manutenção.
5
METODOLOGIA DE IMPLEMENTAÇÃO EM SFC
(VIEIRA, 2007)
Neste capítulo será apresentado o método proposto por Vieira (2007) para a implementação da arquitetura de controle supervisório definida por Queiroz e Cury (2000) em Controladores Lógicos Programáveis (CLPs). Tal método é utilizado como uma das principais referências para o desenvolvimento deste trabalho uma vez que apresenta características importantes como o uso de uma linguagem de alto nível, o que resulta em um programa modular e estruturado, além de resultar em programas que estão em conformidade com a norma internacional IEC 61131-3.