Controladores Lógicos Programables basados en Arduino y ...

21

Transcript of Controladores Lógicos Programables basados en Arduino y ...

Page 1: Controladores Lógicos Programables basados en Arduino y ...
Page 2: Controladores Lógicos Programables basados en Arduino y ...

Controladores Lógicos Programables basados en Arduino y Raspberry Pi

Arduino and Raspberry Pi-based Programmable Logic Controllers

Lynnette González Rodríguez1, Ystria Rivero Ripoll2

1 Instituto de Cibernética, Matemática y Física, Cuba, [email protected] 2 Empresa Eléctrica de la Isla de la Juventud, Cuba, [email protected]

RESUMEN: La automatización industrial ha estado históricamente dominada por los controladores lógicos programables desde su creación en 1969. No obstante, la tendencia actual de emigrar hacia la Internet de las Cosas ha provocado que surjan nuevos paradigmas como la Industria 4.0, en la que sus componentes se interconectan a través de internet, pudiendo aprovechar todos los beneficios que ello aporta. PLCs basados en placas como Arduino y Raspberry Pi, tan empleadas en proyectos IoT, constituyen un avance hacia dicho paradigma, además de soluciones menos costosas y más flexibles en cuanto a comunicación, programación y electrónica.

Palabras clave: Arduino, Controlador, PLC, Raspberry Pi, Redes Inteligentes de Energía.

ABSTRACT: Industrial automation has been historically dominated by programmable logic controllers since their creation in 1969. However, the current trend of migrating towards the Internet of Things has triggered the emergence of new paradigms such as Industry 4.0, wherein its components are interconnected through Internet, thus taking advantage of all the benefits it brings. PLCs based on boards such as Arduino and Raspberry Pi, which are widely used in IoT projects, constitute a progress towards said paradigm, as well as less costly and more flexible solutions, with regard to communication, programming and electronics.

Keywords: Arduino, Controller, PLC, Raspberry Pi, Smart Grid.

AMS 68W40

Introducción

Las redes eléctricas se emplean para llevar la electricidad desde las centrales generadoras hasta los usuarios y consumidores, soportando operaciones como la generación, transmisión, distribución y control de la electricidad. Las redes inteligentes de energía (RIE) representan una mejora con respecto a las redes eléctricas tradicionales, pues conforman una red energética avanzada, distribuida y automatizada. Formalmente, pueden ser definidas como sistemas eléctricos que integran tecnologías de comunicación seguras y bilaterales e inteligencia computacional para la generación, transmisión, distribución y consumo de electricidad con el fin de lograr un sistema limpio, seguro, confiable, resistente, eficiente y sostenible [1].

Reporte de Investigación del ICIMAF No. 922 (2020) ISSN 0138-8916 Original paper

1

Nilda
Stamp
Page 3: Controladores Lógicos Programables basados en Arduino y ...

En las redes eléctricas tradicionales, el flujo de electricidad es unidireccional y va de los generadores a los consumidores. En las RIE el flujo es bidireccional, de modo que los usuarios pueden generar electricidad, mediante paneles solares o pequeños aerogeneradores, y entregarla a la red. La inteligencia de las RIE reside en la capacidad de sensar las condiciones del sistema energético, interactuar con los productores y los consumidores, así como reaccionar ante condiciones inesperadas [2].

El modelo conceptual del Instituto Nacional de Estándares y Tecnología (NIST, por sus siglas en inglés) [3] es el más aceptado, e incluye siete áreas funcionales o dominios, como se muestra en la Figura 1. Cada dominio contiene un conjunto de actores y aplicaciones que toman acciones sobre la energía y los datos, además de posibilitar el intercambio de energía e información entre dominios mediante interfaces llamadas pasarelas o puertas de acceso a dominios.

Figura 1. Modelo conceptual de RIE del NIST [3].

El dominio de generación contiene todos los actores y aplicaciones relacionados con la generación de gran cantidad de energía para satisfacer la demanda predicha. Su importancia radica en el respaldo de la estabilidad y la seguridad de todo el sistema energético.

El dominio de transmisión permite transmitir la energía eléctrica de manera eficiente desde los generadores hacia los sistemas de distribución. Sus componentes principales son los cables de alta tensión, subestaciones, sensores y sistemas de protección. Actualmente hay una tendencia hacia el desarrollo de tecnologías que mejoren la eficiencia y fiabilidad de la transmisión eléctrica.

Reporte de Investigación del ICIMAF No. 922 (2020) ISSN 0138-8916 Original paper

2

Page 4: Controladores Lógicos Programables basados en Arduino y ...

En el dominio de mercado se establecen los precios del intercambio de energía eléctrica. Este está conectado a todos los dominios restantes, recibiendo información sobre el estado y restricciones del sistema de los operadores y proveedores de servicios, y despachando la energía generada para satisfacer la demanda.

El dominio de operación contiene los actores y aplicaciones requeridos para la operación confiable, segura y eficiente de los sistemas energéticos. Sus tareas principales son la planificación, el monitoreo, la protección, mantenimiento y control de dichos sistemas. La inclusión de fuentes renovables de energía de manera distribuida en la red requiere que se tenga especial cuidado con la estabilidad y el equilibrio del sistema.

El dominio de distribución es el intermediario entre los dominios de transmisión y de consumidor o cliente. Se trata del área donde ocurría la mayor cantidad de perturbaciones e interrupciones en el suministro eléctrico debido a la falta de monitoreo y control hasta hace algunos años [2]. Las RIE mejoran enormemente este domino mediante la implementación de sistemas inteligentes y conexiones de comunicaciones bilaterales.

El dominio de proveedor de servicios brinda servicios innovadores a productores, distribuidores y consumidores, que incluyen el monitoreo y control de la demanda y la eficiencia energética y la agregación de nuevos usuarios y productores. Estos servicios deben cumplir con requerimientos estrictos de ciberseguridad, fiabilidad, estabilidad, integridad y seguridad de la red eléctrica.

