You are on page 1of 32

20/12/2017 Modbus Tutorial for Arduino, Raspberry Pi and Intel Galileo

Minha conta (https://www.cooking-hacks.com/customer/account/)

Serviço ao cliente (https://www.cooking-hacks.com/customer-service/)

Sobre nós (/about-us/) Contato (/contact/) Confira (https://www.cooking-hacks.com/checkout/)

(https://www.cooking-hacks.com/)

Você está aqui: Casa (https://www.cooking-hacks.com/) Tutorial Modbus para Arduino, Raspberry Pi e Intel Galileo

Tutorial Modbus para Arduino, Raspberry Pi e Intel


Galileo

https://www.cooking-hacks.com/documentation/tutorials/modbus-module-shield-tutorial-for-arduino-raspberry-pi-intel-galileo/ 1/32
20/12/2017 Modbus Tutorial for Arduino, Raspberry Pi and Intel Galileo

Nível de dificuldade: intermediário -

Like 13

ttp://www.cooking-hacks.com/rs-485-modbus-module-shield-board-for-arduino-raspberry-pi-intel-galileo)

O Modbus é um protocolo de comunicação serial originalmente publicado pela Schneider Electric em


1979 para uso com seus controladores lógicos programáveis (PLCs). O Modbus está localizado no nível
2 do modelo OSI e usa uma arquitetura mestre / escravo (ou cliente-servidor). Simples e robusto, tornou-
se um protocolo de comunicação padrão de fato, e agora é um meio comum de conectar dispositivos
eletrônicos industriais. O protocolo de comunicação Modbus apresenta os seguintes recursos:

Foi desenvolvido com as aplicações industriais em mente


Abertamente publicado e livre de royalties
Fácil desenvolvimento e manutenção

O Modbus permite a comunicação entre muitos dispositivos conectados à mesma rede, por exemplo, um
sistema que mede a temperatura e a umidade e comunica os resultados a um computador. Muitos dos
tipos de dados são chamados de seu uso em relés de direção: uma saída física de um único bit é
chamada de bobina, e uma entrada física de um único bit é chamada de entrada discreta ou contato.

Esta lista inclui alguns dos usos mais comuns do padrão:


https://www.cooking-hacks.com/documentation/tutorials/modbus-module-shield-tutorial-for-arduino-raspberry-pi-intel-galileo/ 2/32
20/12/2017 Modbus Tutorial for Arduino, Raspberry Pi and Intel Galileo

Múltiplos aplicativos mestre-escravo


Sensores e instrumentos
Redes industriais
Construção e infra-estrutura
Aplicações de transporte e energia

(/media/cooking/images/documentation/Modbus/RS232_board_1_big.jpg)

(/media/cooking/images/documentation/Modbus/RS_485_board_1_big.jpg)

https://www.cooking-hacks.com/documentation/tutorials/modbus-module-shield-tutorial-for-arduino-raspberry-pi-intel-galileo/ 3/32
20/12/2017 Modbus Tutorial for Arduino, Raspberry Pi and Intel Galileo

Modbus

Área de dados Até 255 bytes por trabalho

Interface Camada 7 do modelo de referência ISO-OSI

Número de conexões possíveis Até 32 em sistemas multiponto

Formato do quadro RTU

Modo operacional Senhor de escravos

Obter os escudos Ir para o índice

Kits

Módulo RS-485 (http://www.cooking-hacks.com/rs-485-modbus-shield-for-raspberry-pi)


Módulo RS-232 (http://www.cooking-hacks.com/rs-232-serial-modbus-shield-for-raspberry-pi)
Protetor de rádio multiprotocolo (http://www.cooking-hacks.com/multiprotocol-radio-shield-board-
for-arduino-rpi-intel-galileo)

https://www.cooking-hacks.com/documentation/tutorials/modbus-module-shield-tutorial-for-arduino-raspberry-pi-intel-galileo/ 4/32
20/12/2017 Modbus Tutorial for Arduino, Raspberry Pi and Intel Galileo

Índice de artigos
1. Características
2. As tábuas
3. A biblioteca
4. Dispositivos de conexão
5. Compatibilidade de dispositivos
6. Obter os escudos

1. Características Ir para o índice

Modbus para Arduino / RaspberryPi / Galileo usa o modo de transmissão RTU. Este modo é usado em
comunicação serial e faz uso de uma representação compacta e binária dos dados para a comunicação
do protocolo. O formato RTU segue os comandos / dados com uma soma de verificação de verificação
de redundância cíclica como mecanismo de verificação de erros para garantir a confiabilidade dos
dados. Modbus RTU é a implementação mais comum disponível para o Modbus. Uma mensagem
Modbus RTU deve ser transmitida continuamente sem hesitações inter-personagens. As mensagens
Modbus são enquadradas por períodos inativos.

O modo de transmissão Modbus RTU geralmente inclui um bit de paridade para detectar erros de
transmissão. Você pode escolher transmitir dados com ou sem verificação de paridade, mas certifique-
se sempre de que todos os equipamentos conectados ao Modbus tenham o mesmo modo de

https://www.cooking-hacks.com/documentation/tutorials/modbus-module-shield-tutorial-for-arduino-raspberry-pi-intel-galileo/ 5/32
20/12/2017 Modbus Tutorial for Arduino, Raspberry Pi and Intel Galileo

configuração , caso contrário, a comunicação não será possível.

Quadro Modbus RTU

Um quadro RTU inclui as seguintes informações:

(/media/cooking/images/documentation/Modbus/Serial_Frame_1_big.jpg)
Endereço: os endereços de dispositivos escravos válidos estão no intervalo de 0 ... 247
(decimal). Os dispositivos escravos individuais recebem endereços no intervalo de 1 ... 247. O valor
0 é reservado para mensagens de transmissão (sem resposta). Quando o escravo envia sua
resposta, ele coloca seu próprio endereço neste campo de endereço do quadro de resposta para
permitir ao mestre saber qual o escravo está respondendo.
Função de código: os códigos válidos estão no intervalo de 1 ... 255 (decimal). O campo de
código de função informa ao escravo que tipo de ação executar. Para uma resposta normal, o
escravo simplesmente faz eco do código da função original. Para uma resposta de exceção, o
escravo retorna um código que é equivalente ao código de função original com o seu bit mais
significativo configurado para uma lógica 1. Todos os dispositivos Modbus reconhecem o mesmo
conjunto de códigos de função.

https://www.cooking-hacks.com/documentation/tutorials/modbus-module-shield-tutorial-for-arduino-raspberry-pi-intel-galileo/ 6/32
20/12/2017 Modbus Tutorial for Arduino, Raspberry Pi and Intel Galileo

Dados: o campo de dados contém informações adicionais que o escravo deve usar para executar
a ação definida pelo código da função. Isso pode incluir itens como endereços de registro,
quantidade de itens a serem manipulados, etc. Se nenhum erro ocorrer, o campo de dados contém
os dados solicitados. Se ocorrer um erro, o campo contém um código de exceção que o aplicativo
mestre pode usar para determinar a próxima ação a ser tomada.
CRC: A soma de verificação é calculada pelo mestre e enviada ao escravo. A soma de
verificação é recalculada pelo escravo e comparada ao valor enviado pelo mestre. Se uma diferença
for detectada, o escravo não irá construir uma resposta ao mestre.

2. Os conselhos Ir para o índice

PCB RS-485 e RS-232

O protocolo Modbus pode ser implementado através de camadas físicas RS-485 e RS-232. Cooking-
Hacks fornece o hardware e o software necessários para trabalhar com ambos os protocolos. O nome e
o uso das funções são os mesmos para RS-232 e RS-485, e as únicas mudanças são a biblioteca a
incluir e a instanciação do objeto. As diferenças entre os dois padrões são explicadas nos tutoriais
correspondentes.

https://www.cooking-hacks.com/documentation/tutorials/modbus-module-shield-tutorial-for-arduino-raspberry-pi-intel-galileo/ 7/32
20/12/2017 Modbus Tutorial for Arduino, Raspberry Pi and Intel Galileo

(/media/cooking/images/documentation/Modbus/RS232_board_big.jpg)

(/media/cooking/images/documentation/Modbus/RS_485_board_big.jpg)

Modbus sobre Arduino

https://www.cooking-hacks.com/documentation/tutorials/modbus-module-shield-tutorial-for-arduino-raspberry-pi-intel-galileo/ 8/32
20/12/2017 Modbus Tutorial for Arduino, Raspberry Pi and Intel Galileo

O módulo RS-485 deve ser usado em combinação com o Multiprotocol Radio Shield. O Multiprotocol
Radio Shield tem dois soquetes. O módulo RS-485 deve estar conectado como mostrado nas próximas
figuras.

O módulo RS-232 é compatível com o Multiprotocol Radios Shield eo escudo XBee.

Por favor, veja o Tutorial Multiprotocol Radio Shield (http://www.cooking-


hacks.com/documentation/tutorials/multiprotocol-shield-connect-two-xbee-connector-arduino-raspberry-
pi-galileo) para obter mais informações.

https://www.cooking-hacks.com/documentation/tutorials/modbus-module-shield-tutorial-for-arduino-raspberry-pi-intel-galileo/ 9/32
20/12/2017 Modbus Tutorial for Arduino, Raspberry Pi and Intel Galileo

(/media/cooking/images/documentation/Modbus/RS232_multiprotocol_arduino_big.jpg)

https://www.cooking-hacks.com/documentation/tutorials/modbus-module-shield-tutorial-for-arduino-raspberry-pi-intel-galileo/ 10/32
20/12/2017 Modbus Tutorial for Arduino, Raspberry Pi and Intel Galileo

(/media/cooking/images/documentation/Modbus/rs485_multiprotocol_radio_shield_arduino_big.jpg)
Obter Arduino (http://www.cooking-hacks.com/index.php/arduino-uno.html)
Obter o módulo RS-485 (http://www.cooking-hacks.com/rs-485-modbus-module-shield-board-for-arduino-
raspberry-pi-intel-galileo)
Obter o (http://www.cooking-hacks.com/rs-232-serial-modbus-module-shield-board-for-arduino-raspberry-
pi-intel-galileo) módulo (http://www.cooking-hacks.com/rs-485-modbus-module-shield-board-for-arduino-
raspberry-pi-intel-galileo)RS-232 (http://www.cooking-hacks.com/rs-232-serial-modbus-module-shield-
board-for-arduino-raspberry-pi-intel-galileo)
Obter o Multiprotocol Radio Escudo (http://www.cooking-hacks.com/multiprotocol-radio-shield-board-for-
arduino-rpi-intel-galileo)

Modbus sobre Framboesa Pi

https://www.cooking-hacks.com/documentation/tutorials/modbus-module-shield-tutorial-for-arduino-raspberry-pi-intel-galileo/ 11/32
20/12/2017 Modbus Tutorial for Arduino, Raspberry Pi and Intel Galileo

(/media/cooking/images/documentation/Modbus/RS232_connectionbridge_raspberry_big.jpg)

https://www.cooking-hacks.com/documentation/tutorials/modbus-module-shield-tutorial-for-arduino-raspberry-pi-intel-galileo/ 12/32
20/12/2017 Modbus Tutorial for Arduino, Raspberry Pi and Intel Galileo

(/media/cooking/images/documentation/Modbus/RS485_connectionbridge_raspberry_big.jpg)
Obter Raspberry Pi (http://www.cooking-hacks.com/index.php/shop/raspberry-pi.html)
Obter a ponte de conexão Raspberry Pi para Arduino (http://www.cooking-
hacks.com/index.php/raspberry-pi-to-arduino-shield-connection-bridge.html)
Get the RS-485 (http://www.cooking-hacks.com/rs-485-modbus-module-shield-board-for-arduino-
raspberry-pi-intel-galileo)
Get the RS-232 module (http://www.cooking-hacks.com/rs-232-serial-modbus-module-shield-board-for-
arduino-raspberry-pi-intel-galileo)

Avisos ::

O módulo RS-485 deve estar conectado no soquete correspondente, conforme mostrado


neste tutorial.
O módulo RS-485 não é compatível com o XBee Shield. Você deve usar o Multiprotocol
Radio Shield (http://www.cooking-hacks.com/documentation/tutorials/multiprotocol-shield-
connect-two-xbee-connector-arduino-raspberry-pi-galileo) como mostrado neste tutorial.
O RS-232 pode ser conectado nos dois soquetes do Multiprotocol Radio Shield.
O módulo RS-232 é compatível com o XBee Shield.
Os módulos RS-232 e RS-485 foram testados com vários dispositivos, mas não garantimos
a compatibilidade com todos os dispositivos comerciais.

https://www.cooking-hacks.com/documentation/tutorials/modbus-module-shield-tutorial-for-arduino-raspberry-pi-intel-galileo/ 13/32
20/12/2017 Modbus Tutorial for Arduino, Raspberry Pi and Intel Galileo

3. A Biblioteca Ir para o índice

O protocolo Modbus conta com uma biblioteca C ++ que permite gerenciar as funções Modbus de forma
simples. Esta biblioteca oferece um sistema de código aberto simples de usar.

Para garantir que o mesmo código seja compatível em ambas as plataformas (Arduino e Raspberry Pi),
usamos as bibliotecas ArduPi que permitem que os desenvolvedores usem o mesmo código.
Informações detalhadas podem ser encontradas aqui:

Raspberry Pi para Arduino protege a ponte de conexão (http://www.cooking-


hacks.com/documentation/tutorials/raspberry-pi-to-arduino-shields-connection-bridge)
Biblioteca ArduPi (http://www.cooking-hacks.com/documentation/tutorials/raspberry-pi-to-arduino-
shields-connection-bridge#step4)

Usando a biblioteca com Arduino

O protocolo Modbus inclui funções de biblioteca de alto nível para uma fácil administração. Antes de
começar a usar estas funções, você deve baixar os arquivos no próximo link. Este zip inclui todos os
arquivos necessários em várias pastas. Essas pastas incluem o arquivo necessário para usar o protocolo
Modbus no modo mestre e escravo.

 Baixe a biblioteca Modbus / RS-485 para Arduino (/media/cooking/images/documentation/RS-


485/RS485_for_Arduino.zip)

https://www.cooking-hacks.com/documentation/tutorials/modbus-module-shield-tutorial-for-arduino-raspberry-pi-intel-galileo/ 14/32
20/12/2017 Modbus Tutorial for Arduino, Raspberry Pi and Intel Galileo

 Baixe a biblioteca Modbus / RS-232 para Arduino (/media/cooking/images/documentation/RS-


232/RS232_for_Arduino.zip)

As bibliotecas são frequentemente distribuídas como um arquivo ou pasta ZIP. O nome da pasta é o
nome da biblioteca. Dentro da pasta serão os arquivos .cpp, arquivos .h e, muitas vezes, um arquivo
keywords.txt, pasta de exemplos e outros arquivos necessários para a biblioteca.

Para instalar a biblioteca, primeiro abandone o aplicativo Arduino. Descompacte o arquivo ZIP que
contém a biblioteca. Para instalar bibliotecas, descompacte o arquivo zip. Arraste as pastas para esta
pasta (sua pasta de bibliotecas). No Windows, provavelmente será chamado de "Meus documentos \
Arduino \ bibliotecas". Para usuários de Mac, provavelmente será chamado de "Documentos / Arduino /
bibliotecas". No Linux, será a pasta "bibliotecas" no seu bloco de desenho.

A biblioteca não funcionará se você colocar os arquivos .cpp e .h diretamente na pasta bibliotecas ou se
estiverem aninhados em uma pasta extra. Reinicie o aplicativo Arduino. Verifique se a nova biblioteca
aparece no item de menu Sketch-> Import Library do software.

Usando a biblioteca com Raspberry Pi

As bibliotecas Modbus para Raspberry Pi requerem a biblioteca ArduPi (http://www.cooking-


hacks.com/documentation/tutorials/raspberry-pi-to-arduino-shields-connection-bridge#step4) e ambas as
bibliotecas devem estar no mesmo caminho.

 Baixe a biblioteca Modbus / RS-485 para Raspberry Pi (/media/cooking/images/documentation/RS-


485/RS485_for_Raspberry_Pi.zip)

https://www.cooking-hacks.com/documentation/tutorials/modbus-module-shield-tutorial-for-arduino-raspberry-pi-intel-galileo/ 15/32
20/12/2017 Modbus Tutorial for Arduino, Raspberry Pi and Intel Galileo

 Baixe a biblioteca Modbus / RS-232 para Raspberry Pi (/media/cooking/images/documentation/RS-


232/RS232_for_Raspberry_Pi.zip)

Criar um programa que usa a biblioteca é tão simples como colocar seu código neste modelo onde diz
"seu código Arduino aqui"

Código: Mostrar código

Selecionar tudo

A compilação do programa (usando a biblioteca Modbus) pode ser feita de duas maneiras:

Compilando separadamente Modbus e arduPi, e usá-los para compilar o programa em uma


segunda etapa:

g ++ -c arduPi.cpp -o arduPi.o
g ++ -c RS485.cpp -o RS485.o
g ++ -c Modbusmaster485.cpp Modbusmaster485.o
g ++ -lpthread -lrt user-Modbus-app.cpp arduPi.o RS485.o Modbusmaster485.o -o usuá

Selecionar tudo

https://www.cooking-hacks.com/documentation/tutorials/modbus-module-shield-tutorial-for-arduino-raspberry-pi-intel-galileo/ 16/32
20/12/2017 Modbus Tutorial for Arduino, Raspberry Pi and Intel Galileo

Compilando tudo em um único passo:

g ++ -lpthread -lrt user-Modbus-app.cpp arduPi.cpp RS485.cpp ModbusMaster485.cpp -

Selecionar tudo

Executar seu programa é tão simples quanto fazer:

sudo ./user-Modbus-app

Selecionar tudo

Usando a biblioteca com o Intel Galileo

O módulo Modbus inclui funções de biblioteca de alto nível para uma fácil administração. Antes de
começar a usar estas funções, você deve baixar os arquivos no próximo link. Este zip inclui todos os
arquivos necessários em várias pastas. Essas pastas incluem o arquivo necessário para usar o protocolo
Modbus.

https://www.cooking-hacks.com/documentation/tutorials/modbus-module-shield-tutorial-for-arduino-raspberry-pi-intel-galileo/ 17/32
20/12/2017 Modbus Tutorial for Arduino, Raspberry Pi and Intel Galileo

 Baixe a biblioteca Modbus / RS-485 para o Intel Galileo (/media/cooking/images/documentation/RS-


485/RS485_for_Intel_Galileo.zip)

 Baixe a biblioteca Modbus / RS-232 para o Intel Galileo (/media/cooking/images/documentation/RS-


232/RS232_for_Intel_Galileo.zip)

As bibliotecas são frequentemente distribuídas como um arquivo ou pasta ZIP. O nome da pasta é o
nome da biblioteca. Dentro da pasta serão os arquivos .cpp, arquivos .h e, muitas vezes, um arquivo
keywords.txt, pasta de exemplos e outros arquivos necessários para a biblioteca.

Para instalar a biblioteca, primeiro abandone o aplicativo Arduino. Descompacte o arquivo ZIP que
contém a biblioteca. Para instalar bibliotecas, descompacte o arquivo zip. No Windows, provavelmente
será chamado de "Meus documentos \ Arduino \ bibliotecas". Para usuários de Mac, provavelmente será
chamado de "Documentos / Arduino / bibliotecas". No Linux, será a pasta "bibliotecas" no seu bloco de
desenho.

A biblioteca não funcionará se você colocar os arquivos .cpp e .h diretamente na pasta bibliotecas ou se
estiverem aninhados em uma pasta extra. Reinicie o aplicativo Arduino. Verifique se a nova biblioteca
aparece no item de menu Sketch-> Import Library do software.

Função geral Modbus

Funções de inicialização

https://www.cooking-hacks.com/documentation/tutorials/modbus-module-shield-tutorial-for-arduino-raspberry-pi-intel-galileo/ 18/32
20/12/2017 Modbus Tutorial for Arduino, Raspberry Pi and Intel Galileo

ModbusMaster485 (); // Cria um objeto de classe usando ID de escravo Modbus


ModbusMaster485 ( uint8_t ); // Cria um objeto de classe usando especificado o Mod
begin (); // Configura a porta serial usando a taxa de transmissã
começando ( não assinada por muito tempo ); // Configura a porta serial usando

Selecionar tudo

Enviar e receber funções

uint8_t readCoils ( uint16_t , uint16_t ) ; // Função Modbus 0x01 Rea


uint8_t readDiscreteInputs ( uint16_t , uint16_t ) ; // Função Modbus 0x02 Ler
uint8_t readHoldingRegisters ( uint16_t , uint16_t ) ; // Função Modbus 0x03 Lei
uint8_t readInputRegisters ( uint16_t , uint8_t ) ; // Função Modbus 0x04 Reg
uint8_t escrevaSingleCoil ( uint16_t , uint8_t ) ; // Função Modbus 0x05 Wr
uint8_t writeSingleRegister ( uint16_t , uint16_t ) ; // Função Modbus 0x06 Wri
uint8_t writeMultipleCoils ( uint16_t , uint16_t ) ; // Função Modbus 0x0F Esc
uint8_t writeMultipleRegisters ( uint16_t , uint16_t ) ; // Função Modbus 0x10 Es

Selecionar tudo

https://www.cooking-hacks.com/documentation/tutorials/modbus-module-shield-tutorial-for-arduino-raspberry-pi-intel-galileo/ 19/32
20/12/2017 Modbus Tutorial for Arduino, Raspberry Pi and Intel Galileo

Funções Utile

vazio setSlaveAddress ( uint8_t ) ; // Altera o endereço do escravo


uint8_t disponível ( void ) ; // Retorna os dados availbale lidos
uint16_t getResponseBuffer ( uint8_t ) ; // Recuperar dados do buffer de respost
void clearResponseBuffer () ; // Limpar o buffer de resposta Modbus
uint8_t setTransmitBuffer ( uint8_t , uint16_t ) ; // Coloque dados no buffer d
void clearTransmitBuffer() ; // Coloque dados no buffer de transmissão

Selecionar tudo

NOTA:

Mais funções estão incluídas nas bibliotecas Modbus.


Para obter informações completas e descrição das funções Modbus, veja os arquivos das
bibliotecas.

4. Conectando dispositivos Ir para o índice


https://www.cooking-hacks.com/documentation/tutorials/modbus-module-shield-tutorial-for-arduino-raspberry-pi-intel-galileo/ 20/32
20/12/2017 Modbus Tutorial for Arduino, Raspberry Pi and Intel Galileo

Protocolo de comunicação Modbus sobre RS-485

O Modbus permite a comunicação entre muitos dispositivos conectados à mesma rede, por exemplo, um
sistema que mede a temperatura e a umidade e comunica os resultados a um computador. Muitos dos
tipos de dados são chamados de seu uso em relés de direção: uma saída física de um único bit é
chamada de bobina, e uma entrada física de um único bit é chamada de entrada discreta ou contato.

Neste exemplo, vamos mostrar como usar o módulo RS-485 para conectar as plataformas Arduino e
Raspbery Pi aos dispositivos de medição de dispositivos Modbus.

(/media/cooking/images/documentation/Modbus/modbus_device_big.jpg)
https://www.cooking-hacks.com/documentation/tutorials/modbus-module-shield-tutorial-for-arduino-raspberry-pi-intel-galileo/ 21/32
20/12/2017 Modbus Tutorial for Arduino, Raspberry Pi and Intel Galileo

Em primeiro lugar, você deve ter certeza de que seu dispositivo é compatível com Arduino e Framboesa.
No manual do dispositivo serão descritos os parâmetros de comunicação (endereço do dispositivo, taxa
de transmissão ...). Você também deve verificar se o dispositivo usa o formato RTU. Existem muitas
variantes de protocolos Modbus, mas a biblioteca Arduino implementa o formato RTU. Modbus RTU é a
implementação mais comum disponível para o Modbus.

Parâmetro Configuração

Baud 19200

Paridade N

Bits de dados 8

Pare o bit 1

Controle de fluxo Nenhum

O próximo passo é saber quais comandos Modbus usam o dispositivo. Os comandos suportados devem
estar listados em uma tabela. Na próxima figura, você pode ver um exemplo dos comandos Modbus
extraídos de uma folha de dados. A biblioteca Modbus para Waspmote é compatível com a maioria dos
comandos Modbus.

https://www.cooking-hacks.com/documentation/tutorials/modbus-module-shield-tutorial-for-arduino-raspberry-pi-intel-galileo/ 22/32
20/12/2017 Modbus Tutorial for Arduino, Raspberry Pi and Intel Galileo

Nome do Comando Número de comando

Leia o Registro de retenção 03

Registo de gravação (predefinido) 06

ID do escravo de retorno 17

Conecte os sinais A / B do módulo RS-485 com o sinal correspondente do dispositivo Modbus. O nome
desse sinal pode mudar dependendo do fabricante. Os nomes usuais deste sinal são A / B S + / S-, +/-,
etc.

https://www.cooking-hacks.com/documentation/tutorials/modbus-module-shield-tutorial-for-arduino-raspberry-pi-intel-galileo/ 23/32
20/12/2017 Modbus Tutorial for Arduino, Raspberry Pi and Intel Galileo

(/media/cooking/images/documentation/Modbus/rs485_modbus_connecting_big.jpg)
No nosso exemplo, vamos ler o valor da temperatura do nosso dispositivo. Podemos ver no mapa do
registro, que o valor da temperatura é armazenado no registro 101 e é acessível com a função
readHoldingRegisters e é armazenado em formato de 16 bits (2 bytes). Portanto, a função necessária
Este site usa cookies. Ao clicar no botão "Aceitar" você concorda com o uso ✔ Aceitar
para
dos obter o valor da temperatura é mostrada no próximo exemplo de código.
cookies.
Leia mais (https://www.cooking-
hacks.com/privacy-policy-cookie-
restriction-mode/)

https://www.cooking-hacks.com/documentation/tutorials/modbus-module-shield-tutorial-for-arduino-raspberry-pi-intel-galileo/ 24/32
20/12/2017 Modbus Tutorial for Arduino, Raspberry Pi and Intel Galileo

Endereço Bytes Alcance Padrões Cadastro e Descrição


(° C / °
F)

0a3 4 - - Número de série -4 byte value. Somente leitura

4a5 2 - - Versão serial -2 byte value. Somente leitura

6 1 255 254 ENDEREÇO. Endereço do dispositivo Modbus

100 2 0-1000 - TEMPERATURA DO QUARTO leitura em DegF

101 2 0-600 - TEMPERATURA DO QUARTO leitura em DegC

304 2 0-1000 - Leitura de umidade relativa. Escrever um valor de


umidade para o registro fará a calibração.

Arduino / Intel Galileo

Código: Mostrar código

Selecionar tudo

https://www.cooking-hacks.com/documentation/tutorials/modbus-module-shield-tutorial-for-arduino-raspberry-pi-intel-galileo/ 25/32
20/12/2017 Modbus Tutorial for Arduino, Raspberry Pi and Intel Galileo

Raspberry Pi

Você precisa compilar a biblioteca Modbusmaster485:

g ++ -c Modbusmaster485.cpp -o Modbusmaster485.o

g ++ -lpthread -lrt Modbus_example.cpp arduPi.o RS485.o currentLoop.o -o Modbus_ex

Selecionar tudo

Código: Mostrar código

Selecionar tudo

Você deve receber os dados no seu monitor serial.

https://www.cooking-hacks.com/documentation/tutorials/modbus-module-shield-tutorial-for-arduino-raspberry-pi-intel-galileo/ 26/32
20/12/2017 Modbus Tutorial for Arduino, Raspberry Pi and Intel Galileo

(/media/cooking/images/documentation/Modbus/Modbus_RS485_Serial_Out_big.png)

Conexão de protocolo dupla com Multriprotocol Radio Shield

O Multiprotocol Radio Shield pode ser usado para conectar dois protocolos de comunicação ao mesmo
tempo e fazer interconexões entre diferentes sistemas e dispositivos. No próximo exemplo, vamos
interligar um dispositivo Modbus através do módulo RS-485 com protocolo sem fio usando e módulo
XBee.

NOTA:

https://www.cooking-hacks.com/documentation/tutorials/modbus-module-shield-tutorial-for-arduino-raspberry-pi-intel-galileo/ 27/32
20/12/2017 Modbus Tutorial for Arduino, Raspberry Pi and Intel Galileo

Em AP = 0 todos os dados enviados através do UART serão enviados pelo módulo XBee.
Os módulos XBee 802.15.4 devem ser conectados usando pinos externos. Esses pinos
devem ter o pino 4 do XBee cortado ou desconectado para evitar interferências entre os
módulos.

Conecte o módulo RS-485 e os módulos XBee nos soquetes correspondentes, conforme mostrado na
próxima imagem.

https://www.cooking-hacks.com/documentation/tutorials/modbus-module-shield-tutorial-for-arduino-raspberry-pi-intel-galileo/ 28/32
20/12/2017 Modbus Tutorial for Arduino, Raspberry Pi and Intel Galileo

(/media/cooking/images/documentation/Modbus/RS485_multiprotocol_xbee_big.jpg)
Se você estiver usando 802.15.4, use pinheiro externo com pin4 desconectado.

https://www.cooking-hacks.com/documentation/tutorials/modbus-module-shield-tutorial-for-arduino-raspberry-pi-intel-galileo/ 29/32
20/12/2017 Modbus Tutorial for Arduino, Raspberry Pi and Intel Galileo

(/media/cooking/images/documentation/Modbus/XBee_pin4_big.jpg)
Você deve receber todos os dados em seu dispositivo de gateway.

https://www.cooking-hacks.com/documentation/tutorials/modbus-module-shield-tutorial-for-arduino-raspberry-pi-intel-galileo/ 30/32
20/12/2017 Modbus Tutorial for Arduino, Raspberry Pi and Intel Galileo

https://www.cooking-hacks.com/documentation/tutorials/modbus-module-shield-tutorial-for-arduino-raspberry-pi-intel-galileo/ 31/32
20/12/2017 Modbus Tutorial for Arduino, Raspberry Pi and Intel Galileo

(/media/cooking/images/documentation/Modbus/XBee_Gateway_RS485_big.png)
Arduino

Código: Mostrar código

Selecionar tudo

Compatibilidade do dispositivo Ir para o índice

Este escudo é testado e totalmente compatível com as seguintes placas:

Arduino Boards

Arduino Uno

Tabuleiros de framboesa

Raspberry Pi
Framboesa Pi (Modelo B +)
Raspberry Pi 2
Raspberry Pi 3
https://www.cooking-hacks.com/documentation/tutorials/modbus-module-shield-tutorial-for-arduino-raspberry-pi-intel-galileo/ 32/32

You might also like