Explicação pormenorizada do protocolo Modbus RTU
Protocolo de comunicação MODBUS_RTU (este acordo adopta o método mestre-escravo de pergunta e resposta)
Protocolo de comunicação MODBUS: O protocolo de comunicação ModBus permite que os instrumentos/transmissores da série PDM comuniquem com controladores de sequência programável (PLC), RTU, sistemas SCADA, DCS ou terceiros de muitas marcas de renome internacional, como Schneider, Siemens, AB, GE, etc. Troca de informações e transmissão de dados entre sistemas de monitorização compatíveis com ModBus.

Os instrumentos/transmissores da série PDM podem formar um sistema de monitorização de potência, bastando adicionar um conjunto de software de monitorização baseado em computador (ou computador industrial) (como o Kingview, in ouch, FIX, synall, etc.).
Ampla integração de sistemas: Os instrumentos/transmissores da série PDM fornecem uma interface de comunicação padrão RS-485/422 e o protocolo de comunicação ModBus. Este protocolo de comunicação tem sido amplamente utilizado como um padrão de integração de sistemas na indústria de energia e na indústria de controlo industrial no país e no estrangeiro.
Tipo e formato dos dados de comunicação: A transmissão de informações é assíncrona e em bytes.existem
A informação de comunicação transmitida entre a estação mestra e a estação escrava está no formato de palavra de 11 bits:
Formato Word (dados de série) Binário de 11 bits
Bit de início 1
Bits de dados 8 bits
Bit de paridade 1 bit: Com bit de paridade/Nenhum: Sem bit de paridade
Bit de paragem 1 bit: com bit de paridade/2 bits: sem bit de paridade
Formato dos dados de comunicação (quadro de informações)
Formato dos dados: Código de endereço Código de função Área de dados Controlo de erros
Comprimento dos dados: 1 byte 1 byte N bytes Código CRC de 16 bits (ciclo redundante)
código)
Nota
1. 1 byte é composto por números binários de 8 bits (ou seja, 8 bits).
2. ModBus é uma marca registada da Modicon Company.
3. Neste documento, “máquina escrava” refere-se ao PDM.
1. Processo de transmissão de informações de comunicação:
Quando o comando de comunicação é enviado do dispositivo emissor (anfitrião) para o dispositivo recetor (escravo), o escravo que satisfaz o código de endereço correspondente recebe o comando de comunicação e lê a informação de acordo com o código de função e os requisitos relacionados. Se a verificação CRC estiver correta, a tarefa correspondente, e depois devolve os resultados da execução (dados) ao anfitrião. A informação devolvida inclui o código de endereço, o código de função, os dados após a execução e o código de verificação CRC. Se a verificação CRC falhar, não será devolvida qualquer informação.
1.1 Código de endereço
O código de endereço é o primeiro byte (8 bits) de cada quadro de informação de comunicação, de 0 a 255. Este byte indica que o slave com um endereço definido pelo utilizador irá receber a informação enviada pelo master. Cada slave deve ter um código de endereço único, e apenas o slave que corresponda ao código de endereço pode responder à mensagem de retorno. Quando o slave envia informações de retorno, os dados enviados começam com os respectivos códigos de endereço. O código de endereço enviado pelo mestre indica o endereço do escravo a ser enviado, e o código de endereço devolvido pelo escravo indica o endereço do escravo enviado de volta. O código de endereço correspondente indica de onde veio a informação.
1.2 Código de função
É o segundo byte transmitido em cada quadro de informações de comunicação. O protocolo de comunicação ModBus pode definir códigos de função de 1 a 127. Os instrumentos/transmissores da série PDM utilizam apenas parte dos códigos de função. Enviado como um pedido do anfitrião, o código de função é utilizado para dizer ao slave que ação deve executar. Como resposta do slave, o código de função devolvido pelo slave é o mesmo que o código de função enviado pelo host e indica que o slave respondeu ao host e efectuou as operações relevantes.
Tabela 8.1 Alguns códigos de função do MODBUS
Operação de definição do código de função (binário)
02 Ler entrada do interrutor Ler um ou mais dados de entrada do estado do interrutor
01 Ler a saída de comutação Ler um ou mais dados de estado da saída de comutação
03 Ler dados do registo Ler dados de um ou mais registos
05 Saída de interrutor de escrita para controlar a saída de “fecho/abertura” de um relé
06 Escrever um único registo Escrever um conjunto de dados binários num único registo
10 Escrever vários registos Escrever vários conjuntos de dados binários em vários registos
1.3 Área de dados
A área de dados inclui a informação que tem de ser enviada pelo slave ou a ação que tem de ser executada. Esta informação pode ser dados (tais como: entrada/saída de interrutor, entrada/saída analógica, registo, etc.), endereço de referência, etc. Por exemplo, se o anfitrião disser ao escravo para devolver o valor do registo (incluindo o endereço inicial do registo a ser lido e o comprimento do registo lido) através do código de função 03, então os dados devolvidos incluem o comprimento dos dados e o conteúdo dos dados do registo. Para diferentes máquinas slave, o endereço e a informação de dados são diferentes (deve ser fornecida uma tabela de informação de comunicação).
O instrumento/transmissor da série PDM adopta o protocolo de comunicação Modbus. O anfitrião (PLC, RTU, PC, DCS, etc.) pode ler o seu registo de dados à vontade, utilizando o comando de comunicação (código de função 03) (ver o apêndice para a tabela de informação de dados). O registo de dados do instrumento/transmissor da série PDM armazena centenas de grandezas eléctricas (tais como corrente, tensão, potência, componentes harmónicos 0~31º, etc.), e são todos dados binários de 16 bits (2 bytes). O número máximo de registos que podem ser lidos de uma só vez (ou seja, o número de vários tipos de potência) é 50.
O formato de comando da resposta PDM é o endereço do slave, o código de função, a área de dados e o código CRC. Os dados na área de dados são todos de dois bytes, com o bit de ordem mais alta primeiro (exceto no caso da energia eléctrica).
Nota: 1. Ferramentas PDM-820AC/ACM/ACR, PDM-800AC/ACM
Existem códigos de função “03”, “06” e “10”;
2. Se a PDM adotar o protocolo de comunicação MODBUS ASCII, o seu formato de dados de comunicação é: 7
Bits de dados, 1 bit de paragem, paridade par.
2. Introdução aos códigos de função MODBUS
2.1 Código de função “02”: Ler uma ou mais entradas de estado do interrutor
Por exemplo: o anfitrião quer ler o estado de entrada do interrutor DI1-DI4 com o endereço 01.
O endereço e os dados do registo de dados do escravo (PDM) são:
Endereço do bit inicial Dados do registo DI (hexadecimal) Observações 0000 0B
O estado de DI1/DI2/DI4 é “1” e o estado de DI3 é “0”
O formato da mensagem enviada pelo anfitrião:
Número de bytes enviados pelo anfitrião Informações enviadas Observações
O endereço do escravo 1 01 é enviado para o escravo com o endereço 01
Código de função 1 02 lê o estado da entrada do interrutor
Bit BIT inicial 2 0000 O endereço do bit BIT inicial é 0000
Ler o comprimento dos dados 2 0004 Ler os bits de estado da entrada do interrutor de 4 vias
Código CRC 2 79C9 O código CRC é calculado pelo anfitrião
O formato da mensagem devolvida pela resposta do escravo (PDM):
Resposta do escravo número de bytes devolvidos observações de informação
O endereço do escravo 1 01 vem do escravo 01
Código de função 1 02 lê o estado da entrada do interrutor
Comprimento dos dados 1 01 1 byte (8 BIT bits)
Dados de estado da ED 1 0B Conteúdo do registo da ED
Código CRC 2 E04F O código CRC é calculado pela máquina escrava
2.2 Código de função “01”: Ler o estado de uma ou mais saídas de comutação
Por exemplo: o anfitrião pretende ler o estado de saída dos interruptores DO1 e DO2 com o endereço 01.
O endereço e os dados do registo de dados do escravo (PDM) são:
Endereço do bit inicial Dados do registo DO (hexadecimal) Observações
0000 02 O estado da saída DO2 é “1”, o estado da saída DO1
O estado é “0”
O formato da mensagem enviada pelo anfitrião:
Número de bytes enviados pelo anfitrião Informações enviadas Observações
O endereço do escravo 1 01 é enviado para o escravo com o endereço 01
Código de função 1 01 lê o estado da saída do interrutor
Bit BIT inicial 2 0000 O endereço do bit BIT inicial é 0000
Ler comprimento de dados 2 0002 Ler 2 bits de estado da saída do relé
Código CRC 2 BDCB O código CRC é calculado pelo anfitrião
O formato da mensagem devolvida pela resposta do escravo (PDM):
Resposta do escravo número de bytes devolvidos observações de informação
O endereço do escravo 1 01 vem do escravo 01
Código de função 1 01 lê o estado da saída do interrutor
Comprimento dos dados 1 01 1 byte (8 BIT bits)
Dados de estado do DO 1 02 Conteúdo do registo DO
Código CRC 2 D049 O código CRC é calculado pela máquina escrava
2.3 Código de função “03”: Ler entradas de registos múltiplos
Por exemplo: o anfitrião quer ler o número de 3 registos de escravos com o endereço 01 e o endereço inicial 0116.
de acordo com.
O endereço e os dados do registo de dados do escravo (PDM) são:
Endereço do registo Dados do registo (hexadecimal) Potência PDM correspondente
0116 1784UA
0117 1780UB
0118 178A UC
O formato da mensagem enviada pelo anfitrião:
Número de bytes enviados pelo anfitrião Informações enviadas Observações
O endereço do escravo 1 01 é enviado para o escravo com o endereço 01
Código de função 1 03 Ler registo
Endereço inicial 2 0116 O endereço inicial é 0116
Comprimento dos dados 3 0003 Ler 3 registos (6 bytes no total)
Código CRC 2 E5F3 O código CRC é calculado pelo anfitrião
O formato da mensagem devolvida pela resposta do escravo (PDM):
Resposta do escravo número de bytes devolvidos observações de informação
O endereço do escravo 1 01 vem do escravo 01
Código de função 1 03 Ler registo
Ler a palavra 1 06 3 registos, totalizando 6 bytes
Dados do registo 1 2 1784 O conteúdo da memória no endereço 0116
Dados do registo 2 2 1780 O conteúdo da memória no endereço 0117
Dados do registo 3 2 178A O conteúdo da memória no endereço 0118
Código CRC 2 5847 O código CRC é calculado pela máquina escrava
2.4 Código de função “05”: escrever 1 saída de interrutor (“controlo remoto”)
Exemplo 1: Ponto de saída de comutação DO1, o seu estado atual é “minuto”, o anfitrião pretende controlar este relé
O dispositivo “junta-se”.
Os comandos de controlo são:
“FF00” significa que o relé de controlo está “fechado”;
“0000” é o “minuto” do relé de controlo;
O formato da mensagem enviada pelo anfitrião:
Número de bytes enviados pelo anfitrião Informações enviadas Observações
O endereço do escravo 1 01 é enviado para o escravo com o endereço 01
Código de função 1 05 escreve o estado da saída do interrutor
Output BIT bit 2 0000 corresponde ao bit BIT do relé de saída (DO1)
O comando de controlo 2 FF00 controla a saída do relé para estar “ligado” bit de estado
Código CRC 2 8C3A O código CRC é calculado pelo anfitrião
O formato da mensagem devolvida pela resposta do escravo (PDM):
O formato e o conteúdo dos dados da mensagem enviada pelo anfitrião são exatamente os mesmos.
Exemplo 2: Ponto de saída do interrutor DO2, o seu estado atual é “fechado” e o anfitrião pretende controlar este relé
O dispositivo “pontos”.
Formato da mensagem enviada pelo anfitrião
Número de bytes enviados pelo anfitrião Informações enviadas Observações
O endereço do escravo 1 01 é enviado para o escravo com o endereço 01
Código de função 1 05 escreve o estado da saída do interrutor
O bit BIT de saída 2 0001 corresponde ao bit BIT do relé de saída (DO2)
O comando de controlo 2 0000 comanda a saída do relé para estar “ligado” bit de estado
Código CRC 2 9C0A O código CRC é calculado pelo anfitrião
O formato da mensagem devolvida pela resposta do escravo (PDM):
Código CRC calculado pelo anfitrião
O formato da mensagem devolvida pela resposta do escravo (PDM):
O formato e o conteúdo dos dados da mensagem enviada pelo anfitrião são exatamente os mesmos.

