Usar PLC basado en Arduino en proyectos "serios."

Hola a todos!

En la empresa en la que trabajo (una micropyme dedicada a I+D), actualmente estamos subcontratando a un tercero el diseño e implementación del sistema de control junto con el montaje de los cuadros eléctricos de los equipos que desarrollamos.

Hablamos de equipos que, si bien a nivel conceptual tienen su “miga”, desde el punto de vista de control son más bien simples. Un proyecto tipo tendría un par de entradas analógicas, otras tantas salidas del mismo tipo, del orden de 8 entradas y salidas digitales, y alguna comunicación tipo RS485 con algún componente (por ejemplo, driver de un motor paso a paso). El control en sí, no requiere “inteligencia”.

La empresa subcontratada nos pone PLCs Siemens, cuya fiabilidad está más que contrastada para procesos de automatización industriales infinitamente más complejos. En el desglose del último presupuesto, veo que el coste de la CPU del PLC junto con los distintos módulos de entradas, salidas y comunicación superan los 3000€.

Por otra parte, yo llevo un tiempo aprendiendo Arduino, y siendo aún mi nivel muy de principiante, veo que muchos de los proyectos los podría resolver con un Arduino, y la empresa Industrial Shields ofrece un montaje pensado para integrarlo en un cuadro eléctrico, dándole un formato que imita a un PLC (caja cerrada para carril DIN con conectores tipo clema, salidas analógicas en 0-10V, salidas de relé, etc.), con su marcado CE, y vistos en la web tienen bastante buena pinta. (por si alguien no los conoce, es esto: ✅ Soluciones de automatización | Arduino PLC | HMI y PLC Raspberry Pi ).

Mi pregunta es qué razones alegaríais para descartar el uso de esto en un proyecto serio (suponiendo que las haya). No estoy hablando de máquinas que se venden en serie ni procesos industriales “definitivos”, sino de equipos experimentales que se vayan a usar en laboratorio de un tercero o de “plantas piloto” (pequeñas instalaciones para demostrar, validar y evaluar un nuevo proceso industrial).

Ojo, no estoy hablando de prescindir mañana de la empresa especializada para asumir yo mismo (con escasa experiencia en ese ámbito) todo el sistema de control desde ya (eso sería más a medio-largo plazo).

¿Eres de España?

Entonces usa PLC siemens aunque valgan una pasta. No puedes convencer a nadie que use un PLC de precio inferior que te va a ofrecer el mismo resultado que el siemens. ¿Por qué? Te remito a lo que siempre me han dicho a mi ¿como una cosa que vale 40€ va a hacer lo mismo que una que vale 6000€? Y creeme, te he dicho un PLC de precio inferior (OMRON por ejemplo sale más barato), imagina si es un PLC mas chinusco (Koyo, samsung, etc) o algo basado en arduino.

El mayor problema de un producto "low cost" es que no tiene un tiempo de vida suficiente como para demostrar su valia. Conozco varias empresas que comercializan productos de bajo costo, como la mencionada industrialshield (que por cierto, creo recordar que yo te la enseñe), pero son jovenes y aun hay desconfianza en sus productos. Desconozco hasta que nivel son productos "robustos".

¿Qué hacemos pues? Nos fiamos de un producto joven, que funciona, pero no sabemos hasta que punto va a ser fiable, o nos gastamos seis veces más en un producto que sabemos que es fiable.

Creo que está pregunta tendrá más cabida en un foro de automatización industrial o sobre automatas (por ejemplo infoplc.net) que en uno de Arduino. Ya que nosotros defenderemos Arduino, o te diremos, que en todo caso depende del uso que se le vaya a dar. Por ejemplo, estoy seguro de que PeterKanTropus y Surbyte te recomendarian poner un PLC, no siemens, pero si un PLC. En cambio yo, buscaria alternativas más baratas y si me dejan desemsamblar un plc de industrialshields lo mismo hasta me gusta como producto...

A ver que opinan los demás foreros.

victorjam:
Por ejemplo, estoy seguro de que PeterKanTropus y Surbyte te recomendarian poner un PLC, no siemens, pero si un PLC.

Efectivamente yo te recomendaría usar un PLC. La pregunta que debes hacerte es ¿Cuando vale un fallo en tu proyecto en dinero y prestigio? ¿Si el componente no probado, falla en medio de una demostración del producto, que costo tendría?

Tengo mi inglés oxidado, pero ya que estamos, a ver que opinais de esto:

Arduino based Industrial PLC - Intro and Teardown - YouTube video

Gracias por vuestras respuestas.

