• Nenhum resultado encontrado

7. Método para implementação distribuída do controle supervisório

7.2 Visão geral do método

Conforme ilustrado através da Figura 7.1, o método de implementação distribuída prevê um CLP Coordenador (CLP0) e diversos CLPs Executores (CLP1, CLP2, ..., CLPn). Na rede de

CLPs resultante da aplicação deste método deve ser estabelecida a comunicação entre o CLP coordenador e cada CLP executor, porém, não é necessária a comunicação entre os CLPs executores. A comunicação entre CLPs é realizada através da troca de mensagens.

Conforme apresentado nos Capítulos 4 e 5, sempre que é gerado um evento controlável no nível Sistema Produto, ocorre a ativação do comando correspondente. Este comando é ativado para disparar a execução das atividades pelo procedimento operacional associado ao evento em questão. Sempre que um procedimento operacional detecta a ocorrência de um evento não-controlável, a resposta associada ao evento em questão é devidamente incrementada. Quando o valor associado a uma resposta é maior do que zero, é realizado o tratamento do evento correspondente. Uma mensagem enviada do CLP coordenador para um CLP executor notifica este último sobre a ativação de comandos. Uma mensagem em sentido contrário notifica o número de ocorrências de eventos não-controláveis pendentes para tratamento. Também notifica sobre o processamento de comandos pelos procedimentos operacionais implementados no CLP executor. A estrutura detalhada destas mensagens é apresentada na Seção 7.3.

O envio de mensagens do CLP Coordenador para um CLP Executor é realizado através de especializações dos FBs Sender e Receiver introduzidos no capítulo anterior. Tais especializações são, respectivamente, denominadas SendCmd e RcvCmd. De forma similar, o envio de mensagens

121

de um CLP Executor para o CLP Coordenador é realizado através de outras duas especializações destes FBs. O FB SendRspCmdNtf é uma especialização do FB Sender e o FB RcvRspCmdNtf é uma especialização do FB Receiver. Estes FBs determinam, também, a inter-relação entre os CLPs. Na Tabela 5.1 foi apresentada a estrutura do programa de aplicação resultante da adoção do método de implementação concentrada. A estrutura do programa de aplicação do CLP Coordenador é praticamente inalterada em relação à estrutura descrita na referida tabela. A principal alteração diz respeito ao conjunto de FBs que implementam os procedimentos operacionais. Ao invés de implementar o conjunto de procedimentos operacionais na íntegra, apenas o subconjunto O0 deve ser implementado no CLP Coordenador. Desta forma, o FB OP deve

realizar a chamada apenas aos FBs neste subconjunto. Em geral, neste CLP deve ser implementada uma instância do FB SendCmd e uma instância do FB RcvRspCmdNtf associada a cada CLP Executor.

Exemplo 7.2)

Considerando a distribuição conforme realizada no Exemplo 7.1, a Tabela 7.1 apresenta as instâncias de FBs implementadas em cada CLP para realizar a comunicação.

Tabela 7.1 − Instâncias dos FBs de comunicação

mensagem CLP emissor instância do FB

SendCmd CLP receptor instância do FB RcvCmd CLP0 → CLP1 CLP0 SendCmdTo1 CLP1 RcvCmdFrom0 CLP0 → CLP2 CLP0 SendCmdTo2 CLP2 RcvCmdFrom0 CLP0 → CLP3 CLP0 SendCmdTo3 CLP3 RcvCmdFrom0

mensagem CLP emissor instância do FB

SendRspCmdNtf CLP receptor instância do FB RcvRspCmdNtf CLP1 → CLP0 CLP1 SendRspCmdNtfTo0 CLP0 RcvRspCmdNtfFrom1 CLP2 → CLP0 CLP2 SendRspCmdNtfTo0 CLP0 RcvRspCmdNtfFrom2 CLP3 → CLP0 CLP3 SendRspCmdNtfTo0 CLP0 RcvRspCmdNtfFrom3 ♦ fim do exemplo 7.2 ♦ No Program Main implementado no CLP coordenador são realizadas pequenas alterações em relação à versão descrita no Capítulo 5. Em todas as ações associadas aos passos do SFC Main (Figura 5.1) deve ser realizada a chamada a todas as instâncias dos FBs SendCmd e RcvRspCmdNtf implementadas no CLP coordenador. Na ação action_SI deve ser inicializado o SFC que constitui a seção de código de cada um destes FBs. Ao passo PSIted deve ser associada uma ação que, a cada ciclo de atualização do CLP, realiza a chamada a tais instâncias. A inclusão

desta ação é necessária para preservar a vivacidade dos elementos na rede enquanto este é o passo ativo do SFC Main.

A Figura 7.2 apresenta o SFC Exec, o qual constitui a seção de código do Program de mesmo nome. O passo ativo deste SFC estabelece o modo de operação do CLP executor no qual ele está implementado. Há quatro modos de operação distintos: Software Initialization (passo SI); Run (passo Run); Emergency (passo Emg) e Idle (passo init).

A Tabela 7.2 detalha a estrutura do programa de aplicação de cada CLP executor.

Figura 7.2 − SFC Exec

Tabela 7.2 − Program Organization Units do programa de aplicação do CLP executor - CLPk, k ∈ {1, 2, ..., n}

