comunicación Arduino y maquina industrial

Buenas a todos,

Soy completamente nuevo en Arduino y tengo entre manos proyecto en el que he pensado que Arduino podría ayudarme.

El Escenario.

Tengo varias máquinas de las que quiero extraer información o enviarles ordenes para que realicen acciones, estos aparatos tienen un protocolo definido para la comunicación con ordenadores por el puerto serie o por usb. Actualmente soy capaz de comunicar un ordenador conectado por usb con la máquina utilizando archivos xml que es lo que especifica el protocolo para la comunicación.

El problema.

Como he dicho son varias maquinas y no quiero tener un ordenador para cada una, además están a una distancia considerable para los cables usb y además seria bastante chulo usar Arduino para esto.

La idea.

La idea básicamente seria usar Arduino conectado por usb o rs-232 a la máquina y que el Arduino se conecte al ordenador via Xbee o Ethernet o con cualquier otro método.

El ordenador envie datos al arduino y este los transmita al aparato.La maquina enviará el resultado del proceso al Arduino y este debe comunicarlo al PC remoto

La pregunta.

¿es esto posible? Con arduino seria posible comunicarme con esta máquina? enviar y recibir archivos xml?

Saludos a todos y espero que la pregunta se entienda.

Hola
si es posible.
debes de elegir un protocolo de comunicacion, con el cual te permita comunicar con varias maquinas,
bien por cable o bien de forma inalambrica.

Las maquinas deben de tener tarjeta de red, bien para cable o de forma inalambrica.

PC--> Arduino --> canal ordenes(aire o cable) ........ ordenes(Maquina)-->puerto comunicación máquina.

Tendras que hacerte un drivers o interface para que arduino interprete o descodifique el xml,
entiendo que xml es la salida del software del pc a enviar las ordenes o parametros de control....

podias explicar un poco el tipo de protocolo o el funcionamiento del soft y xml que usas en la actualidad.

basicamnete es hacer una red entre tu arduino y las maquinas a controlar, el kit de la cuestion es elegir un protocolo que satisfaga tu necesidades, distancia, control de errores, velocidad, ...
eso te permitira comunicar con una maquina o con todas a la vez.

** ¿que tipo de puertos de comunicacion disponen las otras maquinas?

Un Saludo.

Hola, gracias por contestar.

Funcionamiento Actual.
La máquina tiene puertos RS-232 o USB (normalmente USB) y tienen especificado un protocolo de comunicaciones para el intercambio de información con un software de PC. El intercambio de datos se hace con envíos de archivos XML del pc a la máquina y de la máquina al pc.

PC1 <---------USB--------------->MAQUINA1
PC2 <--------USB--------------->MAQUINA2

La idea.

La idea básicamente es saltarme el cable USB y poder utilizar todas las máquinas de forma centralizada en un solo pc, con algún dispositivo intermedio.

PC <---/Ethernet o wifi/---|------USB->MAQUINA1
|------USB->MAQUINA2

Tengo dudas de si es posible la comunicación entre el Arduino y las Máquinas. ¿Podrá recibir los datos de la máquina el Arduino?

He estado leyendo sobre el XBee para la comunicación entre los arduino y el pc central.

saludos y gracias.

Para esto que explicas no te hace falta arduino.

Conecta todo a un PC.

¿La distancia a que estan de cuanto es y cuantas maquinas son?

Hola,

ya se que las puedo conectar a un solo pc pero quería eliminar los cables USB (son unas 5 máquinas) y trastear un poco con arduino. Pensé que podría ser buena opción.

Ok, tu veras...

Yo aplicaba "la navaja de ockham"
"...cuando dos teorías en igualdad de condiciones tienen las mismas consecuencias, la teoría más simple tiene más probabilidades de ser correcta que la compleja..."

Si es por trastear con el arduino vale, pero sabes que te vas a complicar para no mejorar nada...

Los cables USB se pueden ampliar pasandolos a categoria 5 o categoria 6 y te da mas metros de distancia.

Tambien existen repetidores por RF para puertos seriales...

En fin... a gusto del consumidor

Un saludo-

Entiendo lo que me quieres decir pero la cuestión no es que es mas complejo o mas rápido ni mas bonito.
La pregunta que me hago es ¿Es viable? ¿es posible conectar un Arduino a una máquina y que sea capaz de comunicarse con ella enviando y recibiendo XML?
No he trasteado lo suficiente con Arduino como para saberlo y por eso pregunto.

Saludos y Gracias por contestar.

hola