Lo es es innegable es que es un error decir que un Arduino "hace lo mismo" que un PLC Industrial. Es como decir que un Cessna 172 hace lo mismo que un Airbus 320. Sí, ambos son aviones y pueden volar; pero a partir de ahí hay diferencias evidentes (a nadie se le ocurriría hacer un viaje trasatlántico con pasajeros con un Cessna).

Siguiendo con la misma analogía, supongo que una placa de Arduino por sí misma equivaldría a un ultraligero, que permite a un aficionado sentir la experiencia de volar, y un Industrial Shields seria como una avioneta tipo Cessna (con el motor de un ultraligero). Una avioneta se podría utilizar para llevar un par de pasajeros en un recorrido corto, a baja altura y nunca en condiciones meteorológicas adversas.

A mí lo que me choca es utilizar el mismo PLC en una planta de producción con un montón de actuadores y sensores funcionando como un reloj y a una velocidad alta varios turnos al día durante años en un entorno a veces hostil (polvo, humedad, EMIs...), y para un pequeño equipo experimental que no tiene más de 3 o 4 maniobras y algún que otro PID y que se va a usar principalmente en laboratorio y probablemente en un año se va a desmantelar.

Como bien sugeríais, al final de todo se trata da valorar el producto de la probabilidad de fallo por las consecuencias o coste que pueda tener el fallo. La probabilidad de fallo es el gran desconocido.

Una solución intermedia sería probar Industrial Shields en prototipos que se usen en nuestras instalaciones mientras se sigue usando PLC en equipos "vendidos"

Lo es es innegable es que es un error decir que un Arduino "hace lo mismo" que un PLC Industrial

No comparto tu conclusión. Un PLC basado Arduino hace lo mismo? SI.

El PLC (basado en Arduino) funciona bien. Si. Tiene el mismo prestigio que un Siemens? No.

A la hora de elegir entre uno y otro para controlar un sistema que involucre seguridad de algún tipo, que eligirás? Acá viene la respuesta de PeterKanTropus.

La pregunta que debes hacerte es ¿Cuando vale un fallo en tu proyecto en dinero y prestigio? ¿Si el componente no probado, falla en medio de una demostración del producto, que costo tendría?

Cuánto te puede costar una falla ya no en la demostración sino luego de las ventas? Y si se comprobara que el resposable fue el PLC? No hablo de Industrial Shields porque no se que certificaciones tiene en su producto/modelo basado en Arduino de modo que no me pondré a criticar algo que desconozco. Y como afrontarías una demanda económica si lo que controlas es un sistema de muchos $$$ y se dañara.

Mi experiencia con PLCs no tan prestigiosos es la siguiente: Yo he usado KOYO de Automation Direct (mencionado por victorjam), es un PLC muy barato que funciona perfectamente, menos de 100 USD en su versión DL05 y 200 USD en su versió DL06 (mas entradas/salidas) y lo usé en mas de 250 equipos en la Industria del petróleo pero controlaban el funcionamiento de una máquina que desarrollamos con mi hermano. Esa máquina dosificaba producto químico y no era crítica. Sin embargo los fallos que tuvimos se debieron a la programación (al principio) y/o falla en sensores. Aclaro que estas versiones de PLC ya no estan disponibles porque fueron reemplazadas por modelos mejores. Como conclusión diré que Koyo se comportó perfectamente. Y fue la mejor alternativa precio/perfomance que pude usar en aquel momento (hablo de mas de 10 años atras). Quería usar micros? Si claro. Me permitió la industria petrolera usarlos? No porque no tenía las certificaciones eléctricas correspondientes. Estaba en condiciones de hacer las certificaciones eléctricas? Tal vez si, pero la primer evaluación indicó que era muy caro hacerlo y no había pedidos que justificaran eso. Asi que el equilibrio entre hacer algo propio, bien, tomando todas las precauciones y que además satisfaga certificaciones no es tan simple si no hay un contrato que te asegure rentabilidad.

Tal vez toda este debate sea de algún modo estéril si al comprobar las certificaciones del PLC basado en Arduino compruebas que todo esta en orden. Si es así un camino lógico es el que tu mismo has inidicado, tenerlo a prueba en tu propia empresa con sistemas comunes y/o semicríticos.

Esto es por aprender. Certificaciones:

Creo que se lo que dice, pero no lo tengo claro, alguien que me lo traduzca???

victorjam:
Esto es por aprender. Certificaciones:

Creo que se lo que dice, pero no lo tengo claro, alguien que me lo traduzca???

Si no me equivoco, con el marcado CE se está certificando su conformidad respecto a los estándares de compatibilidad electromagnética y seguridad eléctrica. Pero creo que no dicen nada de la fiabilidad de un producto (los electrodomésticos más baratos y malos tienen ese certificado como requeisito para poderse vender).

