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:
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.
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:
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.