Arduino como PLC para controlar proceso industrial

Hola a tod@s:
Soy diseñador mecánico y para mis proyectos de automatización siempre he estado del lado oscuro de la Fuerza pues he aplicado los PLC´s de Siemens (Simatic) y Schneider para controlar las secuencias de los procesos encomendados. Ahora que he descubierto Arduino y el vasto campo de acción que promete, he decidido pasarme a esta orilla pero la pega es que no tengo mucha experiencia en programación ni en aplicaciones electrónicas por lo cual me someto a la ayuda que me podáis brindar con estos temas. En concreto, he diseñado y construído una máquina compacta para triturar grano (maíz, cebada, trigo y soja), previo pesaje de los ingredientes de la formulación del pienso, mezclar la molienda y descargarla. Solicito comedidamente obtener información sobre los pasos a seguir para usar una placa Arduino (empezando por el modelo adecuado) con elementos tales como un display, un teclado, una celda de carga (sensor de peso) y alguna cosa más. Desde ya agradezco el cable que me podáis echar.

Aunque no soy ingeniero ni mucho menos te recomiendo que vayas de menos a mas. Arduino como sabrás es tan potente como sepas hacerlo funcionar asi que te recomiendo que pasees por el playground y luego te tires al mas bajo nivel, me explico primero usa las librerías de arduino y luego te tiras a avr a pelo con atmel studio y c/c++ o ensamblador. Con conocimientos de electronica y programacion podrás hacer cualquier cosa que se te ocurra.

Te paso un par de enlaces que a mi me han ido bien obviando los de arduino que serian los primeros

cursomicros.com mucha docu bien planteada, ojalá todas las web fueran como esta.
AVR Libc Home Page documentación de las librerías e interrupciones
Gammon Software Solutions Home Page concestos como spi, amplificadors operacionales etc
http://www.atmel.com/products/microcontrollers/avr/default.aspx para descargar la docu de el micro
http://tallerarduino.wordpress.com/ sobretodo entender el tema interrupciones

Si haces preguntas más especificas te darán respuestas mas especificas.

Perdonad las faltas de ortografía pero no es sencillo con un iPad.

Te recuerdo que la plataforma arduino es un modo de hacer mas fácil la introducción a los microcontroladores pero sus librerías a veces impiden que luego puedas usar todo su potencial.

Te agradezco tu pronta respuesta....si así fueran los imbéciles que nos "des" gobiernan, ágiles, eficientes y eficaces, otro gallo nos cantaría en nuestra atribulada España...en fin, a lo nuestro. En mi modesto concepto, eres ingeniero por antonomasia, pues esta palabra deriva del latín "ingenium", fácil de deducir que significa y, por lo poco que he visto de tu accionar por estos lares, tienes "ingenium" para larga vida...bienvenido al club.
Intentaré absorber los conocimientos adecuados para emprender este apasionante trayecto...solo espero estar a la altura de las circunstancias y, si por si acaso tengo alguna duda, la manifestaré de inmediato.
El caso que nos ocupa es un proceso bastante sencillo. El molino es cargado de una cierta cantidad de grano, proveniente de una báscula continua, accionada por un sensor de peso (celda de carga) que abre la compuerta de descarga y, a la vez abre la compuerta de carga o pone en movimiento el tornillo sinfin que la alimenta (realmente son 4 tornillos sinfin; uno por ingrediente). El grano pasa directamente al molino y una vez triturado finamente, pasa a la mezcladora, máquina que debería abrir la compuerta de descarga transcurrido el tiempo de mezcla entre los distintos ingredientes. Esto es todo. Si se te ocurre alguna idea al respecto, házmela saber, por favor. Gracias de antemano.

PD: Encontré muy pocas faltas de ortografía en tu mensaje...las que había, parecían más bien incomodidad al escribir.

En primer lugar, bienvenido al foro y dejar de lado el lado oscuro (y caro) de la tecnología. Digamos que los PLCs nacieron en el 60 con el propósito de sustituir la lógica combinacional por algo un poco más potente. Desde entonces ya ha llovido.

La respuesta que te ha dado miniduino es muy acertada y muy bien dirigida. Digamos que el control que puedes hacer con un microprocesador o microcontrolador (este caso) es mucho más potente que lo que puedas hacer con un PLC (más restringido y acotado con respecto a lo que puede hacer).

Con respecto a la documentación, te aconsejaría que comenzases a ver cómo se programan, en este caso C/C++. Por otro lado ver las librerías que vienen integradas en el propio entorno de desarrollo (control de entradas salidas, entradas analógicas, comunicaciones, ...). Si te descargas el IDE, puede hacer pruebas para compilar programas y ver cómo funcionan. Vienen unos cuantos ejemplos integrados.