El dominio de consumidor o cliente se divide en tres subdominios: industrial, residencial y comercial. Con la introducción de fuentes de energía distribuidas, el usuario puede a la vez consumir y generar electricidad. Han ganado popularidad dos enfoques innovadores de este dominio: vehículo a red (del inglés vehicle to grid) y nodo de energía (del inglés energy hub) [2]. El primero consiste en la utilización de vehículos eléctricos para suavizar picos de corriente, como reserva, y para la regulación de frecuencia y tensión eléctrica; lo cual es posible mientras la batería del vehículo se carga o descarga. Los nodos de energía permiten convertir, condicionar y almacenar diferentes tipos de energía, como pueden ser energía eléctrica y gas natural. Su principal ventaja es una mayor flexibilidad y fiabilidad del suministro.

En la implementación de algunas de las funcionalidades y operaciones de las RIE se emplean controladores lógicos programables.

Controlador Lógico Programable

Un controlador lógico programable (PLC, por sus siglas en inglés), también denominado autómata programable, es un tipo de controlador basado en microprocesador que utiliza memoria programable para almacenar instrucciones e implementar funciones aritméticas, lógicas, de conteo, temporización, entre otras, con el fin de controlar máquinas y procesos. Son robustos, soportan vibraciones, ruido, amplios rangos de temperatura y humedad. Su lenguaje de programación es de fácil entendimiento y se basa principalmente en operaciones lógicas y de conmutación [4].

Sus componentes funcionales básicos se muestran en la Figura 2.

Reporte de Investigación del ICIMAF No. 922 (2020) ISSN 0138-8916 Original paper

3

Page 5: Controladores Lógicos Programables basados en Arduino y ...

Figura 2. Diagrama funcional de un PLC [4].

En la Figura 2:

• El procesador, o unidad central de procesamiento (CPU, por sus siglas en inglés) contiene el microprocesador, el cual interpreta las señales de entrada y lleva a cabo acciones de control de acuerdo con el programa que tenga almacenado en memoria.

• La unidad de suministro eléctrico convierte las tensiones de corriente alterna a los niveles de corriente directa soportados por los circuitos internos del PLC para que puedan funcionar adecuadamente.

• El dispositivo programador se utiliza para introducir el programa deseado en la memoria del PLC.

• La unidad de memoria almacena el programa. • Las secciones de entrada y salida permiten recibir y comunicar información desde y hacia

dispositivos externos, respectivamente. Soportan señales discretas, digitales o analógicas. • La interfaz de comunicación se emplea para recibir y transmitir datos en redes de

comunicación donde puede haber conectados otros PLC, computadoras, etc.

Hay dos tipos de PLC: los compactos y los modulares. Los primeros son generalmente pequeños y contienen todas las unidades en un diseño compacto. Estos pueden tener 6, 8, 12 o 24 entradas; 4, 8 o 16 salidas; y una memoria que es capaz de almacenar entre 300 y 1000 instrucciones. Para agregar más entradas/salidas a este tipo de PLC se necesita conectar unidades de expansión de manera externa.

Los PLC modulares presentan módulos separados para cada unidad que los compone, los cuales generalmente están montados en rieles dentro de un gabinete metálico. De esta forma, el usuario agrega los módulos que necesite para su aplicación específica.

Los programadores son una variante para realizar la programación de un PLC. No obstante, esto también se puede realizar desde computadoras en muchos casos. Algunos fabricantes han creado softwares para que el usuario pueda programar sus PLC en una computadora, como el SIMATIC STEP 7 de Siemens o el SoMachine de Schneider Electric.

Reporte de Investigación del ICIMAF No. 922 (2020) ISSN 0138-8916 Original paper

4

Page 6: Controladores Lógicos Programables basados en Arduino y ...

Los principales lenguajes de programación de PLC están recogidos en el estándar IEC 61131-3 [5]. Estos son: diagramas de escalera, también llamado simplemente ladder (LAD); lista de instrucciones (IL); gráficas de funciones secuenciales (SFC); texto estructurado (ST); y diagramas de bloques funcionales (FBD).

Para la comunicación, los PLCs implementan buses de campo, estandarizados en IEC 61158 y que no son más que protocolos de comunicación desarrollados para el control distribuido. Generalmente son empleados entre los PLC y los sensores y actuadores. Algunos de los más utilizados son CAN, DeviceNet, Modbus, Profibus y Fieldbus Foundation [6]. Tecnologías como Ethernet son empleadas en la automatización a niveles superiores, para la comunicación entre PLCs o con computadoras que implementan sistemas de adquisición de datos, control y supervisión (SCADA, por sus siglas en inglés). Esta variante es conocida como Ethernet Industrial y en ella se basan numerosos protocolos de comunicación como Profinet [6].

El incremento en el desarrollo y la adopción de la Internet de las Cosas (IoT, por sus siglas en inglés) ha provocado que se expanda hacia numerosos sectores que incluyen la salud, la domótica y la industria, entre otros. IoT se diferencia de la internet tradicional en que implementa comunicación entre máquinas o machine-to-machine (M2M). El término Industria 4.0 se refiere a una cuarta revolución industrial que posibilita alcanzar mayor flexibilidad y adaptabilidad de los sistemas de producción en las fábricas mediante la incorporación de IoT [7]. En la Figura 3 se muestran las revoluciones industriales que han ocurrido hasta la fecha.

Figura 3. Revoluciones industriales [8].

En la Industria 4.0, en ocasiones también llamada IoT Industrial (IIoT, por sus siglas en inglés), se interconectan sensores, actuadores, máquinas, módulos de producción, productos,

Reporte de Investigación del ICIMAF No. 922 (2020) ISSN 0138-8916 Original paper

5

Page 7: Controladores Lógicos Programables basados en Arduino y ...