2.6 Código de função “10”: Escrever vários registos
O anfitrião utiliza este código de função para gravar vários dados na memória de dados da tabela PDM.
O registo no protocolo de comunicação Modbus refere-se a 16 bits (ou seja, 2 bytes), e o bit mais alto é o primeiro.
Desta forma, a memória do PDM é de dois bytes, uma vez que o protocolo de comunicação Modbus permite até dois bytes de memória.
Guardar 60 registos, pelo que o PDM permite guardar até 60 registos de dados de uma só vez.
Por exemplo: o anfitrião quer guardar 0064, 0010 nos registos dos escravos com os endereços 002C, 002D
Ir (o código de endereço do escravo é 01). Depois de os dados de comunicação serem guardados, o PDM com o endereço 002C/002D
As informações armazenadas na tabela são:
Endereço dos dados originalmente armazenados (hexadecimal)
002C 04B0
002D 1388
O formato da mensagem enviada pelo anfitrião:
Código CRC calculado pelo anfitrião
O formato da mensagem devolvida pela resposta do escravo (PDM):
Resposta do escravo número de bytes número de bytes exemplo
O endereço do escravo 1 01 vem do escravo 01
Código de função 1 10 Escrever registos múltiplos
Endereço inicial 2 002C O endereço inicial é 002C
Guardar dados de comprimento de palavra 2 0002 Guardar dados de comprimento de 2 palavras
Código CRC 2 8001 Código CRC calculado pela máquina escrava
3. Código de controlo de erros (controlo CRC)
4. Tratamento das informações e dos dados relativos aos erros de comunicação
Quando a tabela PDM detecta um erro que não seja o erro do código CRC, deve enviar uma mensagem ao anfitrião
a posição mais elevada do código de função é 1, ou seja, o código de função devolvido pelo escravo ao anfitrião é enviado pelo anfitrião.
Acrescentar 128 com base no código de função enviado. Os seguintes códigos indicam que ocorreu um erro inesperado
nascido.
Se a informação recebida pelo PDM do anfitrião tiver erros de CRC, será ignorada pela tabela PDM.
O formato do código de erro devolvido pela PDM é o seguinte (exceto o código CRC):
Código de endereço: 1 byte
Código de função: 1 byte (o bit mais alto é 1)
Código de erro: 1 byte
Código CRC: 2 bytes.
A resposta do PDM retorna o seguinte código de erro:
81. Código de função ilegal. O código de função recebido não é suportado pela tabela PDM.
82. Localização de dados ilegal.A localização de dados especificada excede o âmbito da tabela PDM
à volta.
83. Valor de dados ilegal.O valor de dados recebido do anfitrião excede a fase PDM
O intervalo de dados do endereço correspondente.