O Protocolo Modbus – Guia para Identificação e Resolução de Problemas

Introdução de Modbus

Breve História do Modbus

Modicon introduziu modbus pela primeira vez em 1979. Modbus é um padrão aberto, e é o mais utilizado no ambiente industrial. A Modbus está disponível publicamente e, devido à sua simplicidade, muitos fabricantes usam o Modbus como solução para integração em seus próprios produtos. Muitos produtos e sistemas comerciais suportam os protocolos Modbus RTU e Modbus TCP. Para mais informações, visite o site da Modbus em http://www. Modbus-IDA.org.

Descrição do protocolo modbus

O protocolo Modbus define uma PDU (Protocol Data Unit, unidade de dados de protocolo) simples, independente das camadas de comunicação subjacentes. O mapeamento do protocolo Modbus em ônibus específicos, ou redes, pode introduzir alguns campos adicionais na unidade de dados de aplicativos (ADU). Modbus é um protocolo de solicitação/resposta e oferece serviços especificados por códigos de função.

Códigosde ção divertidos são elementos de PDUs de solicitação/resposta MODBUS.

Entendendo Modbus

Seções de memória modbus

Modbus tem quatro seções de memória que consistem em quatro tipos de dados. As quatro seções de memória possuem dados específicos nos registros. Os dados mantidos nos registros têm um endereço único. Os pontos e os endereços de registro inicial são:

  1. Bobinas 1 (Ler/Escrever)
  2. Insumos binários 10.001 (Somente leitura)
  3. Entradas analógicas 30.001 (Somente leitura)
  4. Segurando 40.001 (Ler/Escrever)

As seções de memória são identificadas usando códigos de função. Eles são usados em combinação com o endereço do dispositivo para localizar uma seção de memória específica ou ponto. Esse tipo de solicitação é feita pelo dispositivo mestre em redes RTU (Remote Terminal Unit, unidade de terminal remoto) ou pelo cliente nas redes TCP (Modbus Transmission Control Protocol, protocolo de controle de transmissão).

Registros

Register close up.bmp

Os registros também são conhecidos como “Palavras” iguais a dezesseis bits ou dois bytes. A interpretação de um registro baseia-se na forma como os dados são especificados (por exemplo, analógicos ou digitais).

Os registros são lidos do Bit Menos Significante (LSB) para o Bit Mais Significativo (MSB).

Um único registro representa:

  • Um inteiro de 16 bits sem assinatura (número inteiro) de 0 a 65535
  • Um inteiro de 16 bits assinado entre -32767 e 32767. Dois registros podem ser combinados para representar:
  • 32 bits não assinados (registro duplo) = 0 – 4.294.967.295
  • 32 bits assinados = 2.147.483.647 para 2.147.483.647.

Os registros podem representar um registro de ponto flutuante IEEE de 32 bits. Registros de 32 bits são geralmente lidos de Palavra Menos Significante (LSW) para Palavra Mais Significante (MSW), mas alguns fabricantes revertem a ordem das palavras.

Códigos de função

Os Códigos de função identificam a seção de memória que um dispositivo mestre está tentando acessar em um dispositivo escravo. Eles também especificam se a ação é para ler ou escrever um registro.

Existem três categorias de Códigos de Função:

  • Público
  • Usuário definido
  • Reservado

A tabela a seguir mostra os códigos de função pública mais comuns:

Tipo de registro Código de função Tipo de ponto
Leia bobinas 1 DI
Leia a entrada binária 2 DE
Leia Holding 3 AI, AO
Leia entradas analógicas 4 PARA
Escreva bobina única 5 DO
Escreva registro de retenção simples 6 AO
Escreva várias bobinas 15 DO
Escreva vários registros de retenção 16 AO

Para obter uma descrição completa das três categorias, visite http://modbus.org e baixe http://modbus.org/docs/Modbus_Application_Protocol_V1_1b.pdf

Votação

Uma vez especificado o endereço do dispositivo e o código function, modbus requer o endereço do primeiro registro que deve ser lido ou escrito. A próxima parte da solicitação é o número de registros que devem ser lidos nesse pedido ou enquete específico.

É sempre importante solicitar dados em sequência. Isso tornará suas comunicações mais eficientes. Por exemplo, se um dispositivo Master solicitar registrar 40.001, 40.005, 40.010, isso criaria três pesquisas separadas. Se o dispositivo Master solicitasse registers 40.001 a 40.010 em vez disso, isso criaria uma enquete e manteria o tronco livre de comunicações até a próxima votação.

Deslocamento de base é o endereço de partida usado para especificar o acesso a diferentes seções dentro de um dispositivo.

