Error de trampa de desbordamiento 0020 del SLC 500: cómo corregir el enclavamiento S:5/0
Diagnostica el error mayor 0020H de SLC 500 antes de borrar S:5/0. Aprende cómo funciona la promoción al finalizar el escaneo, identifica la primera instrucción infractora, establece una política d...
El error grave 0020H del SLC 500 suele describirse como un fallo de desbordamiento, pero el código abarca más que una sola instrucción ADD defectuosa. Rockwell lo define como una condición de error menor que permaneció activa cuando el procesador llegó a END, TND o REF y, por ello, se convirtió en un error grave. La tarea de diagnóstico consiste en identificar qué bit de estado provocó la conversión, determinar qué operación lo activó y decidir si la recuperación controlada es segura.
El error 0020H debe conducir a una investigación del archivo de estado, no a la conclusión automática de que el hardware del procesador ha fallado.
Lea el archivo de estado antes de borrar nada
Registre el código de fallo, el número de catálogo del procesador, el modo de funcionamiento, la hora, el estado de producción y los valores de S:5 y S:6 antes de restablecer el controlador. S:5/0 es la trampa de desbordamiento matemático. S:5/2 indica un error del registro de control provocado por instrucciones como FIFO, desplazamiento de bits u operaciones de secuenciador. Otros bits de S:5 también pueden convertirse en errores graves al final del escaneo. Borrar el procesador antes de capturar estos valores destruye pruebas y favorece que el mismo fallo vuelva a producirse.
El Manual de referencia del conjunto de instrucciones del SLC 500 de Rockwell indica que S:5/0 se activa cuando ocurre un desbordamiento matemático y que se declara un error grave 0020H si el bit sigue activo cuando se ejecuta END, TND o REF. El manual recomienda examinar el bit después de la instrucción correspondiente, tomar las medidas adecuadas y solo entonces borrar S:5/0 con una OTU o borrar la palabra de estado aplicable.
Comprenda tanto el resultado matemático como la trampa
En ADD, SUB, MUL, DIV o NEG, un resultado que no puede representarse en el destino activa el bit de desbordamiento aritmético S:0/1 y la trampa S:5/0. Con el estado predeterminado de S:2/14, un resultado positivo está limitado a 32767 y uno negativo a -32768. Cuando S:2/14 está activado, en su lugar pueden colocarse en el destino los 16 bits menos significativos. Esa configuración cambia el comportamiento del destino; no demuestra que el resultado de la aplicación sea válido.
DDV y algunas instrucciones de conversión o escalado tienen reglas adicionales, por lo que la investigación debe seguir la referencia exacta de la instrucción. Una división entre cero, una longitud de control no válida o una dirección indirecta fuera de su rango permitido pueden producir una ruta de estado diferente. No agrupe todos los eventos 0020H bajo la categoría de “desbordamiento de enteros” sin comprobar S:5 y la instrucción que se ejecutó inmediatamente antes de que se activara el bit.
Encuentre la primera operación que provocó el fallo
Revise los cambios recientes y haga una referencia cruzada de cada instrucción capaz de activar el bit de estado observado. Para el desbordamiento matemático, inspeccione los cálculos de escalado, los totales de producción, las conversiones de unidades, los valores acumulados de tiempo de funcionamiento, los límites con signo y los destinos intermedios. Un cálculo puede ser matemáticamente válido en unidades de ingeniería, pero inseguro cuando un paso intermedio se almacena en un entero de 16 bits.
Registre o capture los operandos de origen, los valores de destino, S:0/1 y S:5/0 alrededor de las instrucciones sospechosas. En un sistema de prueba fuera de línea, reproduzca casos límite justo por debajo, exactamente en y por encima del rango permitido. Si varias instrucciones pueden activar la trampa durante un mismo escaneo, añada enclavamientos de diagnóstico temporales que identifiquen la primera ubicación. Estos bits de diagnóstico deben revisarse, nombrarse y eliminarse o conservarse formalmente una vez conocida la causa raíz.
Utilice la lógica de recuperación solo con una política explícita
Una OTU S:5/0 indiscriminada en el último peldaño puede evitar la conversión al final del escaneo, pero también suprime la parada independientemente de cuál haya sido el cálculo que se desbordó. Esto puede ser aceptable para un contador no crítico cuyo valor se limita y genera una alarma. No es aceptable cuando el resultado influye en el movimiento, la presión, la temperatura, la dosificación, la protección del equipo o una decisión relacionada con la seguridad.
La lógica robusta comprueba el resultado de la instrucción en el punto donde se produce. Valide los operandos antes de la ejecución, elija un destino con un rango suficiente, limite el valor solo cuando el significado del proceso lo permita, active una alarma de diagnóstico, sustituya el valor por otro seguro y documentado, y después borre la trampa. Si la respuesta correcta es detener la secuencia, conserve el fallo en lugar de obligar al procesador a continuar.
Una rutina de fallo del usuario puede facilitar la recuperación controlada de determinados eventos, y el manual de Rockwell incluye un ejemplo que cuenta las apariciones repetidas de 0020H y finalmente permite la parada. Este patrón es más informativo que el borrado incondicional porque distingue un evento aislado y gestionado de un defecto recurrente. La propia rutina de fallo debe probarse cuidadosamente; un segundo error dentro de ella puede sobrescribir la información de diagnóstico o impedir la recuperación.
Separe los fallos de software de los problemas de hardware
Una trampa de desbordamiento normalmente apunta a los datos del programa y al comportamiento de las instrucciones, no a un chasis averiado. Aun así, una alimentación inestable, problemas de memoria o cambios no previstos en el programa pueden alterar los datos y deben investigarse cuando las pruebas los respalden. Verifique la batería y el historial de alimentación del controlador, compare el programa en ejecución con el archivo aprobado y compruebe si una HMI, un mensaje o un sistema externo escribe en los operandos implicados.
No sustituya un procesador SLC como primera respuesta ante un límite matemático reproducible. Una CPU de reemplazo que ejecute el mismo programa con los mismos datos reproducirá el fallo. Si la plataforma está obsoleta, gestione los repuestos y la migración conforme al plan de ciclo de vida de sistemas PLC y PAC del sitio, pero mantenga esa decisión separada del análisis inmediato de la causa raíz.
Demuestre la corrección
Pruebe la lógica corregida con valores normales, en ambos límites del rango, con entradas no válidas, pérdida de comunicaciones, primer escaneo y cualquier condición de restablecimiento. Confirme que las alarmas identifican el cálculo afectado, que el valor sustituido es seguro y que los eventos repetidos se cuentan. Observe S:5/0 y S:0/1 durante un ciclo de producción representativo y verifique que el procesador no se limita a ocultar un desbordamiento recurrente.
Archive los archivos RSS anteriores y posteriores, las pruebas del fallo, los resultados de las pruebas y los motivos de cualquier lógica de recuperación. Combine ese registro con la guía de migración de escalado de SLC del sitio al modernizar la aplicación. El error 0020H se vuelve manejable cuando el equipo lo trata como un problema preciso de estado y calidad de datos, no como un bit que debe desengancharse automáticamente.