controladores, instrumentos, robots y otros dispositivos, conformando un sistema ciberfísico (CPS, por sus siglas en inglés) en el que todos los componentes intercambian información, desencadenan acciones y se controlan unos a otros aprovechando la capacidad computacional que poseen, así como el almacenamiento y procesamiento en la nube que ofrece IoT [7, 9].

Según las recomendaciones para la Industria 4.0 [10], los requerimientos para los controladores son los siguientes:

• Autonomía, reconfigurabilidad y agilidad (Plug&Work); • Cumplir con el estricto encapsulamiento de la información de los controladores; • Introducción del paradigma de servicios en la automatización de la producción (servicios

de producción); • Conexión en redes locales y globales; • Interoperabilidad entre sistemas de control heterogéneos; • Cambio dinámico de dependencias en tiempo de ejecución; • Uso de modelos para el desarrollo de estrategias de control de mayor calidad; • Orquestación de controladores heterogéneos.

Los PLCs tradicionales no cumplen con estas exigencias, es por ello que en [11] se propone un modelo de PLC para la Industria 4.0, el cual se muestra en la Figura 4. La puerta de acceso del dispositivo (device gateway) se encarga de enviar los datos procesados por el controlador a la web de una manera rápida, confiable y segura. La interfaz de servicios (service shell) se encuentra en la web y debe ser capaz de establecer conexiones con servicios web, la nube y demás objetos de la IIoT. Esta contiene un conjunto de datos que recoge información de manejo y parametrización de requisitos y puede ser empleado no solo por PLCs, sino por todos los dispositivos si se envía a una base de datos externa. El dispositivo virtual (virtual device) es un administrador de recursos que organiza el intercambio de datos y el manejo interno de la información. Para la comunicación entre el dispositivo virtual y la puerta de acceso se pueden emplear los protocolos HTTP y websocket (WS), siendo este último el más rápido para la transmisión bidireccional de datos.

Figura 4. Modelo de PLC como un componente de la Industria 4.0 [11].

Reporte de Investigación del ICIMAF No. 922 (2020) ISSN 0138-8916 Original paper

6

Page 8: Controladores Lógicos Programables basados en Arduino y ...

Uso de PLCs en redes eléctricas

Los PLCs son muy empleados en las redes de energía para controlar múltiples variables eléctricas y sistemas de energía críticos. En [12], por ejemplo, se presenta un sistema fotovoltaico controlado mediante un PLC. Un diagrama de dicho sistema puede apreciarse en la Figura 5. Los conjuntos de células fotovoltaicas (PV Array) emplean MPPT (maximum power point tracking) para cargar inteligentemente una batería, la cual es una fuente de alimentación sustituta y puede ofrecer corriente alterna a las cargas mediante el inversor independiente. Si la batería se satura, la electricidad excedente producida por el sistema fotovoltaico se incorpora a la red eléctrica a través del inversor en cascada. Si las cargas necesitan más energía de la que ofrece el sistema, entonces puede alimentarse de la red. En este trabajo se emplea un PLC Simatic S7-200 de Siemens, el cual logra el control y monitoreo en tiempo real detectando los voltajes del panel solar y la batería, la corriente del circuito de carga, temperatura y otros parámetros ambientales.

Figura 5. Diagrama de la estructura de un sistema fotovoltaico conectado a la red eléctrica [12].

Uno de los principales problemas en las redes eléctricas es el balance entre la oferta y la demanda de electricidad, pues de no existir, se afectaría la frecuencia. Las fuentes de energía renovable, por ejemplo, tienen un comportamiento marcadamente variable y hasta estocástico y, para que cumplan con la demanda de la red eléctrica se debe implementar un sistema de almacenamiento de energía apropiado. En [13] se desarrolla un sistema de supervisión SCADA que monitorea y controla la producción y el consumo de energía de manera optimizada. Este sistema consiste en una red de PLCs que controlan de forma local la producción de electricidad en cada fuente, y miden en tiempo real el consumo y producción de energía. Cada sistema de almacenamiento de energía tiene un PLC que controla la energía de ingreso y salida del sistema. La Figura 6 (izquierda) representa un sistema que integra varios generadores, incluyendo un aerogenerador, un sistema fotovoltaico, un generador de biomasa y un generador de petróleo. Para el control de todas sus señales se empleó una estrategia de control en cascada, donde el lazo interno se realiza en cada planta por su PLC correspondiente y el lazo externo es llevado a cabo por el SCADA. Los PLCs de las plantas se comunican con un PLC maestro mediante Profibus y este a su vez se comunica con la computadora donde se encuentra el SCADA mediante el protocolo MSI (Multi-Point Interface) de Siemens o RS-232, como se muestra en la Figura 6 (derecha).

Reporte de Investigación del ICIMAF No. 922 (2020) ISSN 0138-8916 Original paper

7

Page 9: Controladores Lógicos Programables basados en Arduino y ...

Figura 6. Izquierda: esquema eléctrico de múltiples generadores de energía; derecha: arquitectura del sistema de control propuesto en [13].

Otra investigación, [14], desarrolla un Sistema de manejo de energía con la integración de medidores inteligentes en un contexto de RIE. Dos tipos de medidores son empleados: para consumidor y para distribuidor. El primero mide el consumo eléctrico de un usuario y utiliza comunicación mediante ZigBee, mientras que el segundo mide el consumo de todos los clientes del distribuidor y emplea ModBus como protocolo de comunicación. Los medidores están conectados a un sistema SCADA que además supervisa la red de PLCs. Se emplea la misma estrategia de control en cascada del trabajo anterior ([13]). A partir del consumo detectado, el sistema toma decisiones y ejecuta acciones a través de los PLCs para optimizar el consumo energético. La Figura 7 presenta la arquitectura de este sistema.

Figura 7. Diagrama de la arquitectura del sistema de manejo de energía de consumidores [14].

Reporte de Investigación del ICIMAF No. 922 (2020) ISSN 0138-8916 Original paper