A Modbus não tem diretrizes específicas sobre como um documento deve fornecer informações sobre seu mapa de ponto de registro ou os códigos de função suportados. Outros protocolos como o LON fornecem um perfil funcional ou o BACnet fornece uma Declaração conformanade implementação de protocolo (PICS).

Ao ler o documento de um fabricante, os endereços de registro são representados em três formatos diferentes:

  1. Modbus
  2. Decimal
  3. Hexadecimal

O formato de endereçamento modbus é baseado em um número de 5 dígitos (por exemplo, 40001). É mais comumente usado em controladores comerciais.

O valor do formato de endiciais pode não ser tão comum e pode não representar o endereço absoluto de uma compensação de ponto.

O formato de endereçamento Hexadecimal provavelmente representará o endereço absoluto de um point (sem necessidade de deslocamento).

Unidade de Terminal Remoto modbus (RTU)

Introdução

Modbus Remote Terminal Unit é um dos dois modos de transmissão serial diferentes. É baseado em um modelo Mestre/Escravo. Apenas um mestre está conectado ao ônibus e vários nós escravos estão conectados ao mesmo porta-malas.

O Mestre inicia a comunicação. Os nódulos escravos só respondem a um pedido do Mestre. Nós escravos não se comunicam uns com os outros.

Os dispositivos mestres têm duas maneiras de solicitar dados de um dispositivo escravo, unicast e transmissão:

  1. As comunicações unicast são direcionadas para um único dispositivo.
    • Após receber e processar a solicitação, o dispositivo escravo retorna uma mensagem ou resposta.
  2. As comunicações de transmissão são enviadas para todos os dispositivos.
    • Nenhuma resposta é enviada de volta. Os pedidos de transmissão estão escrevendo comandos. Todos os dispositivos devem aceitar uma solicitação de escrita de transmissão. O endereço 0 é reservado para transmissões.

Regras de endereçamento do Modbus :

0 1-247 248 – 255
Difusão Endereço individual escravo Reservado

Pacote RTU

O protocolo Modbus define uma PDU (Protocol Data Unit, unidade de dados de protocolo) simples, independente das camadas de comunicação subjacentes. O mapeamento do protocolo MODBUS em ônibus ou redes específicos pode introduzir alguns campos adicionais na Unidade de Dados de Aplicativos (ADU).

APDURTU.png

Pacote RTU :

Endereço escravo Código de função Dados CRC
1 byte 1 byte 0 – 252 bytes 2 bytes

Um dispositivo Mestre aborda um escravo colocando o endereço escravo no campo de endereço da mensagem. Quando o escravo retorna sua resposta, ele coloca seu próprio endereço no campo de endereço de resposta para que o Mestre saiba qual escravo está respondendo.

O código de função indica ao servidor que tipo de ação executar. O código de função é seguido por um campo de dados que contém parâmetros de solicitação e resposta.

O campo de verificação de erros é o resultado de um cálculo de Verificação de Redundância de Ciclo (CRC) que é realizado no conteúdo da mensagem. O campo CRC verifica o conteúdo de toda a mensagem. É aplicado independentemente de qualquer método de verificação de paridade usado para os caracteres individuais da mensagem. O campo CRC contém um valor de 16 bits implementado como dois bytes de 8 bits.

Modo de Transmissão

O formato (11 bits) para cada byte no modo RTU é:

  • Sistema de codificação: binário de 8 bits
  • Bits por Byte: 1 bit de partida
  • 8 bits de dados, bit menos significativo enviado primeiro
  • 1 bit para conclusão da paridade
  • 1 bit de parada

Até a paridade é necessária. Outros modos (paridade ímpar, sem paridade) também podem ser usados. Para garantir a máxima compatibilidade com outros produtos, também é recomendado suportar o modo sem paridade. O modo de paridade padrão deve ser mesmo paridade. O uso de nenhuma paridade requer 2 bits de parada.

RS – 485

No nível físico, modbus sobre sistemas serial line pode usar diferentes interfaces físicas (RS485, RS232). TIA/EIA-485 (RS485.) Interface de dois fios é a mais comum. Como opção de complemento, a interface de quatro fios RS485 pode ser implementada. Uma interface serial TIA/EIA-232-E (RS232) também pode ser usada como uma erface int, quando apenas uma comunicação ponto a ponto curta é necessária.

As regras RS-485 devem ser seguidas conforme especificado pelo EIA/TIA -485, por exemplo:

  • 32 cargas máximas por segmento sem repetidor
  • O comprimento depende da taxa de baud, do cabo (Gauge, Capacitance ou Characteristic Impedance), do número de cargas na cadeia de margaridas e da configuração da rede (2 fios ou 4 fios).
  • Não são permitidas conexões de toque T.
  • Dois terminadores de linha por segmento.
  • Um resistor de viés por segmento.
  • Endereçamento:
    • 0 transmissão
    • 1-247 Escravos
    • 248-255 reservados

