No es posible programar microcontroladores de bajo coste desde las principales plataformas comerciales de programación industrial, como TIA Portal o Codesys. Aquí se propone utilizar la comunicación Wifi de los microcontroladores Esp32 y el protocolo MQTT para trabajar comunicar en tiempo real con Codesys, que estará trabajando en un ordenador personal.
Esto se hará de forma cliente – servidor, convirtiendo dicho ordenador en un PLC (SoftPLC) y usando el Esp32 como Periferia Distribuida. Para ello, el PC también a la misma red (por Wifi o Ethernet) a la que se conecta el Esp32, que puede ser local. Finalmente, necesitamos un servidor MQTT que gestione el proceso de intercambio de datos.

Esto quiere decir lo siguiente:
- El usuario realiza programa en el software de automatización industrial en su ordenador personal.
- Se convierte el PC del alumno en un PLC, lo que se denomina SoftPLC. Esto es como cargar una especie de “emulador” de un PLC en el ordenador, por Software, por eso se denomina SoftPLC.
- Se configura un microcontrolador (Esp32) para que se pueda comunicar en tiempo real con el ordenador y pueda ser sus “Sentidos” y sus “brazos y piernas”. Aquí lo haremos paso a paso por MQTT.
- Es el PC, actuando como SoftPLC, el que realiza el proceso de cálculo y toma decisiones, teniendo en cuenta la programación realizada en él y las señales que le llegan del microcontrolador.
Necesidades materiales y de software para llevar a cabo el proceso anterior:
- Microcontrolador Esp32 configurado para trabajar con MQTT
- Ordenador personal con Codesys instalado y su runtime (licencia demo gratis)
- Una red Wifi que puede ser local
- Un servidor MQTT que se puede instalar en el propio ordenador que ejecuta Codesys, en una Raspberry o en un teléfono móvil. También se puede usar un servidor online, pero las limitaciones que imponen en cuanto a tráfico de datos por segundo suele ser un impedimento para un funcionamiento en tiempo real del sistema.
Para que se lleve a cabo el proceso anterior, el microcontrolador debe tener un programa que le permita interpretar las órdenes que le llegan desde el ordenador y enviarle los datos al ordenador de tal forma que este también lo interprete correctamente. Es por esto que debemos cargar una configuración en el Esp32 o el microcontrolador que utilicemos que además, tiene que ir en consonancia con el software de programación industrial que estemos usando.
Las entradas del Esp32 se pueden configurar de diversas formas: como entradas o salidas digitales, analógicas, PWM, etc. Además, podemos conectarle sensores y actuadores que requieran librerías. En esta sección vamos a plantear un primer paso en el que la configuración del Esp32 es fija y está adaptada a una serie de ejercicios que planteamos desde aquí. Se facilita una plantilla (un programa) que se carga en la placa y ya la dota de esta funcionalidad.
Sin embargo, en el Modo Avanzado mostramos cómo crear una configuración totalmente personalizada mediante un configurador gráfico.