Neste artigo detalharemos alguns dos tipos de serviços de transmissão e formato de frames dos protocolos Profibus-DP e Profibus-PA.
PROCEDIMENTOS DE TRANSMISSÃO NO PROFIBUS
O Profibus-DP utiliza dois tipos de serviços de transmissão no envio de telegramas de mensagens que são definidos na camada 2 (a camada de enlace de dados) do modelo ISO / OSI e resumidas abaixo:
SRD (Send and Request Data with acknowledge)
Com o SRD, os dados são enviados e recebidos em um ciclo de telegrama. Ou seja, o mestre envia dados de saída para o escravo e recebe dados de entrada do escravo em sua resposta (se aplicável) dentro de um período de tempo especificado. É importante lembrar neste serviço que um mestre pode enviar dados de saída para um escravo e requisitar dados do escravo, tudo em um único ciclo de telegrama. Este é o serviço de transmissão mais frequentemente usado em Profibus-DP e que faz com que a troca de dados seja muito eficiente para dispositivos de E/S mistas.
SDN (Send Data with No acknowledge)
Este serviço é utilizado quando uma mensagem deve ser enviada simultaneamente a um grupo de escravos (multi-cast), ou a todos os escravos (broadcast). Os escravos não respondem ou reconhecem mensagens de difusão ou multi-cast.
SDA (Send Data with Acknowledge)
Um terceiro tipo de serviço de transmissão utilizado em Profibus é o SDA (Send Data with Acknowledge), com dados enviados para um mestre ou escravo e de reconhecimento breve enviado como resposta.
TROCA DE MENSAGENS NO PROFIBUS
A troca de mensagens no Profibus acontece em ciclos e cada pacote de dados é conhecido como mensagem ou frame. Cada frame de requisição de dados ou de envio de dados a uma estação mestre Profibus está associado a um frame de confirmação ou resposta de uma estação mestre ou escrava.
Os dados podem ser transmitidos em frames de envio ou resposta, sendo que o frame de confirmação não contém dados, isto é, somente apresentará em seus campos códigos de reconhecimento do frame pela estação. Isto avisa a estação mestre que o escravo irá processar e responder ao mestre em breve.
O ciclo de mensagens é somente interrompido quando se tem a transmissão do frame de token (o token é passado entre as estações mestres em uma ordem numérica ascendente de endereços por meio do frame de token e com isto o mestre que o recebe dominará a comunicação por um determinado tempo) e pela transmissão de dados sem confirmação, necessária para mensagens broadcast. Em ambos os casos não há confirmação.
Todas as estações, exceto a que detém o token, monitoram todas as requisições e confirmam ou respondem somente quando são endereçadas. A confirmação ou resposta retornará em um tempo predefinido, o slot time (máximo tempo que o mestre irá esperar por uma resposta do escravo). Caso contrário, a requisição será repetida. A estação que não confirmar ou responder depois de um certo número de tentativas (retries) será listada como “não operacional” pela estação mestre.
Se um escravo detecta um erro de transmissão ao receber um pedido do mestre, ele simplesmente não responde e depois de esperar um
slot time, o mestre enviará novamente o pedido (
retry). Da mesma forma se o mestre detectar uma falha na resposta do escravo, também enviará novamente o pedido. O número de vezes que o mestre tentará sucesso na comunicação com o escravo dependerá da taxa de comunicação:
9.6 kbits/s a 1.5 Mbits/s –
retry = 1
3.0 Mbits/s –
retry = 2
6.0 Mbits/s –
retry = 3
12.0 Mbits/s –
retry = 4
Após esgotar todos os
retries, o mestre marca o escravo, indicando um problema e faz o
log out com dele. Nos ciclos subsequentes, se o mestre conseguir sucesso, realizará a sequência do
startup novamente (4 ciclos para trocar dados novamente).
CARACTERES PROFIBUS-DP
Todos os caracteres Profibus são compostos de 11 bits (1
start bit + 8 bits de dados + 1 bit de paridade + 1
stop bit).
O Profibus-DP troca dados em codificação NRZ (
Non-Return to Zero). Isto é, a forma do sinal de "0" ou "1" não se altera durante a duração do bit. Se não há transmissão, a linha permanece em nível “1”, que é o estado de
idle (inativo). Um
start bit faz com que a linha vá para o estado lógico "0".
Profibus NRZ-Coded Character Frame (Even Parity)
Start |
D0 |
D1 |
D2 |
D3 |
D4 |
D5 |
D6 |
D7 |
Parity |
Stop |
“0” |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
par |
“1” |
← |
LSB |
← |
← |
← |
← |
← |
← |
MSB |
← |
← |
Figura 2 – Caracteres UART Profibus.
Este
frame de caracteres aplica-se a todos os bytes de dados/caracteres, incluindo os bytes de cabeçalho do telegrama (
header). Quando as mensagens são transmitidas, cada caractere ou dado é enviado na ordem do bit menos significativo (LSB) para o bit mais significativo (MSB), como mostrado acima. Para a transferência de uma palavra (mais do que 1 byte), o byte MSB é transmitido em primeiro lugar, seguido pelo byte LSB (formato
Big-Endian/Motorola).
O Profibus utiliza o método de paridade
par para a verificação de erros de dados. Quando uma mensagem é transmitida, o bit de paridade é calculado e aplicado a cada caractere transmitido.
ESTRUTURA DOS FRAMES PROFIBUS
Inicialmente veremos como é formado um caractere UART no Profibus.
Cada
frame consiste de um número de caracteres, os chamados caracteres UART. O caractere UART (UC) é um caractere
start-stop para transmissão assíncrona, consistindo de 11 bits: um
start bit, que é sempre “0”, 8 bits de informação, que podem ser “0” ou “1”, um bit de paridade, que pode ser “0” ou “1” e um
stop bit, que é sempre “1”, conforme a Figura 2.
A especificação do Fieldbus Data Link Profibus apresenta 4 tipos diferentes de
frames, onde:
• SD1, SD2, SD3 e SD4: bytes de início (
Start Delimiter), podendo possuir os valores 10H, 68H, A2H e DCH. Veja os
frames a seguir.
• DA: byte de endereço de destino (
Destination Address);
• SA: byte de endereço fonte (
Source Address);
• FC: byte de controle (
Frame Control). O campo FC dos frames SD1, SD2, SD3, além de outra informações de controle, identifica a função do
frame. De acordo com a configuração de seus bits, pode-se identificar o tipo de estação que o enviou, se o mesmo é de pedido, resposta ou confirmação e a natureza das informações que contém.
• FCS: byte de checagem (
Frame CheckSequence);
• LE: byte de comprimento (
OctetLength), podendo assumir valores entre 4 e 249;
• LEr: byte de comprimento repetido;
• DATA_UNIT (DU): campo de dados que pode ser fixo (8) ou variável, podendo variar de 1 a 246 bytes;
• ED: byte finalizador (
EndDelimiter), sendo seu valor sempre 16H;
• SC: frame de resposta curta (
Short Acknowledgement), tendo como valor E5H.
Nos tipos de
frames a seguir cada coluna representa 1 byte (“1 octet”), exceto o campo DATA_UNIT (DU) que é variável.
SD |
1 byte |
Start Delimiter (usado para diferenciar os formatos dos telegramas). |
LE |
1 byte |
Net Data Length (DU) + DA + SA + FC + DSAP + SSAP. |
LEr |
1 byte |
Byte de comprimento repetido. |
DA |
1 byte |
DestinationAddress– Para onde a mensagem vai. |
SA |
1 byte |
SourceAddress – Origem da mensagem. |
FC |
1 byte |
FunctionCode (FC=Tipo/Prioridade da mensagem): Usado para informações de controle, identifica a função do frame. FC=13: signals diagnostic data. |
DSAP |
1 byte |
Destination Service Access Point (porta COM do receptor). A estação de destino utiliza este campo para determinar qual serviço a executar. |
SSAP |
1 byte |
Source Service Access Point (porta COM do remetente). |
DU |
1 a 32 bytes
(ou 1-244 bytes) |
Data Units/ de 1 a 244 bytes. |
FCS |
1 byte |
Byte de checagem (Frame CheckSequence). |
ED |
1 byte |
EndDelimiter (sempre 16H). |
Tabela 1 – Significado dos campos de um frame Profibus
1) Frames de tamanho fixo sem campo de dados
Request Frame
Acknowledgement Frame
Short Acknowledgement Frame
2) Frames de tamanho fixo com campo de dados
Send/Request Frame
Response Frame
3) Frames de tamanho do campo de dados variável
Send/Request Frame
SD2 |
LE |
LEr |
SD2 |
DA |
SA |
FC |
|
FCS |
ED |
Response Frame
SD2 |
LE |
LEr |
SD2 |
DA |
SA |
FC |
|
FCS |
ED |
4) Token Frame
Send/Request Frame
FRAMES PROFIBUS-DP
A figura 3 mostra um resumo dos
frames Profibus-DP.
Figura 3 –
Frames Profibus-DP.
FRAMES PROFIBUS-PA
A figura 4 mostra um resumo dos
frames Profibus-PA, onde vale a pena lembrar que o Profibus-PA
é definido de acordo com a IEC61158-2 e onde se tem a codificação Manchester.
Figura 4 –
Frames Profibus-PA.
COMPARANDO OS FRAMES PROFIBUS-DP e PROFIBUS-PA
A figura 5 mostra uma breve comparação entre o frame Profibus-DP e Profibus-PA.
Figura 5 –
Frames Profibus-DP x Profibus-PA.
SAP – Service Access Point
Toda troca de dados (data exchange) entre mestre e escravo Profibus é feita utilizando as SAPs de 54 a 62, mais a SAP padrão (SAP = 0, Data Exchange).
A inclusão de um DSAP ou SSAP em um pedido ou resposta é feita configurando o bit mais significativo para "1" no campo DA ou SA e, nesta condição, somente os 7 bits menos significativos conterão realmente o endereço (de 0x00 até 0x7F, onde 0x7F é reservado para broadcast e 0x7E é reservado para endereço default).
Para serviços acíclicos outras SAPs estão disponíveis de acordo com a tabela 2. São conhecidos como serviços estendidos.
Alguns tipos de SAPs:
Tabela 2 - Tipos de SAPs.
CONFIABILIDADE DOS DADOS DA TRANSMISSÃO NO PROFIBUS
Para garantir a confiabilidade dos dados da transmissão, o Profibus dispõe de um mecanismo de segurança conhecido como distância
Hamming 4 (Hd = 4, que significa que até três bits errados simultaneamente podem ser detectados). A introdução de um bit de paridade nos caracteres UART incrementa em um bit a distância
Hamming. Consegue-se Hd = 4 enviando um FCS com cada
frame, assim como a inclusão de delimitadores de início e fim dos
frames. O Profibus não utiliza a correção de erros. Quando é detectado um erro em um
frame, descarta-se e repete-se a transmissão.
CONCLUSÃO
Vimos neste artigo um breve detalhamento dos serviços de transmissão e os tipos de frames dos protocolos Profibus-DP e Profibus-PA.
O protocolo PROFIBUS oferece toda a flexibilidade e autonomia que o usuário necessita para automatizar e otimizar processos, com facilidade de instalação, operação, manutenção e diagnósticos de variáveis que sejam importantes para o correto funcionamento da planta.
Este artigo não substitui os padrões IEC 61158 e IEC 61784, nem os perfis e guias técnicos do PROFIBUS. Em caso de discrepância ou dúvida, os padrões IEC 61158 e IEC 61784, perfis, guias técnicos e manuais de fabricantes prevalecem. O conteúdo deste artigo foi elaborado cuidadosamente. Entretanto, erros não podem ser excluídos e assim nenhuma responsabilidade poderá ser atribuída ao autor. Sugestões de melhorias podem ser enviadas ao e-mail cesar
.cassiolato@vivaceinstruments.com.br.
Sobre o autor
César Cassiolato é
Presidente e Diretor de Qualidade da Vivace Process Instruments. É também Conselheiro Administrativo da Associação PROFIBUS Brasil América Latina desde 2011, onde foi Presidente de 2006 a 2010, Diretor Técnico do Centro de Competência e Treinamento em PROFIBUS, Diretor do FDT Group no Brasil e Engenheiro Certificado na Tecnologia PROFIBUS e Instalações PROFIBUS pela Universidade de Manchester
Referências
- Manuais Vivace ProcessInstruments
- Artigos Técnicos César Cassiolato
- https://www.vivaceinstruments.com.br/
- Material de treinamento e artigos técnicos PROFIBUS - César Cassiolato
- Especificações técnicas PROFIBUS
- www.profibus.com