Los lenguajes de programación de PLCs habituales (IL, ST, FBD, LD, SCL) se regulan por la norma IEC-61131-3. Esta norma fue establecida por la Comisión Electrotécnica Internacional (IEC) en la década de los sesenta con el objetivo de estandarizar el mercado de los autómatas programables.
Los lenguajes que regula la norma se dividen en:
Lenguajes literales o textuales: Las instrucciones están formadas por letras, símbolos o números.
- Lista
de instrucciones (IL): Es un lenguajede bajo nivel, tipo ensamblador, que permite crear programasde usuario propiosde hardware y con optimizaciónde tiempode ejecución y espaciode almacenamiento.
- Texto estructurado (ST): Se trata de un lenguaje de alto nivel que permite programación estructurada (división de tareas), facilitando la programación de procesos que requieren instrucciones complejas o grandes cálculos.
Lenguajes gráficos: Las instrucciones se representan por esquemas o figuras.
- Esquema
de contactos (LD): El lenguaje utiliza una representación gráficade los esquemas eléctricosde control tradicionales. Es el lenguajede programaciónde PLCs más utilizado.
- Diagrama de funciones (FBD): Se trata de un lenguaje formado por un conjunto de bloques lógicos que se interconectan en cascada de forma similar a como se hace en electrónica digital.
Lenguajes orientados a objetos:
- Diagrama funcional
de secuencias (SFC): Este lenguaje, sustituto del GRAFCET, permite representar el desarrollo en el tiempode las distintas accionesde un proceso, describiéndolo con secuenciasde pasos alternativas o paralelas. Se emplea frecuentemente en el diseñode sistemas secuenciales, donde las acciones se ejecutan en orden conforme se cumplen ciertas condiciones.
Los entornos de programación de origen alemán, como STEP7 de Siemens, utilizan las siglas en este idioma. La equivalencia es la siguiente:
FUP
|
FBD
|
KOP
|
LD
|
AWL
|
IL
|
SCL
|
ST
|
GRAPH
|
SFC
|
Es también un lenguaje gráfico, muy similar al empleado en diagramas de electrónica digital en el que se interconectan elementos como bloques, entradas, salidas, etiquetas, etc.
Su principal ventaja radica en su fácil programación. Existen una serie de bloques predefinidos que pueden ser arrastrados y colocados para posteriormente configurarlos e interconectarlos rápidamente. Por tanto, debido a su naturaleza intuitiva, no requiere de amplia experiencia en programación.
Sin embargo, uno de sus principales inconvenientes es que en programas que requieran un gran número de variables E/S o bucles, la legibilidad puede verse muy comprometida, dificultando así la labor de mantenimiento.
Se trata de un lenguaje de gran utilidad para aplicaciones con funciones aritméticas, lógica combinacional y cálculos sencillos, pero no muy eficaz para lógica secuencial.
¿Qué lenguaje usar ?
La respuesta a esta pregunta no es fácil de formular, puesto que depende de muchos factores. Sin embargo, para tomar una buena decisión es necesario tener en cuenta, al menos, los siguientes puntos:
- El tipo de aplicación y su complejidad.
- El tiempo de implementación del proyecto.
-
- PLC y entorno de programación.
- Aceptación universal del
-
-
La siguiente tabla recoge algunos de los puntos fuertes y débiles de cada lenguaje (aunque quizá de una forma algo subjetiva):
LENGUAJE | PUNTOS FUERTES | PUNTOS DÉBILES |
LD
|
- Popular en el mundo de la automatización. - Funciones binarias y booleanas. - Fácil integración de bloques funcionales estándar. - Programación visual y fácil - Fácil de modificar. |
- Cálculos matemáticos. - Procesamiento de datos (cadena de caracteres, E/S analógicas, rutinas de comunicación). - Bucles e instrucciones de repetición. - Lógica secuencial con gran número de secuencias. - Creación de bloques funcionales de usuario con gran número de variables. |
FBD |
- - Cálculos matemáticos simples. - Procesamiento de datos analógicos. - Fácil integración de bloques funcionales - estándar. - Programación visual y fácil |
- Lógica secuencial con gran número de secuencias. - Bucles e instrucciones de repetición. - Creación de bloques funcionales de usuario con gran número de variables. - Modificación - Seguimiento e interpretación en programas complejos. |
IL
|
- Codificación rápida y simple introducción de datos. - Código - Rápido procesamiento y velocidad de ejecución (ciclos optimizados). - Bucles, instrucciones de repetición y saltos. - Lógica - Representación - |
- Lógica - Cálculos matemáticos y procesamiento de datos. - Difícil seguimiento posterior (interpretación, comprensión y modificación). - Interpretación por usuarios inexpertos. |
ST
|
- Codificación rápida y simple introducción de datos. - Programación estructurada similar a lenguajes de alto nivel de programación de PCs. - Código compacto y buena velocidad de ejecución. - Cálculos matemáticos y procesamiento de datos. - Bucles e instrucciones de repetición. - Fácil de usar y rápida asimilación por nuevos usuarios. - Creación de bloques funcionales de usuario con gran número de variables. - |
- Lógica combinacional con una cantidad significante de variables. - - Carencia de instrucciones de salto. - Peligro de bucles grandes o infinitos (error de perro guardián). - Visualización e interpretación en caso de programas complejos con gran número de variables. - Modificaciones en el programa. |
SFC
|
- Fácil realización de aplicaciones secuenciales y tareas repetitivas. - Representación clara y precisa de las secuencias. - Incorporación de secuencias complejas (ej. GEMMA). - - Documentación de ayuda del proyecto. |
- Difícil introducción de datos y programación (gráficos, acciones, transiciones). - No puede traducirse a otros - No - |
Por último, un gráfico orientativo
Última actualización: 10/06/2015
Me ha aclarado algunas cosas,pero soy mas a un con mi poca experiencia de usar de usar combinación de LD y ST mas que de hacerlo todo con un único lenguaje.
ResponderEliminarTienes un nuevo seguidor. Saludos
gracias
ResponderEliminar