8

Page 10: Controladores Lógicos Programables basados en Arduino y ...

En [15] se diseña un sistema SCADA para microrredes inteligentes, cuya estructura puede apreciarse en la Figura 8. Este cuenta con paneles fotovoltaicos, un aerogenerador, biodigestor y una estación meteorológica. Cada uno de estos elementos tiene un PLC que controla las señales y variables que se especifican en la Figura 8 para cada caso.

Figura 8. Microrred inteligente [15].

PLCs basados en Arduino y Raspberry Pi

Con el constante desarrollo de las tecnologías de la información y las comunicaciones, y la creciente tendencia a controlar operaciones y procesos cada vez más cercanos a la vida cotidiana de las personas, la automatización se ha expandido a múltiples sectores. En muchos de ellos no existen condiciones tan extremas u hostiles como en la industria o las aplicaciones que se desarrollan tienen menor escala. En estos casos, la utilización de un PLC industrial convencional resulta una solución muy costosa y poco viable. Una tendencia que desde hace algunos años ha ganado popularidad es el desarrollo de dispositivos para el control (PLCs y HMIs) de bajo costo basados en Arduino y Raspberry Pi.

El desarrollo de placas basadas en microcontroladores como es el caso de Arduino ha facilitado el aprendizaje de programación y electrónica, así como el desarrollo de todo tipo de proyectos de automatización por profesionales y aficionados. Esta compañía brinda tanto software como hardware de código abierto para sus placas, las cuales se han convertido en controladores universalmente aceptados. En el caso de Raspberry Pi, se trata de las llamadas “computadoras de una sola placa”, por lo que son dispositivos más avanzados que los que ofrece Arduino, aunque ambos son alternativas de bajo costo.

El modelo de Arduino más utilizado y popular es el UNO (Figura 9 (izquierda)), pues sus recursos son suficientes para desarrollar muchas aplicaciones sencillas, experimentar y aprender. Aunque solo cuenta con un puerto USB mediante el cual el programa se puede comunicar con una computadora a través del puerto serie, existe una gran cantidad de módulos y los llamados shields que pueden acoplarse a la placa para añadirle más funcionalidades como conexión inalámbrica o

Reporte de Investigación del ICIMAF No. 922 (2020) ISSN 0138-8916 Original paper

9

Page 11: Controladores Lógicos Programables basados en Arduino y ...

Ethernet (Figura 9 (derecha)). La Tabla 1 presenta una comparación de las variantes de Arduino existentes actualmente.

Figura 9. Izquierda: Arduino UNO; derecha: Arduino UNO con shield Ethernet [16].

Tabla 1. Características de los modelos de Arduino [16].

Nombre CPU Voltaje de operación/

entrada

E/S analógicas

E/S digitales/ PWM1

EEPROM/ SRAM/

Flash [kB]

Comunicación

101 Intel® Curie (32 MHz)

3.3 V / 7–12 V

6/0 14/4 0 / 24 / 196 USB

Gemma ATiny85 (8 MHz)

3.3 V / 4–16 V

1/0 3/2 0.5 / 0.5 / 8 microUSB

LilyPad ATmega168V ATmega328P (8 MHz)

2.7–5.5 V 2.7–5.5 V

6/0 14/6 0.512 / 1 / 16

LilyPad SimpleSnap

ATmega328P (8 MHz)

2.7–5.5 V 2.7–5.5 V

4/0 9/4 1 / 2 / 32

LilyPad USB

ATmega32U4 (8 MHz)

3.3 V / 3.8–5.5 V

4/0 9/4 1 / 2.5 / 32 microUSB

Mega 2560 ATmega2560 (16 MHz)

5 V / 7–12 V

16/0 54/15 4 / 8 / 256 USB, 4 UART

Micro ATmega32U4 (16 MHz)

5 V / 7–12 V

12/0 20/7 1 / 2.5 / 32 microUSB, UART

MKR1000 SAMD21 Cortex-M0+ (48 MHz)

3.3 V / 5 V 7/1 8/4 0 / 32 / 256 microUSB, UART

Pro ATmega168 (8 MHz) ATmega328P (16 MHz)

3.3 V / 3.35–12 V 5 V / 5–12 V

6/0 14/6 0.512 / 1 / 16 1 / 2 / 32

UART

Pro Mini ATmega168 (8 MHz) ATmega328P (16 MHz)

3.3 V / 3.35–12 V 5 V / 5–12 V

6/0 14/6 1 / 2 / 32 UART

1 Modulación por ancho de pulso (del inglés Pulse Width Modulation)

Reporte de Investigación del ICIMAF No. 922 (2020) ISSN 0138-8916 Original paper

10

Page 12: Controladores Lógicos Programables basados en Arduino y ...

Uno ATmega328P (16 MHz)

5 V / 7–12 V

6/0 14/6 1 / 2 / 32 USB, UART

Zero ATSAMD21G18 (48 MHz)

3.3 V / 7–12 V

6/1 14/10 0 / 32 / 256 2 microUSB, 2 UART

Due ATSAM3X8E (84 MHz)

3.3 V / 7–12 V

12/2 54/12 0 / 96 / 512 2 microUSB, 4 UART

Esplora ATmega32U4 (16 MHz)

5 V / 7–12 V

- - 1 / 2.5 / 32 microUSB

Ethernet ATmega328P (16 MHz)

5 V / 7–12 V

6/0 14/4 1 / 2 / 32 USB, Ethernet

Leonardo ATmega32U4 (16 MHz)

5 V / 7–12 V

12/0 20/7 1 / 2.5 / 32 microUSB, UART

Mega ADK ATmega2560 (16 MHz)

5 V / 7–12 V

16/0 54/15 4 / 8 / 256 USB, 4 UART

Mini ATmega328P (16 MHz)

5 V / 7–9 V

8/0 14/6 1 / 2 / 32

