Sobre el papel es una conversión uno a uno. Nunca lo es.

Pasé un programa ladder de un Mitsubishi FX de los años 90 a bloques de funciones de ABB 800xA. Se vendió como un cambio equivalente. Aquí es donde eso se rompió y cómo hice el trabajo de verdad.

Publicado el 2026-06-05 6 min de lectura

Este artículo se escribió originalmente en inglés. La traducción fue realizada por una IA y puede contener errores.

Las migraciones como esta se venden como uno a uno. Coges el sistema antiguo, haces lo mismo en hardware y software nuevos, y lo devuelves comportándose exactamente igual. En la portada se lee como un copiar y pegar con un presupuesto al lado.

Este era un PLC Mitsubishi FX viejo con un programa en lógica de escalera (ladder) de los años 90. El trabajo era pasarlo a ABB 800xA, reconstruido como módulo de control en diagrama de bloques funcionales (FBD). Mismo comportamiento, plataforma nueva.

Dos PLC uno junto al otro sobre una placa de montaje: a la izquierda un autómata compacto de los años noventa, amarillento por la edad, con bornes de tornillo bajo tapas abatibles y un puerto de programación redondo; a la derecha un controlador modular moderno y limpio, con módulo de procesador y una fila de módulos de E/S estrechos sobre carril DIN

«Uno a uno» es una frase de ventas

No creo que nadie mienta cuando lo llama 1:1. Desde el asiento del cliente es verdad: mismos botones, misma secuencia, mismas salidas, la línea funciona como siempre. Eso es lo que pagan. Desde el asiento del ingeniero casi nada pasa tal cual. Esto es lo que me encontré.

El software es más viejo que yo

El proyecto original no abría en GX Developer. Abría en GX IEC Developer, la rama europea IEC 61131-3 de las herramientas de Mitsubishi, que salió del viejo MEDOC de los años 90. Lo más probable es que el proyecto se escribiera en esa línea desde el principio.

La primera sorpresa fue la configuración de hardware. No es una pantalla aparte. Va escrita como código en bloques dentro del propio programa, normalmente al final del todo para no tener que rebuscar por todas partes cada vez que la cambias. Me costó leer eso más que cualquier cosa con la que haya trabajado. Los editores gráficos de hardware de las herramientas nuevas de ABB y Siemens son sencillamente mejores.

El ladder y el FBD no piensan igual

El ladder son contactos y bobinas, corriente que fluye de izquierda a derecha, un dibujo de un panel de relés. El FBD son señales que pasan por bloques. Un peldaño evidente en ladder puede acabar siendo un grupo incómodo de bloques, y algo limpio en FBD sería un lío de peldaños volviendo hacia atrás. Consigues que las salidas coincidan mientras la estructura de debajo acaba sin parecerse en nada a la original. Para demostrar que se comporta igual tienes que entender el programa viejo mucho más a fondo que leyéndolo de arriba abajo.

Las partes sin equivalente

Parte de aquello en lo que se apoyan estos programas no tiene gemelo en 800xA. Cada pieza la encuentras leyendo con cuidado y la reconstruyes a mano.

El bloque DECO. En ladder decodifica un número a una de muchas salidas en una sola instrucción. En 800xA no hay nada parecido. Acabé con MOD y DIV para separar unidades y decenas, y diez bloques EQ contra las salidas.

Las instrucciones de salto. Los saltos condicionales, CJ, se saltan secciones enteras de lógica.

Los ajustes físicos metidos en la lógica. Algunos preajustes de temporizador se afinaban en la máquina con potenciómetros. En el FX aterrizan en registros de datos especiales, D8030 y D8031, y el programa los escala hasta un preajuste. En el módulo nuevo pasan a ser parámetros.

Los relés auxiliares especiales. Los relés de sistema de la serie M8000 dan forma a partes de la lógica. El M8028 conmuta la base de tiempos de un bloque de temporizadores.

