Utilidad #

Una de las posibilidades que ofrece esta modalidad de trabajo es la de usar un microcontrolador como periferia distribuida. Si se conecta con Codesys o TIA Portal, entre otros entornos de programación industrial con runtime para Windows o simulador, se pueden realizar automatizaciones en estos software y visualizar el resultado de las mismas físicamente a través del microcontrolador, que se convierte en los sentidos, brazos y piernas del PC. Es un proceso cada vez mas utilizado, no solo a nivel educativo: Un PC trabajando como SoftPLC, es decir, se convierte el ordenador a nivel de software en un PLC, y se le añade por Modbus RTU comunicación con el microcontrolador, que pasa a ser el Hardware de nuestro PLC «virtual».

Sin embargo, se pueden también programar multitud de dispositivos con lenguajes industriales en la plataforma OpenPLC, y desde ahí, actuar sobre periféricos programados mediante el sistema aquí propuesto.

MQTT preconfigurado en microLSB #

En microLSB se pueden crear de cero multitud de conexiones y procesos de comunicación de forma versátil. Sin embargo, para agilizar el proceso, se facilitan una serie de bloques que contienen una propuesta de comunicación preestablecida. Esto significa que nuestro dispositivo trabajará con un cliente, que deberá estar debidamente configurado para utilizar los datos adecuados para comunicar de forma rápida con nuestro dispositivo como periférico. Se dispondrán plantillas de trabajo para distintos entornos, Codesys, TIA Portal y Open PLC en las primeras fases de desarrollo.

En el apartado Wifi MQTT / Preconfigurado se encuentran los bloques para trabajar con esta modalidad.

Al lado de cada pin hay un desplegable en el que se puede seleccionar la función que se desea dar a ese GPIO, incluyendo, si lo permite, entradas y salidas digitales y analógicas y PWM. AdemAs, se disponen cuatro canales más para envío de medidas de sensores y otros datos, y otros cuatro para enviar órdenes a actuadores o transferir otro tipo de datos.

La configuración de los pines como entradas o salidas digitales, analógicas y PWM mencionada, se hace con el siguiente bloque único:

Cada pin tiene un desplegable en el que se puede seleccionar la función que se le asigna a ese pin. Si se deja la opción ND (No Determinado), ese pin no tendrá ningún uso.

La parte final de cada tema de intercambio de datos, es fija y se documenta en los siguientes aparados. Sin embargo, la parte inicial de cada tema se puede personalizar. Esto se ha hecho por dos motivos:

  • Permite adaptarse a exigencias de servidores MQTT
  • Permite trabajar con distintos dispositivos de forma simultánea, usando diferentes comienzos de los temas para cada uno.

En el siguiente enlaces se encuentra la información y los recursos necesarios para cargar un programa desde microLSB en un microcontrolador:

En este ejemplo se realiza la siguiente configuración:

  • Entradas digitales: GPIO2 y GPIO12
  • Salida digital: GPIO 15

Si se desean intercambiar otro tipo de datos, se pueden usar los bloques de escribir y leer:

  • Enviar datos (4 canales):

Ejemplo de envío de temperatura leída con el sensor ds18b20 conectado al GPIO 14:

  • Lectura de datos (4 canales):

Ejemplo de control de un servo:

El programa ejemplo completo, quedaría de la siguiente forma:

La comunicación Wifi por MQTT es compatible con otras comunicaciones también disponibles, como Modbus RTU y TCP/IP.

Pinout de modelos Esp32 #

La distribución de pines presentada en las tablas anteriores, se puede ver sobre la placa Microdesys Esp32 a continuación. Sin embargo, es posible utilizar cualquier otra placa basada en el chip Esp32.

Lo presentamos también en la misma dirección en la que está preparado el bloque, pero volvemos a destacar que se puede usar un Esp32 genérico:

Canales MQTT preconfiguradas #

La lista de direcciones, junto con sus usos y se indican a continuación por funcionalidad del GPIO.

  • Salidas digitales
  • Entradas analógicas (Resolución 10bits)
  • Salidas PWM (Resolución 8 bits)
  • Direcciones de envío de datos (sensores, lecturas Wifi, etc.)
  • Direcciones de lectura de datos (actuadores, lecturas Wifi, etc.)

Software industrial como Cliente Modbus RTU #

Trabajar con Modbus RTU como Cliente permite usar un microcontrolador como Periférico del PC, que puede estar actuando como SoftPLC. Por ejemplo, codesys tiene un runtime para Windows con una versión demo funcional de 2 horas que permite realizar este tipo de trabajos de forma gratuita. Con PLCSim de TIA Portal, puedes llevar a cabo un proceso similar desde su entorno. Y con OpenPLC, tienes tanto Runtime como la posibilidad de cargar en dispositivos muy económicos.