Lo siguiente es adquirir una placa, bien original bien un clónico (algunos clónicos funcionan mejor) y empezar a usar la placa. Es decir, ver que el código que compilas funciona correctamente en la placa y hace lo que esperas.

Por otro lado, tendrás que aprender un poco de electrónica para montar los periféricos que quieras controlar. Digamos que hay módulos pre-fabricados que puedes conectar a la placa (los shields) y placas auxiliares que hacer otras cosas sin tener que montarlas encima de la placa principal (como los shields).

Finalmente, accede al foro, haz preguntas, consultas. Creo que la gente que se conecta a este foro es muy pro-activa y tiene ganas de ayudar.

Tu proyecto no parece nada complicado y relativamente sencillo. Supongo que controlará reles como salidas y como entradas tendrás la báscula como una entrada diferencial analógica, alguna barrera infraroja, botones para hacer una parada de emergencia, ...

Una vez más bienvenido al foro.

Espero que

Yo he desarrollado un proyecto muy parecido en una hormigonera con un Mega. Actualmente está en uso, pero el problema que estoy teniendo es que aleatoreamente el arduino se resetea solo se va al inicio del sketch, con lo que se pierde todo le que está realizando. Tiene comunicación con una pc que monitorea el proceso: Envia la receta a preparar y recibe lo que va pesando, y a veces se resetea. Respecto al pesado, leer las celdas de carga, tuve que trabajar mucho ya que los resultados obtenidos de una caja que lee la celda y envia una señal 0-5v me daba enormes ocilaciones, pero con muchas (cientos) de lecturas que luego promedio obtengo un valor bastante estable. Si te interesa te cuento mas sobre mi proceso. Si alguien me puede ayudar con respecto al reseteo, les agradezco. En estos momentos estoy buscando información para comunicarme con la PC a travez de los pines con un Max 232 en vez del conector USB de la placa, calculando que por aquí me entra alguna señal que me resetea el sketch. Sigo en otro momento si les interesa el tema.

...pero el problema que estoy teniendo es que aleatoriamente el arduino se resetea solo se va al inicio del sketch

Puede ser que se resetee por una caída de tensión en la alimentación del arduino, mide el consumo de las salidas para salir de dudas

... un Max 232 en vez del conector USB de la placa, calculando que por aquí me entra alguna señal que me resetea el sketch.

Diria que es muy difícil que te pase esto.

Como haces la medición de la célula de carga?

Hola, soy cordobes y trabaje 6 años para una empresa que hacia automatismos para hormigoneras. Ahora estoy por mi cuenta y tengo la suerte de hacer un pequeño sistema de pesado para una mezcladora.
Podes contarme como hiciste para leer las celdas de carga, tengo en mi poder unos ina125 y unos cs5534 pero estoy atado de manos con respecto al calibrado de puesta a cero, no soy ingeniero electronico, sino analista de sistemas, pero me defiendo con la electronica.
Te puedo ayudar en tus problemas.

dios que lio de post !
uno se presenta y acabamos hablando de hormigón y preguntando porque se resetea un arduino.

bienvenido francoviles

cromani te recomiendo que abras un post por separado para hacer estas preguntas. en el indica que arduino tienes, que cosas hay conectado a el y como te comunicas con el con el PC. tengo varias ideas de porque puede ocurrir esto.

Encontré esto

http://code.google.com/p/open-plc/

la verdad que se ha liado un poco esto jejejee Bueno la opinion que he leido que la plataforma Arduino puede superar a un PLC, me hace discrepar un poco la verdad desde el punto de vista profesional que tengo. Hoy en dia es indiscutible que SIEMENS lidera el mundo de la Automatizacion industrial gracias a los buses de campo como estandar de comunicacion industrial. Las posibilidades del Bus Probifus son infinitas y estan muy arraigadas en la industria temo que sera asi durante muchos años.

eso es cierto Siemens y otras marcas mas son lideres en eso, pero a lo que se refiere @fm es que arduino o un micro queda abierto a cualquier campo de accion, y un plc tiene funciones determinadas y no puede hacer mas, ejemplo si queres i2c y no tenes esa funcion en un micro la podes lograr por codigo en un plc no tiene y no la va a tener por mas que le hagas.

Desde mi puto de vista hay un concepto que no es del todo claro. En un PLC industrial tenemos configurado tanto la CPU como las tarjetas I/O integradas, Módulos Analógicos, Procesadores de comunicaciones, y protocolos de Bus para las comunicaciones, así como la fuente de alimentación muy protegida. A diferencia de un Microcontrolador todos estos módulos se han de implementar por separado y unirlos por un Bus de datos común
En la industria se exige una fiabilidad muy alta en los equipos de control y eso exige unos niveles de seguridad muy estrictos. Por el momento hoy en día ningún Microcontrolador implementa todos estos niveles de exigencia al 100 %
Pensemos que las condiciones de trabajo son my duras

