Quando o frame for do tipo STX (requisição do mestre ao escravo), a sequência de campo após o Comando será (Byte Count + Dados). Porém, quando se tratar de uma resposta (ACK ou BACK), dois bytes relativos à qualidade da resposta serão inseridos após o Byte Count.
O primeiro byte é denominado Response Code e indica possíveis erros de comunicação ou tratamento dos comandos (veja alguns exemplos na Tabela 2), podendo ser uma notificação, um aviso ou um erro. No caso do erro, o comando não é executado. O segundo byte, denominado Status indica alterações no comportamento do equipamento, definidas pelo protocolo de acordo com a Tabela 3.
Tabela 3 - Byte de Status do Equipamento.
O campo Dados traz as informações requeridas pelo comando enviado, sejam elas relativas a monitoração de variáveis, configuração de parâmetros ou status do equipamento. O tamanho do campo Dados é especificado pelo comando, seja ele padrão do protocolo ou específico do equipamento. Deve ser acrescentado no contador Byte Count para que a máquina de estados de recepção (no host ou no equipamento) saiba em qual o byte finalizar este campo.
Aqui surge a primeira grande novidade existente a partir da versão 6 do protocolo HART®, porém mais evidente na versão 7 por ser utilizada em todos os comandos WirelessHAR. Como descrito anteriormente, o campo Comando oferece faixas destinadas a comandos padrões, específicos, WirelessHART, etc. Estes comando possuem valores de 0 a 65021, porém o campo Comando é definido como apenas um byte (0 a 255), pois era suficiente para as versões antigas do protocolo.
Como solução para este problema, o protocolo criou um recurso chamado de Comando Expandido, indicado no campo Comando pelo valor 0x1F (flag de expansão), equivalente ao comando 31, não utilizado (veja na Tabela 1). Desta forma, quando a máquina de estado de recepção identifica este valor no campo Comando, entende que os primeiros dois bytes do campo Dados (após Response Code e Status, no caso de um frame de resposta) especificarão o comando expandido, garantindo a faixa até 65535.
Ainda sobre o conteúdo do campo Dados, geralmente a resposta de um comando inclui os dados enviados na requisição, seguidos por dados extras, em caso de monitoração. No caso de uma configuração, por exemplo, a resposta será idêntica à requisição, repetindo apenas os bytes enviados. Porém, ocorrendo erros de comunicação ou tratamento do frame HART®, apenas os campos Response Code e Status serão enviados, evidenciando claramente ao host que houve algum problema.
A Figura 8 exemplifica o comando 06, de alteração do Polling Address e Loop Current. O primeiro frame é uma requisição STX para alteração do endereço de polling para 01. Como resposta ACK, o equipamento repete no campo Dados os mesmos valores da requisição. Além disso, muda o Byte Count para 04, pois aumenta o frame com a adição do Response Code 00 e o Status 40 (configuração alterada).
STX:
FFFFFFFFFF |
82 |
E337000001 |
06 |
02 |
0101 |
53 |
ACK:
FFFFFFFFFF |
86 |
E337000001 |
06 |
04 |
00 |
40 |
0101 |
57 |
Figura 8 – Frames HART® STX e ACK sem erro.
Já no caso da Figura 9, temos um valor inválido para a alteração do endereço de
polling (FF). Desta forma, a resposta ACK ao comando possui apenas dois bytes de dados, correspondentes ao
Response Code (02 - Seleção Inválida) e Status.
STX:
FFFFFFFFFF |
82 |
E337000001 |
06 |
02 |
FF01 |
AD |
ACK:
FFFFFFFFFF |
86 |
E337000001 |
06 |
02 |
02 |
00 |
55 |
Figura 9 – Frames HART® STX e ACK com erro.
Como último campo do frame HART®, o
Checksum (ou verificação de soma) é responsável pela validação dos bytes transmitidos com uma segurança mínima. Para cada byte enviado a partir do campo Delimitador, uma operação lógica XOR é realizada, formando o byte final que será enviado neste campo. A máquina de recepção realiza as mesmas operações com os bytes recebidos, comparando o resultado final com o byte recebido no campo
Checksum. O frame é validado apenas quando estes valores se equivalem. Caso contrário, o erro de comunicação 0x88 (veja Tabela 2) é exibido na resposta do equipamento.
APLICAÇÕES DOS COMANDOS
Como explicado anteriormente, os comandos HART® são divididos em faixas que permitem selecionar quais funcionalidades devem estar presentes nos equipamentos de forma obrigatória ou opcional.
Os comandos Universais obrigatórios abrangem as seguintes funcionalidades:
- Identificação básica (endereço polling, TAGs, descrição, mensagem, data);
- Variáveis principais (corrente de loop, PV, SV, TV, QV);
- Variáveis específicas (comando 9, onde o usuário escolhe o código da variável a ser monitorada);
- Status adicionais do equipamento.
Os comandos de Prática-Comum opcionais abrangem as seguintes funcionalidades:
- Calibração da corrente de loop;
- Configurações da PV;
- Reinicialização do equipamento;
- Corrente de saída fixa;
- Modo Burst;
- Eventos.
Os comandos Específicos opcionais podem abranger as seguintes funcionalidades:
- Características do fabricante;
- Funções especiais do equipamento;
- Calibrações extras (pressão , posição, temperatura, etc);
- Diagnósticos específicos.
Figura 10 –Rede completa HART®.
Com esta variedade de funcionalidades e aplicações, o protocolo HART® oferece toda a flexibilidade e autonomia de que o usuário necessita para automatizar e otimizar processos, com facilidade de manutenção, monitoração e diagnósticos de variáveis que sejam importantes para o correto funcionamento da planta.
Sobre o autor
Alex Ginatto é Gerente de Produto e Desenvolvedor R&D na Vivace Process Instruments.
Referências
- HART HCF-Spec081
- HART HCF-Spec099
- HART HCF-Spec127r7.1
- HART HCF-Spec151r10.0