Introducción al OpenPLC

PLC Siemens
Fuente: Wikimedia

El PLC o Controlador Lógico-Programable es un dispositivo de control flexible y robusto, ampliamente utilizado en la industria, para el monitoreo y automatización de procesos. Usualmente es un computador con mayores prestaciones  (energía, durabilidad, confiabilidad, inmunidad al ruido y resistencia física) y con capacidad para recibir y procesar múltiples señales de entrada y salida. Dependiendo de las señales, un PLC puede monitorear y registrar datos, iniciar y detener procesos, generar alarmas, etc.

Primer PLC Modicom
Fuente: unicrom

Los primeros PLCs fueron diseñados y desarrollados por MODICON para reemplazar los sistemas de control de Lógica de Contactos, basados en dispositivos electromecánicos llamados Relés. Estos sistemas eran muy difíciles de modificar y documentar debido a la cantidad de cables y conexiones necesarias para un proceso en particular. Al eliminar todo el cableado y los relés, un PLC permite modificar y aumentar las funcionalidades con mayor facilidad, simplemente modificando la programación de este dispositivo.

Un PLC se compone básicamente de:

  • Una unidad central de procesamiento (CPU)
  • Una unidad de almacenamiento
  • Interfaces de Entrada y Salida
  • Interfaces de Comunicación
  • Una fuente de Alimentación

Las señales que puede manejar se dividen en Señales Digitales: aquellas que denotan dos estados discretos (por ejemplo Encendido / Apagado  o Abierto / Cerrado) y las señales Analógicas: aquellas que representan un valor contínuo y proporcional a algún fenómeno físico, como ser: la temperatura, presión, velocidad, etc. Estas señales se tranducen a una señal eléctrica (normalmente de corriente 4 a 20mA o voltaje 0 a 10VDC) y éstas a su vez se cuantifican mediante un conversor A/D, por ejemplo 4mA equivale a un valor entero 0 y 20mA a un valor entero de 32767

Diagrama Escalera
Fuente: Wikimedia

El uso de estos dispositivos está orientada a Profesionales sin una base en programación, por lo que se utiliza habitualmente lenguajes gráficos como el Diagrama Escalera (LD), Diagrama de Bloques (FBD),  GRAFCET  (SFC) y otros lenguajes textuales como la Lista de Instrucciones (IL) y el Texto Estructurado (ST), los cuales se hallan bajo el estándar IEC 61131-3.

Acerca de OpenPLC

Desarrollado por Thiago Alves, OpenPLC es una amalgama de proyectos de código abierto para ofrecer un PLC funcional tanto el software como hardware, como una alternativa de bajo costo para la automatización y la investigación.

Se compone de tres partes:

  • El Editor es una instancia del proyecto Beremiz, el cual se adecúa al estándar IEC-61131 para implementar un Entorno de Desarrollo Integrado (IDE) para la creación y modificación de los programas en LD, FBD SFC, IL y ST; y el proyecto MATIEC que permite interpretar los programas en IEC-61131 y generar el código ANSI C.
Ejemplo de programa IEC-61131
  • El RunTime es el sistema que se encarga de ejecutar el programa del PLC, posee una interfaz web para facilitar la administración. Se puede ejecutar en una plataforma embebida con linux como ser un Raspberry Pi  y derivados, o como softPLC en un ordenador Linux (o windows). Incluye otra instancia de MATIEC, librerías y código adicional para la compilación nativa de los programas así como la comunicación con dispositivos esclavos, permitiendo de esta forma la expansión de Entradas/salidas por MODBUS RTU, TCP o cualquier otro protocolo que se desee implementar.
Ejemplo de Monitoreo del RunTime
  • Interfaz HMI. basado en el proyecto ScadaBR, un sistema de Adquisición de Datos, Control y Supervisión (SCADA) que permite comunicarse con diferentes PLCs incluyendo el runtime de OpenPLC. Esta Interfaz Hombre-Máquina se comunica mediante MODBUS y permite el monitoreo de datos históricos, gestión de alarmas y notificaciones.
