Profibus-PA: Byte de Status e Fail-Safe .
César Cassiolato - Gerente de Produtos da Smar Equipamentos Industriais Ltda.
INTRODUÇÃO
Uma característica muito útil disponibilizada pelo protocolo Profibus PA é o byte de status na estrutura float+status. A grande vantagem desta característica é permitir que se tenha além do valor de uma medição, uma informação que possa qualificar este valor e que ajuda na condição de falha a levar o equipamento para uma condição de segurança (Fail-Safe).Veremos a seguir alguns detalhes sobre esta funcionalidade.
ENTENDENDO O BYTE DE STATUS (ESTADO)
O status da entrada e dos parâmetros de saídas tem a finalidade de informar a outros blocos funcionais o estado atual. O campo de status é composto de três partes: Qualidade, Sub-estados e Limites.
Quality – indica a qualidade do valor do parâmetro .
• Good Cascade – A qualidade do valor é boa e pode ser utilizado para controle em cascata.
• Good Non-cascade – A qualidade do valor é boa e não pode ser utilizado para controle em cascata.
• Uncertain – A qualidade do valor está abaixo do normal, mas o valor ainda pode ser útil.
• Bad – O valor não é útil.
Sub-status – O sub-status é um complemento do estado da qualidade e leva a informação para inicializar ou parar um controle em cascata, alarmes e outros . Há diferentes configurações do sub-status para cada qualidade.
Limits – Fornece informação se o valor associado está limitado ou não, bem como a direção. Os limites são classificados como: Not Limited, High Limited, Low Limited, Constant.
Quando um parâmetro de entrada é “conectado” num parâmetro de saída pela troca de dados cíclicos, a estrutura toda (estado e valor) é recebida via comunicação fieldbus. Se a entrada não é “conectada”, então os estados e os valores podem ser configurados manualmente pelo usuário.
O estado tem a seguinte composição: Quality, sub-status e limits:
Figura 1 – Estrutura do byte de status.
Os componentes do estado são definidos como se segue:
Quality – A qualidade usada será determinada pela condição de mais alta prioridade:
0 = Ruim
1 = Incerto
2 = Bom (Não-cascata)
3 = Bom (Cascata)
Sub-status – Os valores do sub-status no status attribute são definidos conforme tabela 1.
Limit – As seguintes condições de limites sempre estarão disponíveis no estado.
0 = Não limitada
1 = Limite Baixo
2 = Limite Alto
3 = Constante
Exemplos:
- 0xC1 (em hexadecimal) é o estado “Good-Cascade Non Specific and Low Limited”
- 0xCF (em hexadecimal) é o estado “Good-Cascade Not invited and Constant”
- 0x4E (em hexadecimal) é o estado “Uncertain Initial Value and High Limited”.
EXEMPLO: CONVESÃO DE NÚMERO PARA ENUMERAÇÕES.
Há muitas formas para converter o número enumerado à string de estado. Abaixo, são mostradas duas formas:
1) Expressando o número em binário.
Estado do valor hexadecimal = 78 = 0x4E = 01001110 (em binário)
Dividindo este número binário em campos Quality, Sub-Status e Limit:
Quality = 01 = 1 = “Uncertain”
Sub-estado = 0011 = 3 = “Valor Inicial”
Limit = 10 = 2 = “Limitado em Alto”
O estado correspondente é “uncertain - initial value - high limited”.
2) Usando o valor do estado em formato decimal.
Decimal Value Status = 78
Dividido o número por 64. O quociente será o Quality e armazenado o resto:
Quality = 78 / 64 = 1
Resto = 14
Dividido o resto por 4. O quociente será o Sub-Status e o resto será o limite:
SubStatus = 14 / 4 = 3
Limit = 2
Qualidade |
Sub-estado |
Valor
Hexa |
Valor
Decimal |
Não em
Cascata |
Caminho de avanço
da cascata |
Caminho de recuo
da cascata |
GoodNC |
0 = ok (prioridade mais baixa) |
0x80 |
128 |
x |
|
|
GoodNC |
9 = requer manuteção |
0xA4 |
164 |
x |
|
|
GoodNC |
1 = evento de atualização ativo |
0x84 |
132 |
x |
|
|
GoodNC |
2 = alarme de alerta ativo |
0x88 |
136 |
x |
|
|
GoodNC |
3 = alarme crítico ativo |
0x8c |
140 |
x |
|
|
GoodNC |
4 = atualização de evento não reconhecido |
0x90 |
144 |
x |
|
|
GoodNC |
5 = alarme de alerta não reconhecido |
0x94 |
148 |
x |
|
|
GoodNC |
6 = alarme crítico não reconhecido |
0x98 |
152 |
x |
|
|
GoodNC |
8 = ínicio de Fail Safe(IFS) |
0xa0 |
160 |
x |
|
|
Uncertain |
0 = não especificado |
0x40 |
64 |
x |
|
|
Uncertain |
1 = último valor utilizável |
0x44 |
68 |
x |
|
|
Uncertain |
2 = substituto |
0x48 |
72 |
x |
|
|
Uncertain |
3 = valor inicial |
0x4c |
76 |
x |
|
|
Uncertain |
4 = conversão de sensor sem previsão |
0x50 |
80 |
x |
|
|
Uncertain |
5 = vilolada faixa de unidades de engenharia |
0x54 |
84 |
x |
|
|
Uncertain |
6 = sub-normal |
0x58 |
88 |
x |
|
|
Uncertain |
7 = erro de configuração |
0x5c |
92 |
x |
|
|
Uncertain |
9 = calibrção de sensor |
0x64 |
100 |
x |
|
|
Uncertain |
8 = valor simulado |
0x60 |
96 |
x |
|
|
GoodC |
0 = ok |
0xC0 |
192 |
|
x |
x |
GoodC |
1 = reconhece inicialização (IA) |
0xC4 |
196 |
|
x |
|
GoodC |
2 = requisita inicialização (IR) |
0xC8 |
200 |
|
|
x |
GoodC |
3 = não convidado (NI) |
0xCC |
204 |
|
|
x |
GoodC |
5 = não selecionado (NS) |
0xD0 |
208 |
|
x |
|
GoodC |
6 = Override (LO local) |
0xD8 |
216 |
|
|
x |
GoodC |
8 = inicida Fail Safe(IFS) |
0xE0 |
224 |
|
x |
|
Bad |
0 = não específico |
0x00 |
0 |
x |
x |
x |
Bad |
1 = erro de configuração |
0x04 |
4 |
x |
x |
x |
Bad |
2 = não conectado |
0x08 |
8 |
|
|
|
Bad |
4 = falha do sensor |
0x10 |
16 |
x |
x |
x |
Bad |
3 = falha do equipamento |
0x0C |
12 |
x |
x |
x |
Bad |
5 = nenhuma comunicação com último valor utilizável |
0x14 |
20 |
|
|
|
Bad |
6 = nenhuma comunicação com o valor utilizável |
0x18 |
24 |
|
|
|
Bad |
7 = fora de serviço (a mais alta prioridade) |
0x1C |
28 |
|
|
|
Tabela 1 – Condições de status.
MANIPULAÇÃO EM FAIL SAFE ( FALHA DE SEGURA )
O Fail Safe é um estado especial, que permite ao bloco de função atuar quando for detectado uma situação anormal.
Uma situação anormal ocorre quando houver uma entrada não usual, por exemplo, sensor com defeito ou perda de comunicação entre os blocos de função por um período maior que o especificado (FSAFE_TIME).
Quando a condição que ativou o estado de falha (Fault State) for normalizada, o Fault State é zerado e o bloco volta à operação normal.
CONDIÇÕES QUE ATIVAM O FAIL SAFE
Quando os Blocos de Função de entrada ou saída detectam uma condição anormal, o bloco entra em modo FAIL_SAFE. Estas situações anormais são detectadas através de diferentes formas.
Os blocos de função de entrada, por exemplo, AI e TOT são conectados com um bloco transdutor via canal. Quando a saída do transdutor tem um estado ruim, (por exemplo, sensor avariado) a condição de FAIL_SAFE do bloco é ativada.
Os blocos de função de saída, por exemplo: bloco AO recebe os valores de entrada de um dos blocos superiores através da “conexão cíclica.” Estes blocos superiores são blocos de função de controle e, geralmente, vêm de equipamentos de controle. Neste caso, o fail safe é ativado quando uma das seguintes condições é alcançada:
• Perda de comunicação de RCAS_IN por um tempo que excede FSAFE_TIME;
• Perda de comunicação de SP durante um tempo que excede FSAFE_TIME;
• O estado IFS na entrada RCAS_IN quando o modo designado é RCas;
• O estado IFS no SP quando o modo designado é Auto.
AÇÕES DE FAIL SAFE (FALHA DE SEGURA)
As ações que um bloco de entrada ou de saída podem tomar, quando o bloco está em Fail Safe, devem ser selecionadas pelo usuário através do parâmetro FSAFE_TYPE nos blocos AI e AO ou usando o parâmetro de FAIL_TOT no bloco TOT.
No parâmetro FSAFE_TYPE as seguintes opções estão disponíveis:
• Use FSAFE_VALUE – Neste caso, os blocos AI e AO usam o valor seguro fornecido pelo parâmetro FSAFE_VALUE para o cálculo quando o Fail Safe está ativo. O estado da saída vai para “Uncertain, substitute value”.
• Use Last Usable Value – Neste caso, os blocos AI e AO usam o último valor utilizável para o cálculo do algoritmo. O estado será "Uncertain Last Usable Level”. Se ainda não houver um valor satisfatório, use o Valor Inicial na saída. O estado será “Uncertain Initial Value”.
• “Use the wrong value” (apenas para o bloco AI) – o AI usa os valores e estados
errados para o cálculo.
• Use o ACTUATOR_ACTION (apenas para bloco AO) – O bloco AO entra em posição de segurança baseado em um parâmetro discreto ACTUATOR_ACTION no bloco transdutor.
No parâmetro FAIL_TOT (só usado no bloco totalizador) as seguintes opções estão disponíveis:
• Hold - Para a totalização no último valor. O estado da saída vai para “Uncertain non-specific”.
• Memory - Usa o último valor válido para a totalização. O estado será de “Uncertain Last Usable Value”. Se não houver um estado válido na memória use o valor inicial para a totalização. O estado será “Uncertain, Initial Value”.
• Run - A totalização é continuada (Reiniciada). Usa o valor e estado incorreto para a saída.
CONCLUSÃO
Vimos através deste artigo a importância do argumento status no Profibus-PA e suas particularidades.
REFERÊNCIAS
Manuais Smar Profibus
www.smar.com.br
|