- Introducción
- Breve histórica – Fundamentación
- ¿Que es un PLC?
- Objetivo
- Hardware
- Software
- Programación
- Conclusiones
El documento presenta información pertinente a los Controladores Lógico Programables PLC´s, y su actualidad tecnológica y se compone de 3 (tres) apartes a saber:
1. Breve histórica – Fundamentación.
2. Manejo de software específico.
3. Ejercicios y soluciones.
Con respecto al primer ítem, se dá a conocer notas breves sobre el surgimiento del plc, inicio, evolución histórica, aspectos claves para seleccionarlo y los entes rectores que lo rigen.
En segunda medida se fundamenta y hace gran énfasis en el manejo del software FST 4.10.50, del fabricante FESTO, donde se tocan tópicos de instalación y programación con lenguaje de programación en Listado de Instrucciones y que además servirá como manual de trabajo propio de esta marca de amplia aceptación en la industria nacional e internacional; en próximas publicaciones se trabajará sobre otro fabricante; de hecho es difícil editar un material de este tipo si no se trabaja con equipos reales, los que son nuestra razón de ser, y donde consideramos no existe material técnico lo suficientemente específico y dirigido en este tema, de otra forma que no sean los manuales del fabricante.
En el tercer ítem, nuestro propósito de interés plantea ejercicios con ejemplos reales de aplicación industrial y que son común denominador en los procesos de producción, siguiendo una secuencia progresiva de interpretación en programación y metodología de aproximación inicial en bancos de emulación para luego iniciar su montaje en planta, y motive al lector.
No se pretende reinventar la rueda, de hecho algunas de las soluciones ya existen y son de uso general, pero no se han tenido a mano para algunas personas que han querido incursionar en automatización industrial empleando plc´s, adquiriendo un activo cognitivo de competencia individual, en el elemento de control por excelencia más utilizado en las plantas de producción industrial automatizadas.
Breve histórica – Fundamentación
A partir del año 1968, época en la que se da a conocer el MODICON (Modular Digital Controller) primer modelo sugerido por Dick Morley para la división Hydramatic de la General Motors Corp. en los Estados Unidos, los Controladores Lógico Programables (PLC´s) sin duda alguna mostraron lo que serían las nuevas formas de hacer automatización.
Su propósito inicial no era otro que el de brindar solución a una gran cantidad de inconvenientes que tenían los automatismos clásicos "modernos para su época", basados en componentes electromecánicos o desarrollados con electrónica específica mediante tarjetas, lo que hacía que una máquina o un proceso controlado con esta tecnología difícilmente podría ser modificado o mejorado y para lograr el objetivo que se perseguía había la necesidad de reconstruir toda la ingeniería implementada y adaptar la nueva diseñada.
La tarea de hacer más fácil la labor de operacionalizar modelos de automatización surgidos a partir de estudios de aproximación lógica, la tenía que realizar un aparato que fuese de fácil adaptación a una gran variedad de aplicaciones mediante programación sencilla, que fuera reemplazando los tableros con lógica cableada y la electrónica de tarjetas cerradas, además, debía poseer una construcción robusta pero de fácil instalación y con un mínimo mantenimiento.
"El PLC es un conjunto fascinante de opiniones perfectas que hilan y sirven de orientación en soluciones de automatización y control industrial".
En la ciencia y desarrollos tecnológicos, los últimos descubrimientos anulan a los anteriores, sin duda un postulado infalible que beneficia a los usuarios de esta tecnología, ya que en sus 38 años de existencia el plc no desaparece, ni se vuelve anacrónico y obsoleto; sino que se moderniza y actualiza constantemente, ya que está concebido con una reflexión verdadera y es fuente permanente de investigación y desarrollo de nuevas tecnologías, siendo esta una de las razones y el fundamento de su rápida difusión.
Convencidos de esto y de la enorme importancia que tienen los plc en la evolución de las plantas industriales, se presenta esta información para contribuir en mantener su legado, difundiéndola entre las personas que conocen y desconocen de él facilitando su aprendizaje de una forma simple y eficaz.
La motivación viene dada en parte por las aplicaciones que se han realizado con este tipo de tecnologías de automatización y la cátedra que se ha impartido a estudiantes de pregrado y diplomados donde intervienen personas de la industria colombiana entre los cuales se encuentran técnicos instrumentistas, tecnólogos en mecatrónica, ingenieros mecánicos y de sistemas entre otros, colocando ante ellos un material bibliográfico que complemente las consultas hechas en publicaciones especializadas en esta temática y la información suministrada por fabricantes.
La idea inicial de esta primera publicación es abordar temas introductorios básicos en un lenguaje en particular y que más adelante se producirá material en forma progresiva, generando gradualidad en las competencias cognitivas en plc.
Se plantean ejercicios de aplicación, con ejemplos ilustrados y resueltos, como estrategia pedagógica de aprendizaje.
Se espera que el estudiante apropie los planteamientos, practique y se sensibilice con esta temática.
Primer PLC – año 1968
La NEMA (National Electrical Manufactures Association) tiene la siguiente definición:
Un Controlador Lógico Programable (PLC) es un dispositivo electrónico digital, que utiliza una memoria para almacenar instrucciones e implementar funciones específicas de lógica, secuencia, temporizado, conteo y aritmética para controlar en tiempo real máquinas y procesos.
PLC Crouzet Millenium II
La IEC 61131 lo define:
Un autómata programable (AP) es una máquina electrónica programable diseñada para ser utilizada en un entorno industrial (hostil), que utiliza una memoria programable para el almacenamiento interno de instrucciones orientadas al usuario, para implantar soluciones específicas tales como funciones lógicas, secuencias, temporizaciones, recuentos y funciones aritméticas, con el fin de controlar en tiempo real, mediante entradas – salidas, digitales y analógicas diversos tipos de máquinas ó procesos.
PLC Telemecanique
Esta información tiene como objetivo principal, brindar herramientas básicas, material de ayuda, experiencia práctica e información fundamental para la selección, instalación, programación, aplicación y mantenimiento de Controladores Lógicos Programables [].
Durante el desarrollo, se hará una demostración detallada de cada tarea y luego se dará al estudiante la oportunidad de practicarla.
(Según Caracterización Ocupacional de la Teleinformática – SENA)
Todo o parte de un componente físico en un sistema de procesamiento de información.
Descripción hardware FEC Compact
Conjunto de programas y archivos de datos necesarios para operar con un sistema de computación.
Conjunto de instrucciones que se utilizan para ordenarle al microprocesador incorporado en el plc, lo que deseamos que haga con las unidades funcionales de que se disponen.
Power Supply:
Proporciona las tensiones necesarias para el funcionamiento de los distintos circuitos del sistema.
Gráfico AC/DC
Voltaje AC:110 Vac / 220 Vac Voltaje DC:24 Vdc
Son los voltajes estándar más utilizados.
Puede existir una batería adicional para mantener algunas posiciones internas y del programa usuario cuando falla la tensión o se apaga el plc.
En la actualidad está opción está prácticamente descartada, ya que la memoria del programa está soportada en EEPROM. Programa y parametrización (preselección de los registros de sistema) se mantienen sin necesidad de batería.
Dimensiones FEC Compact
Conexión entradas salidas:
Son los dispositivos físicos mediante la cual se fijan las entradas y salidas físicas del proceso y hacia el proceso.
Bornero de conexión I/O a tornillo
Relación I/O
Dispositivo de comunicación:
Permiten programar el plc mediante protocolos estandarizados a través de un pc u otro equipo, permitiendo monitorear on line los eventos sucedidos.
En consecuencia, el efecto que se va a analizar es la electroluminiscencia de una unión semiconductora P-N, que resulta similar en la mayor parte de sus propiedades, a la de un diodo convencional.
RS-232
Testigos LEDS:
Se energizan para indicar y verificar condiciones de operación, power supply, estados on/off de entradas/salidas, así como también para indicar los modos de operación RUN o PROG o bien los estados de ALARMA o ERROR.
El principio de los diodos luminiscentes o diodos emisores de luz (LED: light emitting diode) consiste en la producción de una radiación luminosa por un elemento de estado sólido cuando se lo somete a una determinada polarización eléctrica; excluyendo los efectos comunes de emisión de luz como consecuencia de la generación de una temperatura elevada (incandescencia).
Montaje:
Facilitan la instalación del equipo en un gabinete ubicado en campo o en cuarto de control.
Figura Nº. 6
Los plc y sus módulos de extensión se pueden montar sobre un riel DIN estándar en un armario eléctrico. La figura Nº. 6 muestra las dimensiones de dicho riel.
Montaje FEC Standard
Descripción hardware FEC Standard
1. Entradas E0.0 hasta E0.7.
2. Power LED (display de tensión).
3. Link/Traffic LED para actividad de red.
5. Conexión de red 10Base T.
6. Interfase de comunicación serial (Com).
7. Interfase de extensión (Ext).
8. Status LED (Run, Stop, Error).
9. Power supply.
10. Salidas A0.0 hasta A0.7.
11. Entradas E1.0 hasta E1.7.
Concreto de instrucciones que un plc puede ejecutar.
El programa se escribe en un lenguaje de programación, aunque también se pueda escribir directamente en lenguaje de máquina, con cierta dificultad. Un programa se puede dividir en diversas partes, que pueden estar escritas en lenguajes distintos.
Programas y algoritmos
Un algoritmo es una secuencia no ambigua, finita y ordenada de instrucciones que han de seguirse para resolver un problema. Un programa normalmente implementa (traduce a un lenguaje de programación concreto) un algoritmo. Puede haber programas que no se ajusten a un algoritmo (pueden no terminar nunca), en cuyo caso se denomina procedimiento a tal programa.
EL NUCLEO DEL PLC:
Todo plc tiene por lo menos un microprocesador. Algunos tienen más de uno, el tópico de rigor es decir que el microprocesador es el cerebro y/o el corazón del sistema, en sentido figurado ya que el procesador ni tan siquiera es inteligente ni piensa, virtud de los seres humanos. El microprocesador hace lo que le dicen que haga, siempre y cuando se le ordene con absoluta precisión.
Si tuviéramos que programar un plc (decirle lo que queremos que haga), programando directamente su microprocesador, deberíamos utilizar el lenguaje específico que determine el fabricante del microprocesador1.
Se llama programación a la creación de un programa de computadora, un conjunto
Este lenguaje es bastante complejo y está orientado al funcionamiento interno del microprocesador, es decir, sus instrucciones no están directamente relacionadas con las entradas, salidas, contadores, temporizadores, etc. de un automatismo.
Esto dificultaría enormemente la programación y solo estaría justificado en casos muy especiales.
Para facilitar la programación del microprocesador que lleva el plc y para utilizar un lenguaje más cercano al automatismo que se pretende operacionalizar, se han creado los lenguajes de programación, más orientados a la aplicación. En este caso, tratándose de controladores lógico programables, el lenguaje está más relacionado con las operaciones propias de un proceso automatizado.
Programación con HMI
LENGUAJES IEC 61131-3
IEC 61131-3: un recurso de programación estándar.
En la actualidad aún siguen persistiendo sistemas de control específicos del fabricante, con programación dependiente y conexión compleja entre distintos sistemas de control.
Esto significa para el usuario costos elevados, escasa flexibilidad y falta de normalización en las soluciones al control industrial.
IEC 61131 es el primer paso en la estandarización de los autómatas programables y sus periféricos, incluyendo los lenguajes de programación que se deben utilizar.
Esta norma se divide en cinco partes:
Parte 1: Vista general.
Parte 2: Hardware.
Parte 3: Lenguaje de programación.
Parte 4: Guías de usuario.
Parte 5: Comunicación.
IEC 61131-3 pretende ser la base real para estandarizar los lenguajes de programación en la automatización industrial, haciendo el trabajo independiente de cualquier compañía.
Hay muchas maneras de describir el trabajo desarrollado en la tercera parte de esta norma, indicaremos algunas de ellas son:
IEC 61131-3 es el resultado del gran esfuerzo realizado por 7 multinacionales a los que se añaden muchos años de experiencia en el campo de la automatización industrial.
Incluye 200 páginas de texto aproximadamente, con más de 60 tablas.
IEC 61131-3 son las especificaciones de la sintaxis y semántica de un lenguaje de programación, incluyendo el modelo de software y la estructura del lenguaje.
Otra visión distinta es dividir el estándar en dos partes: (ver figura Nº. 2):
Elementos comunes.
Lenguajes de programación.
Figura Nº. 2
Elementos Comunes
Este modo, se puede definir por ejemplo un canal de entrada analógica como un tipo de dato.
Variables:
Las variables permiten identificar los objetos de datos cuyos contenidos pueden cambiar, por ejemplo, los datos asociados a entradas, salidas o a la memoria del autómata programable. Una variable se puede declarar como uno de los tipos de datos elementales definidos o como uno de los tipos de datos derivados. De este modo se crea un alto nivel de independencia con el hardware, favoreciendo la reusabilidad del software.
La extensión de las variables está normalmente limitada a la unidad de organización en la cual han sido declaradas como locales. Esto significa que sus nombres pueden ser reutilizados en otras partes sin conflictos, eliminando una frecuente fuente de errores. Si las variables deben tener una extensión global, han de ser declaradas como globales utilizando la palabra reservada VAR_GLOBAL.
Pueden ser asignados parámetros y valores iniciales que se restablecen al inicio, para obtener la configuración inicial correcta.
Configuración, recursos y tareas.
Para entender ésto mejor, vamos a ver el modelo de software, que define IEC 61131-3 (ver figura Nº. 3).
Tipos de datos
Dentro de los elementos comunes, se definen los tipos de datos. Los tipos de datos previenen de errores en una fase inicial, como por ejemplo la división de un dato tipo fecha por un número entero. Los tipos comunes de datos son: variables booleanas, número entero, número real, byte y palabra, pero también fechas, horas del día y cadenas (strings).
Basado en estos tipos de datos, el usuario puede definir sus propios tipos de datos, conocidos como tipos de datos derivados. De
Figura Nº. 3
Al más alto nivel, el elemento software requerido para solucionar un problema de control particular puede ser formulado como una configuración.
Una configuración es específica para un tipo de sistema de control, incluyendo las características del hardware: procesadores, direccionamiento de la memoria para los canales de I/O y otras capacidades del sistema.
Dentro de una configuración, se pueden definir uno o más recursos. Se puede entender el recurso como un procesador capaz de ejecutar programas IEC.
Con un recurso, pueden estar definidas una o más tareas. Las tareas controlan la ejecución de un conjunto de programas y/o bloques de función. Cada una de ellos puede ser ejecutado periódicamente o por una señal de disparo especificada, como el cambio de estado de una variable.
Los programas están diseñados a partir de un diferente número de elementos de software, escrito en algunos de los distintos lenguajes definidos en IEC 61131-3.
Típicamente, un programa es una interacción de Funciones y Bloques Funcionales, con capacidad para intercambiar datos. Funciones y bloques funcionales son las partes básicas de construcción de un programa, que contienen una declaración de datos y variables y un conjunto de instrucciones.
Comparado esto con un PLC convencional, éste contiene un solo recurso, ejecutando una tarea que controla un único programa de manera cíclica. IEC 61131-3 incluye la posibilidad de disponer de estructuras más complejas.
El futuro que incluye multi-procesamiento y gestión de programas por eventos ¡Y no está muy lejos!, observar simplemente las características de los sistemas distribuidos o los sistemas de control de tiempo real. IEC 61131-3 está disponible para un amplio rango de aplicaciones, sin tener que conocer otros lenguajes de programación adicionales.
Unidades de Organización de Programa.
Dentro de IEC 1131-3, los programas, bloques Funcionales y funciones se denominan Unidades de Organización de Programas, POU´s.
Unidades de organización del programa: [POU]
Hay tres tipos de unidades de organización del programa:
El programa principal.
En el programa principal se depositan las operaciones que controlan la aplicación. Las operaciones del programa principal se ejecutan de forma secuencial en cada ciclo de la CPU.
Subrutinas.
Una subrutina comprende un juego opcional de operaciones depositado en un bloque por separado que se ejecuta sólo cuando se llama desde el programa principal, desde una rutina de interrupción, o bien desde otra subrutina.
Rutinas de interrupción.
Una rutina de interrupción comprende un juego opcional de operaciones depositado en un bloque por separado que se ejecuta sólo cuando ocurre el correspondiente evento de interrupción.
Funciones
IEC 61131-3 especifica funciones estándar y funciones definidas por usuario. Las funciones estándar son por ejemplo ADD (suma), ABS (valor absoluto), SQRT (raíz cuadrada), SIN (seno), y COS (coseno). Las funciones definidas por usuario, una vez implementadas pueden ser usadas indefinidamente en cualquier POU.
Las funciones no pueden contener ninguna información de estado interno, es decir, que la invocación de una función con los mismos argumentos (parámetros de entrada) debe suministrar siempre el mismo valor (salida).
Bloques Funcionales, FB´s.
Los bloques funcionales son los equivalentes de los circuitos integrados, IC´s, que representan funciones de control especializadas. Los FB´s contienen tanto datos como instrucciones, y además pueden guardar los valores de las variables (que es una de las diferencias con las funciones). Tienen un interfaz de entradas y salidas bien definido y un código interno oculto, como un circuito integrado o una caja negra. De este modo, establecen una clara separación entre los diferentes niveles de programadores, o el personal de mantenimiento. Un lazo de control de temperatura, PID, es un excelente ejemplo de bloque funcional. Una vez definido, puede ser usado una y otra vez, en el mismo programa, en diferentes programas o en distintos proyectos. Esto lo hace altamente reutilizable.
Los bloques funcionales pueden ser escritos por el usuario en alguno de los lenguajes de la norma IEC, pero también existen FB´s estándar (biestables, detección de flancos, contadores, temporizadores, etc.). Existe la posibilidad de ser llamados múltiples veces creando copias del bloque funcional que se denominan instancias. Cada instancia llevará asociado un identificador y una estructura de datos que contenga sus variables de salida e internas.
Programas
Los programas son "un conjunto lógico de todos los elementos y construcciones del lenguaje de programación que son necesarios para el tratamiento de señal previsto que se requiere para el control de una máquina o proceso mediante el sistema de autómata programable".
Un programa puede contener, aparte de la declaración de tipos de datos, variables y su código interno, distintas instancias de funciones y bloques funcionales.
Gráfico Funcional Secuencial (SFC)
Modelo SFC
SFC describe gráficamente el comportamiento secuencial de un programa de control.
Esta definición deriva de las Redes de Petri y Grafcet (IEC 848), con las modificaciones adecuadas para convertir las representaciones de una norma de documentación en un conjunto de elementos de control de ejecución para una POU de un autómata programable.
SFC ayuda a estructurar la organización interna de un programa, y a descomponer un problema en partes manejables, manteniendo simultáneamente una visión global.
Los elementos del SFC proporcionan un medio para subdividir una POU de un autómata programable en un conjunto de etapas y transiciones interconectadas por medio de enlaces directos.
Cada etapa lleva asociados un conjunto bloques de acción y a cada transición va asociada una condición de transición que cuando se cumple, causa la desactivación de la etapa anterior a la transición y la activación de la siguiente. Los bloques de acción permiten realizar el control del proceso.
Cada elemento puede ser programado en alguno de los lenguajes IEC, incluyéndose el propio SFC. Dado que los elementos del SFC requieren almacenar información, las únicas POU´s que se pueden estructurar utilizando estos elementos son los bloques funcionales y los programas.
Se pueden usar secuencias alternativas y paralelas, comúnmente utilizadas en muchas aplicaciones. Debido a su estructura general, de sencilla comprensión, SFC permite la transmisión de información entre distintas personas con distintos niveles de preparación y responsabilidad dentro de la empresa.
la estructura del sistema de control,
la coordinación con otras personas o departamentos.
Los cuatros lenguajes están interrelacionados y permiten su empleo para resolver conjuntamente un problema común según la experiencia del usuario.
Lenguajes de Programación
Se definen 4 (cuatro) lenguajes de programación normalizados. Esto significa que su sintaxis y semántica ha sido definida, no permitiendo particularidades distintivas (dialectos). Una vez aprendidos se podrá usar una amplia variedad de sistemas basados en esta norma.
Los lenguajes consisten en dos de tipo literal y dos de tipo gráfico:
Literales:
Lista de instrucciones (IL).
Texto estructurado (ST).
Gráficos:
Diagrama de contactos (LD).
Diagrama de bloques funcionales (FBD).
Lenguajes de programación IEC
En la figura superior, los cuatro programas describen la misma acción. La elección del lenguaje de programación depende de:
los conocimientos del programador,
el problema a tratar,
el nivel de descripción del proceso,
El Diagrama de contactos (LD): tiene sus orígenes en los Estados Unidos. Está basado en la presentación gráfica de la lógica de relés.
Lista de Instrucciones (IL): es el modelo de lenguaje ensamblador basado un acumulador simple; procede del alemán ´Anweisungliste, AWL.
El Diagramas de Bloques Funcionales (FBD): es muy común en aplicaciones que implican flujo de información o datos entre componentes de control. Las funciones y bloques funcionales aparecen como circuitos integrados y es ampliamente utilizado en Europa.
El lenguaje Texto estructurado (ST): es un lenguaje de alto nivel con orígenes en el Ada, Pascal y ¨C¨; puede ser utilizado para
codificar expresiones complejas e instrucciones anidadas; este lenguaje dispone de estructuras para bucles (REPEAT-UNTIL; WHILE-DO),
ejecución condicional (IF-THEN-ELSE; CASE), funciones (SQRT, SIN, etc.).
Top-down vs. Bottom-up.
Figura Nº. 5
La norma también permite dos formas de desarrollar un programa de control (ver figura Nº. 5): de arriba a abajo (Top-down) y de abajo a arriba (bottom-up).
Se puede especificar inicialmente la aplicación completa y dividirla en partes, declarar las variables y demás. También es posible comenzar la programación desde abajo, por ejemplo, por medio de funciones y bloque funcionales. Por cualquiera de los caminos que se elija, IEC 61131-3 te ayudará durante todo el proceso.
Implementaciones.
Cumplir todos los requerimientos de la norma IEC 61131-3 no es fácil, por eso se permiten implementaciones parciales en varios aspectos.
Esto hace referencia al número de lenguajes que soportan las herramientas de desarrollo disponibles, y al número de funciones y de bloques funcionales.
Con ello se deja libertad al suministrador, pero el usuario debe tener cuidado durante el proceso de selección de la herramienta adecuada. Incluso una actualización del software puede dar lugar a un nivel muy alto de trabajo durante la implementación.
Muchos entornos de programación IEC actuales ofrecen aquello que se espera a nivel de interface de usuario: uso de ratón, menús desplegables, pantallas de programación gráfica, múltiples ventanas, ayuda en línea, verificación durante el diseño, etc.
Debe hacerse notar que estos detalles no están especificados en la norma por lo que es una de las partes donde los proveedores pueden diferenciarse.
Las implicaciones técnicas de la norma IEC 61131-3 son altas, dejando bastante espacio para el crecimiento y la diferenciación. Esto la hace adecuada para entrar óptimamente en el próximo siglo.
La norma IEC 61131-3 tendrá un gran impacto en el mundo del control industrial y éste no se restringe al mercado convencional de los PLC´s.
Ahora mismo, se pueden ver adoptadas en aplicaciones para control de movimiento, sistemas distribuidos y sistemas de control basados en PC (SoftPLC), incluyendo los paquetes SCADA. Y las áreas de su utilización siguen creciendo.
El uso de IEC 61131-3 proporciona numerosos beneficios para usuarios/programadores. Los beneficios de la adopción de este estándar son varios, dependiendo de las áreas de aplicación: control de procesos, integrador de sistemas, educación, programación, mantenimiento, instalación, etc.
Vamos a nombrar sólo algunos de estos beneficios:
1. Se reduce el gasto en recursos humanos, formación, mantenimiento y consultoría.
2. Evita las fuentes habituales de problemas por el alto nivel de flexibilidad y reusabilidad del software.
3. Las técnicas de programación son utilizables en amplios sectores (control industrial en general).
4. Combinan adecuadamente diferentes elementos que pueden provenir de diferentes fabricantes, programas, proyectos…
5. Incrementa la conectividad y comunicación entre los distintos departamentos y compañías.
El estándar IEC 61131-3 es una realidad en papel. Ahora los usuarios que aprecian los beneficios del estándar deben demandar productos que cubran sus necesidades, de modo que las empresas proveedoras puedan amortizar los gastos de desarrollo de las herramientas adecuadas: ´el problema del huevo y la gallina´.
Para más información, contactar directamente con PLCopen o a través de la World Wide Web.
2. Manejo de Software Específico
IPC FEC CONTROLLERS:
La programación de toda la gama de autómatas FEC (compact – standard e IPC) de FESTO, se realiza por medio de los paquetes de software FST, que pueden funcionar sobre cualquier ordenador personal compatible IBM.
El FST (Festo Software Tool) es una herramienta potente de desarrollo de software para los PLC´s FEC1, que permite realizar todas las funciones de edición de programas, documentos, monitorización, depuración, diagnósticos, parametrizar, etc.
Su cómoda interfase de usuario, por menús de ventanas desplegables, hace de este software una herramienta versátil y de fácil manejo.
Versión FST 4.10.50 actualizada a 2004
Los 2 (dos) lenguajes de programación disponibles actualmente para los PLC´s en el estándar IEC 61131 – 3 son:
Lista de instrucciones:
STL (Statement List) ó AWL (Anweisungsliste).
La metodología de programación por lista de instrucciones, posee instrucciones estructurales que posibilitan la creación de programas directamente en este lenguaje. Puede trabajar en multitarea, es decir con varios programas simultáneamente: 64 (sesenta y cuatro) actualmente. Mediante este lenguaje de programación resulta más fácil utilizar la potencia de las instrucciones del autómata.
Diagrama de contactos:
LD (Ladder Diagram) ó KOP (Kontact Plan).
Programación por diagrama de contactos, es una forma clásica de programar.
Los programas que se desarrollen en alguno de estos 2 (dos) lenguajes de programación son compilados2 por el software FST
La elección de programar en STL ó LD es cuestión de preferencias personales y de observar las facilidades que cada uno de estos programas ofrece:
Cuando se trata de aprovechar los recursos de la multitarea y de los módulos de programación (subrutinas), en general será más ventajoso programar en Listado de instrucciones y es el ideal para los programadores con perfil electrónico que prefieren un lenguaje más afín a la realidad operativa del microprocesador.
Para las personas habituadas a ver el "cableado" del automatismo, representa un
cambio importante el leer instrucciones y asociar su código con el comportamiento de este, se prefiere ver la continuidad del sistema mediante diagrama de contactos, su ventaja estriba en que se ve la continuidad del circuito eléctrico haciendo claridad descriptiva de los enlaces básicos.
Pero el objetivo principal del lenguaje en lista de instrucciones, es el de liberar al programador de los planteamientos gráficos asociados a la programación del autómata y llegar a:
y no como si fuera un simple emulador de un diagrama de contactos eléctricos, y/o una simple caja de compuertas lógicas.
Denominaremos lenguaje de programación de un determinado plc como sigue a continuación:
De forma simplificada y sin tener en cuenta que cada modelo de plc FEC tendrá una cantidad diferente de unidades funcionales, las podríamos representar como emplazadas en el siguiente dibujo.
Distribución de Unidades Funcionales
Cabe considerar que los registros de las entradas IWx y los de las salidas OWx, están enlazados con el exterior, con la máquina que va controlar el plc.
Así cada bit de la palabra de entradas IWx, estaría activo (1) o inactivo (0) en función del estado2 de la entrada asociada correspondiente: botón pulsador, final de carrera, sensor, etc.
El estado de las entradas es indicado en el plc por medio de pilotos leds testigos.
De la misma manera, cada bit de la palabra de salida, está asociado a una salida física, solenoide, piloto, etc.
El estado de las salidas, también es indicado por un led piloto testigo de la acción en el plc.
Hemos citado como unidades funcionales conectadas con el exterior a las entradas y salidas.
Efectivamente son las unidades funcionales más importantes ya que constituyen el enlace entre el plc y el proceso o el automatismo a controlar.
Pero existen otras unidades funcionales importantes, todas ellas bajo el mismo denominador común: son palabras de 16 bits.
Podemos agruparlas en 2 (dos) familias
Registros R (Register)
Registros FW (Flag Word)
Contadores C, CP, CW (Counters).
Temporizadores T, TP, TW (Timers).
A continuación se muestra la cantidad disponible de estos registros.
Los Registros (R): sirven para almacenar valores multibit (solo palabra de 16 bits) no se pueden acceder bit a bit, son útiles cuando las cantidades o códigos requieran más de un bit, tratamiento digital de señales análogas.
¨Mediante máscaras e intersecciones también pueden manipularse los bits de un registro R, pero esta posibilidad es más compleja y se requiere de conocimientos en programación avanzada¨
Los Flag Word (FW): sirven para almacenar valores multibit y se pueden interrogar bit a bit (como las entradas o las salidas), mediante instrucciones directas se puede saber el estado de un bit cualquiera de un FW. Se pueden manipular sus estados; activarlo (ponerlo a ¨1¨) o desactivarlo (ponerlo a ¨0¨).
Los FW, cuyos bits individuales reciben el nombre de flags (banderas o marcas) son muy útiles en programación.
En su manipulación bit a bit, sirven para almacenar información de tipo binario si/no, también para ¨recordar¨ o ¨anotar¨ sucesos que solamente pueden tener 2 (dos) posibilidades: ha sucedido/no ha sucedido, ha pasado pieza/no ha pasado pieza, máquina en marcha/maquina parada, sensor on/sensor off, baliza encendida/baliza apagada, etc.
Es conveniente reservar los FW para almacenar aquella información que precise ser manipulada bit a bit.
La programación consiste básicamente en establecer relaciones e interacciones entre unidades funcionales. Estas relaciones, naturalmente, responden a las exigencias del automatismo o del proceso que se quiera controlar.
Para darle a entender al autómata estas relaciones, se emplean las instrucciones disponibles.
Estas instrucciones, en AWL – FESTO, se agrupan en frases, las frases en etapas, y las etapas en programas.
Veamos en un primer nivel, que es una frase. La frase constituye el núcleo básico del lenguaje de programación AWL – FESTO.
Tiene la siguiente estructura:
En donde la < condición > se establece mediante:
Instrucciones de enlace lógico AND,OR, EXOR y NOT, entre las unidades funcionales monobit disponibles.
Operaciones aritméticas y de comparación:
[ + – * / = > < ] entre las unidades funcionales multibit disponibles.
La ejecución o realiza lo siguiente:
Instrucciones de activación y desactivación SET RESET sobre las unidades funcionales monobit1 disponibles.
Operaciones aritméticas (+ – * /) y de asignación LOAD TO sobre unidades funcionales multibit.
Instrucciones típicas de programación, tales como saltos JMP TO, de operación nula NOP, de llamadas a módulos de programa (subrutinas) CMP o a módulos de función CFM.
Instrucciones de movimiento de bits INC, DEC, SWAP, SHL, SHR, ROL, ROR, INV, CPL, BID y DEB en las unidades funcionales multibit.
La utilización de frases, sin emplear el nivel de STEP (PASO), permite realizar programas de ciclo abierto, también denominados programas paralelos.
Es evidente que si se ha planteado manualmente un programa fuente con cualquier método gráfico (logigramas o diagrama de bloques funcionales, diagrama de contactos, texto estructurado y SFC), podrán escribirse directamente las frases que correspondan a cada enlace lógico u operación.
Observemos a continuación las frases básicas de enlaces lógicos.
Copiar el estado de una entrada en una salida, (enlace directo).
Es la operación más simple que puede realizar un plc. Se trata de mantener activa una determinada salida (O0.0), mientras esté activa una determinada entrada (I0.0).
¨Se podría llegar a pensar que para hacer solamente lo anterior, no se necesitaría un plc; ya que con solo conectar directamente la entrada a la salida, sin pasar por el plc pero aquí lo que nos interesa es el concepto¨
La lista de instrucciones correspondiente, sería: IF (cuando) la entrada I0.0, THEN (entonces) SET (activar) salida O0.0, OTHERWISE (sino o de otra manera) RESET (desactivar) la salida O0.0.
Otra forma:
ser monobit o multibit, siendo de mayor jerarquía la función AND. El paréntesis puede modificar las jerarquías.
Se denomina función lógica o booleana a aquella función matemática cuyas variables son binarias y están unidas mediante los operadores del álgebra de Boole suma lógica (+), producto lógico (·) o negación(').
Función lógica OR.
Dicha función se implementa con un mínimo de 2 (dos) unidades funcionales, que puede ser monobit o multibit.
Función lógica AND.
Dicha función se implementa con un mínimo de 2 (dos) unidades funcionales, que puede ser monobit o multibit.
Combinaciones AND/OR.
En las combinaciones serie – paralelo, primero se realizan las series que existan y a continuación se realizan los paralelos. Es decir, la función lógica AND tiene mayor jerarquía que la función OR.
Autor:
Fernando Ballén.