Comunicação de 2 arduinos via protocolo modbus serial


#1

Olá Srs,

Estou desenvolvendo uma aplicação com 2 Arduíno UNO, via procolo de comunicação modbus serial,
Com a famosa biblioteca do Sarnento “SimpleModbusSlave.h”,
O GRANDE PROBLEMA: quando conecto o primeiro arduino “AR1” o Arduíno 2 “AR2” para de enviar sinal.

MINHAS TENTATIVAS: -trocar o id de cada datapoint.
-mudar o 8N1 PARA 8N2.
- trocar o 1 por 2, e trocar todos os data point.
modbus_configure(&Serial, 115200, SERIAL_8N1, 1, 2, HOLDING_REGS_SIZE, holdingRegs);
modbus_update_comms(115200, SERIAL_8N1, 1);
-bater no teclado igual louco!“também não deu boa”

HELP-ME GUYS…


#2

Ola…
Tbem preciso desenvolver um codigo no arduino uno ativando as saidas digitais atravez do scadabr vc poderia enviar o seu codigo pra me ajudar aq ?


#3

Com certeza!

olha essa série de videos:

Ela explica bem certo como fazer… não tem segredo… minha dica é você ficar atento com os detalhes…
OBS: não sei por que diabos o scada não funciona com o arduino MEGA, apenas com o UNO.

Vai mandando as Duvidas, que vou-lhe ajudando!


#4

Ola,
Preciso desenvolver um codigo onde eu consiga ativar as saidas digitais do arduino atraves do scadabr preciso que o arduino fique no barramento RS 485 ultilizando o Módulo Conversor RS485 e nao o USB do arduino.
pode me ajudar com esse codigo ?


#5

O que não funciona com o arduino MEGA? Você diz a comunicação? Pois estou utilizando com ele, mas tive que fazer adaptações.


#6

Pelo menos pela mod bus serial, não deu bom! oque voce fez nayara? desculpa alison de n te responder! porem também n teria solução!


#7

Gostaria de contribuir com vocês, a um bom tempo eu fiz um pull-request ao sarmento, e ele ainda não comitou.

Mas eu coloquei aqui disponível, https://github.com/jPerotto/modbus-flasher

Eu fiz uma significante modificação para transferir o uso da tabela CRC padrão do MODBUS Serial da SRAM para a flash. Aliviando espaço para trabalhar melhor com os ATMega328P.


#8

Existe algumas ressalvas para utilizar 2 ou mais controladores conectados ao ScadaBR, é um problema na java.serial.

Se você quiser utilizar 2 ou mais, recomenda-se criar uma barramento RS-485/232 (dentro das especificações).
Se tentar utilizar 2 portas seriais e iniciar 2 barramentos, você terá problemas mesmo.

Uma recomendação que faço, e até posso disponibilizar exemplos, é criar um gateway para outro protocolo, eu fiz isso utilizando MODBUS-I²C


#9

Não consegui usar as portas Tx0 e Rx0 de nenhuma forma ( e ainda não entendi o motivo) , caso alguem tenha conseguido favor dar uma luz aqui! Mas as outras comunicam corretamente, no codigo basta alterar o “Serial” para a Tx e Rx que estiver usando, como abaixo
Serial1.begin(9600);
modbus_configure(&Serial1, 9600, SERIAL_8N1, 1, 2, HOLDING_REGS_SIZE, Regs);

O que ainda não consegui é comunicar com o Scadabr dois MEGA como escravo, esta dando diversos erros, ele enxerga os dois mas ou ele comunica com um ou com o outro.