Seria mas algo como esto:

PC <---USB--->------>/Ethernet o wifi/---|

|---/Ethernet o wifi/---USB->MAQUINA1
|---/Ethernet o wifi/---USB->MAQUINA2

es una red de arduinos.

mira este post:

ya nos contaras que te parece y como lo ves

Un saludo.

Si, ya había leído algunos enlaces y esa parte la tengo clara. Aunque sigo sin encontrar nada relacionado con el envío y recepción de XML desde el arduino. Debo buscar un poquito mejor a ver si me aclaró sobre este tema.

Saludos.

Si vas a utilizar los arduino como interfaz PC <-> Ethernet/Wifi y Ethernet/Wifi <-> Maquina, da lo mismo que quieras enviar XML, imágenes o Números de cuentas bancarias de Suiza, al fin y al cabo son datos, datos que entran a través de un puerto serie desde el PC y salen por otro a la máquina, y para ellos lo que estas haciendo es una comunicación a través del puerto serie/USB. La placa de Arduino no debe/necesita interpretar esos datos, solamente pasarlos al destino.

Eso sí, para ello necesitas tener tantos Arduinos conectados al PC por USB como máquinas quieras controlar y el programa del PC tiene que soportar manejar varias máquinas simultáneamente:

Con este esquema, lo de menos es que sea ethernet, wifi, zigbee o RF. Solo es el canal físico por el que van a pasar los datos desde el origen (PC) hasta el destino (Maquina x). Eso sí, es un derroche de medios, como ya te han comentado anteriormente, y hay soluciones mucho más simples y, probablemente, más baratas.

No estoy de acuerdo con jorgepl.

Con un solo arduino en el lado "a" puede funcionar. Haciendo una red con los arduinos del lado "b". Así todo es cierto que necesitas varios de ellos...

Pero en el lado del PC puedes usar como pasarela solo un arduino

Eso depende de como trabaje la aplicación del PC, si para manejar una máquina por USB, la aplicación necesita abrir un puerto COM, la aplicación necesitará tantos puertos COM como máquinas (si tienen que trabajar simultaneamente), y por lo tanto, necesitará tantos "cables" entre PC y las máquinas como máquinas.

Hay que tener en cuenta, que la placa de Arduino no interpreta los datos, sino que sirve únicamente de pasarela USB-(Ethernet/Wifi/RF)-USB. Por lo tanto, necesitará tantos Arduinos conectados al PC como pasarelas quiera crear.

hola
si vais a usar arduino con Ethernet/Wifi,
solo necesitas un arduino en el lado del pc, ya que estan en red los arduinos, cada arduino tendra una direccion de red, y el conjunto otra,
mirate las capas del modelo OSI.
si te quieres comunicar con todos o que el mensaje llegue a todos utiliza la direccion de broadcast.

funcionarian como una red de ordenadores.

Mirate muy bien que especificaciones que quieres que haga cada arduino,

yo empezaria poniendo dos arduinos en red,
le daria instruciones al A para que el B las recibiera y actuase en consecuencia.
puedes hacerlo de forma fisica o de forma simulada.

No se si has manejado algun tipo de bus, i2c y modbus,.. en electrónica
seria algo parecido, cada dispositivo se identifica con una direcion unica igual que en la red.

Un cordial saludo

En la arquitectura que propone "jorgepl" efectivamente no tiene mucho sentido usar arduino (te has currado la imagen) los cables usb van bien.
Aunque me parece que me expliqué mal, los arduinos deben conectarse a las máquinas por puerto usb o rs-232 obligatoriamente, pero en el lado del pc no tengo ningún tipo de restricción, la aplicación del PC la he programado yo y la puedo modificar a mi antojo.

La arquitectura que yo tenia en la cabeza es como propone "pajaro".

Gracias. Seguiré estudiando el tema e iré notificando mis avances

Si puedes programar la aplicación para controlar las máquinas a través de direcciones IP, entonces, ni siquiera es necesario el Arduino conectado al PC, puesto que lo que necesitas es enviar los datos desde el PC a las máquinas a través de la red cableada/wifi de la empresa y que los módulos conectados a las máquinas se conecten a esa misma red.

PC <--> Red de la empresa (Ethernet/Wifi) <--> Arduino <--> Máquina

Es un concepto distinto al que habías planteado de sustituir los PCs y cables USB.

Perdona jorgepl, tienes razón, no habia contemplado esa posibilidad.

En vista a los cambios, opino que la mejor solución es la que propones, y una de las mas baratas de aplicar