Siemens S7-1500 y Node-RED
Ejemplo de configuración y programación del autómata Siemens S7-1500 y IOT2050 IIoT Gateway con Node-RED
Combinar Siemens PLC S7-1500 con Node-RED permite la creación e integración de sistemas de automatización potentes con dashboard para monitorear y controlar procesos industriales. Para nuestro ejemplo utilizaremos:
• Siemens S7 1500
• TIA Portal
• Siemens IOT2050 IIoT Gateway con Node-RED
• Broker MQTT: ejemplo práctico con bróker MQTT gratuito
Configuración del PLC Siemens S7-1500
1. Crear un nuevo proyecto en TIA Portal y configurar el hardware S7-1500.
2. Agregar el PLC y sus módulos (módulos de entrada y salida) a la configuración.
3. Crear un nuevo bloque (por ejemplo, OB1) y escribir la lógica para leer entradas y configurar salidas.
• Establecer la dirección IP de tu PLC.
• Definir el rack y slot (normalmente 0 y 1 para S7-1200/1500).
• Establecer el tiempo de sondeo (para los nodos de entrada).
4. Descargar la configuración y el programa al PLC.
Configuración Node-RED en Siemens IOT2050
1.Acceder al dispositivo mediante SSH
Node-RED se ejecuta sobre Node.js, por lo que primero debemos instalar Node.js.
-----
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash
source ~/.bashrc
nvm install –lts
Instala Node-RED globalmente utilizando npm
npm install -g --unsafe-perm node-red
----
2. Para que Node-RED se inicie automáticamente al arrancar el IoT2050, necesitamos configurar un servicio del sistema
----
nano /etc/systemd/system/node-red.service
----
----
[Unit]
Description=Node-RED
After=syslog.target network.target
[Service]
ExecStart=/usr/bin/env node-red-pi
User=root
Group=root
WorkingDirectory=/root
Nice=10
SyslogIdentifier=Node-RED
StandardOutput=syslog
Restart=on-failure
[Install]
WantedBy=multi-user.target
----
3. Recargar systemd para que reconozca el nuevo archivo de servicio y habilitar para que se ejecute al inicio:
----
systemctl daemon-reload
systemctl enable node-red
systemctl start node-red
----
4. Abrir un navegador web y acceder a la interfaz de Node-RED utilizando la dirección IP del IOT2050: http://:1880
Instalar nodos
1. Ir al Menú, seleccionar "Gestionar paleta" e instala los siguientes nodos
node-red-dashboard
node-red-contrib-s7
Configurar el Nodo Siemens S7-1500
1. Doble clic en el nodo S7-1500 para configurarlo:
• Establecer la dirección IP de tu PLC.
• Definir el rack y slot (normalmente 0 y 1 para S7-1200/1500).
• Establecer el tiempo de sondeo (para los nodos de entrada).
• Definir las variables (entradas/salidas) por sus direcciones configuradas en TIA Portal.
Cada conexión a un PLC está representada por el nodo de configuración de S7 Endpoint. Podemos configurar la dirección del PLC, las variables disponibles y sus direcciones, y el tiempo de ciclo para leer las variables.
El nodo S7 In hace que los valores de las variables estén disponibles en un flujo en tres modos diferentes:
Variable única: Se puede seleccionar una sola variable de las variables configuradas, y se envía un mensaje en cada ciclo, o solo cuando cambia si se marca la opción diff. `msg.payload` contiene el valor de la variable y `msg.topic` tiene el nombre de la variable.
Todas las variables, una por mensaje: Similar al modo de Variable única, pero para todas las variables configuradas. Si se marca la opción diff, se envía un mensaje cada vez que alguna variable cambia. Si la opción diff no está marcada, se envía un mensaje por cada variable en cada ciclo. Se debe tener cuidado con el número de mensajes por segundo en este modo.
Todas las variables: En este modo, `msg.payload` contiene un objeto con todas las variables configuradas y sus valores. Si se marca la opción diff, se envía un mensaje si al menos una de las variables cambia su valor.
2. Conectar los nodos de interfaz de usuario a los nodos S7 In y S7 Out para mostrar datos o controlar salidas.
Ejemplo de Flujo
• Leer una Entrada Digital:
• Controlar una Salida Digital:
Para enviar y recibir valores del bróker MQTT les recomendamos que vean nuestro articulo sobre Raspberry Pi y Node-RED - Instalación configuración y despliegue MQTT