OTM3 - Detecção de malha inativa a partir de ramo de entrada com etapa backward (forward / backward)¶
Blocos de ENTRAD são blocos que mantém seu valor constante durante a simulação. Desta forma, não apenas esses blocos, mas todos aqueles conectados a este, como regra geral, não terão suas variáveis de estado alteradas (Ramo de Entrada).
O algoritmo de código OTM3 pode ser divido em duas etapas: a primeira tem por objetivo detectar, a partir dos ramos de entrada, os blocos que podem ser desabilitados; a segunda, a partir de blocos seletores, desabilitar os canais que não serão utilizados para compor a saída.
Etapa forward¶
Uma busca é feita em sentido forward (primeira etapa) a partir dos blocos ENTRAD do controle em direção aos terminadores SAIDA/EXPORT, marcando cada bloco encontrado como Certamente Inativo, se e somente se todas as suas entradas são Certamente Inativo também. Por causa disso, os seguintes critérios de parada para a varredura da etapa forward podem ser definidos:
Bloco Certamente Ativo alcançado;
Bloco Certamente Inativo alcançado;
Bloco com múltiplas entradas com ao menos uma entrada Certamente Ativo ou Potencialmente Ativo.
Etapa backward¶
Quando a varredura do algoritmo alcança um bloco do tipo SELET2 ou S/HOLD, a segunda etapa do algoritmo é acionada. Através de busca em sentido backward, do bloco seletor para os terminadores ENTRAD/IMPORT, o algoritmo marca cada bloco como Certamente Inativo, se e somente se todos os blocos conectados a sua saída (saída compartilhada) forem Certamente Inativo também. Os seguintes critérios de parada para uma varredura da etapa backward podem ser definidos:
Bloco Certamente Ativo alcançado;
Bloco Certamente Inativo alcançado;
Blocos com ao menos um bloco, conectado a sua saída, Certamente Ativo ou Potencialmente Ativo.
Exemplo¶
A Fig. 91 ilustra um trecho do CDU em que é possível observar a inatividade (em destaque) sendo determinada pelo algoritmo OTM3. Uma vez que o bloco (55) tem a sua entrada seletora determinada como Certamente Inativo pelo algoritmo, o algoritmo determina que o bloco (54) será Certamente Inativo uma vez que se encontra conectado à entrada determinada como desligada pela etapa backward do algoritmo. Recursivamente, os blocos (20) e (14) também serão considerados Certamente Inativo.
Nota
As conexões em vermelho representam aquelas conexões que são certamente inativas, as em preto são potencialmente ativas.