São necessárias taxas de Baud de 9600 bps e 19,2 Kbps e 19,2 é o padrão exigido. Outras taxas de baud podem ser implementadas: 1200, 2400, 4800, 38400 bps, 56 Kbps, 115 Kbps. Para mais informações, consulte documento:

http://modbus.org/docs/Modbus_over_serial_line_V1_02.pdf

Modbus TCP

Introdução

O protocolo Modbus TCP é baseado em um modelo cliente/servidor. O Cliente substitui o Mestre, e o Servidor substitui o escravo. O Modbus TCP conta com o TCP para a entrega de dados e IP para roteamento dos dados.

Um cabeçalho dedicado é usado para identificar a Unidade de Dados de Aplicação modbus (ADU). É conhecido como o cabeçalho MBAP (Modbus Application Protocol Header). Inclui o seguinte:

    • Identificador de transações
    • Identificador de protocolo
    • Comprimento
    • Identificador da unidade

Cabeçalho MBAP

O protocolo Modbus define uma PDU (Protocol Data Unit) simples independente das camadas de comunicação subjacentes. O mapeamento do protocolo MODBUS em ônibus ou redes específicos pode introduzir alguns campos adicionais na Unidade de Dados de Aplicativos (ADU). O Modbus TCP ADU é enviado via TCP para a porta registrada 502. Esta porta pode ser necessária, mas pode ser alterada em situações específicas.

MBAPOSI.png

Um cabeçalho dedicado é usado no TCP/IP para identificar a Unidade de Dados de Aplicação MODBUS. É chamado de cabeçalho MBAP (cabeçalho do Protocolo de Aplicação MODBUS).

MBAP Código de função Dados
7 byte 1 byte 0 – 252 bytes

O cabeçalho MBAP contém os seguintes campos:

    • Identificador de transações
      • Usado para emparelhamento de transações. O servidor MODBUS copia na resposta o identificador de transação da solicitação.
    • Identificador de protocolo
      • Usado para multiplexing intra-sistema. O protocolo MODBUS é identificado pelo valor 0.
    • Comprimento
      • O campo de extensão é uma contagem de byte dos seguintes campos, incluindo o Identificador de Unidade e campos de dados.
    • Identificador da unidade
      • Usado para o encaminhamento intra-sistema. É normalmente usado para se comunicar com um modbus+ ou um escravo de linha serial MODBUS através de um gateway entre uma rede Ethernet TCP-IP e uma linha de série MODBUS. Este campo é definido pelo Cliente MODBUS na solicitação e deve ser devolvido com o mesmo valor na resposta pelo servidor.

Camadas de suporte

O Protocolo de Controle de Transmissão (TCP, Camada 4) é um protocolo orientado para conexão que fornece transferência transparente de dados entre dispositivos, proporcionando confiabilidade de um determinado link através do controle de fluxo, segmentação/desegmentação e controle de erros.

O Internet Protocol (IP, camada 3) é um protocolo de camada de ork sem conexão que fornece recursos para endereçamento, tipo de especificação de serviço, fragmentação, remontagem e segurança.

A Ethernet é responsável pelas duas últimas camadas Data Link e Physical. É responsável pela criação do quadro e encapsulamento de PDUs. As regras da Ethernet para distância e cabeamento devem ser seguidas:

Tipo Ethernet Largura de banda Tipo de cabo Distância máxima (medidores)
10BASE5 10Mbps Coax Grosso 1640 (500)
10BASE2 10Mbps Coax Fino 606 (185)
10BASE-T 10Mbps Cat3/Cat5 UTP 328 (100)
100BASE- TX 100Mbps Cat5 UTP 328 (100)
100BASE- FX 100Mbps Fibra multimode / modo único 1312/6561 (400/2000)
1000BASE-T 1Gbps Cat5e UTP 328 (100)
1000BASE-TX 1Gbps Cat6 UTP 328 (100)
1000BASE- SX 1Gbps Fibra multimoda 1804 (550)
1000BASE- LX 1Gbps Fibra de modo único 6561 (2000)
10GBASE-T 10Gbps Cat6a/Cat7 UTP 328 (100)
10GBASE- LX4 10Gbps Fibra multimoda 984 (300)
10GBASE- LX4 10Gbps Fibra de modo único 3280 (10.000)

Para mais informações, consulte o documento: http://modbus.org/docs/Modbus_Messaging_Implementation_Guide_V1_0b.pdf

Related Articles

Responses