Allen-Bradley SLC 500 processor module used in legacy chassis systems prone to overflow trap faults

Error de trampa de desbordamiento 0020 del SLC 500: cómo corregir el enclavamiento S:5/0

La falla mayor 0020 de SLC 500 significa que la trampa de desbordamiento S:5/0 quedó enclavada después de una operación matemática incorrecta. Borrarla con O...

Cada pocos días el SLC entra en fallo. Error grave 0020. Los operadores se encogen de hombros, mantenimiento lo borra y la producción se reanuda… hasta que el mismo error matemático vuelve a aparecer durante el turno de noche. Ese patrón es el bit de trampa de desbordamiento S:5/0 haciendo exactamente lo que Rockwell diseñó para hacer: quedar enclavado para que no puedas fingir que la aritmética incorrecta nunca ocurrió.

En un 5/04 como el 1747-L524, 0020 significa que una instrucción produjo un resultado fuera del rango entero permitido. Las operaciones con enteros con signo de 16 bits están comprendidas entre −32768 y +32767. Si superas ese límite con ADD o MUL, divides entre cero, recorres una FIFO/LIFO más allá de su búfer o ejecutas NEG sobre −32768, el procesador establece S:5/0 y permanece en fallo hasta que algo desenclava ese bit. Los manuales de la familia de publicaciones 1747-UM011 / 1747-UM001 describen la trampa; en planta simplemente se ve una CPU detenida.

Módulo de procesador Allen-Bradley SLC 500 utilizado en sistemas de chasis antiguos propensos a fallos por trampa de desbordamiento

Los procesadores SLC antiguos todavía controlan muchas máquinas discretas. Las trampas de desbordamiento casi siempre se deben a las operaciones matemáticas de la aplicación, no a un backplane defectuoso.

La OTU que detiene la hemorragia

La mayoría de las recuperaciones rápidas colocan una OTU sobre S:5/0 para que el ciclo pueda continuar después de la trampa. La ubicación es lo más importante. Colócala como el último peldaño de LAD 2—el archivo que contiene tus llamadas JSR—para que todas las subrutinas hayan terminado antes de borrar el enclavamiento. Así, el desbordamiento se detecta durante el ciclo y después se borra una sola vez, antes del estado inactivo.

LAD 2 — último peldaño
  S:5/0