Ejemplo de Interfaz HMI

El ejemplo del programa se puede consultar aquí.

Tecnología basada en la naturaleza

Por Laura Danae Coca Humerez
Fuente: TDS

Buscar inspiración en la naturaleza no es una idea nueva. Se practicó a lo largo de toda la historia de la humanidad, grandes inventos tuvieron como musa a la naturaleza, el grupo Mercedes presentaba en 2005 un coche, el «Mercedes-Benz Bionic«, cuyo diseño exterior se fijaba en un pez tropical, el ostracion cubicus, conocido como pez cofre. La forma y fortaleza del cuerpo de este animal inspiró a los ingenieros de la compañía automovilística para mejorar la aerodinámica y resistencia de su chasis, la compañía Speedo creo bañadores que simulan la piel de los tiburones, su diseño reduce la fricción con el agua, de modo que el nadador gasta menos energía y aumenta su velocidad.

Los ejemplos de diseños basados en sistemas naturales son cada vez más diversos y espectaculares. Así, mirando la naturaleza, y observando específicamente el comportamiento del ser humano, podemos mencionar a las Redes Neuronales, las cuales son un campo muy importante dentro de la Inteligencia Artificial. Inspirándose en el comportamiento conocido del cerebro humano (principalmente el referido a las neuronas y sus conexiones), trata de crear modelos artificiales que solucionen problemas difíciles de resolver mediante técnicas algorítmicas convencionales.

Las redes neuronales se basan en una idea sencilla: dados unos parámetros, hay una forma de combinarlos para predecir un cierto resultado. Para entender mejor este concepto imaginen a Tarzán, quién creció solo en la selva y jamás vio a una mujer en su vida, un día una mujer llamada Jane llega a la selva; él le da una piedra, pero a ella no le gusta, un día le da una flor y eso le gusta, entonces sigue intentando un día atrapa una serpiente y se la da, pero a ella no le gusta; luego le da un conejito y eso le gusta; a ella no le gusta que él grite, pero sí que sonría. Al construir estas experiencias aprende cómo ganarse el corazón de Jane, de esto viene el término de aprendizaje automático, haces que la computadora aprenda sola alimentándola con datos de distintas experiencias, el aprendizaje se realiza mediante la red neuronal artificial, así logra predecir los resultados.

Por lo tanto, las redes neuronales nos permiten simular características propias de los humanos, como la capacidad de memorizar y de asociar hechos. Si observamos situaciones que no pueden expresarse mediante un algoritmo, descubrimos que estas tienen algo en común: la experiencia, cualidad humana, que nos permite aproximarnos a una solución en base al conocimiento acumulado. En definitiva, las redes neuronales artificiales son un modelo simplificado del cerebro humano.

Cuando se habla de ‘red neuronal’ en realidad se emplea una metáfora, porque esos modelos computacionales funcionan como lo haría una neurona, llevando información hasta otra a través de la sinapsis. Se trata básicamente de imitar lo que ocurre en el cerebro humano, pero dentro de un ordenador.

El aprendizaje se lleva a cabo con cada experiencia de entrada. En éstas, el algoritmo realizará modificaciones con las conexiones internas hasta que encuentre cómo lograr una salida deseada en un nivel de precisión específico. Una vez que el algoritmo haya aprendido, es posible ingresar más entradas y la red neuronal artificial ofrecerá una predicción.

Estos sistemas no requieren que la tarea a ejecutar se programe, en cambio generalizan y aprenden de la experiencia.

Introducción a la Impresión 3D

Por Andrea Pelaez Perez

Al hablar de impresión 3D nos viene a la cabeza un aparato complicado solo para expertos, pero si conocemos un poco más sobre ellos, podemos ver que está al alcance de todo el público. ¿Cómo funciona la impresión 3D? ¿Cómo empezar en la impresión 3D? ¿Qué es la comunidad Maker? En este artículo, daremos los conceptos básicos de todo lo que necesitas.

