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: Exemplo de utilização de um CDU com blocos ALERTA DCDU (---------------------------------------------------------------------- (ncdu) ( nome cdu ) 1 Bloco_Alerta (---------------------------------------------------------------------- (EFPAR (npar) ( valpar ) DEFPAR #LMAX 0.5 DEFPAR #LMIN -0.5 DEFPAR #T 1.0 (---------------------------------------------------------------------- (nb)i(tipo) (stip)s(vent) (vsai) ( p1 )( p2 )( p3 )( p4 ) (vmin) (vmax) 0001 ENTRAD V 0002 LDLAG2 V Y4 1.0 0.05 1.0#T LMIN LMAX 0003 SAIDA Y4 0010 ENTRAD MAX 0011 COMPAR .EQ. MAX Y4MAX Y4 Y4MAX 0012 ALERTA Y4max 1 2 0013 ALERTA Y4max 0 0 0020 ENTRAD MIN 0021 COMPAR .EQ. MIN Y4MIN Y4 Y4MIN 0022 ALERTA Y4min 11 12 0023 ALERTA Y4min 0 0 0032 ALERTA Y4max 1 0033 ALERTA Y4max 2 (---------------------------------------------------------------------- (DEFVA (stip) (vdef) ( d1 ) DEFVAL V 0.0 DEFVAL MAX #LMAX DEFVAL MIN #LMIN DEFVAL LMAX #LMAX DEFVAL LMIN #LMIN ( FIMCDU 999999 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. Exemplo de definição de mensagens personalizadas DMSG (Lc) ( Numero da mensagem ) 0001 Variável %vent% atingiu o limite superior (bloco: %nb%, CDU: %nome_do_cdu% /nº: %ncdu% ) 0002 Variável %vent% deixou de atingir o limite superior 0011 Variável %vent% atingiu o limite inferior (bloco: %nb%, CDU: %nome_do_cdu% /nº: %ncdu% ) 0012 Variável %vent% deixou de atingir o limite inferior 999999 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: DEVT IMPR (Tp) ( Tempo)( El )( Pa)Nc( Ex) ( % ) (ABS ) Gr Und (Bl)P ( Rc ) ( Xc ) ( Bc ) (Defas) TCDU 1.0 1 1.0 1 TCDU 5.0 1 -2.0 1 TCDU 9.0 1 1.0 1 999999 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.