A eso me referia tambien, pero el plc es mas limitado en funciones, pero es cierto que las fuentes y demas perifericos ya estan mas que probados, y hacerlos por cuenta propia lleva tiempo y aveces es mas caro. Ademas de que el pcl se cambia y no se repara por el costo que este tiene frente a otros desarrollos.
Pero insisto en que un micro tiene mas funcionalidad que un pcl.

Para aportar ayuda necesitariamos que el Proyecto se entregase con algun esquema electrico y asi entre todos en este foro podriamos aportar ideas al proyecto que os parece la idea ? Podriamos colaborar entre todos aportando ideas y opinando sobre ellas, animo a todos a participar.

yo ayudo, en breve voy a publicar una idea de un automatismo dinamico hecho con un arduino mini.

Seria de gran ayuda para que podamos aportar ideas participativas. Gracias por tu interes en el Foro, Un saludo

Muy interesante la discusión,
Hace tiempo que nadie postea pero me ha parecido interesante dar mi punto de vista jeje. :grin:
Técnicamente, si hablamos sólo de programar una maquina para que haga una tarea determinada, obviamente ambos sistemas son igualmente validos, y como ya habéis comentado, la principal ventaja de Arduino respecto al PLC es que éste es abierto, por lo que es teóricamente más fácil de aprender a programar, se puede reutilizar más código, etc.
Sin embargo, me temo que en una planta industrial típica nadie va a querer reemplazar su antiguo PLC por un Arduino, aquí van algunas de mis razones:

  1. Los PLC tienen certificación para ser situados en áreas clasificadas, y este es un requerimiento muy típico en la industria del Oil&Gas por ejemplo. Además suelen estar certificados también para garantizar la integridad de los lazos de control y otorgar cierta fiabilidad al sistema (léase SIL, SIS, etc). Un Arduino desgraciadamente no tiene dicha certificación y, a menos que alguien se haga una pasta en certificarlo, no creo que eso vaya a suceder.
  2. Siguiendo la línea anterior, hay toda una industria detrás de los PLC que obviamente dificulta la entrada de nuevas alternativas. Siemens o ABB por ejemplo son gigantes industriales que además de la propia maquina tienen grandes contratos con las industrias cliente que dificultan enormemente la entrada de nuevas tecnologías.
  3. Los PLC además tienen software muy orientado a satisfacer las necesidades de los operadores de las plantas: los SCADA, los sistemas de control distribuido. Obviamente podemos diseñar un SCADA para Arduino, pero dudo que llegue a ofrecer las mismas prestaciones.
    Dicho todo esto, la verdad que ojalá Arduino pudiera introducirse como alternativa!
    Un saludo!

No me habia fijado en este hilo, ha estado bien que lo reflotes.

Comenzando...

Arduino como PLC, lo veo totalmente factible y de hecho ya hay una empresa que lo comercializa (un clon) para una aplicacion mas modesta:
http://www.winkhel.com/?gclid=CJymmp_Vx7YCFWbKtAod-TAADQ

Si bien, he visto al compañero de esta empresa por el foro, y el diseño que ha realizado con arduino es un estilo automata, cosa que veo muy interesante, no veo tan interesante el tema de que el software no es publico, una lastima, toca reinventar la rueda.

Mi opinion de lo que deberia ser o se podria hacer:
Al igual que openPLC, se deberia realizar un sistema arduino que crezca tanto como el usuario quiera, que emplee un protocolo estandar (mi voto es para ModBus) aunque no se implementarlo hay algo ya en la web y que emplee comunicaciones RS485 (protocolo industrial aceptado, funcionando y barato)

Respecto al software Scada o servidores si que es verdad que hay muy poco pero no debemos olvidar servidor gratuito que tiene PandoraFMS, MangoM2M, Ananas o algun otro... eso nos dejaria usar estos para aplicaciones propias.

Tambien existen proyectos parecidos para otros microprocesadores (de hecho, a la vuelta del verano estare intentando realizar un "automata" universal con un compañero de trabajo pero con PIC) que podriamos examinar.

Respecto al hardware creo que es bastante facil de implementarlo, mas faena va a dar el software... pero si os animais me apunto al desarrollo de un automata arduino pues es cierto que el tipo de programacion de los automatas y ladders y demas... no me gustan nada.

Ah, enlaces a tener en cuenta para ir abriendo boca: Freemodbus, PLCopen, OpenPlc.

Si hay animo... a crear automata, eso si, Open!!

Yo me sumo a la iniciativa de Heke, voluntario a desarrollar algo para hacer un PLC abierto basado en Arduino!

yo me sumo, y aporto algo mas.
Para que haya una certificacion tine que haber alguien que lo evalúe y pueda asegurar que cumple con normas. para eso se puede basar un diseño en la iso9001 por ejemplo o la norma de CE, TUV etc.