../../_images/tutorial.png

Tutorial sobre Mensagens Personalizadas

O exemplo apresentado ilustra a utilização das mensagens personalizadas pelo usuário, e podem ser reproduzidos pelo usuário com a utilização do modo ANAC.

Utilização do bloco ALERTA

Inicialmente, podemos definir um controlador de CDU que utiliza o Bloco ALERTA, como o trecho a seguir:

Listagem 142 Exemplo de utilização de um CDU com blocos ALERTA
 1DCDU
 2(----------------------------------------------------------------------
 3(ncdu) ( nome cdu )
 4    1 Bloco_Alerta
 5(----------------------------------------------------------------------
 6(EFPAR (npar) (     valpar     )
 7DEFPAR #LMAX                 0.5
 8DEFPAR #LMIN                -0.5
 9DEFPAR #T                    1.0
10(----------------------------------------------------------------------
11(nb)i(tipo) (stip)s(vent) (vsai) ( p1 )( p2 )( p3 )( p4 ) (vmin) (vmax)
120001 ENTRAD               V
130002 LDLAG2        V      Y4        1.0  0.05   1.0#T     LMIN   LMAX
140003 SAIDA         Y4
150010 ENTRAD                MAX
160011 COMPAR  .EQ.   MAX    Y4MAX
17                    Y4     Y4MAX
180012 ALERTA        Y4max              1     2
190013 ALERTA        Y4max              0     0
200020 ENTRAD                MIN
210021 COMPAR  .EQ.   MIN    Y4MIN
22                    Y4     Y4MIN
230022 ALERTA        Y4min             11    12
240023 ALERTA        Y4min              0     0
25
260032 ALERTA        Y4max              1
270033 ALERTA        Y4max                    2
28(----------------------------------------------------------------------
29(DEFVA (stip) (vdef) ( d1 )
30DEFVAL        V         0.0
31DEFVAL        MAX    #LMAX
32DEFVAL        MIN    #LMIN
33DEFVAL        LMAX   #LMAX
34DEFVAL        LMIN   #LMIN
35(
36FIMCDU
37999999

Note que nesse exemplo há a definição de 6 blocos alerta, onde estão demonstrados o uso de mensagens personalizadas (P1 ou P2 maiores que 0), o uso de mensagem default (P1 ou P2 iguais a 0) e a desabilitação da detecção (P1 ou P2 não preenchidos):

(nb)i(tipo) (stip)s(vent) (vsai) ( p1 )( p2 )( p3 )( p4 ) (vmin) (vmax)
0012 ALERTA        Y4max              1     2
0013 ALERTA        Y4max              0     0
0022 ALERTA        Y4min             11    12
0023 ALERTA        Y4min              0     0
0032 ALERTA        Y4max              1
0033 ALERTA        Y4max                    2

Esses blocos requerem que as mensagens 1, 2, 11 e 12 sejam definidas em código DMSG. Contudo, não é necessário que essas mensagens tenham sido definidas antes da declaração no DCDU.

Os blocos 12 e 22 monitorarão os sinas Y4MAX e Y4MIN e utilizarão as mensagens definidas pelo usuário. Os blocos 13 e 23 farão função semelhante, mas utilizando a mensagem padrão.

Os blocos 32 e 33 monitorarão a variável Y4MAX, mas terão cada um uma lógica desabilitada individualmente. Juntos, esses dois blocos possuem a mesma função do bloco 12.

Definição de Mensagens Personalizadas

A definição das mensagens é feita pelo código DMSG, onde são definidas a mensagem propriamente dita e o identificador desta mensagem. É permitido ainda o uso de Expressões Coringas, para substituir trechos da mensagem por informações pertinentes à localização do bloco.

Listagem 143 Exemplo de definição de mensagens personalizadas
1DMSG
2(Lc)   ( Numero da mensagem                                                                   )
30001   Variável %vent% atingiu o limite superior (bloco: %nb%, CDU: %nome_do_cdu% /nº: %ncdu% )
40002   Variável %vent% deixou de atingir o limite superior
50011   Variável %vent% atingiu o limite inferior (bloco: %nb%, CDU: %nome_do_cdu% /nº: %ncdu% )
60012   Variável %vent% deixou de atingir o limite inferior
7999999

Os blocos 13 e 23 utilizarão a mensagem padrão, por terem seus parâmetros P1 e P2 iguais a 0. Nesse caso, a seguinte mensagem será utilizada:

ALERTA: Detectada transição %trns% em %vent% no bloco %nb% do CDU %nome_do_cdu% de número %ncdu%.

Simulação

Para avaliar o CDU de número 1, serão utilizados alguns eventos para mudança de referência na entrada (bloco 1), e então será observada a saída do bloco 2. Esse valor é comparado com os limites mínimo (YMIN) e máximo (YMAX).

O seguinte trecho ilustra os eventos a serem aplicados ao controle:

1DEVT IMPR
2(Tp) ( Tempo)( El )( Pa)Nc( Ex) ( % ) (ABS ) Gr Und         (Bl)P ( Rc ) ( Xc ) ( Bc ) (Defas)
3TCDU      1.0     1                      1.0                   1
4TCDU      5.0     1                     -2.0                   1
5TCDU      9.0     1                      1.0                   1
6999999

A seguinte resposta do bloco 2 pode ser observada:

../../_images/exemplo_default.png

A partir da resposta dinâmica da figura anterior, diversas mensagens são emitidas. Vamos analisá-las por partes.

T=  1.0000s TCDU - Variação de  0.00% + absoluta de  1.000 na
                    variável V      - CDU      1 Bloco_Alerta

Neste primeiro treco, temos a mensagem relativa a aplicação do primeiro evento.

T=  1.6500s Variável Y4MAX atingiu o limite superior (bloco:   12, CDU: Bloco_Alerta /nº:      1 )

T=  1.6500s ALERTA: Detectada transição 0 -> 1 em Y4MAX no bloco   13 do CDU Bloco_Alerta de número      1.

T=  1.6500s Variável Y4MAX atingiu o limite superior (bloco:   32, CDU: Bloco_Alerta /nº:      1 )

Neste segundo trecho, temos a mensagem de três blocos (12, 13 e 32) relativas à variável Y4 ter alcançado o limite superior. Para o bloco 12 e 32, as mensagens emitidas seguem o definido na mensagem de número 1. Para o bloco 13, a mensagem segue a mensagem padrão do programa.

Dica

Utilize as expressões coringas para a correta identificação do bloco que emitirá a mensagem. Isso ajudará no entendimento do caso.

T=  5.0000s TCDU - Variação de  0.00% + absoluta de -2.000 na
                    variável V      - CDU      1 Bloco_Alerta

T=  5.0100s Variável Y4MAX deixou de atingir o limite superior

T=  5.0100s ALERTA: Detectada transição 1 -> 0 em Y4MAX no bloco   13 do CDU Bloco_Alerta de número      1.

T=  5.0100s Variável Y4MAX deixou de atingir o limite superior

Neste terceiro trecho, existe a aplicação do segundo evento e então a atuação do parâmetro P2 de três blocos: (12, 22 e 33). Note que, em função da mensagem personalizada não ter utilizado mais expressões de identificação, não é possível identificar os blocos que emitiram duas das mensagens. Essa mensagens iguais são referentes aos blocos 12 e 33. Note ainda que em função do parâmetro P2 do bloco 32 estar em branco, não houve emissão de mensagem por este bloco.

T=  6.0500s Variável Y4MIN atingiu o limite inferior (bloco:   22, CDU: Bloco_Alerta /nº:      1 )

T=  6.0500s ALERTA: Detectada transição 0 -> 1 em Y4MIN no bloco   23 do CDU Bloco_Alerta de número      1.

Neste quarto trecho, apenas dois blocos estão monitorando o valor Y4MIN (bloco 22 e 23). O primeiro emite uma mensagem personalizada enquanto que o segundo emite uma mensagem padrão.

T=  9.0000s TCDU - Variação de  0.00% + absoluta de  1.000 na
                    variável V      - CDU      1 Bloco_Alerta

T=  9.0100s Variável Y4MIN deixou de atingir o limite inferior

T=  9.0100s ALERTA: Detectada transição 1 -> 0 em Y4MIN no bloco   23 do CDU Bloco_Alerta de número      1.

Neste último trecho, existe a aplicação do terceiro evento e da ativação da mensagem definida no parâmetro P2 dos blocos 22 e 23.