Buenas, pues he utilizado el siguiente codigo, he tenido que cambiar el numero de bytes que leia y la direccion del modbus que resulta que eran dos numeros inferiores al numero que indicaba mi registro en el datasheet. He utilizado el siguiente codigo:
Code:
// Include these libraries for using the RS-485 and Modbus functions
#include "ModbusMaster485.h"
#include "arduPi.h"
// Instantiate ModbusMaster object as slave ID 1
ModbusMaster485 node(1);
// Define one addres for reading, desde 0 hasta 65535
#define address 4029
// Define the number of bytes to read
#define bytesQty 4
void setup()
{
pinMode(5, OUTPUT);
digitalWrite(5, LOW);
// Power on the USB for viewing data in the serial monitor
Serial.begin(115200);
delay(100);
// Initialize Modbus communication baud rate
node.begin(9600);
// Print hello message
printf("Modbus communication over RS-485\n");
delay(100);
}
void loop()
{
/*if(!node.available())
printf("node is not available\n");
else
printf("node is available\n");*/
// This variable will store the result of the communication
// result = 0 : no errors
// result = 1 : error occurred
int result = node.readInputRegisters(address, bytesQty);
if (result != 0) {
// If no response from the slave, print an error message
printf("Error code:%d\n",result);
printf("Communication error\n");
printf("Read value: %f \n", node.getResponseBuffer(0));
delay(1000);
}
else {
// If all OK
printf("Read value : %d \n", node.getResponseBuffer(0));
// Print the read data from the slave
// Serial.print(node.getResponseBuffer(0));
delay(500);
}
printf("\n");
delay(1000);
// Clear the response buffer
node.clearResponseBuffer();
}
int main (){
setup();
while(1){
loop();
}
return (0);
}
Y el resultado que obtengo de el es el siguiente, ahi se encuentra mi error y duda que he preguntado anteriormente, para que le echeis un vistazo por si alguien lo sabe solucionar. Como se puede observar de muchas lecturas solo me lee de vez en cuando algunos valores.
Quote:
Modbus communication over RS-485
Error code:226
Communication error
Read value: 0.000000
Error code:226
Communication error
Read value: 0.000000
Error code:226
Communication error
Read value: 0.000000
Error code:226
Communication error
Read value: 0.000000
Valor leido
Read value : 2215
Valor leido
Read value : 2214
Error code:226
Communication error
Read value: 0.000000
Gracias.