> ## Documentation Index
> Fetch the complete documentation index at: https://ayuda.daia.cl/llms.txt
> Use this file to discover all available pages before exploring further.

# PLC Pulsadores

> Configurar la comunicación con el PLC y los pulsadores de la línea

La pestaña Pulsadores configura la comunicación entre DAIA Agent y el PLC (Controlador Lógico Programable) que envía las señales de "caja completa" desde la línea de producción.

## ¿Para qué sirve el PLC?

El PLC monitorea los pulsadores físicos instalados en cada salida del clasificador. Cuando el operador completa una caja y presiona el pulsador, DAIA Agent recibe la señal y dispara la impresión de la etiqueta correspondiente a esa salida.

<img src="https://mintcdn.com/daiasystems/yXkDwBJnFdJ9Jt4_/images/daia-agent/configuracion_pulsadores.png?fit=max&auto=format&n=yXkDwBJnFdJ9Jt4_&q=85&s=b7ea8b33f1fdbf4c5237d611e0a748bf" alt="Panel lateral de Log PLC mostrando eventos en tiempo real con slots, timestamps y estados de acknowledge" width="1920" height="1058" data-path="images/daia-agent/configuracion_pulsadores.png" />

***

## Protocolos disponibles

El primer campo del formulario es el selector de **Protocolo**. Según el protocolo elegido, el formulario muestra campos distintos.

<AccordionGroup>
  <Accordion title="Standard (ARM/WAIT) — Protocolo 0">
    Comunicación **Modbus TCP** con banderas de registro. DAIA Agent opera en un ciclo:

    1. Detecta la bandera levantada (evento de caja completa)
    2. Procesa el evento (genera e imprime la etiqueta)
    3. Escribe el acknowledge al PLC (resetea la bandera)

    Es el protocolo más común y compatible con la mayoría de PLCs industriales.

    **Campos específicos:** Registros de memoria, HR Flag evento, HR Ack/Arm, Tamaño slot (registros útiles) y Stride por slot (registros totales).
  </Accordion>

  <Accordion title="Polling (MLS4) — Protocolo 1">
    Comunicación **Modbus TCP** con contadores de eventos. DAIA Agent detecta cambios comparando el valor actual de cada contador con el último valor leído. No requiere escritura de acknowledge al PLC.

    Indicado para equipos MLS4 y PLCs que no soportan el ciclo ARM/WAIT/RESET.

    **Campos específicos:** Cantidad de pulsadores, Registros por slot MLS4 y Offset contador en slot.
  </Accordion>

  <Accordion title="Server TCP — Protocolo 3">
    DAIA Agent actúa como **servidor TCP**: los dispositivos de la línea (escáneres, terminales) se conectan directamente a él, sin PLC intermedio. Se configuran dos servicios:

    * **Servidor Pulsadores (TCP)** — Puerto de escucha para las señales de caja completa.
    * **Servidor Etiquetado (TCP)** — Puerto de escucha para solicitudes de impresión, con su **Template ZPL** y su **Impresora de etiquetado** asignados.

    Adicionalmente puede habilitarse un bloque **Modbus TCP — Pulsadores Adicionales** para combinar este modo con pulsadores físicos: tipo de registro (Coil o Holding Register), IP y puerto Modbus, primera dirección, polling (ms), timeout, cantidad de pulsadores, registros por slot, offset en slot y errores antes de reconectar.

    En este modo, cada pulsador del módulo Etiquetado puede asociarse a un [escáner](/daia-agent/configuracion/escaneres) registrado.
  </Accordion>
</AccordionGroup>

***

## Campos de conexión Modbus

Para los protocolos Standard y Polling (0 y 1):

| Campo                        | Descripción                                   | Ejemplo        |
| ---------------------------- | --------------------------------------------- | -------------- |
| IP                           | Dirección IP del PLC en la red                | `192.168.1.10` |
| Puerto                       | Puerto TCP del servicio Modbus                | `502`          |
| Primera dirección de lectura | Registro inicial desde donde se lee           | `0`            |
| Polling (ms)                 | Frecuencia de lectura de registros            | `250`          |
| Timeout conexión (ms)        | Tiempo máximo de espera antes de marcar error | `3000`         |

Usa el botón **Probar** para verificar que el puerto Modbus del PLC es accesible antes de guardar.

***

## Acciones de control

| Acción          | Descripción                                                             |
| --------------- | ----------------------------------------------------------------------- |
| **Probar**      | Verifica que el PLC/puerto es accesible (handshake TCP)                 |
| **Iniciar PLC** | Comienza la escucha/polling. El sistema empieza a procesar eventos      |
| **Detener PLC** | Detiene la comunicación. No se procesarán más señales hasta reiniciarla |

***

## Notas importantes

<Warning>
  Al detener el PLC, las señales del equipo físico seguirán generándose pero DAIA Agent no las procesará: se pueden perder eventos de producción y quedar cajas sin etiqueta. Detén el PLC solo para mantenimiento o reconfiguración.
</Warning>

<Tip>
  El estado del PLC (activo/detenido) se muestra en la barra superior de la aplicación, y el panel **Log PLC** del módulo Etiquetado muestra los eventos en vivo. Verifica siempre que el PLC esté iniciado antes de comenzar la producción.
</Tip>