Intuyo que, más allá de la calidad del hardware, algunos de los puntos fuertes que pueda tener un PLC industrial "contrastado" pueden tener que ver con la robustez que proporciona su método de programación de más alto nivel. Vamos, que (al menos para un programador no muy experimentado) programando en C++ las probabilidades de meter la pata en algún punto son mucho más elevadas que con los lenguajes propios de los PLC.
De hecho, las CPU Siemens s7 1200 son bastante asequibles, pero necesitas el software TIA Portal que, según tengo entendido, las versiones económicas están muy "capadas" y no dan para hacer muchas cosas.

He leído por ahí que hay aplicaciones opensource para programar en diagrama de escalera para arduino. Pero me gustaría saber qué flexibles son y qué limitaciones tienen.

El TIA portal es el motivo por el cual aborrezco los PLC Siemens, estuvieron lanzando versiones beta, todas incompatibles entre sí, durante cuatros años. El ladder de Arduino me pareció muy elemental en su momento, además el único motivo por el cual Arduino puede superar a un PLC es su idioma de programación, que le da la posibilidad de programas más complejos ( que al parecer no es tú caso) El mundo de la autorización es muy conservador, todavía están en la redes rs485, la mayoría de los compradores de automatización te exigirán un PLC.

EN 61131-2:2007 Autómatas programables. Parte 2: Requisitos y ensayos de los equipos

Esta norma define el estándar que deben cumplir los automatas en cuanto a sus caracteristicas relevantes y de los periféricos asociados: especifica los requerimientos funcionales, electricos, ambientales y de construcción, condiciones de servicio, seguridad, etc. Además define una serie de test que deben pasar para obtener la certificación.

En realidad la norma es la IEC 61131 y obviamente la que no cumple es la parte 3, que define los lenguajes de programación. A saber:

  • Lista de instrucciones: parecido al ensamblador pero más simple. Un poco obsoleto diría yo para alguien que no sepa nada. No es demasiado dificil hacer un interprete que Arduino "traduciria" bastante bien (de hecho, es uno de mis objetivos a muy largo plazo).

  • Lenguaje de escalera (ladder), programación visual. Lo veo bastante funcional, pero más complicado de usar si el programa es complejo.

  • Texto estructurado, que simplemente es un [u]PASCAL[/u] adaptando las funciones del PLC. Mi primer lenguaje de programación fue Pascal, luego me pase a C y no he vuelto a tocarlo.

  • Grafcet, otra forma de programación visual. Ni opino, no lo he usado.

El TIA portal no lo he manejado, entre otras cosas porque no ha caido en mi mano ningún siemens, si he trabajado con CODESYS y CX Programmer (Omron), y coincido con PeterKantTropus, el lenguaje de programación C++ les da mil patadas a los otros cuatro. Además de que no se yo si KUP/FUP está muy acorde con el estándar...

Intuyo que, más allá de la calidad del hardware, algunos de los puntos fuertes que pueda tener un PLC industrial "contrastado" pueden tener que ver con la robustez que proporciona su método de programación de más alto nivel. Vamos, que (al menos para un programador no muy experimentado) programando en C++ las probabilidades de meter la pata en algún punto son mucho más elevadas que con los lenguajes propios de los PLC.

Para un programador no muy experimentado la posibilidad de meter la pata a la hora de programar un plc o arduino es la misma, o al menos, no veo la diferencia. Si cuando una salida debe estar apagada, esta encendida será problema de que quien ha hecho el programa ha metido la pata.

Os cuanto un secreto, he publicado poco código de mis cacharreos, pero por ejemplo, id al proyecto de la puerta controladora del gallinero y vereis una secuencia muy tipica: leo entradas, actuo, escribo salidas... ¿os suena?, si, programo arduino haciendo un ciclo de PLC. Pero luego puedo hacer mas cosas que en ladder/pascal es más dificil de hacer.

La forma de programar Arduino con ladder y demás lenguajes no está muy explotada. Por ejemplo, LDMicro veo que es el editor más potente que hay de ladder, pero tiene limitaciones (aunque claro, acabo de mirar y van por la versión 5.4.0.4, me atasque en la 2.3).

En este punto no defiendo ni a Arduino ni a PLC, son mundos de programación diferentes, aunque PLC deberia avanzar a algo más.

Así que volviendo al tema de las certificaciones. Si cumple la norma eléctrica y los requisitos de protección que un PLC cumple, no creo que sea un problema de hardware implantarlo en una pequeña planta de pruebas. Solo hay que tener en cuenta las limitaciones de un ATMega en cuanto a programación, al igual que has de tener en cuenta ciertas cosas con la programación de un PLC.