Cómo construir un proyecto de automatización de muestra en CODESYS
Colaboración de Editores de DigiKey de América del Norte
2025-12-03
La adopción de una nueva plataforma de automatización puede dar lugar a curvas de aprendizaje pronunciadas y suscitar preocupaciones sobre la dependencia de un proveedor. CODESYS aborda estos retos con un entorno de desarrollo independiente del hardware basado en la norma IEC 61131-3. Ofrece un flujo de trabajo unificado para la programación, el mapeo de E/S, la visualización y la implantación en múltiples plataformas de hardware.
Este artículo muestra cómo crear un proyecto de automatización completo en CODESYS, desde la configuración inicial hasta las pruebas en tiempo de ejecución. Los lectores configurarán el árbol de dispositivos, asignarán canales de E/S, programarán la lógica en texto estructurado, diseñarán visualizaciones, se conectarán a un entorno de ejecución y aplicarán estrategias de depuración para verificar el funcionamiento. Junto a las instrucciones prácticas, el artículo destaca las mejores prácticas para la organización de proyectos, la gestión de bibliotecas y la implantación segura.
Aunque el tutorial utiliza el simulador integrado de CODESYS para la accesibilidad, el mismo flujo de trabajo se aplica a las plataformas de hardware disponibles en DigiKey, como PLC compatibles con CODESYS, controladores industriales Raspberry Pi (por ejemplo, Seeed EdgeBox-RPI-200) y HMI con tiempo de ejecución integrado. Al final, los lectores habrán establecido un marco claro para construir una aplicación de automatización funcional en CODESYS, con una visión de las técnicas que apoyan la escalabilidad y la fiabilidad en entornos industriales.
Configuración del proyecto
El primer paso consiste en crear un nuevo proyecto en el sistema de desarrollo CODESYS. En la lista de plantillas, seleccione Proyecto estándar y asígnele un nombre descriptivo como MotorControlDemo. Cuando se le pida un dispositivo, elija CODESYS Control Win V3, que proporciona un tiempo de ejecución basado en Windows para simulación sin hardware dedicado. Esto permite probar el flujo de trabajo completo antes de implantarlo en plataformas como PLC o módulos industriales Raspberry Pi.
El proyecto se abre con un árbol de dispositivos, que organiza los controladores, los canales de E/S y los enlaces de comunicación. En este ejemplo, el árbol contiene un objeto controlador, entradas digitales para los botones de arranque y parada, y salidas digitales para un motor y un indicador luminoso. Para conectar estas señales a la lógica de control, declare variables booleanas como StartButton, StopButton, MotorOn y LampOn en la lista de variables globales o en el editor de programas. En simulación, la alternancia de estos valores imita el comportamiento del hardware. En el hardware, se vinculan directamente a puntos de E/S físicos.
Figura 1: Declaraciones de variables booleanas para E/S de control de motores. (Fuente de la imagen: Autor)
Una nomenclatura clara y coherente en esta fase es una buena práctica que minimiza el esfuerzo de depuración y simplifica el escalado cuando se añaden nuevas funciones o dispositivos.
Lógica de programación
Una vez establecida la estructura del proyecto, el siguiente paso es implementar la lógica de control en texto estructurado (ST), uno de los lenguajes IEC 61131-3 compatibles con CODESYS. ST utiliza una sintaxis similar a Pascal que combina legibilidad con potencia expresiva, lo que permite una implementación clara de rutinas secuenciales y lógica basada en estados.
El proyecto de demostración requiere un simple pestillo de arranque/parada: al pulsar el botón de arranque se activan el motor y la lámpara, mientras que al pulsar el botón de parada se desactivan ambos. Esto se expresa en ST como se muestra en la Figura 2.
Figura 2: Implementación en texto estructurado de la lógica de enclavamiento de arranque/parada. (Fuente de la imagen: Autor)
Este ejemplo ilustra los fundamentos de ST, incluyendo sentencias condicionales, lógica booleana y asignación de variables. Dado que las variables se definieron durante la configuración del proyecto, se asignan directamente a los canales de E/S, tendiendo un puente entre las señales de hardware y la ejecución del programa.
Para proyectos de mayor envergadura, la organización es clave. El código de inicialización puede establecer estados por defecto, mientras que las tareas cíclicas controlan las entradas y accionan las salidas. Los bloques de función y las bibliotecas ayudan a encapsular la lógica, reducir la redundancia y mejorar la legibilidad. El mismo código ST desarrollado en simulación puede implementarse posteriormente en el hardware disponible de DigiKey, como PLC compactos o PAC, con sólo una pequeña modificación. Esta portabilidad refuerza el valor de CODESYS como entorno independiente del hardware. En particular, separar la inicialización, la supervisión cíclica y la gestión de errores es una práctica recomendada que mejora la legibilidad y garantiza una ejecución predecible a medida que se amplían los proyectos.
Configuración de dispositivos y mapeo de E/S
Con la estructura del proyecto y las variables en su lugar, el siguiente paso es vincular las variables al hardware -o E/S simulada- a través del mapeo de E/S. En CODESYS, esto se maneja en la pestaña Mapeo de E/S del Editor de dispositivos, donde cada canal se empareja con una variable de proyecto.
Comience insertando un controlador y sus módulos de E/S en el árbol de dispositivos. Por ejemplo, se puede agregar un módulo con dos entradas digitales y dos salidas digitales. Una vez que hay un dispositivo con capacidad de E/S, se activa la pestaña Mapeo de E/S, que muestra una tabla de canales de entrada y salida con columnas para nombres de variables, direcciones y tipos de datos. Aunque las descripciones de los dispositivos suelen proporcionar nombres y direcciones por defecto, éstos pueden modificarse para adaptarlos al cableado del sistema o a las convenciones de nomenclatura.
En la pestaña Mapeo de E/S, las variables pueden asignarse a los canales de tres formas: enlazando una variable existente (por ejemplo, StartButton, MotorOn), generando una nueva variable global implícita dentro de la interfaz, o editando directamente las direcciones para que se ajusten a los requisitos del proyecto. Las variables asignadas a las entradas son de sólo lectura por definición, y cada variable sólo puede asignarse a un canal.
En los entornos de producción, el mapeo también requiere prestar atención a las especificaciones de la interfaz eléctrica, incluidos los niveles de señal, los valores nominales de los módulos y la conexión a tierra. Estos factores quedan fuera del alcance de este tutorial, pero siguen siendo fundamentales para la implantación del hardware.
Para documentación o edición masiva, las asignaciones pueden exportarse o importarse como archivos CSV. Exportar los datos cartográficos a CSV es una buena práctica, ya que proporciona documentación para las auditorías y una referencia fiable para la colaboración en equipo.
Visualización y HMI
Una vez establecida la lógica, el siguiente paso es crear una interfaz de usuario que controle y supervise el sistema. CODESYS ofrece un conjunto de herramientas de visualización integrado que admite varios modos de implementación (WebVisu, TargetVisu y CODESYS HMI), lo que permite ejecutar la visualización en navegadores web, pantallas locales o dispositivos dedicados.
En el árbol de dispositivos, bajo el nodo Aplicación, agregue un objeto Gestor de visualización, después agregue una o más pantallas de Visualización como MainVisu. En cada pantalla, arrastre elementos de la interfaz de usuario como botones, lámparas/indicadores, visualizaciones de trazas o gráficos de tendencias. Estos elementos están vinculados a variables del programa (por ejemplo, StartButton, LampOn) a través del diálogo de propiedades del elemento.
Por ejemplo, para mostrar el estado del motor, coloque un elemento de lámpara y establezca su enlace variable a LampOn. Cuando la variable es TRUE, la lámpara se enciende; cuando es FALSE, permanece apagada. Esta vinculación directa entre variables y elementos permite una interacción intuitiva en tiempo de ejecución.
Opciones del modo de implementación
Una vez diseñada la interfaz, el siguiente paso es decidir cómo se implementará la visualización ante los operadores o los sistemas externos. CODESYS admite varios modos de implementación, cada uno de ellos orientado a diferentes requisitos de rendimiento y red:
- WebVisu: Se ejecuta como HTML5 en un navegador web, con el dispositivo actuando como servidor web a través de HTTP/HTTPS. Permite el acceso remoto sin una pantalla dedicada.
- TargetVisu: Se ejecuta en una pantalla conectada directamente al controlador o dispositivo. Eficaz para sistemas embebidos que combinan control y HMI en una sola unidad.
- CODESYS HMI: Una instancia de tiempo de ejecución independiente dedicada a la visualización, capaz de conectarse a varios controladores.
A la hora de elegir un modo de implementación, hay que tener en cuenta el rendimiento, las necesidades de visualización y la topología de la red. Aunque WebVisu es flexible, es posible que los controladores tengan que soportar el servidor HTTP y cargas adicionales. TargetVisu reduce la latencia de la red, pero requiere soporte de pantalla local, mientras que el modo HMI se adapta a sistemas multicontrolador.
Ejemplo de hardware real
Como referencia de hardware, el HMI cMT3072XHT de 7" de Maple Systems disponible en DigiKey cuenta con un tiempo de ejecución y una pantalla CODESYS integrados, lo que le permite alojar directamente las pantallas de visualización creadas en el proyecto.
Las mejores prácticas para el diseño de visualizaciones incluyen el uso de pantallas de biblioteca e interfaces de parámetros para construir plantillas reutilizables. El diseñador también debe configurar las pantallas de alarma y seguimiento para mostrar sólo las variables críticas, minimizando la carga del controlador. Esto permite soportar conversiones multilingües y de unidades con listas de texto y escalado variable. Además, bloquee las posiciones de los elementos con líneas de referencia o contenedores para mantener la coherencia de los diseños en todos los tamaños de pantalla.
Con la visualización conectada, la aplicación es ahora totalmente interactiva. El usuario puede arrancar y parar el motor, controlar los indicadores y ver los estados en directo a través de la HMI. De este modo se completa la fase de visualización y se prepara el proyecto para las pruebas en tiempo de ejecución.
Implementación y pruebas en tiempo de ejecución
Una vez finalizadas la programación y la visualización, el proyecto debe implementarse en un entorno de ejecución. CODESYS admite varias opciones, desde el simulador Control Win SL incorporado hasta tiempos de ejecución con licencia en hardware industrial.
En el menú en línea del Sistema de desarrollo, seleccione el dispositivo o simulador de destino y establezca una conexión. Descargue el proyecto compilado al tiempo de ejecución, con el IDE mostrando el estado de la transferencia y resaltando cualquier desajuste en la configuración. Tras la carga, ponga el controlador en modo RUN para iniciar la ejecución.
El tiempo de ejecución de Windows integrado permite una rápida verificación sin hardware, mientras que los tiempos de ejecución de CODESYS también se ejecutan en plataformas Linux integradas como la KUNBUS Revolution Pi (RevPi) Connect 4, disponible en DigiKey. Este módulo industrial Raspberry Pi de código abierto demuestra cómo un mismo proyecto puede ampliarse sin problemas de la simulación a la implementación sobre el terreno.
Implementación y buenas prácticas
Además de la supervisión en directo, CODESYS ofrece un entorno de implementación integrado para perfeccionar y mantener los proyectos. Los puntos de interrupción, la lógica de paso único y el análisis de los flujos de ejecución pueden establecerse y realizarse manualmente. La herramienta de rastreo amplía el diagnóstico mediante el registro de historiales de variables para su posterior análisis, a menudo utilizado en revisiones posteriores al suceso.
Para la resolución de problemas, CODESYS puede generar variables de fuerza (Figura 3) que anulan temporalmente las señales asignadas.
Figura 3: Sintaxis de la convención de nomenclatura de variables de fuerza en CODESYS. (Fuente de la imagen: Autor)
Son especialmente útiles para la puesta en marcha o la simulación de condiciones como la pulsación de botones. Cuando una señal de fuerza está activa, CODESYS sustituye el valor forzado por la señal mapeada. Dado que el forzado puede interrumpir la ejecución en tiempo real, debe aplicarse con precaución y sólo en canales ya asignados.
La fiabilidad a largo plazo depende de una gestión estructurada de los proyectos. El gestor de bibliotecas admite el diseño modular y el control de versiones centralizado, mientras que los marcadores de posición definidos garantizan la coherencia de las compilaciones en todos los objetivos de hardware. Mantener versiones estables de las bibliotecas reduce los riesgos de compatibilidad al implantar o actualizar.
Junto a estas salvaguardias estructurales, las buenas prácticas cotidianas son igualmente importantes. Por ejemplo, validando los proyectos en el simulador antes de pasarlos al hardware y utilizando puntos de interrupción o forzando cuidadosamente en producción para no interrumpir los ciclos en tiempo real. También es una buena práctica archivar las compilaciones y los conjuntos de bibliotecas conocidos para una rápida reversión, al tiempo que se documentan las asignaciones de variables y se proporcionan enlaces de visualización para facilitar el traspaso de equipos.
Conclusión
CODESYS acelera el proceso de diseño a implementación unificando la configuración del proyecto, el mapeo de E/S, la programación lógica, la visualización y la depuración en un único entorno. El flujo de trabajo se extiende a través de las plataformas de DigiKey, incluidos los PLC compatibles con CODESYS, los controladores industriales Raspberry Pi y las HMI, proporcionando un marco práctico para la transición del concepto a la automatización escalable.
Descargo de responsabilidad: Las opiniones, creencias y puntos de vista expresados por los autores o participantes del foro de este sitio web no reflejan necesariamente las opiniones, las creencias y los puntos de vista de DigiKey o de las políticas oficiales de DigiKey.




