Tutorial de Node-RED: Cómo establecer una cuenta atrás en el controlador PLC de Raspberry Pi

Aprende a combinar Node-RED y Raspberry PLC para optimizar tu planta con la automatización de Raspberry Pi
10 de septiembre de 2021 por
Tutorial de Node-RED: Cómo establecer una cuenta atrás en el controlador PLC de Raspberry Pi
Boot & Work Corp. S.L., Fernandez Queralt Martinez

 Introducción

A veces, al realizar tareas, se desea que ciertas acciones tengan lugar durante un tiempo determinado. El sistema de semáforos sería un ejemplo. También, si estás realizando una tarea de mantenimiento en una cinta transportadora y quieres que se active durante 30 segundos para comprobar su correcto funcionamiento una vez reparada, te interesaría establecer una cuenta atrás para comprobar esta acción.

En este post, aprenderás a crear un Dashboard básico para establecer una cuenta atrás de forma que una salida de tu PLC basado en Raspberry Pi permanezca activa durante la cuenta atrás, y se desactive cuando ésta termine. Así, gracias a la automatización industrial, conseguiremos una planta automatizada.

 Enlaces relacionados

Cómo

Conectar un Raspberry PLC al Wi-Fi


Read  

Conceptos básicos

Raspberry Pi PLC


Read  

PLC Raspberry Pi

Familia de productos


Read  

Touchberry Pi

Familia de productos


Read  

Cómo

Programar las entradas de interrupción de un Raspberry PLC con Python


Read  

Cómo

Encontrar un PLC industrial perfecto


Read 


 Control previo

En primer lugar, vamos a hacer una comprobación previa para asegurarnos de que Node-RED está correctamente instalado en su PLC industrial Raspberry:

1. Asegúrate de que Node-RED está correctamente instalado en tu PLC industrial Raspberry Pi:

    a. Si se trata de un servicio, escribe la siguiente información en la línea de comandos:

        sudo systemctl status nodered.service

    b. Si no es un servicio, pero está instalado, inícialo:

        node-red-start

    c. Si no está instalado, ejecuta el siguiente comando para instalar Node.js, npm y Node-RED en un PLC Raspberry Pi industrial:

