O status das entradas 7 a 0 é indicado como valor byte 0x12 ou binário 0001 0010. A entrada 7 é o bit com o valor mais elevado deste byte e a entrada 0 o valor mais baixo. Por conseguinte, a atribuição é feita de 7 a 0 com OFF-OFF-OFF-ON-OFF-Off-ON- OFF.
Bit: |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
Coil: |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
58 |
MODBUS / Configuração |
|
01-03-16 |
|
5.3.1.4 Registro Read Holding (código de função 0x03)
Com esta função são lidos os conteúdos binários de registros holding nos slaves. A difusão não é suportada.. O número máximo é limitado em 128 registros em um frame.
Consulta:
Função! A consulta determina o endereço de partida (registro de partida) e o número dos registros que devem ser lidos.
O endereçamento começa com 0. Em Modicon o endereçamento começa com 1 (0x01).
Exemplo para uma consulta dos registros 0 e 1 do slave 11:
Nome do campo |
Exemplo |
RTU |
ASCII |
|
Start of frame |
- |
t1-t2-t3 |
”:” |
0x3a |
Slave address |
0x0B |
0x0B |
”0B” |
0x30, 0x42 |
Function code |
0x03 |
0x03 |
”03” |
0x30, 0x33 |
Starting address high |
0x00 |
0x00 |
”00” |
0x30, 0x30 |
Starting address low |
0x00 |
0x00 |
”00” |
0x30, 0x30 |
Number of points high |
0x00 |
0x00 |
”00” |
0x30, 0x30 |
Number of points low |
0x02 |
0x02 |
”02” |
0x30, 0x32 |
Error Check (LRC / CRC) |
- |
0xC4 |
”F0” |
0x46, 0x30 |
|
|
0xA1 |
|
|
End of frame |
|
t1-t2-t3 |
- |
0xD, 0xA |
Tabela 5.34: Exemplo consulta, registro Read Holding
Resposta:
Os dados de registro são condensados como 2 bytes por registro. O primeiro byte contém os bits de valores elevados, o segundo byte os bits de valores baixos. Uma resposta à consulta acima indicada, apresenta-se conforme se segue:
Nome do campo |
Exemplo |
RTU |
ASCII |
|
Start of frame |
- |
t1-t2-t3 |
”:” |
0x3A |
Slave address |
0x0B |
0x0B |
”0B” |
0x30, 0x42 |
Function code |
0x03 |
0x03 |
”03” |
0x30, 0x33 |
Byte Count |
0x04 |
0x04 |
”04” |
0x30, 0x34 |
Data Hi (Register 0) |
0x3F |
0x3F |
”3F” |
0x33, 0x46 |
Data Lo (Register 0) |
0xFB |
0xFB |
”FB” |
0x46, 0x42 |
Data Hi (Register 1) |
0x00 |
0x00 |
”00” |
0x30, 0x30 |
Data Lo (Register 1) |
0x00 |
0x00 |
”00” |
0x30, 0x30 |
Error Check (LRC / CRC) |
- |
0x2D |
”B4” |
0x42, 0x34 |
|
|
0x61 |
|
|
End of frame |
- |
t1-t2-t3 |
- |
0xD, 0xA |
Tabela 5.35: Exemplo resposta, registro Read Holding
Os conteúdos do registro 0 são indicados por meio de dois valores de byte hexadecimais: 0x3F e 0xFB ou 16379 decimais. Os conteúdos do registro 1 são 0x00 e 0x00 ou 0 decimal.
MODBUS / Configuração |
59 |
01-03-16 |
|
|
5.3.1.5 Registro Read Input (código de função 0x04)
Esta função serve para ler um número de palavras de entrada (também designado ”registros de entrada”). A difusão não é suportada e o número é limitado em 128 registros em um frame.
|
|
A consulta determina o endereço de partida (registro de partida) e o número dos |
||||||
Função! |
||||||||
|
registros que devem ser lidos. |
|
|
|
|
|||
|
|
O endereçamento começa com 0. Em Modicon o endereçamento começa com 1 (0x01). |
||||||
|
|
Exemplo para uma consulta dos registros 0 e 1 do slave 11: |
||||||
|
|
|
|
|
|
|
|
|
|
|
Nome do campo |
Exemplo |
RTU |
ASCII |
|
|
|
|
|
Start of frame |
- |
t1-t2-t3 |
”:” |
0x3a |
|
|
|
|
Slave address |
0x0B |
0x0B |
”0B” |
0x30, 0x42 |
|
|
|
|
Function code |
0x03 |
0x03 |
”03” |
0x30, 0x33 |
|
|
|
|
Starting address high |
0x00 |
0x00 |
”00” |
0x30, 0x30 |
|
|
|
|
Starting address low |
0x00 |
0x00 |
”00” |
0x30, 0x30 |
|
|
|
|
Number of points high |
0x00 |
0x00 |
”00” |
0x30, 0x30 |
|
|
|
|
Number of points low |
0x02 |
0x02 |
”02” |
0x30, 0x32 |
|
|
|
|
Error Check (LRC / CRC) |
- |
0xC4 |
”F0” |
0x46, 0x30 |
|
|
|
|
|
|
0xA1 |
|
|
|
|
|
|
End of frame |
|
t1-t2-t3 |
- |
0xD, 0xA |
|
|
Tabela 5.36: Exemplo consulta, registro Read Input
Resposta:
Os dados de registro são condensados como 2 bytes por registro. O primeiro byte contém os bits de valores elevados, o segundo byte os bits de valores baixos. Uma resposta à consulta acima indicada, apresenta-se conforme se segue:
Nome do campo |
Exemplo |
RTU |
ASCII |
|
Start of frame |
- |
t1-t2-t3 |
”:” |
0x3A |
Slave address |
0x0B |
0x0B |
”0B” |
0x30, 0x42 |
Function code |
0x03 |
0x03 |
”03” |
0x30, 0x33 |
Byte Count |
0x04 |
0x04 |
”04” |
0x30, 0x34 |
Data Hi (Register 0) |
0x3F |
0x3F |
”3F” |
0x33, 0x46 |
Data Lo (Register 0) |
0xFB |
0xFB |
”FB” |
0x46, 0x42 |
Data Hi (Register 1) |
0x00 |
0x00 |
”00” |
0x30, 0x30 |
Data Lo (Register 1) |
0x00 |
0x00 |
”00” |
0x30, 0x30 |
Error Check (LRC / CRC) |
- |
0x2D |
”B4” |
0x42, 0x34 |
|
|
0x61 |
|
|
End of frame |
- |
t1-t2-t3 |
- |
0xD, 0xA |
Tabela 5.37: Exemplo resposta, registro Read Input
Os conteúdos do registro 0 são indicados por meio de dois valores de byte hexadecimais: 0x3F e 0xFB ou 16379 decimais. Os conteúdos do registro 1 são 0x00 e 0x00 ou 0 decimal.
60 |
MODBUS / Configuração |
|
01-03-16 |
|
5.3.1.6 Force Single Coil (código de função 0x05):
Com a ajuda desta função é escrito um bit de saída individual. Esta função também pode ser enviada como difusão, sendo definido o mesmo bit em todos os slaves. No acoplador/controlador o número dos pontos I/O está limitado em 256.
Enecessesmioque Consulta:
O estado fique ON ou OFF é especificado como constante no campo de dados da consulta. Um valor de 0xFF00 define o bit de saída para 1, um valor de 0x00 para 0. Não estão especificados outros valores e não têm qualquer efeito sobre o estado das saídas. Neste exemplo, o bit 0 no slave 11 é definido para 1:
Nome do campo |
Exemplo |
RTU |
ASCII |
|
Start of frame |
- |
t1-t2-t3 |
”:” |
0x3a |
Slave address |
0x0B |
0x0B |
”0B” |
0x30, 0x42 |
Function code |
0x05 |
0x05 |
”05” |
0x30, 0x35 |
Coil address high |
0x00 |
0x00 |
”00” |
0x30, 0x30 |
Coil address low |
0x00 |
0x00 |
”00” |
0x30, 0x30 |
Force data high |
0xFF |
0xFF |
”FF” |
0x46, 0x46 |
Force data low |
0x00 |
0x00 |
”00” |
0x30, 0x30 |
Error Check (LRC / CRC) |
- |
0x8C |
”F1” |
0x46, 0x31 |
|
|
0x90 |
|
|
End of frame |
|
t1-t2-t3 |
- |
0xD, 0xA |
Tabela 5.38: Exemplo consulta, Force Single Coil
Resposta:
A resposta é um eco da consulta. É dada uma resposta se tiver sido definido um bit.
Nome de campo |
Exemplo |
RTU |
ASCII |
|
Start of frame |
- |
t1-t2-t3 |
”:” |
0x3a |
Slave address |
0x0B |
0x0B |
”0B” |
0x30, 0x42 |
Function code |
0x05 |
0x05 |
”05” |
0x30, 0x35 |
Coil address high |
0x00 |
0x00 |
”00” |
0x30, 0x30 |
Coil address low |
0x00 |
0x00 |
”00” |
0x30, 0x30 |
Force data high |
0xFF |
0xFF |
”FF” |
0x46, 0x46 |
Force data low |
0x00 |
0x00 |
”00” |
0x30, 0x30 |
Error Check (LRC / CRC) |
- |
0x8C |
”F1” |
0x46, 0x31 |
|
|
0x90 |
|
|
End of frame |
|
t1-t2-t3 |
- |
0xD, 0xA |
Tabela 5.39: Exemplo resposta, Force Single Coil
MODBUS / Configuração |
61 |
01-03-16 |
|
|
5.3.1.7 Registro Preset Single (Código de função 0x06):
Esta função escreve um valor em uma palavra de saída individual (também designado por ”Registro de saída”). Esta função também pode ser enviada como difusão, sendo definida a mesma palavra de saída em todos os slaves.
Função! Consulta:
O endereçamento começa com 0. Em Modicon o endereçamento começa com 1 (0x01). A consulta determina o endereço da primeira palavra de saída que deve ser definida.
O valor a definir é definido no campo de dados de consulta.
No exemplo o registro 0 é definido no slave 11.
Nome do campo |
Exemplo |
RTU |
ASCII |
|
Start of frame |
- |
t1-t2-t3 |
”:” |
0x3a |
Slave address |
0x0B |
0x0B |
”0B” |
0x30, 0x42 |
Function code |
0x06 |
0x06 |
”06” |
0x30, 0x36 |
Register address high |
0x00 |
0x00 |
”00” |
0x30, 0x30 |
Register address low |
0x00 |
0x00 |
”00” |
0x30, 0x30 |
Preset data high |
0x12 |
0x12 |
”12” |
0x31, 0x32 |
Preset data low |
0x34 |
0x34 |
”34” |
0x33, 0x34 |
Error Check (LRC / CRC) |
- |
0x8C |
”A9” |
0x41, 0x39 |
|
|
0x17 |
|
|
End of frame |
|
t1-t2-t3 |
- |
0xD, 0xA |
Tabela 5.40: Exemplo consulta, registro Preset Single
Resposta:
A resposta é um eco da consulta que é enviada depois de definir os registros.
Nome de campo |
Exemplo |
RTU |
ASCII |
|
Start of frame |
- |
t1-t2-t3 |
”:” |
0x3a |
Slave address |
0x0B |
0x0B |
”0B” |
0x30, 0x42 |
Function code |
0x06 |
0x06 |
”06” |
0x30, 0x36 |
Register address high |
0x00 |
0x00 |
”00” |
0x30, 0x30 |
Register address low |
0x00 |
0x00 |
”00” |
0x30, 0x30 |
Preset data high |
0x12 |
0x12 |
”12” |
0x31, 0x32 |
Preset data low |
0x34 |
0x34 |
”34” |
0x33, 0x34 |
Error Check (LRC / CRC) |
- |
0x8C |
”A9” |
0x41, 0x39 |
|
|
0x17 |
|
|
End of frame |
|
t1-t2-t3 |
- |
0xD, 0xA |
Tabela 5.41: Exemplo resposta, registro Preset Single
62 |
MODBUS / Configuração |
|
01-03-16 |
|