Go Down

Topic: Xbee en malla y perdidas de conexión (Read 896 times) previous topic - next topic

gandalf82

Hola,

Para mi proyecto he hecho algunas pruebas con Xbee y de momento voy a probar con ellos... pero me surgen un par de dudas. Los he configurado en modo malla, ya que desde el dispositivo más lejano hasta el "servidor" hay demasiada distancia (es una fábrica) y como luego voy a poner cerca de 20-25 arduinos con sus respectivos Xbee, pues tendrán suficientes puntos intermedios para llegar hasta el servidor.

Mi pregunta va por los posibles paquetes "perdidos" que pueda haber. Es decir, para mi proyecto, quiero que los arduino me envíen por el puerto serie una serie de datos, básicamente que si entra una señal a una entrada digital envía un código y si entra en otra entrada, pues uno distinto, amén de identificarlos. En algunos casos, esas señales serán continuas, por ejemplo la de máquina en marcha, que si todo va bien debería estar el mayor tiempo emitiendo el código. El de parada, estará por menos tiempo (eso esperamos, si no mal vamos! jeje) pero también será una señal continua, ya que las paradas nos son de milésimas, pueden duran algunos segundos o minutos. Mi duda está en aquellas "microseñales" de por ejemplo fin de ciclo oa lgo así, que mi idea es que en ese caso el arduino tan solo envíe por puerto serie una vez el código... que ocurre si en ese momento s xbee no ve el servidor? Lo "guarda" para que cuando lo encuentre lo envíe?

Es decir, si yo tengo una velocidad de escitura de 1 seg (porque lo he indicado en el delay) y la maquina esta en marcha durante 30 seg, habrá 30 escrituras por el puerto serie, por lo que si se pierde una, tampoco me supone un trauma. Pero durante esos 30 segundos, puede haber un final de ciclo, que ocurrirá durante medio segundo, por ejemplo, por lo que tan solo habrá una escritura en el puerto serie de ese evento... y claro, si no lo envia, pues tengo un problema...

Sabe alguien si los xbee me pueden servir para lo que quiero?

maxid

tenes que enviar un registro con todas las entradas y decodificarlos en el pc. y un ACk que te diga que recibio la informacion.
Tambien podes tener una cola de registros
ejemplo: si tengo 8 entradas creo una variable Byte (8bits). Cada bit responde a cada entrada.
guardo ese byte en un vector de 10 en la ultima posicion libre, si hay otra cosa para enviar.
Voy enviando los datos del vector y vaciando el vector como una cola FIFO si pudo ser recibido el paquete, sino reintentar y descartar o entrar en estado de alarma.

Esto si es prioritario saber el estado en todo momento, sino evita el tema de la cola y manejate con un solo registro hasta que lo pueda enviar.
Como mas preciso ante el no poder enviar refrescar el valor actual antes de reintentar.
El que pregunta aprende, el que responde aprende a responder.

gandalf82

Ok, gracias! Vamos que al final el control lo tengo que hacer yo... bueno, pues habrá que hacerlo! jeje

Go Up