• Nenhum resultado encontrado

Tipo de Acesso

Área Acessada Descrição da Função Código(decimal) Código(hexa)

Acesso

a

Bits

Entradas Discretas Físicas

Read Discrete Inputs(Ler Entradas Discretas)

02 02

Bit Internos ou Saídas Discretas Físicas

Read Coils(Ler Saídas Discretas) 01 01

Write Single Coil(Escrever em uma Saída Discreta)

05 05

Write Multiple Coils(Escrever em Varias Saídas Discreta)

15 0F Acesso a registros (16 bits) Entradas Analógicas Físicas

Read Input Register (Ler Entrada Analógica)

04 04

Registros Internos ou

Saídas Analógicas Físicas

Read Holding Register (Ler Saída Analógica)

03 03

Write Single Register

(Escrever em uma Saída Analógica)

06 06

Write Multiple Register (Escrever em Várias Saídas Analógicas

Modbus

 Função 01 (Read Coils)

0x01 – Código da função – Read Coils(Ler saídas discretas)

EHi – ELo – Índice do endereço da primeira coil(0x0000 – 0xFFFF)

QHi – QLo – Quantidade de coil a serem lidos(0x0000 – 0xFFFF)

Solicitação(Mestre)

0x01 EHi ELo QHi QLo

0x01 – Código da função – Read Coils(Ler saídas discretas)

NBy – Número de bytres necessários para transmitir a quantidade

de coils solicitadas

SCo – Byte contendo o status de 8 coils(LSB e MSB) o primeiro byte

contém o status da coil de menor indice de endereço Resposta(Escravo)

0x01 NBy SCo SCo

Mensagem de Erro(Escravo)

0x81 SCod 0x81 – Código de erro para a função Read Coils

Scod – Tipo de erro(0x01, 0x02, 0x03 ou 0x04) Exemplo :

Solicitar o status de coils a partir da posição 102 até a posição 112. Posição inicial : 102 – 1 = 101  0x0065 Quantidade : (112 – 102) + 1 = 11  0x0008 02 00 65 00 08 Solicitação(Mestre) 01 02 6B 05 Resposta Escravo Resposta :

Quantidades de bytes: 11 coils / 8 = 1,375  2 bytes 2 bytes = 0x02

status das coils 109 – 102 = 6B = 0110 / 1011 status das coils 112 – 110 = 05 = 0000 / 0101

Modbus

 Função 02 (Read Discrete Inputs)

0x02: Código da função – Read Discrete Inputs (Ler entradas discretas)

EHi – ELo – Índice do endereço da primeira entrada(0x0000 – 0xFFFF)

QHi – QLo – Quantidade de entradas a serem lidos(0x0000 – 0xFFFF)

Solicitação(Mestre)

0x02 EHi ELo QHi QLo

0x02: Código da função – Read Discrete Inputs (Ler entradas discretas)

NBy – Número de bytes necessários para transmitir a quantidade

de entradas solicitadas

SCo – Byte contendo o status de 22 entradas(LSB e MSB) o primeiro byte

contém o status da entrada de menor indice de endereço Resposta(Escravo)

0x02 NBy SCo SCo

Mensagem de Erro(Escravo)

0x82 SCod

0x81 – Código de erro para a função Read Discrete Inputs Scod – Tipo de erro(0x01, 0x02, 0x03 ou 0x04)

Exemplo :

Solicitar o status das entradas discretas a partir da posição 197 até a posição 218. Posição inicial : 197 – 1 = 196  0x00C4 Quantidade : (218 – 197) + 1 = 22  0x0016 02 00 C4 00 16 Solicitação(Mestre) 02 03 AC DB Resposta Escravo Resposta :

Quantidades de bytes: 22 entradas / 8 = 2,75  3 bytes 3 bytes = 0x03

status dos inputs 204 - 197 = AC = 1010 / 1100 status dos inputs 212 - 205 = DB = 1101 / 1011 status dos inputs 218 - 213 = 35 = 0011 / 0101

Modbus

 Função 03 (Read Holding Register)

0x03: Código da função – Read Holding Registers (Ler saídas analógicas/Registros)

EHi – ELo – Índice do endereço do primeiro holding register

(0x0000 – 0xFFFF)

QHi – QLo – Quantidade de holding register a serem lidos

(0x0000 – 0xFFFF) Solicitação(Mestre)

0x03 EHi ELo QHi QLo

0x03: Código da função – Read Discrete Inputs (Ler entradas discretas)

NBy – Número de bytes necessários para transmitir a quantidade

de input register( quantidade de holding register x 2 )

VRHi - VRLo – Valor do holding register, formato Big Endian

(HiByte + LoByte) Sendo que o primeiro par de bytes contém o valor do primeiro indice de endereço.

Resposta(Escravo)

0x03 NBy VRHi VRLo VRHi

Mensagem de Erro(Escravo)

0x83 SCod 0x83 Scod – Código de erro para a função Read Holdind Register – Tipo de erro(0x01, 0x02, 0x03 ou 0x04)

Exemplo :

Solicitar o valor dos holding register a parti r da posição 108 até a posição 110. Posição inicial : 107 – 1 = 107  0x006B Quantidade : (110 - 108) + 1 = 3  0x0003 03 00 6B 00 03 Solicitação(Mestre) 03 06 02 2B Resposta Escravo Resposta :

Quantidades de bytes: 3 holding registers = 6 bytes 6 bytes = 0x06 valor do registro 108 = 0x022B =555 valor do registro 109 = 0x0000 =0 valor do registro 110 = 0x0064 =100 00 VRLo 00 00 64

Modbus

 Função 04 (Read Input Register)

0x04: Código da função – Read Input Registers (Ler entradas analógicas / Registros)

EHi – ELo – Índice do endereço do primeiro input register

(0x0000 – 0xFFFF)

QHi – QLo – Quantidade de input register a serem lidos

(0x0000 – 0xFFFF) Solicitação(Mestre)

0x04 EHi ELo QHi QLo

0x04: Código da função – Read Input Registers (Ler entradas analógicas)

NBy – Número de bytes necessários para transmitir a quantidade

de input register( quantidade de input register x 2 )

VRHi - VRLo – valor do input register, formato Big Endian

(HiByte + LoByte) Sendo que o primeiro par de bytes contém o valor do primeiro indice de endereço.

Resposta(Escravo)

0x04 NBy VRHi VRLo VRHi

Mensagem de Erro(Escravo)

0x84 SCod 0x84 Scod – Código de erro para a função Read Input Register – Tipo de erro(0x01, 0x02, 0x03 ou 0x04) Exemplo :

Solicitar o valor do input register da posição 9.

Posição inicial : 9 – 1 = 8  0x0008 Quantidade : 1 = 0x0001 04 00 08 00 01 Solicitação(Mestre) 04 02 00 0A Resposta Escravo Resposta :

Quantidades de bytes: 1 input registers x 2 = 2 bytes = 0x02 valor do registro 9 = 0x000A =10

Modbus

 Função 05 (Write Single Coil)

0x05: Código da função – write single coil(escrever em uma saida)

EHi – ELo – Índice do endereço da coil (0x0000 – 0xFFFF)

VCHi – VCLo – valor a ser escrito na coil (0 = 0x0000 – 1= 0xFF00)

Solicitação(Mestre)

0x05 EHi ELo VCHi VCLo

A mensagem resposta reflete a mensagem solicitação Resposta(Escravo)

0x05 EHi ELo

Mensagem de Erro(Escravo)

0x85 SCod 0x84 Scod – Código de erro para a função write single coil – Tipo de erro(0x01, 0x02, 0x03 ou 0x04) Exemplo :

Escrever o valor “1” na coil 1275 Posição: 1275 - 1 = 1274  0x04F4 Quantidade 1  0x0001 05 04 FA FF 00 Solicitação(Mestre) 05 04 FA FF Resposta Escravo Resposta :

Reflexo da mensagem de solicitação

VCHi VCLo

Modbus

 Função 06 (Write Single Register)

0x06: Código da função – write single Register(escrever em uma palavra)

EHi – ELo – Índice do endereço single register(0x0000 – 0xFFFF)

VCHi – VCLo – valor a ser escrito single registe (0 = 0x0000 – 1= 0xFF00)

Solicitação(Mestre)

0x06 EHi ELo VCHi VCLo

A mensagem resposta reflete a mensagem solicitação Resposta(Escravo)

0x06 EHi ELo

Mensagem de Erro(Escravo)

0x86 SCod 0x86 Scod – Código de erro para a função write single coil – Tipo de erro(0x01, 0x02, 0x03 ou 0x04) Exemplo :

Escrever o valor “1” na coil 1275 Posição: 1275 - 1 = 1274  0x04F4 Quantidade 1  0x0001 05 04 FA FF 00 Solicitação(Mestre) 05 04 FA FF Resposta Escravo Resposta :

Reflexo da mensagem de solicitação

VCHi VCLo

Modbus

 Função 15 (Write Multiple Coils)

0x0F: Código da função – write multiple coils (escrever em várias saídas)

EHi – ELo – Índice do endereço single register (0x0000 – 0xFFFF)

QCHi – QCLo - Quantidade de coil a serem escritas( de 0x0001 a 0x07B0)

QBy – dividir a quantidade de coils por 8 e arrendondar para o próximo valor inteiro(se necessário)

VCo – valor a ser escrito nas coils. O bit menos significativo do primeiro

byte corresponde à primeira coil. Solicitação(Mestre)

0x0F EHi ELo QCHi QCLo

A mensagem resposta reflete a mensagem solicitação Resposta(Escravo)

0x0F EHi QCHi

Mensagem de Erro(Escravo)

0x0F SCod

0x8F – Código de erro para a função multiple write coils(

escrever em várias saídas)

Scod – Tipo de erro(0x01, 0x02, 0x03 ou 0x04) Exemplo :

Escrever em 10 coils a partir da posição 20 Valores a serem escritos :

Lidos da coil 29 para a coil 20

29 – 20  0 1 1 1 0 0 1 1 0 1 “28.756” e “12” em dois Posição: 20 – 1 = 19  0x0013

Quantidade de coils = 10  0x000A

Número de bytes : 10 / 8 = 1,25 ~ 2  0x02 27- 20  1 1 0 0 1 1 0 1  0xCD 29 – 28 0 0 0 0 0 0 0 1  0x01 0F 00 13 00 0A Solicitação(Mestre) 0F 00 13 00 Resposta Escravo Resposta :

Reflexo parcialmente da mensagem de solicitação

QCLo

0A

QBy VCo VCo VCo

Modbus

 Função 16 (Write Multiple Registers)

0x10: Código da função – write multiple registers(escrever em várias saídas analógicas )

EHi – ELo – Índice do endereço do primeiro registro (0x0000 – 0xFFFF)

QRHi – QRLo - Quantidade de registros a serem escritas( de 0x0001 a 0x07B0)

QBy - Quantidade de bytes : Multiplicar a quantidade de registrospor 2

VCo – valor a ser escrito nos registros. Os primeiros dois bytes correspondem

Ao valor a ser escrito no primeiro registro, no formato BIG-ENDIAN (HYByte + LoByte)

Solicitação(Mestre)

0x10 EHi ELo QRHi QRLo

A mensagem resposta reflete parcialmente a mensagem solicitação Resposta(Escravo)

0x10 EHi ELo

Mensagem de Erro(Escravo)

0x90 SCod

0x90 – Código de erro para a função multiple write registers(

(escrever em várias saídas analógicas)

Scod – Tipo de erro(0x01, 0x02, 0x03 ou 0x04) Exemplo :

Escrever os valores “28.756” e 12 em dois registradores começando da posição 35.339 Posição: 35339– 1 = 35338  0x8A0A

Quantidade de registro= 2  0x0002

Quantidade de bytes : nr. Registros x 2 = 2 x 2 = 4  0x04

Primeiro valor, posição 35.339 : 28.756  0x7054 Segundo valor, posição 35340 : 12  0x000C

10 8A 0A 00 02

Solicitação(Mestre)

0F 00 13 00

Resposta Escravo

Resposta :

Reflexo parcialmente a mensagem de solicitação

QCHi

0A

QBy VRHi VRLo

04 70 54 QCLo

Modbus

 Função 01 (Read Coils)

0x01 – Código da função – Read Coils(Ler saídas discretas)

EHi – ELo – Índice do endereço da primeira coil(0x0000 – 0xFFFF)

QHi – QLo – Quantidade de coil a serem lidos(0x0000 – 0xFFFF)

Solicitação(Mestre)

0x01 EHi ELo QHi QLo

0x01 – Código da função – Read Coils(Ler saídas discretas)

NBy – Número de bytres necessários para transmitir a quantidade

de coils solicitadas

SCo – Byte contendo o status de 8 coils(LSB e MSB) o primeiro byte

contém o status da coil de menor indice de endereço Resposta(Escravo)

0x01 NBy SCo SCo

Mensagem de Erro(Escravo)

0x81 SCod 0x81 – Código de erro para a função Read Coils

Scod – Tipo de erro(0x01, 0x02, 0x03 ou 0x04) Exemplo :

Solicitar o status de coils a partir da posição 102 até a posição 112. Posição inicial : 102 – 1 = 101  0x0065 Quantidade : (112 – 102) + 1 = 11  0x0008 02 00 65 00 08 Solicitação(Mestre) 01 02 6B 05 Resposta Escravo Resposta :

Quantidades de bytes: 11 coils / 8 = 1,375  2 bytes 2 bytes = 0x02

status das coils 109 – 102 = 6B = 0110 / 1011 status das coils 112 – 110 = 05 = 0000 / 0101

Documentos relacionados