CAPITULO II: SITUACIÓN NARRATIVA EN ABRIL ROJO
2.1. Situación narrativa
2.2.4. Tipos de transtextualidad en Abril Rojo
Partindo dos problemas levantados por Fabian e Hellgren (1998), estudos focam na solução destes para a implementação em CLP.
2.4.2.1 Problema da causalidade
Em (QUEIROZ; CURY, 2002b) é apontada a solução para o problema da causalidade pela adoção de uma arquitetura multinível mediante a implementação de um sistema produto. O sistema produto é composto pelos AFD que representam a planta. O sistema produto fica, portanto, responsável por gerar os eventos controláveis, enquanto a planta física gera os demais eventos. Assim, o supervisor necessita realizar apenas as desabilitações dos eventos, condizendo com a
2.4 Implementação da estrutura de controle supervisório 65 TCS. A Figura 2.16 apresenta a arquitetura proposta por Queiroz e Cury (2002b) que separa o sistema produto do supervisor. O supervisor envia, portanto, apenas sinais desabilitados, e cabe ao sistema produto gerar os eventos. A sequência operacional traduz os eventos internos do sistema de controle para os sinais de saída e entrada do CLP realizando a comunicação com o sistema físico.
Figura 2.16: Arquitetura proposta por Queiroz e Cury (2002b)
Fonte: Cruz (2011)
Segundo Queiroz e Cury (2002b), a implementação do sistema produto torna possível implementar o supervisor reduzido, não sendo necessário implementar o supervisor completo. O supervisor reduzido não possui a informação de quais eventos são fisicamente possíveis de ocorrer em cada estado, sendo o sistema produto que mantém tal informação.
2.4.2.2 Problema do efeito avalanche
A solução do efeito avalanche proposta por Cruz (2011) baseia-se no uso de duas memórias para armazenar a ocorrência de eventos não controláveis. Um evento não controlável a possui as memórias Mg
a e Mal. Assim, quando a ocorrência do evento a é lida, esta ocorrência é registrada em Mg
a e em Mal. Para cada linha do código do CLP que representa uma transição, além de desmarcar o estado atual e marcar o estado de destino, é também desmarcado a ocorrência do evento na memória Ml
a. Com isso haverá uma única transição no ciclo graças a cada evento e o efeito avalanche será eliminado.
Entretanto, nas abordagens modular e modular local, existem vários supervisores sendo executados concorrentemente no programa do CLP. Por isso há a necessidade de manter a
2.4 Implementação da estrutura de controle supervisório 66 variável Mg
a para que esta atualize o valor de Mal ao fim da lógica de um supervisor, antes do início do código referente ao próximo supervisor. Essa atualização se faz necessária porque o mesmo evento não controlável não pode com uma única ocorrência desencadear duas ou mais transições em um mesmo supervisor. Todavia a ocorrência do evento deve implicar a atualização de todos os supervisores que compartilham esse evento.
Assim, Ml
aage como uma memória local para cada supervisor, e Magé uma memória global e estática. Como resultado, cada supervisor pode utilizar Ml
ada maneira mais conveniente sem que qualquer alteração na memória local interfira nos demais supervisores. E tem-se a memória global para fazer a atualização de das memórias locais entre a troca da lógica de cada supervisor.
2.4.2.3 Problema da escolha
Para o problema da escolha, Cruz (2011) propõe uma solução realizada durante a implementação com o uso de uma escolha pseudoaleatória. O primeiro passo é verificar quais eventos controláveis são passíveis de escolha. Um evento controlável passível de escolha é aquele que não está desabilitado por nenhum supervisor estando ativo num dado estado de um ou mais supervisores. Assim, se um evento está desabilitado por ao menos um supervisor, este está também desabilitado globalmente.
Tendo o conjunto dos eventos habilitados, Σh, propõe-se fazer a escolha pseudoaleatória de um dos elementos do conjunto. Se o conjunto for unitário, seu único elemento é o evento selecionado. No caso de conjunto vazio, o programa permanece parado esperando a ocorrência de um evento não controlável. Nos demais casos têm-se #Σheventos, então se utiliza um número pseudoaleatório n e é selecionado o (nmod#Σh)-ésimo evento do conjunto.
Um número pseudoaleatório é aquele gerado com base em uma função matemática frand, a qual retorna valores em uma ordem dispersa, entretanto continua sendo uma ordem. Uma determinada ordem pode ainda implicar que um determinado supervisor não bloqueante possua uma implementação bloqueante. Assim, para a eficiência da abordagem pseudoaleatória, esta função, frand, deve contar com algum fator externo, como uma semente. Em Cruz (2011), o fator externo é a quantidade de ciclos existentes entre as ocorrências de eventos não controláveis, que por sua vez dependem da dinâmica da planta.
Malik (2002) defendide a ideia de que cada estado deve ter apenas um evento controlável habilitado e portanto deve ser realizada a eliminação das transições excedentes, assim resolvendo
2.4 Implementação da estrutura de controle supervisório 67 a nível de modelo e não de implementação o problema. No entanto, essa eliminação pode fazer com que supervisores não bloqueantes se tornem bloqueantes. É possível verificar propriedades que garantam o não bloqueio (MALIK, 2002; DIETRICH et al., 2002).
2.4.2.4 Demais problemas
Para os demais problemas apresentados por Fabian e Hellgren (1998), Cruz (2011) não apresenta uma solução sobre a ótica de implementação e argumenta que eles não podem ser solucionados em virtude da forma de funcionamento dos CLPs. Ainda se observa que tal questão não é exclusiva da aplicação da TCS, e qualquer estratégia de implementação em CLP, por intermédio ou não da TCS, está suscetível a esses problemas.
Em Malik (2002) o problema da sincronização inexata (referenciado como problema da comunicação) é solucionado sobre a ótica dos modelos e não na implementação. Malik (2002) defende que a comunicação faça parte dos modelos e eventos de envio e confirmação de recebi- mento de mensagens estejam presentes.