Programación-orientada a objetos para PLC y lógica de diagrama de escalera

Aug 24, 2026 Dejar un mensaje

En el campo de la automatización industrial, la lógica de escalera sigue siendo uno de los lenguajes de programación más utilizados; sin embargo, para objetos de control más complejos, la programación orientada a objetos-es sin duda un enfoque muy eficiente. Primero analicemos la programación orientada a objetos-:


La programación orientada a objetos-es un paradigma de programación avanzado en lenguajes informáticos de alto-nivel. Esta filosofía de diseño también se puede aplicar a programas PLC en sistemas de control industrial. Aunque no podemos implementar muchas de las excelentes características de la programación orientada a objetos--como la "herencia"-y es posible que el lenguaje PLC ni siquiera posea las características de un lenguaje de programación orientado a objetos-, los conceptos básicos de la programación orientada a objetos-son clases e instancias de clases (es decir, objetos). Sólo necesitamos utilizar estos conceptos. En programación de computadoras, necesitamos abstraer y generalizar ciertas entidades para poder definir clases. Sin embargo, en los sistemas de control industriales, los objetos de control como motores y válvulas son categorías de control claramente definidas; podemos definir clases para ellos directamente sin necesidad de abstracción. Las siguientes secciones utilizarán el lenguaje de programación Step7 de Siemens y el lenguaje de programación Unity de Schneider para explicar la programación orientada a objetos-para PLC.


I. Métodos de implementación


La programación orientada a objetos-en Step7 se implementa mediante bloques de funciones (FB). Cuando surge este tema, la gente suele pensar en la programación modular propuesta por Siemens. De hecho, este es el mismo concepto, pero términos como "modularización", "bloques de datos de fondo" y "múltiples fondos" introducidos por Siemens no siempre permiten a los usuarios comprender y aplicar claramente esta excelente filosofía de diseño.


Sin embargo, si lo aborda desde la perspectiva de la programación orientada a objetos-, podrá comprender mucho mejor este patrón de diseño. Un "bloque FB" se considera una "clase"; puede verse como una agrupación de código para objetos de control similares. Por ejemplo, para el variador de frecuencia-variable MM440, puede escribir un bloque FB llamado "MtrMM440". En la programación orientada a objetos-, esto se denomina "clase". Cuando necesite programar el control de un motor específico, puede asignarle un bloque de base de datos en segundo plano-en programación orientada a objetos-, esto se denomina implementación de la clase (es decir, crear una instancia de la clase: un objeto). Cuando necesite controlar varios motores, puede asignar diferentes DB de fondo a este bloque FB, lo que equivale a crear varias instancias de la clase.


Step7 presenta otro tipo de bloque de programa: el bloque FC. La programación que utiliza principalmente bloques FC se conoce como programación estructurada en los sistemas Siemens, que puede ser análoga a la programación de procedimientos en la programación de computadoras-es decir, programación que se basa puramente en funciones-.


La programación con el software Unity de Schneider proporciona una mejor comprensión de la programación orientada a objetos-. Sus definiciones de DFB incluyen parámetros de entrada/salida, variables privadas/públicas e implementación de código-que son precisamente los elementos básicos de una "clase" en la programación orientada a objetos-de computadora. Crear una instancia de una clase (un objeto) es tan simple como crear una variable "booleana" normal; sólo necesita definir una variable de esta "clase" en "Bloques de funciones".


Tanto Step7 como Unity admiten enfoques de programación orientados a procedimientos y a objetos-; La distinción entre estos dos enfoques es similar a la diferencia entre programación en C y C++ en lenguajes informáticos de alto-nivel.


En la siguiente explicación, los FB en Step7 y los DFB en Unity se denominarán "clases", mientras que los FB combinados con bases de datos en segundo plano en Step7 y las instancias de DFB en Unity se denominarán "objetos".


II. Arquitectura de programación orientada a objetos-


La discusión anterior cubre los detalles de implementación, pero la filosofía de programación se basa en la arquitectura del programa. El simple hecho de usar métodos orientados a objetos-en una parte específica del código no significa que todo el programa esté orientado a objetos-. Este tipo de programación requiere de un enfoque basado en los siguientes aspectos:


1. Diseño de circuitos estructurados.


Esta sección se centra principalmente en líneas de producción automatizadas; para máquinas herramienta independientes, se puede utilizar una estructura simplificada:


<1>Capa de línea de producción automatizada: este es el nivel más alto, con un PLC principal que controla las distintas zonas debajo de él.