Nano ATmega168 ATmega328P (16 MHz)

5 V / 7–9 V

8/0 14/6 0.512 / 1 / 16 1 / 2 / 32

miniUSB, UART

Yùn ATmega32U4 (16 MHz) AR9331 Linux (400 MHz)

5 V 12/0 20/7 1 / 2.5 / 32 0 / 16 MB / 64 MB

microUSB, UART

MKRZero SAMD21 Cortex-M0+ de 32 bits (48 MHz)

3.3 V 7/1 22/12 0 / 32 / 256 USB, UART

No existe un modelo universal de Raspberry Pi, pues cada generación presenta mejoras con respecto a las variantes anteriores y cada usuario adquiere el modelo que más se adecua a sus propósitos. Actualmente, la placa más reciente es la Raspberry Pi 4 Modelo B (Figura 10). La Tabla 2 recoge las características de los modelos de Raspberry Pi desarrollados hasta la fecha.

Figura 10. Raspberry Pi 4 Modelo B [17].

Reporte de Investigación del ICIMAF No. 922 (2020) ISSN 0138-8916 Original paper

11

Page 13: Controladores Lógicos Programables basados en Arduino y ...

Tabla 2. Características de los modelos de Raspberry Pi [17].

Modelo CPU RAM Conexiones alámbricas Conexiones inalámbricas

B ARM1176JZF-S (700 MHz)

512 MB 2x USB 2.0, Ethernet, HDMI, 3.5mm audio, GPIO 26 pines. Alimentación: microUSB o GPIO

-

2 Cortex-A7 (900 MHz)

1 GB 4x USB 2.0 + OTG, Ethernet 10/100M, HDMI, 3.5mm audio, GPIO 40 pines. Alimentación: microUSB o GPIO

-

Zero ARM1176JZF-S (1 GHz)

512 MB microUSB + microUSB OTG, miniHDMI, GPIO 40 pines. Alimentación: microUSB o GPIO

-

3 Cortex-A53 64 bits (1.2 GHz)

1 GB DDR2

4x USB 2.0 + microUSB OTG, Ethernet 10/100M, HDMI, 3.5mm audio, GPIO 40 pines. Alimentación: microUSB o GPIO

WiFi 802.11n, Bluetooth 4.1 LE

A+ ARM1176JZF-S (700 MHz)

256 MB USB, HDMI, 3.5mm audio, GPIO 40 pines. Alimentación: microUSB o GPIO

-

Zero W ARM1176JZF-S (1 GHz)

512 MB microUSB OTG, mini HDMI, GPIO. Alimentación: microUSB o GPIO

WiFi 802.11n, Bluetooth 4.1

Zero WH ARM1176JZF-S (1 GHz)

512 MB microUSB OTG, mini HDMI, GPIO. Alimentación: microUSB o GPIO

WiFi 802.11n, Bluetooth 4.1

3 B+ Cortex-A53 64 bits (1.4 GHz)

1 GB DDR2

4x USB 2.0, Ethernet Gigabit, HDMI, 3.5mm audio, GPIO 40 pines. Alimentación: microUSB o GPIO

WiFi 802.11 b/g/n/ac 2.4 GHz y 5 GHz, Bluetooth 4.2, BLE

3 A+ Cortex-A53 64 bits (1.4 GHz)

512 MB DDR2

USB 2.0, HDMI, 3.5mm audio, GPIO 40 pines. Alimentación: microUSB o GPIO

WiFi 802.11 b/g/n/ac 2.4 GHz y 5 GHz, Bluetooth 4.2, BLE

4B Cortex-A72 (ARMv8) 64 bits (1.5 GHz)

1/2/4 GB 2x USB 3.0 + 2x USB 2.0, Ethernet Gigabit, 2x microHDMI, 3.5mm audio, GPIO 40 pines. Alimentación: USB-C

WiFi 802.11 b/g/n/ac 2.4 GHz y 5 GHz, Bluetooth 5.0

Arduino provee un entorno de desarrollo integrado (IDE, por sus siglas en inglés) para la programación de sus placas con un lenguaje similar a C/C++ que usa reglas especiales de estructura de código. No obstante, las placas admiten cualquier lenguaje de programación y compilador que produzca código de máquina para el microcontrolador en cuestión. Las Raspberry Pi requieren un sistema operativo, entre los que se encuentran Raspbian, RISC OS y Windows 10 IoT Core. Pueden instalarse numerosas herramientas de desarrollo de software en varios lenguajes que incluyen Python, C/C++, Java y hasta Arduino.

Reporte de Investigación del ICIMAF No. 922 (2020) ISSN 0138-8916 Original paper

12

Page 14: Controladores Lógicos Programables basados en Arduino y ...

PLCs comerciales basados en Arduino y Raspberry Pi

Una de las empresas con mayor variedad de PLCs basados en Arduino es Controllino [18]. Tiene tres tipos principales de menor a mayor complejidad: MINI, MAXI y MEGA, respectivamente (Figura 11). Tanto el MAXI como el MEGA están basados en la placa Arduino Mega, mientras que el MINI está basado en Arduino UNO. Estos ofrecen hasta 61 canales de entrada/salida que soportan un rango entre 5 V y 230 V y hasta 16 A. Pueden ser programados mediante el IDE de Arduino u otros entornos de desarrollo compatibles. En la Tabla 3 se recogen algunas de las características más importantes de estos tres modelos, aunque vale destacar que existen diez en total. Los restantes implementan modificaciones a los tres modelos principales para agregar más funcionalidades. Sus precios se ubican entre €119.00 y €279.00.

Figura 11. De izquierda a derecha: Controllino MINI, MAXI y MEGA [18].

Tabla 4. Características de los modelos principales de PLCs Controllino [18].

Modelo Microcontrolador Entradas Analógicas/Digitales

Salidas Analógicas/Digitales

Interfaces de comunicación

