Transmisiones de datos UDP

  • 1 Respuestas
  • 155 Vistas

InduxSA

  • Aprendiz
  • **
  • Mensajes: 25
Transmisiones de datos UDP
« : marzo 12, 2018, 19:12:07 pm »
Estimado Boris

Tenemos una aplicación de visual basic basada en la aplicacion prueba 2 de la nota de aplicación AN001

La cuestión es que nos genera muchos problemas de conectividad, por otra parte hemos estado visualizando los paquetes de datos en la app de C# llamada "PawnUdpRx" en la cual no tenemos problemas de comunicación.

La pregunta es si tendras desarrollada alguna aplicación en visual basic pero que reciba los paquetes de datos como la del ejemplo  "PawnUdpRx" ya que en esta una vez activado el botón escuchar temuestra cualquier cantidad de datos a diferencia de la de Prueba 2.

Espero puedas ayudarme, en este tema

Te dejo la aplicación

Saludos

Soporte

  • Global Moderator
  • Experto
  • *****
  • Mensajes: 1914
  • Soporte Técnico
Re:Transmisiones de datos UDP
« Respuesta #1 : marzo 13, 2018, 12:38:23 pm »
Tenemos una aplicación de visual basic basada en la aplicacion prueba 2 de la nota de aplicación AN001
La cuestión es que nos genera muchos problemas de conectividad...

¿Qué clase problemas estás teniendo?.

¿Perdida de datos? ¿Errores de recepción? ¿Cuelgues de la aplicación?.

...por otra parte hemos estado visualizando los paquetes de datos en la app de C# llamada "PawnUdpRx" en la cual no tenemos problemas de comunicación.

La principal diferencia que veo entre ambas aplicaciones (de forma superficial), es que "PawnUdpRx" utiliza un BackgroundWorker para esperar los datos provenientes del PLC.

Un BackgroundWorker corre una operación o tarea en un hilo (thread) diferente al programa principal. Es decir, en paralelo a la ejecución del programa. Esto permite que el programa principal pueda responder a otros controles sin que se "congele" mientras hace una operación en paralelo.

En tu caso, veo que utilizas un timer que llamás cada determinado tiempo . Esto no es muy práctico, porque tu programa se "congela" y no responde a otros comandos mientras espera la recepción de un dato. Así mismo, cuando llega un dato, tu programa lo sabrá cuando el timer llame a la función para leerlos.

En cambio con el BackgroundWorker corrés la recepción en un hilo diferente en paralelo a la ejecución principal, como en "PawnUdpRx".

Te dejo unos links al uso del BackgroundWorker  en VB.Net:

https://codigoscript.com/2015/08/21/vb-net-tareas-asincronas-con-backgroundworker/

https://www.dotnetperls.com/backgroundworker-vbnet

https://msdn.microsoft.com/es-es/library/system.componentmodel.backgroundworker(VS.95).aspx

Esta puede ser unas de las causas, ya que no tengo indicio de otro problema según me comentás.

La pregunta es si tendras desarrollada alguna aplicación en visual basic pero que reciba los paquetes de datos como la del ejemplo  "PawnUdpRx" ya que en esta una vez activado el botón escuchar temuestra cualquier cantidad de datos a diferencia de la de Prueba 2.

No, lo tengo implementado en VB.Net, ya que es un lenguaje que no utilizo. Sin embargo, con los links que te pasé y mirando un poco el código de PawnUdpRx no tendrás problema en copiar la recepción con el BackgroundWorker.

Otros puntos a tener en cuenta:

Como UDP es un protocolo "sin conexión", es decir, a diferencia del protocolo TCP, no hay un método de handshake y comprobación exhaustiva de errores, se recomienda evitar cableados o redes cargados con muchos computadores o dispositivos con gran actividad, o cableados que pasen por muchos routers intermedios que puedan hacer perder algún paquete. Redes Wi-Fi para este protocolo pueden ser problemáticas si hay poca señal o muchos routers intermedios. No sé si es el caso, pero de serlo, ver la posibilidad de lograr una conexión más directa con el PLC, como un cable independiente de ser posible. Si esto mejora o viene por este lado el problema, seria un indicio, en ese caso, debería evaluarse utilizar el protocolo TCP sí no se puede colocar un cable directo.

Saludos

« Última Modificación: marzo 13, 2018, 12:40:34 pm por Soporte »
SOPORTE TÉCNICO

Slicetex Electronics
www.slicetex.com