----] [----(OTU)----

Si colocas la misma OTU dentro de la subrutina que produce el desbordamiento, inventas un nuevo modo de fallo: borras demasiado pronto, vuelve a producirse un desbordamiento más adelante en el mismo ciclo y ocurre un fallo inmediato de nuevo. O la OTU se activa en una ruta que no encuentra la operación matemática incorrecta durante ese ciclo, y crees que lo has “solucionado”, mientras el peldaño real sigue provocando el fallo dos veces por semana.

Elemento Uso
Bit S:5/0 trampa de desbordamiento (enclavada)
Instrucción OTU
Archivo LAD 2 (principal)
Posición Después de cada JSR, último peldaño

Descarga el programa, pon la llave en RUN y observa que S:5/0 permanezca libre durante varios turnos. Si sigue tranquilo, has ganado tiempo, no has cerrado la causa raíz.

Encuentra la operación matemática que realmente produjo el desbordamiento

Considera la OTU como un cinturón de seguridad. Después, ponte a buscar:

  • Cualquier cambio reciente que afecte a enteros: conteos de lotes, señales analógicas escaladas introducidas en archivos N, o un MUL “temporal” para conversiones de unidades
  • ADD / SUB / MUL / DIV / DDV sin límites de rango
  • Lugares que deberían usar LADD / LMUL (32 bits) cuando los valores salieron del rango cómodo de 16 bits
  • NEG sobre un valor que pueda permanecer en −32768
  • La longitud de la FIFO/LIFO frente al búfer que realmente reservaste

Bits de estado relacionados que conviene conocer durante la depuración: S:5/1 habilitación de la trampa de desbordamiento, S:1/0 primer ciclo y S:2/0 fallo del procesador. No borres las trampas a ciegas durante ediciones en línea sin saber qué peldaño está provocando el problema.

Comprobación de la realidad del hardware

Las CPU 5/04 de la clase 1747-L524 están totalmente obsoletas. Si vas a conservar el chasis, guarda en el estante una 5/04 de repuesto en buen estado; las plantas que todavía compran equipos de esta familia suelen terminar usando módulos como el 1747-L542. Las máquinas más pequeñas a veces migran lateralmente a una 5/03 como la 1747-L532, pero esa es una decisión de proyecto, no una solución al desbordamiento. A más largo plazo, la mayoría de las instalaciones trasladan el proceso a CompactLogix o ControlLogix y dejan atrás las trampas matemáticas de 16 bits junto con la plataforma. La estrategia de repuestos para flotas Logix mixtas sigue dependiendo de cómo abastezcas tus sistemas PLC y PAC.

Hasta que se complete esa migración, la disciplina es sencilla: OTU al final de LAD 2 y, después, demuestra qué ADD/MUL está mintiendo sobre su rango.

Sobre el autor

Mark Townsend | Ingeniero sénior de automatización – Sistemas Allen-Bradley

Mark Townsend es ingeniero sénior de automatización, con más de 18 años de experiencia en plataformas Allen-Bradley, incluidas ControlLogix, CompactLogix y la SLC-500 antigua. Su trabajo diario consiste en desarrollar lógica con RSLogix / Studio 5000 y poner en marcha HMI de FactoryTalk View en flotas antiguas y mixtas.

Error de trampa de desbordamiento 0020 del SLC 500: cómo corregir el enclavamiento S:5/0

La falla mayor 0020 de SLC 500 significa que la trampa de desbordamiento S:5/0 quedó enclavada después de una operación matemática incorrecta. Borrarla con OTU puede mantener la CPU en funcionamien...

Cada pocos días el SLC entra en fallo. Error grave 0020. Los operadores se encogen de hombros, mantenimiento lo borra y la producción se reanuda… hasta que el mismo error matemático vuelve a aparecer durante el turno de noche. Ese patrón es el bit de trampa de desbordamiento S:5/0 haciendo exactamente lo que Rockwell diseñó para hacer: quedar enclavado para que no puedas fingir que la aritmética incorrecta nunca ocurrió.

En un 5/04 como el 1747-L524, 0020 significa que una instrucción produjo un resultado fuera del rango entero permitido. Las operaciones con enteros con signo de 16 bits están comprendidas entre −32768 y +32767. Si superas ese límite con ADD o MUL, divides entre cero, recorres una FIFO/LIFO más allá de su búfer o ejecutas NEG sobre −32768, el procesador establece S:5/0 y permanece en fallo hasta que algo desenclava ese bit. Los manuales de la familia de publicaciones 1747-UM011 / 1747-UM001 describen la trampa; en planta simplemente se ve una CPU detenida.

Módulo de procesador Allen-Bradley SLC 500 utilizado en sistemas de chasis antiguos propensos a fallos por trampa de desbordamiento

Los procesadores SLC antiguos todavía controlan muchas máquinas discretas. Las trampas de desbordamiento casi siempre se deben a las operaciones matemáticas de la aplicación, no a un backplane defectuoso.

La OTU que detiene la hemorragia

La mayoría de las recuperaciones rápidas colocan una OTU sobre S:5/0 para que el ciclo pueda continuar después de la trampa. La ubicación es lo más importante. Colócala como el último peldaño de LAD 2—el archivo que contiene tus llamadas JSR—para que todas las subrutinas hayan terminado antes de borrar el enclavamiento. Así, el desbordamiento se detecta durante el ciclo y después se borra una sola vez, antes del estado inactivo.

LAD 2 — último peldaño
  S:5/0
----] [----(OTU)----

Si colocas la misma OTU dentro de la subrutina que produce el desbordamiento, inventas un nuevo modo de fallo: borras demasiado pronto, vuelve a producirse un desbordamiento más adelante en el mismo ciclo y ocurre un fallo inmediato de nuevo. O la OTU se activa en una ruta que no encuentra la operación matemática incorrecta durante ese ciclo, y crees que lo has “solucionado”, mientras el peldaño real sigue provocando el fallo dos veces por semana.

Elemento Uso
Bit S:5/0 trampa de desbordamiento (enclavada)
Instrucción OTU
Archivo LAD 2 (principal)
Posición Después de cada JSR, último peldaño

Descarga el programa, pon la llave en RUN y observa que S:5/0 permanezca libre durante varios turnos. Si sigue tranquilo, has ganado tiempo, no has cerrado la causa raíz.

Encuentra la operación matemática que realmente produjo el desbordamiento

Considera la OTU como un cinturón de seguridad. Después, ponte a buscar:

  • Cualquier cambio reciente que afecte a enteros: conteos de lotes, señales analógicas escaladas introducidas en archivos N, o un MUL “temporal” para conversiones de unidades
  • ADD / SUB / MUL / DIV / DDV sin límites de rango
  • Lugares que deberían usar LADD / LMUL (32 bits) cuando los valores salieron del rango cómodo de 16 bits
  • NEG sobre un valor que pueda permanecer en −32768
  • La longitud de la FIFO/LIFO frente al búfer que realmente reservaste

Bits de estado relacionados que conviene conocer durante la depuración: S:5/1 habilitación de la trampa de desbordamiento, S:1/0 primer ciclo y S:2/0 fallo del procesador. No borres las trampas a ciegas durante ediciones en línea sin saber qué peldaño está provocando el problema.

Comprobación de la realidad del hardware

Las CPU 5/04 de la clase 1747-L524 están totalmente obsoletas. Si vas a conservar el chasis, guarda en el estante una 5/04 de repuesto en buen estado; las plantas que todavía compran equipos de esta familia suelen terminar usando módulos como el 1747-L542. Las máquinas más pequeñas a veces migran lateralmente a una 5/03 como la 1747-L532, pero esa es una decisión de proyecto, no una solución al desbordamiento. A más largo plazo, la mayoría de las instalaciones trasladan el proceso a CompactLogix o ControlLogix y dejan atrás las trampas matemáticas de 16 bits junto con la plataforma. La estrategia de repuestos para flotas Logix mixtas sigue dependiendo de cómo abastezcas tus sistemas PLC y PAC.

Hasta que se complete esa migración, la disciplina es sencilla: OTU al final de LAD 2 y, después, demuestra qué ADD/MUL está mintiendo sobre su rango.

Sobre el autor

Mark Townsend | Ingeniero sénior de automatización – Sistemas Allen-Bradley

Mark Townsend es ingeniero sénior de automatización, con más de 18 años de experiencia en plataformas Allen-Bradley, incluidas ControlLogix, CompactLogix y la SLC-500 antigua. Su trabajo diario consiste en desarrollar lógica con RSLogix / Studio 5000 y poner en marcha HMI de FactoryTalk View en flotas antiguas y mixtas.

Deja un comentario

Tenga en cuenta que los comentarios deben ser aprobados antes de ser publicados.