View Categories

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».

Ejemplo utilización en TIA Portal #

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *