Tutorial de automatización de Node-RED y Raspberry Pi: Cómo hacer funcionar un motor paso a paso

Haz tu Dashboard Node-RED y controla un motor paso a paso con un PLC industrial Raspberry Pi
13 de octubre de 2021 por
Tutorial de automatización de Node-RED y Raspberry Pi: Cómo hacer funcionar un motor paso a paso
Boot & Work Corp. S.L., Fernandez Queralt Martinez

Introducción

¿Te gustaría controlar un motor paso a paso con un Dashboard Node-RED desde un PLC basado en Raspberry Pi?

¡Esto es justo lo que vamos a hacer en este post! Gracias a este tutorial de Node-RED, aprenderás a ejecutar un script de Python desde Node-RED para poder controlar el motor paso a paso conectado a un PLC de Raspberry mediante un dashboard de Node-RED.

Your Dynamic Snippet will be displayed here... This message is displayed because you did not provided both a filter and a template to use.

Tablero Node-RED

Una vez aquí, ya te has asegurado de que el driver Microstep y el motor paso a paso están correctamente conectados al PLC Raspberry.

Lo que vamos a hacer ahora es crear un cuadro de mando Node-RED para hacer funcionar mejor el motor paso a paso. 

Así que esto es lo que vamos a hacer ahora:

  • Vamos a añadir un botón de Dashboard para empezar a ejecutar el script de python.
  • Luego, tomaremos el PID del proceso, ya que cuando se ejecuta este script de python, hay un "while True" en el código, por lo que siempre se está ejecutando. 
  • Finalmente, detendremos la ejecución añadiendo un botón en el tablero que matará el proceso del script python en ejecución.

Pasos para programar con el script de Python y Node-RED

1. Primero de todo, asegurate de que  Node-RED is installed in your Raspberry Pi PLC controller > 

2. Comprueba que los  nodos del tablero Node-RED están instalados > 

3. Asegúrate de que tu script funciona cuando lo ejecutas en tu PLC Raspberry y obtén la ruta del archivo.

4. Ahora, ve a Node-RED y añade un botón de tablero. Edítalo y sólo cambia la etiqueta para mostrarlo en el Dashboard, en nuestro caso: ON.

5. Alimenta un nodo exec y escribe el comando, en nuestro caso está en la ruta /home/pi, y se llama stepper_motor_rpi.py, así: 

python /home/pi/stepper_motor_rpi.py

Pasos - Node-RED y tutorial de Raspberry Pi: Cómo hacer funcionar un motor paso a paso

6. Añadir un nodo de estado, y obtener el estado sólo del nodo seleccionado: exec.

7. Desde el nodo de estado, podemos obtener el pid en el campo msg.status.text como: pid:XXXX. Lo que vamos a hacer ahora es hacer una variable de flujo sólo con el valor numérico del pid para poder eliminarlo.

Por lo tanto, añade un nodo de cambio, y establece flow.payload a $substringAfter(status.text, ":"). Al hacer esto, sólo tomaremos el valor después de ':', por lo que el número de PID.

8. Por último, añade otro botón del panel de control, configura que cuando se haga clic, envía: payload: flow.payload

9. La señal SIGKILL se envía a un proceso para hacer que termine inmediatamente, y su sintaxis es:

kill SIGKILL pid

Por lo tanto, cablea el botón del tablero Node-RED a un nodo exec con el comando

kill -9

y junta el msg.payload.

kill -9 - Node-RED y tutorial de Raspberry Pi: Cómo hacer funcionar un motor paso a paso

Tablero Node-RED

Por último, haz clic en el icono del panel de control, haz clic en el diseño y mueve los botones como quieras.

Tip: Si ves que no puedes cambiar el tamaño del botón en el editor de diseño, vuelve al flujo, edita el nodo del botón y establece cualquier tamaño, como 4x3. Vuelve al diseño y podrás cambiar el tamaño del botón y mostrarlo como prefieras.

Node-RED Dashboard - Tutorial de Node-RED y Raspberry Pi: Cómo hacer funcionar un motor paso a paso

Si no has podido hacer funcionar la aplicación, copia el flows.json que aparece a continuación, ve a Node-RED > Menú > Importar > Pégalo allí > Haz clic en Importar.

[{"id":"d757dbb1.993928","type":"tab","label":"Flow 1","disabled":false,"info":""},{"id":"a2c7ba39.575c38","type":"exec","z":"d757dbb1.993928","command":"python /home/pi/stepper_motor_rpi.py","addpay":"","append":"","useSpawn":"false","timer":"","oldrc":false,"name":"","x":390,"y":80,"wires":[[],[],[]]},{"id":"bc77eb35.bb6118","type":"status","z":"d757dbb1.993928","name":"","scope":["a2c7ba39.575c38"],"x":120,"y":160,"wires":[["969b13f5.41742"]]},{"id":"969b13f5.41742","type":"change","z":"d757dbb1.993928","name":"","rules":[{"t":"set","p":"payload","pt":"flow","to":"$substringAfter(status.text, \":\")","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":320,"y":160,"wires":[[]]},{"id":"78de6689.486298","type":"ui_button","z":"d757dbb1.993928","name":"","group":"52b8bacf.7a0fc4","order":1,"width":0,"height":0,"passthru":false,"label":"ON","tooltip":"","color":"","bgcolor":"","icon":"","payload":"","payloadType":"str","topic":"topic","topicType":"msg","x":110,"y":80,"wires":[["a2c7ba39.575c38"]]},{"id":"70ee6d08.a33754","type":"ui_button","z":"d757dbb1.993928","name":"","group":"52b8bacf.7a0fc4","order":2,"width":0,"height":0,"passthru":false,"label":"OFF","tooltip":"","color":"","bgcolor":"","icon":"","payload":"payload","payloadType":"flow","topic":"","topicType":"str","x":110,"y":240,"wires":[["56890f7c.b3568"]]},{"id":"56890f7c.b3568","type":"exec","z":"d757dbb1.993928","command":"kill -9 ","addpay":"payload","append":"","useSpawn":"false","timer":"","oldrc":false,"name":"","x":290,"y":240,"wires":[[],[],[]]},{"id":"52b8bacf.7a0fc4","type":"ui_group","name":"Stepper motor","tab":"beab2351.33bf7","order":1,"disp":true,"width":"6","collapse":false},{"id":"beab2351.33bf7","type":"ui_tab","name":"Home","icon":"dashboard","disabled":false,"hidden":false}]

¡Y disfruta de tu tablero Node-RED controlando el motor paso a paso visualmente con tu PLC de código abierto Raspberry Pi!

Controlar el motor paso a paso - Node-RED y Tutorial de Raspberry Pi: Cómo hacer funcionar un motor paso a paso

Buscar en nuestro blog

Tutorial de automatización de Node-RED y Raspberry Pi: Cómo hacer funcionar un motor paso a paso
Boot & Work Corp. S.L., Fernandez Queralt Martinez 13 de octubre 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 >>>