Quando lê o protocolo Modbus, encontra sempre alguns termos confusos, o que leva a problemas na interpretação do protocolo. Neste artigo, fornecemos explicações relevantes para os termos do protocolo Modbus que podem causar confusão.

1. Código de função:
Os códigos de função são utilizados para representar a função dos quadros de informação no protocolo modbus. Os códigos de função habitualmente utilizados são 03, 04, 06, 16, etc. Entre eles, o código de função 03 é utilizado para ler o conteúdo do registo de retenção e o código de função 04 é utilizado para ler o conteúdo do registo de entrada ( A diferença entre registos de entrada e registos de retenção (ver abaixo), o conteúdo do código de função 06 é para predefinir um único registo de retenção e o conteúdo do código de função 16 é para predefinir múltiplos registos de retenção.
2. Registos de entrada e registos de retenção:
O código de função 04 é para ler o registo de entrada, enquanto o código de função 03 é para ler o registo de espera. Muitas pessoas esperam sempre encontrar a diferença entre os dois códigos de função quando vêem estes dois códigos de função. O registo de espera e a entrada Qual é a diferença entre os registos? O protocolo Modbus foi originalmente utilizado para resolver o problema do protocolo de comunicação do PLC. É utilizado principalmente para a entrada e saída de sinais digitais e analógicos. O chamado registo de entrada é derivado da entrada do sinal analógico, ou seja, entrada O registo só pode ser alterado a partir da extremidade de entrada do sinal analógico, e o anfitrião não pode alterar os dados do registo de entrada emitindo instruções. O registo de retenção é utilizado para a saída de sinais analógicos. O anfitrião pode alterar os dados do registo. Ou seja, para o anfitrião, o registo de entrada é apenas de leitura, enquanto o registo de retenção pode ser lido e escrito. Quando o anfitrião utiliza as instruções de código de função 06, 16 para predefinir o registo de entrada, o dispositivo devolve um código de erro 0x81, ou seja, foi feita uma tentativa de escrever num registo só de leitura.
3. formato de endereço de dados em Modbus:
No protocolo Modbus, aparecem frequentemente registos semelhantes a 3xxxx e 4xxxx, que representam os tipos de dados suportados pelo registo. Utilizamos uma lista para ilustrar, e o formato de endereço de dados Modbus começa em 0. Por exemplo, o seguinte registo 40009 significa um registo de retenção. O endereço do registo é 00 08. Formatos de endereço de dados semelhantes são frequentemente utilizados em software de configuração e sistemas PLC. .
| Endereço de mapeamento | código de função utilizado | Tipo de endereço | Método de acesso | descrever |
| 0XXXX | 01,05,15 | Saída discreta | Ler e escrever | Cada volume representa um único bit de comutação |
| 1XXXX | 02 | entrada discreta | somente leitura | Cada volume representa um único bit de comutação |
| 2XXXX | 03,04,06,16 | registo de ponto flutuante | só de leitura/escrita de leitura | Dois registos consecutivos de 16 bits representam um número de ponto flutuante |
| 3XXXX | 04 | registo de entrada | somente leitura | Cada registo representa um número inteiro sem sinal de 16 bits |
| 4XXXX | 03,06,16 | registo de exploração | Ler e escrever | Cada registo representa um número inteiro sem sinal de 16 bits |
| 5XXXX | 03,04,06,16 | Caracteres ASCII | Ler e escrever | Cada registo representa dois códigos ASCII |
4. Modbus RTU/ASCII/TCP:
O protocolo Modbus foi originalmente utilizado para a comunicação entre controladores lógicos programáveis (PLCs). Devido à sua abertura, é amplamente utilizado em instrumentos inteligentes de campo. Existem múltiplas variantes do protocolo Modbus, as mais famosas das quais são Modbus RTU /Modbus ASCII e Modbus TCP. O protocolo RTU/ASCII baseia-se na comunicação por porta de série, enquanto o protocolo TCP se baseia na comunicação por Ethernet.
5.tabela de códigos de erro Modbus:
O Modbus tem códigos de função, códigos de verificação, códigos de função anómalos e códigos de erro, entre os quais os códigos de função anómalos e os códigos de erro são muito fáceis de confundir. De um modo geral, o código de função anormal refere-se ao código de função anormal correspondente que ocorre quando um determinado código de função é executado. Geralmente, é acrescentado 0x80 ao código de função. Por exemplo, o código de exceção que aparece no código de função 03 é o código de função anormal 0x83. O código de função anormal correspondente ao código de função 16 é 0x90, e o código de erro indica a situação específica do erro. Por exemplo, o endereço do registo não existe. Quer se trate de leitura ou escrita, se o endereço do registo não existir, o código de erro é 02.