nome tipo comentários

o ∈ Ok FB

Representa um procedimento operacional implementado no CLPk

RcvCmd FB FB para o recebimento de mensagens oriundas do CLP coordenador

SendRspCmdNtf FB FB para o envio de mensagens para o CLP coordenador

Exec Program Estabelece o modo de operação do CLP executor e as ações correspondentes a cada um dos modos

123

Exemplo 7.3)

Conforme o Exemplo 7.1, O1 = {oa1, ot1, iniG1A, iniG1B, oa3, ot3, iniG3, oa4}. Estes são

os procedimentos operacionais implementados no CLP1. Neste CLP devem ser implementadas a

instância RcvCmdFrom0 do FB RcvCmd (para recebimento de mensagens do CLP coordenador) e a instância SendRspCmdNtfTo0 do FB SendRspCmdNtf (para envio de mensagens para o CLP coordenador).

♦ fim do exemplo 7.3 ♦ Quando o passo SI do SFC Exec é ativado, o CLP executor entra no modo Software Initialization e a ação associada a este passo (action_SI) é executada apenas uma vez. Esta ação deve inicializar o SFC que constitui a seção de código de cada um dos procedimentos operacionais em Ok. Ela também deve inicializar os SFCs nos FBs RcvCmd e SendRspCmdNtf. A inicialização

destes SFCs permite o início da comunicação com o CLP coordenador. Esta ação também deve estabelecer a todas as variáveis do CLP o valor inicial apropriado. Tais valores são os apresentados no Capítulo 5.

O CLP executor evolui automaticamente para o modo Run após a execução da ação action_SI. Isto é realizado através da ativação do passo Run. Enquanto este passo está ativo a ação action_Run é executada uma vez a cada ciclo de atualização do CLP. Esta ação deve realizar a chamada seqüencial a todos os procedimentos operacionais em Ok. Esta ação também deve

executar a chamada às instâncias dos FBs RcvCmd e SendRspCmdNtf para a devida comunicação com o CLP coordenador.

No modo Emergency a ação action_Emg deve ativar adequadamente os atuadores e alarmes do sistema. Esta ação também deve executar a chamada às instâncias dos FBs RcvCmd e SendRspCmdNtf para a devida comunicação com o CLP coordenador. No modo Idle nenhuma ação é executada.

No CLP coordenador, o passo ativo do SFC Main estabelece o modo de operação do sistema como um todo. Quando o passo ativo deste SFC é o passo PSI ou Man ou Sup, é possível que ocorra a ativação de comandos, determinando o disparo da execução de procedimentos operacionais. O CLP coordenador executa os procedimentos em O0 e envia mensagens para os

CLPs executores, notificando sobre a ativação de comandos, para que os procedimentos implementados nestes CLPs sejam executados. Tais procedimentos serão executados se o modo de operação do CLP executor for o modo Run. O número de ocorrências de eventos não-controláveis pendentes para tratamento que são detectadas pelos CLPs executores são notificadas ao CLP coordenador através do envio de mensagens.

Considere o CLP coordenador e um determinado CLP executor na rede. Caso o FB RcvCmd implementado no CLP executor sinalize a ocorrência de erro na recepção de mensagens, este erro será notificado ao CLP coordenador através do FB SendRspCmdNtf, também implementado no CLP executor. Caso ocorra um erro no envio de mensagens no FB SendRspCmdNtf, o SFC deste FB é conduzido para o passo TransmErrorReceiverDead e o envio de mensagens para o CLP coordenador é interrompido. O FB RcvRspCmdNtf implementado no CLP coordenador não irá identificar a vivacidade do seu parceiro de comunicação e irá notificar a ocorrência de erro. Desta forma, o CLP coordenador sempre identifica a ocorrência de erro nos FBs RcvCmd e SendRspCmdNtf implementados nos CLPs executores.

Quando ocorre um erro em qualquer instância dos FBs SendCmd ou RcvRspCmdNtf implementadas no CLP coordenador, ou quando este CLP identifica a ocorrência de erro nos FBs RcvCmd e SendRspCmdNtf implementados em qualquer CLP executor, o sistema é conduzido automaticamente para o modo manual (a variável Manual do SFC Main deve assumir valor VERDADEIRO). Com isto a geração de eventos controláveis é interrompida, porém a execução dos procedimentos operacionais, tanto nos CLPs executores quanto no CLP coordenador, não é interrompida. Caso ocorra um evento não-controlável e a comunicação do CLP executor para o CLP coordenador esteja ativa, a ocorrência deste evento será sinalizada ao CLP coordenador para o devido tratamento. Caso esta comunicação não esteja ativa, a ocorrência de eventos não- controláveis continuará sendo identificada e registrada nos CLPs executores para posterior notificação ao CLP coordenador.

Com o sistema no modo Manual, o operador pode diagnosticar a causa do erro e, se possível, repará-lo. Caso isto seja possível, a comunicação entre os CLPs pode ser reiniciada e o sistema reconduzido para o modo Supervised. As ocorrências de eventos não-controláveis que estejam registradas nos CLPs executores serão devidamente notificadas ao CLP coordenador para tratamento. Caso não seja possível reparar o erro, o sistema como um todo deve ser reiniciado.

Documentos relacionados