<2>Capa de Proyecto: Esta capa tiene un sistema de distribución de energía independiente pero no PLC; consta únicamente de módulos distribuidos controlados por la línea de producción automatizada. Como su nombre indica, posee un alto grado de independencia y puede diseñarse y fabricarse como un proyecto independiente. Cuando la línea de producción automatizada es relativamente pequeña, se puede omitir esta capa.


<3>Nivel de grupo funcional: según los requisitos del proceso, los segmentos de equipos que realizan una función de proceso específica se agrupan en un grupo funcional. Este grupo pertenece al Nivel de Ingeniería; cuando se omite el Nivel de Ingeniería, pertenece al Nivel de Línea de Producción Automatizada. La programación orientada a objetos-no requiere necesariamente el uso de la estructura anterior, pero una estructura eléctrica bien-diseñada es más propicia para la programación orientada a objetos-.


2. Toda la lógica de los objetos de control se implementa dentro de "clases".


Para lograr esto, es necesario analizar información relacionada con el objeto de control. Por ejemplo, para un motor, se debe considerar la siguiente información relevante:


Información de entrada:


<1>, Información de protección del circuito, como el disyuntor del motor y el relé térmico.


<2>Información de protección funcional, como interruptores de límite para motores de movimiento, interruptores de presión para ventiladores e interruptores de nivel de aceite para bombas de aceite.


<3>Condiciones de arranque y parada: si bien la protección del circuito y la protección funcional mencionadas anteriormente pueden hacer que el motor deje de funcionar y un reinicio puede desencadenar un reinicio, las condiciones aquí mencionadas pertenecen a las condiciones de arranque y parada durante el funcionamiento normal-como los pasos de un proceso de control secuencial.


<4>Modos de control: como manual y automático.


<5>Restablecimiento de falla: Reinicio del sistema mediante señales de reinicio.


Información de salida:


<1>,Salidas de control, como el contactor principal que controla el motor.


<2>,Salidas de información de estado


<3>,Salidas de fallo


Información de almacenamiento de estado:


Variables intermedias utilizadas para la implementación del código, así como variables de estado que pueden ser leídas por la HMI. Integre toda la información anterior en una sola clase y estandarice los parámetros de la clase tanto como sea posible. Sin embargo, todavía existen algunas diferencias en comparación con los lenguajes de programación de alto-nivel. Para Step7, el estándar a seguir es: la estructura del programa se implementa mediante FC y el control de objetos se implementa mediante FB, como se ilustra en el siguiente marco estructural (cuya estructura eléctrica se basa en la introducción anterior): Esta es simplemente una arquitectura de programa de PLC aproximada; una buena arquitectura debe ser más integral y científica.


3. Planifique cuidadosamente las estructuras de datos


Definir las estructuras de datos es crucial y debes esforzarte por unificar estas estructuras tanto como sea posible sin preocuparte por el espacio de almacenamiento; La memoria de los PLC modernos es suficiente para alojar grandes cantidades de datos. Vale la pena señalar que en el Paso 7, debes evitar definir tipos definidos por el usuario (UDT) fuera de las clases siempre que sea posible; en su lugar, defínalas dentro de las clases. Aunque esto puede dar lugar a definiciones duplicadas de la misma estructura en diferentes clases, mejora la independencia de las clases.


En las siguientes secciones, compararemos estos dos enfoques de programación:


Ventajas de la programación orientada a objetos-En comparación con la lógica de escalera, la programación orientada a objetos-ofrece las siguientes ventajas:


• Portabilidad del código y facilidad de reutilización;

• Facilidad de utilizar funciones matemáticas, bucles y otras construcciones;

• La programación orientada a objetos-se enseña en prácticamente todos los cursos de programación informática;

• El código puede ejecutarse en una variedad de plataformas de hardware.


Para dominar la programación orientada a objetos-, primero debes comprender el concepto de objetos y cómo usarlos. Una vez que se escribe un objeto o clase, se puede reutilizar fácilmente mediante múltiples llamadas. Por ejemplo, cree un objeto para controlar un motor, que maneje todas las entradas, salidas y fallas. Cuando sea necesario, se pueden controlar varios motores creando instancias de este único objeto de control varias veces. Esto se conoce como creación de instancias-bajo demanda. Cuando es necesario controlar varios motores, este único objeto se puede utilizar repetidamente. Se llama cuando es necesario y las instancias se crean a medida que se utilizan.