MINI ATmega328P 6 8 (3 PWM) Serie TTL, I2C, SPI MAXI ATmega2560 10 12 (todas PWM) Serie TTL, I2C, SPI,

RS-485, Ethernet MEGA ATmega2560 16 24 (15 PWM) Serie TTL, I2C, SPI,

RS-485, Ethernet

La compañía Industrial Shields desarrolla varios modelos de PLC basados en Arduino y un dispositivo de interfaz humano-máquina (HMI, por sus siglas en inglés) al que llaman Panel PC basado en la Raspberry Pi 4 Modelo B [19]. El Panel PC (Figura 12) está disponible con pantallas táctiles de 7 y 10.1 pulgadas, ambas con resolución de 1280x720, formato 16:9 y 170° de ángulo de visión. Puede tener como sistema operativo Raspbian, Ubuntu o Windows IoT y presenta conexiones tales como USB, Ethernet Gigabit, Bluetooth 5.0 y WiFi 802.11ac que le permiten comunicarse con dispositivos y controlar de manera remota múltiples parámetros. Tolera temperaturas entre 0ºC y 40ºC y humedad entre 10% y 90%. Presenta además varios puertos GPIO que soportan voltajes entre 3.3 V y 24 V. Por lo anterior, puede asegurarse que es suficientemente resistente y tiene sobrada capacidad de procesamiento para sustituir a un PLC en aplicaciones de

Reporte de Investigación del ICIMAF No. 922 (2020) ISSN 0138-8916 Original paper

13

Page 15: Controladores Lógicos Programables basados en Arduino y ...

automatización simples. Los precios se encuentran entre €399.95 y €488.78, lo cual resulta bastante módico al compararlo con los PLCs convencionales teniendo en cuenta todas las funcionalidades que brinda el Panel PC.

Figura 12. Panel PC de 10.1 pulgadas de Industrial Shields [19].

Los PLCs de Industrial Shields se agrupan en tres categorías principales: 20 I/O como máximo, Ethernet y GPRS/WiFi. La primera categoría solo presenta protocolos de comunicación tradicionales: RS-485, RS-232, I2C y Modbus, mientras que la segunda incluye además Ethernet y la tercera agrega WiFi o conectividad celular GPRS/GSM. Todos pueden expandirse hasta con 127 módulos mediante I2C, lo que significa que el controlador puede manejar hasta 7100 entradas/salidas en modo maestro-esclavo. Al igual que los PLCs de Controllino, estos pueden programarse empleando el IDE de Arduino. Los precios varían entre €141.75 y €514.29. Los modelos principales se presentan en la Figura 13.

Figura 13. De izquierda a derecha: PLC ARDBOX 20 I/Os, M-DUINO PLC Ethernet 21 I/Os, GPRS/SIM PLC [19].

PLDuino (Figura 14) es el PLC de código abierto basado en Arduino de Digital Loggers [20]. Utiliza un microcontrolador ATmega2560, el cual también está presente en el Arduino Mega, acoplado a un circuito ESP8266 para lograr conectividad WiFi, y contiene una pantalla táctil a

Reporte de Investigación del ICIMAF No. 922 (2020) ISSN 0138-8916 Original paper

14

Page 16: Controladores Lógicos Programables basados en Arduino y ...

color de 2.4 pulgadas y una bocina. Estas dos últimas características resultan muy útiles al dotar al PLC de una interfaz HMI. Además, cuenta son: ocho salidas digitales protegidas de 500 mA de colector abierto, ocho entradas digitales protegidas y aisladas que soportan entre 3 V y 24 V AC/DC, ocho entradas protegidas de conversión análogo-digital con 10 bits de resolución, protocolo de comunicación RS-232 y ranura de tarjeta micro SD para almacenamiento adicional. Tiene total compatibilidad con Arduino y, por tanto, puede ser programado con el IDE oficial, aunque también soporta Lua, GNU GCC y AVR Studio. En [21] puede encontrarse código demostrativo y varias bibliotecas que ayudan a los principiantes a familiarizarse con el controlador. Su precio es de $194.95, lo cual es razonable para las características que posee, las cuales permiten que este PLC se utilice en aplicaciones de IIoT.

Figura 14. Data Loggers PLDuino [20].

Sfera Labs posee varios dispositivos basados en Arduino y Raspberry Pi para la automatización industrial [22]. En el caso de Arduino, poseen el Iono Arduino y el Iono MKR. El primero es una variante más tradicional de PLC con entradas digitales y entradas/salidas analógicas, comunicación RS-485 y posibilidad de Modbus. Para agregarle más opciones de conectividad, los fabricantes sugieren emplear los modelos Ethernet, Yùn o UNO WiFi de Arduino. El segundo modelo es compatible con todas las placas de la familia MKR, las cuales integran WiFi, Bluetooth, GSM, entre otros protocolos de comunicación.

El Iono Pi, el Iono/Strato Pi Touch Display, el Strato Pi y el Strato Pi CM están basados en Raspberry Pi. Se trata de PLCs muy potentes que aprovechan el poder de cómputo de los modelos más recientes de Raspberry Pi. El Strato Pi Touch Display es un dispositivo HMI con una pantalla táctil de entre 7 y 10 pulgadas, similar al Panel PC de Industrial Shields. Los dispositivos que ofrece Sfera Labs están especialmente dirigidos a aplicaciones de IIoT y se encuentran en el rango de precios de €135.00 a €490.00. La Figura 14 muestra algunos de los modelos de PLC de esta compañía.

Reporte de Investigación del ICIMAF No. 922 (2020) ISSN 0138-8916 Original paper

15

Page 17: Controladores Lógicos Programables basados en Arduino y ...

Figura 14. De izquierda a derecha: Iono Arduino, Strato Pi, Iono/Strato Pi Touch [22].

Trabajos relacionados

