Esclavo modbus Arduino NANO

Muy buenas tardes estimada comunidad, estoy desarrollando una API, donde uso las librerías <ModbusRtu.h>, <SoftwareSerial.h>, hasta ahora todo bien puedo recibir datos desde un simulador modbus maestro, cada segundo uso la función modbus.poll().

Mis dudas corresponden al direccionamiento de los registros ya que cuando escribo en los registros 30001, 30002, 30003, desde el modbus maestro efectivamente los puedo ver en el monitor serial, pero cuando leo los registros 40001, 40002, 40003 desde el modbus maestro es como si leyera los registros 30001, 30002, 30003, cargados anteriormente. mi código es el siguiente :

#include <ModbusRtu.h>
#include <SoftwareSerial.h>

void setup() {

  Serial.begin(9600);
  RS485.begin(9600);
  bus = Modbus(1, RS485, RE);
  bus.begin(9600);

}

void loop() {

  bus.poll(modbus_array,sizeof(modbus_array) /sizeof(modbus_array[0]));

  Serial.print("Modbus 30001: ");
  Serial.println(modbus_array[0]);

  Serial.print("Modbus 30002: ");
  Serial.println(modbus_array[1]);

  Serial.print("Modbus 30002: ");
  Serial.println(modbus_array[2]);

  delay(1000);

}

Se que el programa que estoy desarrollando es el Hola mundo del modbus slave, pero estaría muy si los expertos podrían ayudarme u orientarme. Mil gracias de antemano.

Ese código esta incompleto, asi que de ningún modo eso compila
Postea todo el código, la parte que funciona con los registros 30001 en adelante y la que no con 40001 en adelante.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.