Cada instancia de cada motor tiene sus propias características, como parada del motor, funcionamiento del motor, velocidad del motor y sobrecarga del motor. La mayor parte del trabajo de programación se completa cuando se crea el objeto por primera vez. Esta es una forma de pensar diferente a la lógica de escalera y es más poderosa porque una vez que se construye un objeto, es fácil de usar y reutilizar. La programación orientada a objetos- facilita la realización de funciones matemáticas complejas, cálculos de bucles, matrices y subrutinas anidadas. Prácticamente todos los cursos de programación informática-ya sea en la escuela secundaria, la universidad o en tutoriales en línea-enseñan este concepto. El código creado es portátil y puede ejecutarse en varias plataformas de hardware.


"La lógica de escalera sigue el formato de los diagramas de escalera eléctricos utilizados en los sistemas de control de relés, y la mayoría de las personas pueden aprenderla y dominarla rápidamente".


Sin embargo, en comparación con la lógica de escalera, la programación orientada a objetos-tiene las siguientes desventajas:


• Mayor costo;

• Una curva de aprendizaje más pronunciada;

• La resolución de problemas no es particularmente fácil para el personal de mantenimiento;

• Generalmente se requiere la compilación antes de cargar el código fuente en el procesador.


En comparación con la lógica de escalera, la programación orientada a objetos-a menudo requiere más memoria y mayor potencia de procesamiento, lo que genera mayores costos. Aprender un lenguaje de programación orientado a objetos-puede llevar más tiempo. Es probable que se requiera instrucción en el aula, y dominar los conceptos básicos exige mucho tiempo, práctica, pruebas y aplicación. Los programadores deben estudiar con frecuencia programación orientada a objetos-para utilizar rastreadores para rastrear el código o depuradores para depurar la lógica. Con este tipo de programación de alto-nivel, puede resultar difícil implementar capacidades de monitoreo en línea-en tiempo real.


Antes de poder descargar el código fuente al controlador, se debe compilar. Normalmente, el código fuente no se almacena en la memoria del procesador. Esto significa que se debe tener cuidado al realizar una copia de seguridad del código fuente, ya que el código compilado normalmente no es editable. Con la programación orientada a objetos-, los archivos de la biblioteca deben estar vinculados con otros recursos utilizados durante el proceso de compilación. Sin una comprensión de los enlaces y los recursos, será difícil ejecutar el programa.


Ventajas de la lógica de escalera:


La lógica de escalera es un método de codificación simple y{0}}autodocumentado-algunos incluso cuestionan si califica como un lenguaje de programación. Sigue el formato de los diagramas de escalera eléctricos utilizados en los sistemas de control de relés y la mayoría de las personas pueden aprenderlo y dominarlo rápidamente. Ha sido el único lenguaje de programación ampliamente utilizado en el campo de la automatización de máquinas durante décadas y seguirá siendo uno de los principales lenguajes de programación en la industria de la automatización en el futuro previsible.


Con el tiempo, a medida que personas de diversos orígenes y campos ingresaron a la industria, se introdujeron varios lenguajes de programación en el conjunto de herramientas de automatización industrial. Estos incluyen programación de bloques de funciones, texto estructurado, programación de estados y gráficos de funciones secuenciales. Estos cuatro lenguajes de programación, junto con la lógica de escalera, constituyen los lenguajes de programación estándar definidos por el estándar IEC 61131-3 de la Comisión Electrotécnica Internacional (IEC).


La lógica detrás de IEC 61131 es que si todos los proveedores cumplen con este estándar, entonces-al menos hasta cierto punto-una persona solo necesitaría aprender estos cinco lenguajes de programación para cambiar fácilmente entre plataformas ofrecidas por diferentes proveedores. Sin embargo, este no es el caso.

 

La lógica de escalera básica (como el uso de contactos de relé y bobinas) funciona de la misma manera; sin embargo, al programar, se debe aprender la sintaxis y la experiencia del usuario de cada proveedor, así como los detalles de cómo utilizar la plataforma de programación. A pesar de la falta de estandarización, la lógica de escalera ofrece las siguientes ventajas sobre la programación orientada a objetos-:


• Es muy-adecuado para el control de máquinas y procesos;

• Es más fácil de entender porque es inherentemente auto-documentado;

• Facilita la resolución de problemas del sistema controlado;

• Es fácil de depurar;

• El código fuente normalmente se puede almacenar en el procesador.


La lógica de escalera es muy-adecuada para el control de máquinas y procesos, particularmente para sistemas de automatización con una gran cantidad de entradas y salidas discretas (E/S). A lo largo de los años, la lógica de escalera también se ha mejorado continuamente para manejar E/S analógicas, haciéndola más adecuada para numerosas aplicaciones de control de procesos.


