Estoy con un proyectos que me parecía mas fácil con la información que hay en internet pero no consigo que me funcione.
Mi proyecto consiste en tener un arduino mega conectado por el RX1 y TX1 a un Dispositivo que tiene posiciones de memoria modbus.
Mi problema es que no consigo interrogar por modbus a este dispositivo externo. He intentado utilizar librerías que he visto por internet pero mi impresión es que funcionan para comunicar entre arduinos por modbus pero no un arduino con un dispositivo externo vía modbus.
No se si me he explicado bien y si alguien me pudiera ayudar por lo menos para aclararme un poco porque tengo la cabeza ya un poco loca.
Tu impresión es errada.
Modbus es un protocolo universal. Asi que si respetas modbus e interrogas correctamente recibirás respuestas adecuadas.
Hay mucha info en este foro... casi todos los problemas han sido tratados.
Te recomiendo que busques en Search (arriba derecho modbus) y en particular mires los de este foro español o bien en inglés.
Si estas usando módulos comprados, entonces elimina el problema de fallas de hardware.
Ahora si la interfaz la has hecho tu, sería bueno que cuentes cómo la has hecho.
Hablas de RX1 y TX1 pero falta el pin de control?
Modbus usa habitualmente un integrado del tipo MAX48X pero hay muchos posibles.
Un problema común es la distancia y que no estes usando el terminador de 120 ohms necesario.
Hay otra persona consultando en este momento justamente por lo mismo.
Siempre recomiendo lo mismo.
Usar el módulo con una PC y un programa monitor para asegurarse que se esta leyendo los datos del PLC o dispositivo como se espera.
A veces hay que mover en una posición para poder leer correctamente. Si por ejemplo debes leer en la posición 3000H entonces si en 3000H no ves nada, o recibes un error, prueba en 3001H.
Hay que tener muy en claro ambos dispositivos.
Al final con lo que me dijiste estuve revisando todo el modbus y no podía estar mal la forma de interrogar.
Solución: Localice que el cable que utilizaba cruzaba el pin 2 y el 3 en el otro extremo. Puse el 2 con el 2 y el 3 con el 3 y a funcionar, sin olvidar el pin 5.