bash <(curl -sL https://raw.githubusercontent.com/node-red/linux-installers/master/deb/update-nodejs-and-nodered)

2.Ve al config.txt de tu PLC de código abierto Raspberry Pi:

sudo nano /boot/config.txt

Y asegúrate de que estas líneas están comentadas:

#dtoverlay=mcp23017,noints,mcp23008,addr=0x20
#dtoverlay=mcp23017,noints,mcp23008,addr=0x21
#dtoverlay=i2c-pwm-pca9685a,addr=0x40
#dtoverlay=i2c-pwm-pca9685a,addr=0x41
#dtoverlay=ads1015,addr=0x48
#dtparam=cha_enable=true,cha_gain=1
#dtparam=chb_enable=true,chb_gain=1
#dtparam=chc_enable=true,chc_gain=1
#dtparam=chd_enable=true,chd_gain=1
#dtoverlay=ads1015,addr=0x49
#dtparam=cha_enable=true,cha_gain=1
#dtparam=chb_enable=true,chb_gain=1
#dtparam=chc_enable=true,chc_gain=1
#dtparam=chd_enable=true,chd_gain=1
#dtoverlay=ads1015,addr=0x4a
#dtparam=cha_enable=true,cha_gain=1
#dtparam=chb_enable=true,chb_gain=1
#dtparam=chc_enable=true,chc_gain=1
#dtparam=chd_enable=true,chd_gain=1
#dtoverlay=ads1015,addr=0x4b
#dtparam=cha_enable=true,cha_gain=1
#dtparam=chb_enable=true,chb_gain=1
#dtparam=chc_enable=true,chc_gain=1
#dtparam=chd_enable=true,chd_gain=1
Coméntelas si no lo son y reinicia el dispositivo para aplicar los cambios.

3. Debes haber instalado los nodos node-red-dashboard.

 Node-red-contrib-countdown

Para tener un nodo de cuenta atrás para poder establecer el tiempo de espera, vamos a descargar el nodo node-red-contrib-countdown:

1. Asegúrate de estar conectad@ a Internet.
2. Abre Node-RED.
3. Ve al Menú > Gestionar Paleta > Instalar > Escribe: node-red-contrib-countdown > Haz clic en "Instalar".

Si todo ha ido bien, podrás ver tus nodos en el menú de la izquierda.

 Node-RED Flow

Ahora, ¡creemos el flujo Node-RED!

1. En primer lugar, añade un nodo de conmutación Dashboard con las siguientes configuraciones:

Añadir un nodo de conmutación Dashboard - flujo Node-RED - Ejemplo Node-RED: Cómo establecer una cuenta atrás en el PLC de Raspberry

2. A continuación, añade un nodo de cambio para establecer flow.active a msg.payload. Con esta configuración, establecerás una variable de flujo para el valor numérico para iniciar el contador o no. 

Añadir un nodo de cambio - Flujo Node-RED - Ejemplo Node-RED: Cómo establecer una cuenta atrás en el PLC Raspberry

3. Conecta un nodo interruptor para evaluar la variable flow.active. Si es verdadera, podrás activar la cuenta atrás. En caso contrario, no.

Cablear un nodo de conmutación - Flujo de Node-RED - Ejemplo de Node-RED: Cómo establecer una cuenta atrás en el PLC Raspberry

4. Como podemos ver en la documentación de node-red-contrib-countdown, necesitas el tema "control" para recargar el contador. Así que, ahora vas a añadir un nodo Dashboard numérico para tener un widget numérico para establecer el valor del contador, y establecerás el msg.topic a "control". 

Además, establecerás un rango de segundos y escribirás una etiqueta para mostrar en el tablero.

Nodo de tablero numérico - Flujo de Node-RED - Ejemplo de Node-RED: Cómo establecer una cuenta atrás en el PLC Raspberry

5. Añade un nodo interruptor y evalúa si la variable flow.active es verdadera.

Añadir un nodo de conmutación si la variable es verdadera - Flujo Node-RED - Ejemplo Node-RED: Cómo establecer una cuenta atrás en el PLC de Raspberry

6. Añade el nodo "countdown" después del nodo "switch" y configúralo. Ahora, conecta la primera salida del nodo "eval flow.active" a la entrada del nodo "if flow.active is true" y la segunda salida al nodo de la cuenta atrás.

Añadir el nodo de cuenta atrás - Flujo de Node-RED - Ejemplo de Node-RED: Cómo establecer una cuenta atrás en el PLC Raspberry

7.  Conecta un nodo digital write de Industrial Shields después del nodo "if flow.active is true" para activar la salida cuando el tiempo esté establecido. Selecciona una salida y establece el valor HIGH.

8. El nodo de cuenta atrás emite un "true" cuando empieza y un "false" cuando termina desde la primera salida. Añade un nodo interruptor y cambia si msg.payload es falso para enviar el valor a un nodo de salida digital de "escritura" con el valor puesto a LOW. Esto asegurará que una vez que el contador termine, la misma salida se apague.


9. Por último, añade un nodo de tablero de texto, para mostrar, desde la segunda salida del nodo de cuenta atrás, cada uno de los números del contador.

Añadir un nodo de tablero de texto - flujo de Node-RED - Ejemplo de Node-RED: Cómo establecer una cuenta atrás en el PLC de Raspberry

Ahora, es el momento de ir a tu panel de control de Node-RED: YOUR-IP-ADDRESS:1880/ui y pruébalo.

Hay que tener en cuenta que cuando se activa el botón del interruptor, no habrá cuenta atrás hasta que se pulse cualquier flecha para fijar el tiempo del contador.

Ve al Menú > Importar > Y pega este código de abajo para pegarlo directamente en el flujo. > Haz clic en Importar y disfruta.

[{"id":"aed4ed95.51fd3","type":"tab","label":"Flow 1","disabled":false,"info":""},{"id":"36dab66.105b04a","type":"ui_numeric","z":"aed4ed95.51fd3","name":"","label":"Set time","tooltip":"","group":"2200bc67.e75214","order":2,"width":0,"height":0,"wrap":false,"passthru":true,"topic":"control","topicType":"str","format":"{{value}}","min":0,"max":"1000000","step":1,"x":120,"y":380,"wires":[["57e3fd14.c6faf4"]]},{"id":"54847c0b.8278a4","type":"ui_switch","z":"aed4ed95.51fd3","name":"","label":"Active","tooltip":"","group":"2200bc67.e75214","order":1,"width":0,"height":0,"passthru":true,"decouple":"false","topic":"","topicType":"str","style":"","onvalue":"true","onvalueType":"bool","onicon":"","oncolor":"","offvalue":"false","offvalueType":"bool","officon":"","offcolor":"","animate":false,"x":110,"y":240,"wires":[["2c4caab0.b6e2e6"]]},{"id":"e3726420.761328","type":"countdown","z":"aed4ed95.51fd3","name":"","topic":"","payloadTimerStart":"true","payloadTimerStartType":"bool","payloadTimerStop":"false","payloadTimerStopType":"bool","timer":"0","resetWhileRunning":true,"setTimeToNewWhileRunning":true,"startCountdownOnControlMessage":true,"x":550,"y":380,"wires":[["c5266af7.683928"],["cdb38e2b.3152d"]]},{"id":"cdb38e2b.3152d","type":"ui_text","z":"aed4ed95.51fd3","group":"2200bc67.e75214","order":3,"width":0,"height":0,"name":"","label":"Time remaining","format":"{{msg.payload}}","layout":"row-spread","x":1020,"y":260,"wires":[]},{"id":"57e3fd14.c6faf4","type":"switch","z":"aed4ed95.51fd3","name":"if flow.active is true","property":"active","propertyType":"flow","rules":[{"t":"true"}],"checkall":"true","repair":false,"outputs":1,"x":330,"y":380,"wires":[["6be8442b.afdf6c","e3726420.761328"]]},{"id":"2c4caab0.b6e2e6","type":"change","z":"aed4ed95.51fd3","name":"set flow.active to msg.payload","rules":[{"t":"set","p":"active","pt":"flow","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":490,"y":240,"wires":[["e99f47d5.17f628"]]},{"id":"e99f47d5.17f628","type":"switch","z":"aed4ed95.51fd3","name":"eval flow.active","property":"active","propertyType":"flow","rules":[{"t":"true"},{"t":"false"}],"checkall":"true","repair":false,"outputs":2,"x":760,"y":240,"wires":[["cdb38e2b.3152d","57e3fd14.c6faf4"],["e3726420.761328"]]},{"id":"c5266af7.683928","type":"switch","z":"aed4ed95.51fd3","name":"is msg.payload is false","property":"payload","propertyType":"msg","rules":[{"t":"false"}],"checkall":"true","repair":false,"outputs":1,"x":780,"y":400,"wires":[["3eab10e.ae300f"]]},{"id":"3eab10e.ae300f","type":"rpiplc-digital-write","z":"aed4ed95.51fd3","rpiplc":"d44e8434.83bc08","pin":"Q0.0","value":"0","name":"","x":1020,"y":400,"wires":[]},{"id":"6be8442b.afdf6c","type":"rpiplc-digital-write","z":"aed4ed95.51fd3","rpiplc":"d44e8434.83bc08","pin":"Q0.0","value":"1","name":"","x":550,"y":460,"wires":[]},{"id":"2200bc67.e75214","type":"ui_group","name":"Default","tab":"7e6b74f7.76b2ec","order":1,"disp":false,"width":"6","collapse":false},{"id":"d44e8434.83bc08","type":"rpiplc-config","model":"RPIPLC_57R","name":""},{"id":"7e6b74f7.76b2ec","type":"ui_tab","name":"Home","icon":"dashboard","disabled":false,"hidden":false}]
 

 
 

Buscar en nuestro blog

Tutorial de Node-RED: Cómo establecer una cuenta atrás en el controlador PLC de Raspberry Pi
Boot & Work Corp. S.L., Fernandez Queralt Martinez 10 de septiembre de 2021
Compartir

¿Estás buscando tu Controlador Lógico Programable ideal?

Echa un vistazo a esta comparativa de producto de varios controladores industriales basados en Arduino.

Comparamos entradas, salidas, comunicaciones y otras especificaciones con las de los equipos de otras marcas destacadas.


Industrial PLC comparison >>>