Formato de tabela e tipos de dados do Modbus
Formatos das tabelas
As tabelas de registo têm as seguintes colunas:
Endereço |
Registo |
N.º |
RW |
X |
Unidade |
Tipo |
Gama |
Valor predefinido |
Svd |
Código de função |
Descrição |
Designação |
Descrição |
---|---|
Endereço |
Endereço de registo de 16 bits em valores hexadecimais. O endereço são os dados utilizados na estrutura Modbus. |
Registo |
Número de registo de 16 bits em valores decimais. Registo = Endereço + 1 |
N.º |
Número de registos de 16 bits que têm de ser lidos/escritos para aceder à informações completas. |
RW |
Indica se o registo é apenas de leitura (R) ou leitura/escrita (RW). |
X |
Fator de escala:
|
Unidade |
Unidade de medição da informação:
|
Tipo |
Tipo de dados de codificação (consulte Tabela de tipos de dados). |
Gama |
Gama de valores permitidos para a variável, normalmente um subconjunto do permitido pelo formato. Para os dados do tipo BITMAP, o conteúdo deste domínio é "–". |
Valor predefinido |
Valor predefinido da variável. |
Svd |
Guardar o valor em caso de falha de energia:
NOTA: Durante o arranque ou da reposição,
os valores disponíveis são recuperados.
|
Código de função |
Código das funções utilizáveis no registo. |
Descrição |
Informações sobre o registo e as restrições aplicáveis. |
Tipos de dados
Os seguintes tipos de dados aparecem nas tabelas de registos Modbus:
Nome |
Descrição |
Gama |
---|---|---|
UINT |
Número inteiro não atribuído de 16 bits (1 palavra) |
De 0 a 65535 |
INT |
Número inteiro atribuído de 16 bits (1 palavra) |
De -32768 a +32767 |
UINT32 |
Número inteiro não atribuído de 32 bits (2 palavras) |
De 0 a 4 294 967 295 |
INT32 |
Número inteiro atribuído de 32 bits (2 palavras) |
De -2 147 483 648 a +2 147 483 647 |
Float32 |
Valor de 32 bits (2 palavras) |
De -3,4028E+38 a +3,4028E+38 |
ASCII |
Caráter alfanumérico de 8 bits |
Tabela de carateres ASCII |
BITMAP |
Campo de 16 bits (1 palavra) |
– |
DATA |
Consulte Tabela de datas |
– |
Dados de tipo Float32: Variação de precisão com bit de sinal, expoente de 8 bits, mantissa de 23 bits (real normalizado positivo e negativo)
Para os dados do tipo ASCII, a ordem de transmissão dos carateres em palavras (registos de 16 bits) é a seguinte:
-
Caráter n como o menos significativo
-
Caráter n + 1 como o mais significativo
Todos os registos (16 bits ou 2 bytes) são transmitidos com codificação Big Endian:
-
O byte mais significativo é transmitido em primeiro lugar
-
O byte menos significativo é transmitido em segundo lugar
As variáveis de 32 bits guardadas em duas palavras de 16 bits (por exemplo, medidores de consumo) estão no formato Big Endian:
-
A palavra mais significativa é transmitida primeiro, a menos significativa é transmitida em seguida.
Variáveis de 64 bits guardadas em quatro palavras de 16 bits (por exemplo, datas) estão no formato Big Endian:
-
A palavra menos significativa é transmitida primeiro, etc.
DATETIME
DATETIME é um tipo de dados utilizado para codificar a data e a hora definidos pela norma IEC 60870-5.
Registo |
Tipo |
Bit |
Intervalo |
Descrição |
---|---|---|---|---|
1 |
INT16U |
0-6 |
0x00-0x7F |
Ano: 0x00 (00) a 0x7F (127) correspondem aos anos de 2000 a 2127 Por exemplo, 0x17 (23) corresponde ao ano de 2023. |
7 - 15 |
– |
Reservado |
||
2 |
INT16U |
0-4 |
0x01-0x1F |
Dia |
5 - 7 |
– |
Reservado |
||
8-11 |
0x00-0x0C |
Mês |
||
12 - 15 |
– |
Reservado |
||
3 |
INT16U |
0-5 |
0x00-0x3B |
Minutos |
6 - 7 |
– |
Reservado |
||
8-12 |
0x00-0x17 |
Horas |
||
13 - 15 |
– |
Reservado |
||
4 |
INT16U |
0-15 |
0x0000-0xEA5F |
Milissegundos |
Endereçamento direto de bits
O endereçamento é permitido em zonas do tipo BITMAP com as funções 1, 2, 5 e 15.
O endereço do primeiro bit é criado da seguinte maneira: (endereço de registo x 16) + número de bit.
Este modo de endereçamento é específico para Schneider Electric.
Exemplo: Para as funções 1, 2, 5 e 15, deve ser abordado o bit 3 do registo 0x0078; o endereço do bit é, por conseguinte, 0x0783.
Exemplo de estruturas Modbus
Pedido
Definição |
Número de bytes |
Valor |
Comentário |
---|---|---|---|
Número do servidor |
1 byte |
0x05 |
Endereço I/O Smart Link Modbus |
Código de função |
1 byte |
0x03 |
Leitura de n palavras de saída ou internas |
Endereço |
2 bytes |
0x36E2 |
Endereço de um medidor de consumo cujo endereço é 14050 como decimal. |
Número de palavras |
2 bytes |
0x002C |
Leitura de 44 registos de 16 bits. |
CRC |
2 bytes |
xxxx |
Valor de CRC16. |
Resposta
Definição |
Número de bytes |
Valor |
Comentário |
---|---|---|---|
Número do servidor |
1 byte |
0x05 |
Endereço I/O Smart Link Modbus |
Código de função |
1 byte |
0x03 |
Leitura de n palavras de saída ou internas |
Número de bytes |
2 bytes |
0x0058 |
Número de bytes lidos |
Valores das palavras lidas |
88 bytes |
– |
Leitura de 44 registos de 16 bits |
CRC |
2 bytes |
xxxx |
Valor de CRC16. |
Endereço Modbus
A lista de endereços Modbus, definida pelo protocolo Modbus, começa em 0.
O endereço do número de registo n é n-1.
As tabelas detalhadas nos capítulos seguintes deste manual contêm tanto números de registo (em formato decimal) como endereços correspondentes (em formato hexadecimal). Exemplo de endereço: endereço do número de registo 3000 é 0x0BB7 (2999).