Solución de Alarm 087 / SR821 / SR831 y Buffer Overflow

¿Qué hacer ante un desbordamiento de búfer durante la transferencia de datos?

¿Recibe este error durante la transferencia?

  • Alarm 087 (BUFFER OVERFLOW / READER STOP REJECT): El control CNC se detiene a mitad del programa porque se enviaron demasiados datos demasiado rápido.
  • Alarm SR821 / SR831: La equivalencia correspondiente en controles Fanuc más modernos.
  • Síntoma: La transmisión de datos no se detiene a tiempo cuando la máquina lo solicita, lo que provoca pérdida de datos o la interrupción del programa.

Soluciones inmediatos (Lista de verificación)

Para corregir la Alarm 087, debe asegurarse de que el flujo de datos se detenga instantáneamente en cuanto la máquina envíe la señal. Siga estos puntos en orden:

1. Desactivar el búfer FIFO de Windows (Para puertos COM reales)

Los controladores de puertos COM modernos en Windows almacenan datos en un búfer de hardware. Cuando el CNC envía el comando de parada, la PC a menudo envía los caracteres restantes que ya están en el búfer, saturando la memoria de la máquina.

    Abra el Administrador de dispositivos (Device Manager) -> Puertos (COM y LPT) -> Clic derecho en su puerto COM -> Propiedades (Properties) -> Pestaña Configuración de puerto (Port Settings) -> Opciones avanzadas (Advanced). Desmarque la opción "Usar búfer FIFO" (Use FIFO buffers) o deslice los controles completamente hacia la izquierda.

Nota sobre adaptadores USB a RS232: Muchos adaptadores seriales USB no muestran esta opción de FIFO en el Administrador de dispositivos o el controlador la gestiona de forma diferente debido a la arquitectura de paquetes USB. Si utiliza un adaptador USB, la Alarm 087 suele solucionarse únicamente con el Punto 3 (Reducir Baud Rate) y el Punto 4 (Retraso de bloque).

2. Activar el control de flujo por software XON/XOFF

La Alarm 087 casi siempre es un problema de Handshake por software. Asegúrese de que en su software DNC (por ejemplo, EasyDNC o RemoDNC), la configuración de control de flujo sea obligatoriamente XON/XOFF y no "Hardware" o "Ninguno".

Incluso si el CNC fue configurado originalmente para control de flujo por hardware, muchos controles Fanuc y otros utilizan XON/XOFF durante el Drip-Feeding.

3. Reducir el Baud Rate

A veces, la velocidad de transmisión es simplemente demasiado alta para la capacidad de procesamiento del procesador CNC antiguo. Reduzca el Baud Rate tanto en el control como en la PC (por ejemplo, de 19200 a 9600 o 4800 baudios).

4. Activar el retardo de bloque (Block Delay)

Agregue un retraso de bloque mínimo (Character Delay / Line Delay) de algunos milisegundos en su software DNC para dar "espacio para respirar" al búfer de la máquina.

Información técnica: ¿Por qué ocurre la Alarm 087?

Para entender qué sucede en el fondo: los controles Fanuc operan con una lógica de búfer estricta. Cuando la memoria de la máquina está a punto de llenarse, envía un carácter XOFF (ASCII 19) a la PC.

Según las especificaciones de Fanuc, la PC tiene una ventana de tiempo de máximo 10 caracteres para detener la transmisión por completo. Si la PC reacciona demasiado lento (debido a la latencia de los controladores de Windows, cables de Handshake mal configurados o la latencia intrínseca de los adaptadores USB-Serial), el búfer se desborda y se dispara la Alarm 087.

Particularidad en modo DNC: Como se mencionó, muchos controles cambian internamente al Handshake por software XON/XOFF durante la operación de Drip-Feeding, incluso si la máquina está configurada superficialmente para control de flujo por hardware.