Existe un libro que presenta un conjunto de directrices e información relacionada con el diseño, la implementación física y programación de PLCs basados en Arduino [23]. El sistema que desarrolla el autor está confeccionado con ArduiBox, un gabinete para ambientes industriales que es compatible con las placas Arduino UNO, 101 y Zero (Figura 15). La programación se realiza en el IDE de Arduino empleando la biblioteca plcLib disponible en [24], la cual implementa funciones para emular la programación ladder de PLCs mediante C/C++. La comunicación se implementa con RS-485, Modbus y NearBus. Este último es un conector a la nube que incluye una biblioteca y un grupo de servicios web en forma de interfaz de programación de aplicaciones (API) para lograr que la memoria del Arduino se sincronice con datos que se encuentran en la nube. Por último, se indica cómo mejorar el diseño a través del empleo de módulos relé de 5 V.

Figura 15. PLC con ArduiBox [23].

En [25] se presenta una Raspberry Pi como sustituta de un PLC para la automatización de una planta de tratamiento de agua. A pesar de que no se implementa un PLC con dicha placa, sí se demuestra que es capaz de realizar el control de las variables que intervienen en el proceso de manera eficaz, aunque no en la industria, sino en una implementación que simula el

Reporte de Investigación del ICIMAF No. 922 (2020) ISSN 0138-8916 Original paper

16

Page 18: Controladores Lógicos Programables basados en Arduino y ...

funcionamiento de la planta, como se muestra en la Figura 16. Los autores proponen el uso de IoT para el almacenamiento y procesamiento en la nube.

Figura 16. Implementación física del sistema de control y resultado en una GUI2.

De manera similar, en [26] se diseña e implementa un sistema para el control de una subestación eléctrica de 11 kV empleando una Raspberry Pi como un PLC software, también llamado Soft PLC, así como tecnologías IoT. En las subestaciones eléctricas se recibe la energía de alta tensión de las plantas generadoras y se debe convertir a valores apropiados para la distribución. En el caso de pequeñas subestaciones en áreas remotas, la implementación de sistemas de automatización con PLCs y SCADAs es una opción muy costosa en relación con la productividad de la estación. La solución propuesta es desarrollada con el lenguaje de modelación unificado CODESYS (Controller Development System, en español sistema de desarrollo de controladores), el cual es una herramienta que permite la programación en ladder, configuración y visualización.

Otro trabajo que utiliza CODESYS con Raspberry Pi es [27]. En este caso, se realizan diversas pruebas para determinar si es viable implementar PLCs con Raspberry Pi analizando factores tales como la operación en tiempo real. Los autores concluyen que este dispositivo puede usarse en ambientes industriales solo para tareas que no sean críticas en el tiempo como el monitoreo de sistemas para detectar operaciones indebidas. En [28] se emplea Raspberry Pi como un Soft PLC para controlar máquinas periféricas a un sistema de control numérico por computadora (CNC).

En [29] se presenta un PLC con conexión Ethernet basado en Arduino, el cual puede ser programado mediante ladder. Los autores desarrollaron un software llamado HT-PLC en Visual Studio con C# que permite crear y cargar programas hechos en ladder al Arduino a través del puerto serie. El PLC que crearon, al que llamaron HT-PLC-001, incluye un Arduino UNO y uno Nano, módulos relé de 5 V, un circuito puente H usado como regulador de voltaje, conectores DIN y una pantalla LCD. Se presenta, además, una tabla comparativa entre el PLC desarrollado y modelos comerciales similares, la cual se reproduce en la Tabla 5. Puede apreciarse que tanto este como los PLCs presentados en la sección anterior son alternativas de muy bajo costo con respecto a los modelos de los principales fabricantes.

2 Interfaz gráfica de usuario (del inglés Graphical User Interface)

Reporte de Investigación del ICIMAF No. 922 (2020) ISSN 0138-8916 Original paper

17

Page 19: Controladores Lógicos Programables basados en Arduino y ...

Tabla 5. Comparación de modelos de PLCs [29].

Característica HT-PLC-001 Allen Bradley Micro810

Siemens LOGO! 0BA7

Entradas 8 12 8 Salidas 8 8 4

Herramientas básicas 5 8 - Herramientas

especiales 2 30 -

Costo del hardware $450 $2700 $4700 Conexión a Ethernet Si No Si

Conclusiones

Las redes inteligentes de energía emplean la computación y las comunicaciones para mejorar las redes eléctricas tradicionales. En tales sistemas, el monitoreo y el control son imprescindibles y, por tanto, no es inusual que se empleen controladores lógicos programables, como se constató en la búsqueda bibliográfica sobre esta temática. Los PLCs industriales son máquinas robustas que soportan ambientes hostiles, pero tienen precios muy elevados. Para aplicaciones de menor calibre o donde tales requisitos de robustez no son necesarios, los PLCs tradicionales son una alternativa demasiado costosa. Controladores de este tipo desarrollados con placas tales como Arduino y Raspberry Pi pueden llegar a tener las mismas o mejores características que los PLCs comerciales y ser mucho menos costosos. En este trabajo se ha realizado un estudio sobre los PLCs basados en dichas placas que existen en la actualidad, tanto comerciales como del ámbito de la investigación. El resultado es una gran variedad de controladores y trabajos sobre su diseño e implementación que posibilitan al usuario escoger el más conveniente, y lo equipa con las herramientas para desarrollar uno que se adecue a su aplicación.

Referencias

[1] Gharavi, H., & Ghafurian, R. (2011). Smart Grid: The electric energy system of the future. Proceedings of the IEEE, 99(6), 917-921.

[2] Vaccaro, A., Pepiciello, A., & Zobaa, A. F. (2020). Introductory Chapter: Open Problems and Enabling Methodologies for Smart Grids. En Research Trends and Challenges in Smart Grids. IntechOpen.

