Libelium is offering new technical support channels, to contact with de Technical Support team to solve any issue our doubt please contact with your sales agent or visit our contact site



Post a new topicPost a reply Page 2 of 2   [ 17 posts ]
Go to page Previous  1, 2
Author Message
 Post subject: Re: Modbus/RS485 communication error
PostPosted: Fri May 27, 2016 7:41 am 

Joined: Mon Sep 28, 2009 12:06 pm
Posts: 11366
Hola Adri_manco,
La librería de Modbus sobre RS485 tiene varias funciones de lectura/escritura, debes indicarles el número de bytes del registro que vas a leer. Estudia el protocolo modbus y como funciona y échale un ojo a las funciones de la librería a ver cual tienes que utilizar para tu dispositivo.
Un saludo.


Top
 Profile  
 
 Post subject: Re: Modbus/RS485 communication error
PostPosted: Thu Jun 02, 2016 10:56 am 

Joined: Thu May 12, 2016 8:57 am
Posts: 8
Buenas,
he conseguido solventar el problema, y consigo leer algunos parámetros, pero ahí me surge otro problema. Este problema es que me lee un valor X pero en la siguiente lectura me da "Communication Error" y así sucesivamente, es decir, de cada 10 lecturas del ModBus solo una o dos veces me dan un valor, las demás me da el error de comunicación. No se si a alguien más le ha pasado o si alguien sabe a que se debe que no me lea siempre los valores.

Un saludo.


Top
 Profile  
 
 Post subject: Re: Modbus/RS485 communication error
PostPosted: Fri Jun 03, 2016 9:17 am 

Joined: Mon Sep 28, 2009 12:06 pm
Posts: 11366
Hola Adri_manco,
Estaría bien que compartieras con la comunidad tu solución al problema.
Estamos recreando tu situación para comprobar lo que comentas.
Te informamos cuando sepamos que ocurre.
Un saludo


Top
 Profile  
 
 Post subject: Re: Modbus/RS485 communication error
PostPosted: Fri Jun 03, 2016 10:36 am 

Joined: Thu May 12, 2016 8:57 am
Posts: 8
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.


Top
 Profile  
 
 Post subject: Re: Modbus/RS485 communication error
PostPosted: Thu Jun 09, 2016 8:01 am 

Joined: Mon Sep 28, 2009 12:06 pm
Posts: 11366
Hola Adri_manco,

Perdona el retraso en nuestra repsuesta.

Estamos indagando en tu error y tratar de solventarlo, esperamos en los próximos días poder darte un avance.

Un saludo.


Top
 Profile  
 
 Post subject: Re: Modbus/RS485 communication error
PostPosted: Thu Jun 09, 2016 9:57 am 

Joined: Thu May 12, 2016 8:57 am
Posts: 8
Vale, muchas gracias, estoy intentando investigar por todos los medios a ver si encuentro la explicación de la perdida de datos.

Gracias por estar intentando dar con la solución.

Un saludo.


Top
 Profile  
 
 Post subject: Re: Modbus/RS485 communication error
PostPosted: Fri Jun 10, 2016 9:33 am 

Joined: Mon Sep 28, 2009 12:06 pm
Posts: 11366
Hola Adri_manco,
Sentimos las molestias. Este es un metodo que funciona utilizando brush write pero tenemos que hacer cambios en la librería que nos llevarán unos dias.

Este es el método:
Code:
//!*************************************************************
//!   Name:   send(const char *s, lenght)
//!   Description: Sends data through the SPI. Using brush write
//!   Param : const char s: the string to send
//!           uint8_t lenght: lenght of data to send
//!   Returns: void
//!*************************************************************
void RS485::send(const char *s, uint8_t lenght)
{

unsigned char buffer[32];

buffer[0]= 0x80 | THR_REG;
for ( int i= 0; i< lenght; i++) buffer[i+1]= s[i];

Utils.setCSSocket1();

SPI.transfer(buffer, lenght+1);

Utils.unsetCSSocket1();
}


teendrás que meterlo en la librería y llamarlo desde tu programa con:

Code:
myDevice.send("Hola", 4);


actualizaremos la librería en unos días.

Un saludo


Top
 Profile  
 
Display posts from previous:  Sort by  
Post a new topicPost a reply Page 2 of 2   [ 17 posts ]
Go to page Previous  1, 2


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Libelium theme based on 610nm Style by Daniel St. Jules of http://www.gamexe.net


© Libelium Comunicaciones Distribuidas S.L. | Terms of use.