8.1 Sikkerhetstruende hendelser
8.1.2 Alvorlige tilsiktede hendelser på offentlig sted
Para resolver o problema da escolha, deve-se avaliar cada um dos supervisores separadamente, identificando em quais estados este problema está presente e quais são os eventos envolvidos na escolha em cada estado. O caso mais simples do problema da escolha é quando estão envolvidos apenas dois eventos controláveis, como apresentado anteriormente na Figura 4.11. Porém, problemas envolvendo mais de dois eventos controláveis são comuns em aplicações reais. A Figura 5.3 apresenta um exemplo onde no estado 1, existe o problema da escolha entre três eventos controláveis, veja que a geração de qual quer um dos eventos (B, C ou D), que estão habilitados a ocorrer no estado 1, desabilita a geração dos demais eventos.
Figura 5.3 – Problema da escolha para mais de dois eventos
Também é possível que o problema da escolha envolva eventos individuais ou uma lista de eventos. A Figura 5.4 apresenta um exemplo onde existe o problema da escolha entre o evento B e os eventos C ou D, ou seja, o supervisor pode optar por gerar apenas o evento B ou gerar os dois eventos C e D, transitando mais de um estado e chegando ao estado 5.
Neste ponto é importante explicar que no estado 1 da Figura 5.4 a escolha entre os eventos C e D não se apresenta como um problema, pois independente da ordem desta escolha, ao se gerar os eventos C e D a ação de controle resultante no estado 5 será o mesmo.
No intuito de melhor ilustrar esta questão, considere o autômato da Figura 5.5. Note que no estado 1 o sistema deveria escolher entre gerar o evento D ou C, transitando para o estado 2 ou 3, de modo que no próximo ciclo de varredura independente de qual desses estados o sistema se encontra, a próxima ação a ser tomada levará para o estado 4. Assim, se for gerado o evento D e posteriormente gerar o eventos C, transitando até o estado 4, a ação de controle não é alterado caso se inverta a ordem de geração dos eventos, ou seja, se for gerado o evento C e em seguida gerar o evento D, também irá levar ao estado 4. Com o intuito de aumentar o número de eventos controláveis gerados num mesmo ciclo de varredura, a solução proposta consiste em gerar ambos os eventos no mesmo ciclo de varredura do CLP, gerando então os eventos (C e D) e transitando para o estado 4.
Figura 5.5 – Autômato que permite a geração de dois eventos
A seguir, apresenta-se um fluxograma, (ver Figura 5.6) que ilustra a metodologia utilizada para verificar quais estados apresentam o problema de escolha e, para cada estado, determina quais eventos fazem parte do problema da escolha.
Para resolver o problema da escolha após a rotina de desabilitações é verificado para cada estado que apresenta o problema da escolha se este estado está ativo, e se os eventos envolvidos no problema da escolha também estão ativos. Caso estejam, deve ser chamada uma sub-rotina, que de maneira aleatória, a cada dois eventos não desabilitados que pertença ao problema da escolha apenas um permanecer habilitado. A aleatoriedade se dá ao se utilizar uma memória auxiliar que assume um valor diferente a cada ciclo de varredura.
Figura 5.6 – Fluxograma que determina se existe o problema da escolha
Para um problema que envolve apenas dois eventos na escolha, como o apresentado na Figura 4.11, uma memória booleana auxiliar resolveria o problema. No lado esquerdo da Figura 5.7 é apresentada parte da rotina principal do programa do CLP, após a chamada da rotina de desabilitações a cada ciclo de varredura é alterado o valor da memória auxiliar, chamada nesse caso de “AUX”. A condição para que seja chamada a sub-rotina que trata o problema da escolha entre os eventos B e C leva em consideração o estado do supervisor e os eventos envolvidos no problema da escolha. No lado direito da Figura 5.7 é apresentada a sub-rotina que trata o problema da escolha. Se a memória “AUX” assumir o valor 1, a variável d_B (desabilita B) é setada, o que implica em desabilitar o evento B. De outra forma, a variável d_C (desabilita C) é setada e consequentemente o evento C é desabilitado.
A garantia de uma aleatoriedade na escolha se dá em função da mudança do valor da memória “AUX”, a cada ciclo de varredura do CLP. Assim, em um determinado ciclo k, quando for necessário utilizar a memória “AUX” em um tratamento da escolha, esta irá
assumir o valor 0 ou 1 aleatoriamente, uma vez que não se tem controle de em qual ciclo será realizado um tratamento do problema da escolha.
Figura 5.7 – Solução para o problema da escolha entre dois eventos
Quando o problema da escolha envolve mais de dois eventos, como no exemplo apresentado na Figura 5.3, propõe-se que a aleatoriedade seja por pares de eventos. A Figura 5.8 apresenta parte da rotina do programa do CLP para o problema da escolha entre os eventos B, C e D. No lado esquerdo da Figura 5.8 está ilustrada parte da rotina principal do CLP, após a chamada da sub-rotina que trabalha as desabilitações e alterar o valor da memória auxiliar, estão implementadas três condições para a chamada de cada sub-rotina, que trata o problema da escolha entre cada par de eventos, ou seja, deve-se escolher entre os eventos (B e C), (C e D) ou (B e D) de modo a se escolher apenas um. Esta leva em consideração o estado do supervisor e o par de eventos envolvidos em cada sub-rotina que será chamada ou, não.
No lado direito da Figura 5.8 são apresentadas a sub-rotinas que tratam o problema da escolha para cada par de eventos. Para a primeira sub-rotina, se a memória “AUX” assumir o valor 1, a variável d_B (desabilita B) é setada, o que implica a desabilitação do evento B. Caso contrário, a variável d_C é setada e o evento C é desabilitado. Da mesma forma para a segunda sub-rotina apresentada, se a memória “AUX” assumir o valor 1, o evento C é desabilitado, caso contrário o evento D será desabilitado. Para a terceira sub-rotina ilustrada, se a memória “AUX” assumir o valor 1, o evento D será desabilitado, caso contrário o evento desabilitado será o B.
Note que não necessariamente todas as rotinas devem ser chamadas, pois caso um evento já esteja desabilitado não é necessário levar em conta este evento na decisão de escolha. Veja também que para o exemplo apresentado, após a chamada das sub-rotinas apenas um evento permanecerá habilitado. Assim, estado todos os eventos habilitados e se a memória “AUX” estiver como valor 1 apenas o evento B permanecerá habilitado, do contrario caso a memória “AUX” estiver como valor 0 apenas o evento D permanecerá habilitado.
Figura 5.8 – Solução para o problema da escolha entre mais de dois eventos
É importante salientar que realmente para mais de dois eventos, envolvidos no problema da escolha, uma única memória auxiliar não irá promover a aleatoriedade entre todos os eventos, uma vez que uma única memória pode assumir apenas dois valores. Seriam necessárias mais memórias auxiliares, dependendo da quantidade de eventos envolvidos no problema da escolha, ou então, estabelecer outra estratégia que promovesse a aleatoriedade. Uma solução para esse caso em especifico foi apresentado por Pinotti, Leal e Oliveira (2010), onde é usada uma memória do tipo numérica que a cada ciclo de varredura do CLP tem seu valor alterado, assim quando é necessário estabelecer a escolha está será determinada pelo valor correspondente a memória numérica.
Porém conforme apresentado anteriormente, e diferentemente do que foi apresentado por Pinotti, Leal e Oliveira (2010), o tratamento da escolha, independente do número de eventos envolvidos, deve ser realizado agrupando os eventos aos pares, de modo que apenas um evento permaneça habilitado, ou seja, em hipótese alguma o tratamento do problema da escolha pode estabelecer a desabilitação para todos os eventos.
Por fim, quando o problema da escolha envolve uma lista de eventos, como apresentado na Figura 5.4, a solução do problema se dá tratando a lista de eventos com lógica or, como mostra a Figura 5.9. No lado esquerdo da Figura 5.9 é apresentado parte da rotina principal do programa do CLP. Note que a condição para a chamada da sub-rotina que trata o problema da escolha deve ser feita como apresentado anteriormente, porém os eventos que fazem parte da lista de eventos a serem desabilitados ou não, devem ser dispostos em paralelo formando a lógica “ou”.
Assim, se pelo menos um evento da lista não estiver desabilitado (C ou D) e o evento B também não estiver, deve-se escolher entre a lista (C e D) ou o evento B. Conforme pode
observar na sub-rotina que trata o problema da escolha (lado direito da Figura 5.9), dependendo do valor da memória auxiliar, é feita a desabilitação do evento B ou de ambos os eventos (C e D) da lista.
Figura 5.9 – Solução para o problema da escolha para uma lista de eventos
É importante observar que o problema da escolha se dá entre eventos controláveis habilitados em um estado de um mesmo supervisor, e não entre eventos de supervisores distintos. Assim, a análise do problema da escolha é feita sempre para cada supervisor isoladamente.