El direccionamiento octal. Las entradas y salidas del FX se numeran en base 8, no en base 10. Las entradas X000 a X007 resultaron estar cableadas a 20 válvulas, y el programa las lee para decidir cuántas válvulas deben abrir. Un contador de válvulas de «19» significa 20, empieza en cero. Acertar con eso me costó un día entero leyendo sobre BCD, sobre cómo se guardan bits y bytes en estos controladores antiguos, y sobre valores con signo y sin signo. Antes de eso los peldaños no tenían sentido.

Lo que no funcionó: pedirle a la IA que lo hiciera todo

Lo primero que hice al recibir el encargo, más que nada por curiosidad, fue pasarle el programa ladder a una IA y pedirle un módulo de control de 800xA completo a partir de él, montado como un documento HTML con los bloques FBD dibujados. No funcionó. El resultado no era correcto por ningún lado. Diez minutos bien empleados para salir de dudas: no puedes soltarle una tarea así a un modelo y esperar un milagro.

Lo que sí funcionó

Tengo 21 años y, mientras escribo esto, llevo unos dos años en el oficio. Un programa ladder de los años 90 me era completamente ajeno.

En lugar de pedir una traducción, exporté el ladder a PDF y le pedí a la IA que lo convirtiera en un documento que explicara el programa parte por parte, paso a paso. Esto se hace en una plataforma on-prem de la empresa y solo después de que esté autorizado con tu empresa y con el cliente. Leí ese documento y ahí fue donde aprendí por primera vez qué era el BCD, el direccionamiento octal y cómo se organiza la memoria en estos controladores. Convirtió algo que nadie había tocado en décadas en algo sobre lo que podía razonar. La IA se equivoca a veces, y adivina con seguridad, a veces con mucha seguridad, así que comprueba siempre dos veces cualquier cosa que no acabe de cuadrarte.

Después, papel. Imprimí el programa ladder entero en A3 y lo repasé línea por línea con un lápiz, notas y líneas uniendo cosas, hasta que entendí qué pasaba en cada sitio. Ahí fue cuando me hizo clic de verdad.

Después empecé a escribir el FBD. Esta parte no es lineal. No empiezas arriba a la izquierda y escribes hasta el final. Llegaba a un punto en el que no sabía cómo conectar algo, lo dejaba, seguía, y más abajo encontraba la lógica que me dejaba volver y terminarlo.

Cuando el FBD estuvo hecho lo imprimí también en A3, lo puse al lado del ladder, y repasé los dos con un rotulador verde, marcando cada sección que hacía lo mismo lógicamente. Una simulación en mi cabeza, sobre papel. Cuando estaba todo verde, seguí.

Después, una simulación de verdad. Hice un módulo de control de simulación en Control Builder M con una ventana donde podía forzar cada entrada y ver cada salida, y lo ejecuté en el soft controller de mi portátil. El programa viejo no lo podía simular. Ni siquiera sabía si GX Developer podía, y el PLC original estaba gobernando una planta en marcha a una hora de la oficina que no se podía parar por mí. Así que la comparación se quedó en papel.

Por último, el hardware. Llegaron los armarios nuevos de ABB y costó dos días enteros solo ponerlos en marcha: faltaba una resistencia de terminación en el sistema redundante, actualizaciones de firmware, nombres de estación, todo ese montaje que simplemente lleva tiempo. Una vez en marcha descargué el programa y pude ver tiempos de ciclo y carga de memoria de verdad. El AC 800M es un controlador de DCS, no un PLC rápido, pero este programa tenía que ser rápido, y bajé el tiempo de tarea a 30 milisegundos, con potencia de procesador y memoria de sobra.

La conclusión

Uno a uno es verdad desde el asiento del cliente y ficción desde el del ingeniero. Cuando un trabajo se vende así, ve a cazar pronto los tres sitios donde no puede serlo: donde los dos sistemas piensan distinto, las funciones y bloques sin equivalente, y el hardware y las señales que hay alrededor.


Newsletter

New articles, courses, and news — straight to your inbox

No spam, unsubscribe in one click.