[3] Greer, C., Wollman, D. A., Prochaska, D. E., Boynton, P. A., Mazer, J. A., Nguyen, C. T., Fitzpatrick, G. J., Nelson, T. L., Koepke, G. H., Hefner, A. R., Pillitteri, V. Y., Brewer, T. L., Golmie, N. T., Su, D. H., Eustis, A. C., Holmberg, D. G., & Bushby, S. T. (2014). NIST framework and roadmap for smart grid interoperability standards, release 3.0. Special Publication (NIST SP) – 1108r3.

[4] Bolton, W. (2015). Programmable Logic Controllers. Newnes.

Reporte de Investigación del ICIMAF No. 922 (2020) ISSN 0138-8916 Original paper

18

Page 20: Controladores Lógicos Programables basados en Arduino y ...

[5] Tiegelkamp, M., & John, K. H. (1995). IEC 61131-3: Programming industrial automation systems. Springer-Verlage BH.

[6] Mackay, S., Wright, E., Reyndersy, D., & Park, J. (2004). Practical Industrial Data Networks: Design, Installation and Troubleshooting. Newnes.

[7] Weyer, S., Schmitt, M., Ohmer, M., & Gorecky, D. (2015). Towards Industry 4.0 – Standardization as the crucial challenge for highly modular, multi-vendor production systems. IFAC-PapersOnLine, 48(3), 579-584.

[8] + Teletrabajo. (2017, 1 febrero). ¿Cómo capacitarnos para la 4ª Revolución Industrial? Disponible en línea: https://www.masteletrabajo.org/capacitarnos-la-4a-revolucion-industrial/

[9] Mondal, D. (2019). The internet of thing (IOT) and industrial automation: a future perspective. World Journal of Modelling and Simulation, 15(2), 140-149.

[10] Kagermann, H., Helbig, J., Hellinger, A., & Wahlster, W. (2013). Recommendations for implementing the strategic initiative INDUSTRIE 4.0: Securing the future of German manufacturing industry; final report of the Industrie 4.0 Working Group. Forschungsunion.

[11] Langmann, R., & Rojas-Peña, L. F. (2016). A PLC as an Industry 4.0 component. En 2016 13th International Conference on Remote Engineering and Virtual Instrumentation (REV), 10-15.

[12] Zhou, D., Jiang, Z., Li, Y., & Fan, Q. (2008). A Small Grid-Connected PV System Controlled by the PLC. En Proceedings of ISES World Congress 2007 (Vol. I–Vol. V) (pp. 1528-1532). Springer, Berlin, Heidelberg.

[13] Figueiredo, J. M. (2010). PLC based structure for management and control of distributed energy production units. En Programmable Logic Controller. IntechOpen.

[14] Pereira, R., Figueiredo, J., Melicio, R., Mendes, V. M. F., Martins, J., & Quadrado, J. C. (2015). Consumer energy management system with integration of smart meters. Energy Reports, 1, 22-29.

[15] Cortés Rodríguez, H. D. (2015). Diseño conceptual de un sistema SCADA para micro redes inteligentes (Tesis de pregrado). UPB, Colombia.

[16] Arduino. (2020). Compare board specs. Disponible en línea https://www.arduino.cc/en/products.compare

[17] SocialCompare. (2020, 29 abril). RaspberryPI models comparison. Disponible en línea: https://socialcompare.com/en/comparison/raspberrypi-models-comparison

[18] Controllino. (2020). Controllino – 100% Arduino compatible PLC. Disponible en línea: https://www.controllino.biz/

[19] Industrial Shields. (2020). PLC Arduino. Open Source PLC. Democratization of technology. Disponible en línea: https://www.industrialshields.com/

Reporte de Investigación del ICIMAF No. 922 (2020) ISSN 0138-8916 Original paper

19

Page 21: Controladores Lógicos Programables basados en Arduino y ...

[20] Adafruit. (2020). Digital Loggers PLDuino – Atmega2560 + ESP8266 Customizable PLC. Disponible en línea: https://www.adafruit.com/product/3418

[21] GitHub. (2020). Digitalloggers/PLDuino: PLDuino’s controller repository for code, docs and other related stuff. Disponible en línea: https://github.com/digitalloggers/PLDuino

[22] Sfera Labs. (2020). Sfera Labs – The best of the maker world for the industrial IoT market. Disponible en línea: https://www.sferalabs.cc/

[23] Seneviratne, P. (2017). Building Arduino PLCs: The essential techniques you need to develop Arduino-based PLCs. Apress.

[24] GitHub. (2020). Wditch/plcLib: A simple C/C++ code library to allow PLC-style programming of Arduino-based systems and compatibles. Disponible en línea: https://github.com/wditch/plcLib

[25] Lagu, S. S., & Deshmukh, S. B. (2014). Raspberry Pi for automation of water treatment plant. En 2014 International Conference on Advances in Computing, Communications and Informatics (ICACCI), 1999-2003.

[26] John, A., Varghese, R., Krishnan, S. S., Thomas, S., Swayambu, T. A., & Thasneem, P. (2017). Automation of 11 kv substation using raspberry pi. En 2017 International Conference on Circuit, Power and Computing Technologies (ICCPCT), 1-5.

[27] Stój, J., Smołka, I., & Maćkowski, M. (2018). Determining the usability of embedded devices based on raspberry pi and programmed with codesys as nodes in networked control systems. En International Conference on Computer Networks, 193-205.

[28] Martinov, G. M., Kozak, N. V., & Nezhmetdinov, R. A. (2017). Implementation of control for peripheral machine equipment based on the external soft PLC integrated with CNC. En 2017 International Conference on Industrial Engineering, Applications and Manufacturing (ICIEAM), 1-4.

[29] Inzunza-Villagomez, H. I., Pérez-Arce, B., Hernández-Ruiz, S. I., & López-Corella, J. A. (2018). Design and implementation of a development environment on ladder diagram for Arduino with Ethernet connection. EasyChair Preprint, 317.

Reporte de Investigación del ICIMAF No. 922 (2020) ISSN 0138-8916 Original paper

20