Trato de recibir datos utilizando Modbuss poll hacia mi arduino Uno usando un adaptador rs232 , transmitiendo con el protocolo Modbus Serial en modo RTU , la idea es recibir informacion de unos sensores que son parte de un equipo industrial, por lo que no me puedo conectar a este equipo asi de facil, asi que me han informado que este equipo puede expedir su informacion atraves del protocolo modbus Serial , y quiero recibir esos datos a mi arduino para despues reflejarlos en mi Monitor serial para que finalmente un programa en phython los capture de forma mas permanente , asi que no se como poder reflejar esa informacion en mi monitor serial, espero puedan ayudarme
Su publicacion se MUEVE a su ubicacion actual ya que es mas adecuada.
Aquí no hacemos códigos "a pedido", te ayudamos a resolver problemas de tu código.
Presenta un código que medianamente haga lo que necesitas y vemos como podemos ayudarte a terminarlo.
Saludos
Moderador:
Por favor, lee las Normas del foro
Si posteas en el foro en inglés usa idioma inglés para expresarte.
Si escribes en español debes usar el foro Arduino en español.
Según la libreria que uses encontrarás un ejemplo que hace exactamente lo que quieres.
Es lo primero que debes hacer, entender los ejemplos.
estuve usando una librería de Modbus Serial de una página de github , tiene ejemplos incluidos, pero todos realizan comunicación por el protocolo transfiriendo los datos desde el Arduino, no recibiéndolos, también descargué la librería Modbus del propio repositorio de Arduino IDE en línea.
Estoy usando tanto ModbusSerial como tambien la libreria general de Modbus
Este es el de la otra libreria: GitHub - wvengen/modbus-arduino: Arduino Modbus library with added support for Ethernet2, UDP and basic master functionality
Este es el código que trato de utilizar para poder obtener los registros, no se si tambien tendria que ver como los debo mandar desde el simulador Modbus Poll
#include <ModbusMaster.h>
#include <SoftwareSerial.h>
//Rx/Tx is hooked up to pins 5, 3
SoftwareSerial mySerial(5, 3); // RX, TX
ModbusMaster node;
void setup() {
// Modbus communication runs at 9600 baudrate
Serial.begin(9600);
mySerial.begin(9600);
// Modbus slave ID 1
node.begin(1, mySerial);
}
void loop()
{
uint8_t result;
uint8_t j;
uint16_t data[16];
// Read 16 registers starting at 0x3100, 05 quantities)
result = node.readHoldingRegisters(0, 5);
if (result == node.ku8MBSuccess)
{
Serial.print("ReadHoldingRegisters: ");
Serial.println(node.getResponseBuffer(4));
delay(1000);
}
delay(1000);
}
Los ejemplos Lamp y Servo son de recepción no de transmisión.
Saludos
bueno reciben información para luego transmitirlos a través del protocolo, lo que yo trato de intentar es recibir información desde el otro extremo, donde estaría conectado el adaptador, de ahí trato de enviarlo al monitor serial para desplegarlo, no puedo obtenerlo desde el mismo Arduino
Yo interpreto que
Servo mueve el servo conectado al arduino en función de lo que recibe por ModBus.
Lamp comanda un LED conectado al arduino también en función de lo que recibe por ModBus.
okay localice el metodo que te refieres, tendre que estudiarlo mas a fondo si me ayudara a usarlo para poder imprimir informacion
Gracias
Moderador:
Porque @wolfiekr posteaste la misma pregunta en el foro en inglés usando español e inglés?
Lo tuyo es un doble posteo y es sancionable. Por ser la primera vez te quedará una advertencia en tu historial pero la próxima ya sabes.
Nos haces perder tiempo a quienes te respondemos lo mismo sea allá o acá.
Voy a cerrar este hilo porque el hilo en inglés tiene mas respuestas.