Conversor Rs232 a Ethernet, problema.

8Ball

Hola, creo que este es el apartado correcto para la consultar, en caso contrario moverlo.

Hace dias que en el curro le estoy dando vueltas a un pequeño proyecto que no consigo terminar. Se trata de a traves de un conversor RS232 -> Ethernet poder ver los datos entrantes en el pc. Por ejemplo con el Hyperterminal.

En principio el conversor tiene su ip, por ejemplo 192.168.0.105. y yo con el Hyperterminal por el puerto 10001, consigo acceder al conversor y poder ver los datos mostrados en tiempo real. Hasta ahi todo correcto y facil, verdad? xD

Pues bien ahora llega el problema, el cliente necesita poder acceder desde 2 programas distintos al mismo conversor, es decir por 2 puertos diferentes. Me es imposible pasar de ese paso, incluso hablando con la casa que nos vende el conversor no hay manera, pero yo se que en MV lo podemos solucionar.

Antes que todo, es posible hacer eso? Yo habia pensado en crear un servidor virtual en el pc, el qual guardara los datos del servidor fisico ( el conversor ) y luego crear 2 clientes virtuales que leyeran los datos del servidor virtual ( los programas ).

Que opinais? alguna idea? necesitais mas informacion?

Muchas gracias.

ArThoiD

Me da que vas a tener que sincronizar de alguna forma que el puerto se abra y se cierre cada vez en cada programa de forma síncrona y progresiva... Si utilizas el puerto serie a una velocidad no muy alta, debería funcionar sin problemas imo.

Juraría que acceder al mismo puerto a la vez no se puede, aunque la conversión a Ethernet ya se me va de las manos, no soy experto en redes.

1 respuesta
8Ball

Ya habia pensado en realizar un control de flujo mediante software, pero como mi ramo son los automatismos industriales y no la informatica, me queda un poco grande. No se como hacerlo. Estoy haciendo algun curso de programacion en python, pero de momento soy muy low.

1 respuesta
sh31k

#3 Cómo te comenta #2 , podrías buscar la forma de controlar las conexiones al puerto con tuberías (PIPE), en python nunca las he tocado la verdad :/

MTX_Anubis

Si el propio conversor solo te permite una conexión concurrente pues no te queda otra que hacer lo que has dicho.

Basicamente estás creando un cliente que se conecta al conversor y permite más clientes conectarse a él y hacer streaming a esos clientes de los datos que le envía el conversor.

8Ball

Conoceis algun software para hacer que un cliente haga streaming a otros?

portos

Buenas,
RS232 es punto a punto, no puedes enviar información de un emisor a varios receptores y viceversa, lo que quiere tu cliente, a priori, no se puede hacer con un solo convertidor en un solo puerto, las únicas posibilidades que veo son:
1.- Dos convertidores, Dos puertos serie diferentes.
2.- Crear una aplicación que actúe de buffer de entrada, recoja los datos del puerto serie del convertidor y los sirva en dos "puertos virtuales" para las aplicaciones. No conozco ninguna aplicación que haga eso. Para ello supongo que el protocolo debería estar preparado, es decir que los datos debería llevar una cabecera o algo para saber para que aplicación es y servirlos en el puerto correspondiente. Si no fueran datos específicos, y ambas aplicaciones pudieran coger todos los datos, es más sencillo creo yo. Por ahí buscando parece que en linux si se podría crear pseudo tty, en Windows ni idea.

https://stackoverflow.com/questions/2291772/virtual-serial-device-in-python

8Ball

Gracias a todos, no tengo mucho tiempo ya que tenemos muchas averias, pero sigo investigando. somos un SAT

Usuarios habituales

  • 8Ball
  • portos
  • MTX_Anubis
  • sh31k
  • ArThoiD