La impresión 3D o fabricación aditiva es la tecnología que hace posible la fabricación de objetos sin diferenciar su complejidad, permite reducir el tiempo necesario para obtener un producto sin restricción de los métodos convencionales rápidamente y a bajo consto, las libertades de esta tecnología nos permiten tocar con la mano algo que al principio solo podemos apreciar de manera digital. Hoy en día, la impresión 3D abarca muchos campos, desde la ingeniería hasta la medicina y la educación.

La comunidad Maker, es la que hizo posible que ahora tengamos esta tecnología a nuestro alcance, esta tecnología ya existía antes de su globalización, pero gracias al proyecto RepRap “replicating rapid prototyper” en 2005, al mando de Adrian Bowyer, un profesor de la universidad de Bath, doctorado de la ingeniería mecánica, esta tecnología avanzó tanto con los años. Su meta era conseguir un objeto autorreplicante que pueda llegar a cualquier parte del mundo con una inversión mínima “open source”. Cuando él se enteró del vencimiento de la patente de las impresoras 3D, creó el primer modelo, conocido como Darwin, inspirado en el creador de La Teoría de la Evolución; empezando así la evolución de las impresoras 3D, con lo cual inició la lógica comunitaria en la que se añadieron mejoras y adaptaciones, viajando por todo el mundo donde cada quien añade su granito de arena y así creando la comunidad Maker.

Impresora Darwin
Fuente: RepRap

Para incursionar en la impresión 3D se debe empezar con el diseño de la pieza que deseas plasmar en la vida real, para esto se necesita un programa CAD. Los programas gratuitos mas usados son Blender, FreeCAD, LibreCAD, el programa de paga más utilizado es SolidWorks; sobre estos programas realizamos el diseño de la pieza deseada en formato STL para posteriormente traducirlo a código G, el cual es el propio de las impresoras 3D, un ejemplo del código G es el siguiente, “G1 X95.622 Y93.385 E0.06435”, este tipo de código tiene comandos para mover el cabezal por los ejes X,Y,Z, extruir una cantidad de filamento y cambiar la temperatura, los programas que nos permiten hacer esta traducción son Repetier Host, Ultimaker Cura, Slic3r, existen muchas mas aplicaciones que nos permiten el diseño y conversión de nuestras piezas las mas utilizadas son las anteriormente mencionadas. Otra alternativa es descargar el archivo desde internet, existen varias plataformas web en las cuales los usuarios comparten sus diseños en formato STL con el resto de los usuarios,entre las más conocidas están Thingiverse, GitHub, Cults3D, de estas páginas se puede descargar modelos listos, o subir modelos propios para que la comunidad pueda mejorarlos.

Al tener nuestro archivo en código G, procedemos a elegir el material para la impresión, los más comunes y fáciles de conseguir con algunas de sus características son: PLA (facilidad de impresión, estable, no necesita cama caliente, velocidad de impresión rápida, material ecológico y reciclable, poca resistencia térmica, material frágil, sensible a la humedad), ABS (estable a altas temperaturas, conserva su tenacidad a temperaturas extremas, alta capacidad de mecanizado, resistente a ataques químicos, resistente a los impactos, dificultad media de impresión, contracción entre capas mas rápida que el PLA) PET (alta transparencia, alta resistencia a desgaste, resistencia química, resistencia a impactos, impermeable, baja absorción de humedad, levemente tóxico, no se vuelve endeble a partir de los 70ºC). 

Impresión propia

Procedemos a la impresión 3D, podemos encontrar varios sitios en los cuales la impresión se realiza en base a la cantidad de filamento que requiere o el tiempo necesario para la impresión de la pieza, o podemos adquirir nuestra propia impresora contemplando el rango de precios y la calidad de producto final, entre las más utilizadas para el uso personal están la Ender 3 pro, Artillery Sidewinder y Prusa i3.

Con esto llegamos al final, al tener la pieza impresa, si todo el proceso ha sido realizado de manera adecuada, la pieza está lista para ser utilizada.