Índice
Caso práctico de ejemplo que se realizará en LOGO! y en TIA Portal, ambos de Siemens:
Encendido de una salida física de un PLC durante 3 segundos si se acerca una tarjeta RFID registrada dentro de una base de datos. En caso contrario, permanecerá apagada.
Configuración en Node Red #
Contenido de la función para seleccionar permitidos y no permitidos:
// Lista de códigos hexadecimales permitidos
const permitidos = [
"26379EAC",
"D4E5F644",
"123ABC44",
"456DEF44"
];
// Obtener el código recibido (se espera en `msg.payload`)
const receivedCode = msg.payload;
// Validar si el código recibido está en la lista de permitidos
if (permitidos.includes(receivedCode.toUpperCase())) {
msg.payload = true; // El código está permitido
} else {
msg.payload = false; // El código no está permitido
}
// Pasar el mensaje al siguiente nodo con la bandera `allowed`
return msg;
El nodo «Switch» separa valores de lecturas de tarjetas y lecturas de 0, que se usan para el reseteo de la marca de activación en TIA Portal.
Qué veríamos en el Dashboard:
Además, el true o false se está enviado a LOGO! o a TIA Portal y con ese dato, podemos gestionar aperturas, etc.
Configuración de la placa Esp32 #
- Se define una variable tipo String («lectura»), para almacenar el contenido de la tarjeta RFID como texto.
- Se realiza la conexión a la red Wifi.
- Se realiza la conexión al servidor MQTT, en este ejemplo es Mosquitto instalado sobre Windows.
- Las lecturas de las tarjetas se almacenan en la variable «lectura».
- Se publica el valor de la variable si este cambia, es decir, si se lee una tarjeta, en el tema ejemplo «Pedroddf/f/rfid».
- Se resetea el valor de la variable con la lectura de la última tarjeta suscribiéndose al tema en el tema ejemplo «Pedroddf/f/resetRFID».