En comparación con las aplicaciones de control de máquinas, las aplicaciones de proceso suelen tener una mayor proporción de E/S analógicas.


Dado que la lógica de escalera es más fácil de usar que la programación orientada a objetos-, muchos técnicos e ingenieros cualificados pueden aprenderla rápidamente. La lógica es muy sistemática y organizada, y su naturaleza auto-documentadora hace que sea más fácil de entender y dominar. Cada línea de código debe evaluarse como verdadera antes de que se pueda activar un dispositivo. Si hay cinco motores que controlar, se requieren al menos cinco líneas de código, lo que simplifica enormemente el proceso.


"El código fuente y los descriptores de la lógica de escalera generalmente se almacenan en el controlador, lo que elimina la necesidad de acceder al código fuente-lo que elimina la frustración que los programadores suelen experimentar cuando intentan comprender los programas compilados".

 

Para los ingenieros eléctricos y el personal de mantenimiento, la lógica de escalera es muy intuitiva. Aunque la lógica de escalera requiere una forma de pensar diferente a la programación orientada a objetos-, se puede dominar rápidamente con un poco de estudio y lleva menos tiempo comprender el código escrito por otros. Está muy claro cuándo una afirmación lógica es verdadera y cuándo es falsa. Incluso aquellos con experiencia limitada en programación pueden comprender fácilmente conceptos como encendido/apagado, activación de bobinas, variables de comparación y funciones matemáticas comunes.

81e77660-9f31-11ed-bfe3-dac502259ad0.jpg

 

Es simple y fácil de usar, lo que agiliza la resolución de problemas y la depuración. Al monitorear la lógica, es fácil comprender las condiciones de operación actuales. No se requieren títulos de software ni habilidades avanzadas de programación. Con la lógica de escalera, el personal de mantenimiento e ingeniería puede seguir fácilmente el proceso y comprender lo que está sucediendo. La lógica de escalera puede considerarse como una tabla de verdad: si la lógica de la izquierda es verdadera, se activa la lógica de la derecha.


El código fuente y los descriptores de la lógica de escalera normalmente se almacenan en el controlador. Esto elimina la frustración que los programadores suelen experimentar cuando intentan comprender el código compilado sin acceso al código fuente-un problema también común en la programación orientada a objetos-.


Sin embargo, en comparación con la programación orientada a objetos-, la lógica de escalera también tiene las siguientes desventajas:


• Los programadores informáticos y los profesionales de TI no están familiarizados con la lógica de escalera;

• Es difícil realizar funciones matemáticas, procesamiento de textos y procesamiento de datos;

• Depende del tiempo de exploración;

• Requiere hardware especializado para su ejecución, como un controlador lógico programable (PLC).


La lógica de escalera es un lenguaje simbólico con el que los programadores informáticos y los profesionales de TI no están familiarizados, ya que no lo aprenden en la escuela. Manejar funciones matemáticas, cadenas de texto y datos en lógica de escalera puede resultar difícil, principalmente porque la lógica de escalera no se diseñó originalmente para manejar estas funciones.


La lógica de escalera también depende del tiempo de escaneo. Los programas más grandes requieren más tiempo para escanear y procesar la lógica. Al ejecutar la lógica de escalera, el sistema lee las entradas, escanea la lógica, actualiza las tablas de datos y las salidas, realiza la comunicación y luego repite el ciclo. Se pueden implementar funciones como interrupciones y otras técnicas de programación para garantizar una ejecución más rápida de cierta lógica.


Aunque los PLC basados ​​en software-configurados con lógica de escalera pueden ejecutarse en una PC, el hardware (como el PLC) generalmente debe ser compatible con el software de programación y es mejor comprar ambos del mismo proveedor. Esto garantiza la compatibilidad, pero no es particularmente conveniente si desea cambiar de proveedor.

Además de comparar los pros y los contras de la lógica de escalera y la programación orientada a objetos-, los usuarios también deben evaluar cómo se utilizarán estos lenguajes de programación en el entorno donde se implementarán. Si una fábrica o instalación ya ha estandarizado la lógica de escalera, no se recomienda reemplazarla con programación orientada a objetos-, incluso si esta última es más adecuada para la aplicación. A medida que el uso de la programación orientada a objetos-siga creciendo, se espera que coexista con la lógica de escalera en las próximas décadas. Un profesional-de automatización con visión de futuro haría bien-dominar ambos idiomas.

Envíeconsulta

whatsapp

Teléfono de contacto

Correo electrónico

Consulta