Autómatas Programables Los propietarios del © tiene reservados todos los derechos. Cualquier reproducción, total o parcial de este texto, por cualquier medio, o soporte sonoro, visual o informático, así como su utilización fuera del ámbito estricto de la información del alumno comprador, sin la conformidad expresa por escrito de los propietarios de los derechos, será perseguida con todo el rigor que prevé la ley y se exigirán las responsabilidades civiles y penales, así como las reparaciones procedentes. Autómatas Programables Autor: SEAS, Estudios Superiores Abiertos S.A. Imprime: El depositario, con autorización expresa de SEAS, S.A. ISBN: 978-84-15545-46-0 Depósito Legal: Z-740-2012 ÍNDICE ASIGNATURA UNIDAD 1. INTRODUCCIÓN A LA AUTOMATIZACIÓN 1.1. Introducción a la automatización de procesos industriales 1.1.1. Definición de autómata programable 1.2. Objetivos de la automatización industrial 1.3. Las funciones de la automatización 1.4. Niveles de automatización 1.5. Tipos de procesos industriales 1.5.1. Procesos continuos 1.5.2. Procesos discretos 1.6. Estructura de los sistemas automatizados 1.7. Descripción del funcionamiento de un automatismo 1.8. Campos de empleo de las distintas tecnologías Autómatas Programables 1 UNIDAD 2. ELEMENTOS DE UN SISTEMA AUTOMATIZADO 2.1. Sensores y captadores 2.1.1. Sensores táctiles 2.1.2. Sensores de proximidad 2.2. Accionadores y preaccionadores 2.2.1. Accionadores 2.2.2. Preaccionadores 2.3. Elementos de diálogo hombre-máquina 2.3.1. Pulsadores 2.3.2. Selectores manuales 2.3.3. Pilotos 2.3.4. Visualizadores 2.3.5. Paneles de operador UNIDAD 3. ESTRUCTURA DEL AUTÓMATA PROGRAMABLE 3.1. Conceptos básicos 3.1.1. El interruptor como bit (unidad elemental de información) 3.1.2. El interruptor como parte de una instrucción u orden 3.2. Transición de la lógica cableada a la lógica programada 3.2.1. La lógica cableada 3.2.2. Traducción de circuitos eléctricos en listas de instrucciones en castellano 3.2.3. La lógica programable 3.3. Partes y funcionamiento de un autómata programable 3.3.1. Estructura externa 3.3.2. Estructura interna Autómatas Programables 2 UNIDAD 4. CONCEPTOS DE PROGRAMACIÓN 4.1. Escritura de un programa 4.2. Formas de representación de un programa 4.2.1. Lista de instrucciones 4.2.2. Esquema de funciones 4.2.3. Esquema de contactos 4.3. Estructura del programa 4.3.1. Programación lineal 4.3.2. Programación estructurada 4.4. Objetos de programación 4.4.1. Entradas digitales 4.4.2. Salidas digitales 4.4.3. Marcas 4.4.4. Temporizadores 4.4.5. Contadores 4.4.6. Entradas/salidas analógicas 4.5. Operaciones básicas 4.5.1. Operaciones combinacionales 4.5.2. Elementos biestables 4.5.3. Temporizadores 4.5.4. Contadores 4.5.5. Operaciones de carga y transferencia 4.5.6. Operaciones aritméticas y de comparación UNIDAD 5. EL HARDWARE DEL S7-300 5.1. Características generales 5.1.1. Estructura de un s7-300 5.2. Montaje 5.2.1. Disposición de elementos en único bastidor 5.2.2. Disposición de los módulos en varios bastidores 5.2.3. Montaje de los módulos en el perfil soporte 5.3. Direccionamento 5.4. Configuración del software 5.4.1. CPU 314 IFM 5.4.2. Configuración de hardware mediante step-7 Autómatas Programables 3 UNIDAD 6. EL PAQUETE DE PROGRMACIÓN STEP-7 6.1. Instalación del software y autorización 6.1.1. Instalación del step-7 6.1.2. Instalación de autorización 6.2. El administrador simatic 6.2.1. Crear un proyecto nuevo con el asistente 6.2.2. Estructura del proyecto en el administrador simatic 6.3. El editor de programas de step-7 6.3.1. Las barras de herramientas 6.3.2. Tablas de símbolos 6.3.3. El editor de programas en contactos 6.3.4. Función observar 6.3.5. Función cargar UNIDAD 7. EL SIMULADOR PLCSIM 7.1. La instalación del software 7.2. Los primeros pasos con la aplicación 7.3. Descripción de los menús 7.3.1. Menú simulación 7.3.2. Menú edición 7.3.3. Menú insertar 7.3.4. Menú PLC 7.3.5. Menú ejecutar 7.3.6. Menú ver 7.3.7. Menú herramientas Autómatas Programables 4 UNIDAD 8. PROGRAMACIÓN DEL AUTÓMATA PROGRAMABLE (I) 8.1. Consideraciones iniciales 8.1.1. ¿Cómo interpretamos en nuestro programa una entrada, salida o marca 8.1.2. Operandos byte, palabra y doble palabra 8.1.3. El acumulador (accu) 8.1.4. Imagen de proceso de entradas (pae) y de salidas (PAA) 8.1.5. El RLO 8.2. Operaciones combinacionales 8.2.1. Operación U (AND) 8.2.2. Operación UN (AND con entradas negadas) 8.2.3. Operación O (OR) 8.2.4. Operación on (or con entradas negadas) 8.2.5. Operación O sin operando 8.2.6. Operación U( 8.2.7. Operación o( 8.3. Operaciones set y reset 8.3.1. La operación S (SET) 8.3.2. La operación R (RESET) 8.3.3. La importancia del orden en que colocamos las instrucciones 8.4. Temporizadores 8.4.1. Carga del tiempo del temporizador 8.4.2. Tipos de temporizaciones 8.5. Contadores 8.5.1. ¿Cómo cargar el valor de un contador? 8.5.2. Operaciones de contaje Autómatas Programables 5 UNIDAD 9. PROGRAMACIÓN DEL AUTÓMATA (II) 9.1. Operaciones de carga y transferencia 9.1.1. Operación L: cargar 9.1.2. Operación T: transferir 9.1.3. Operaciones de carga con operandos constantes 9.2. Entradas-salidas analógicas 9.3. Operaciones de comparación 9.3.1. Operaciones de comparación 9.3.2. Operación ==I: comparación respecto a igualdad 9.3.3. Operación <>I: comparación respecto a desigualdad 9.3.4. Operación >I: comparación respecto a superioridad 9.3.5. Operación >=I: comparación respecto a superioridad o igualdad 9.3.6. Operación <=I: comparación respecto a inferioridad o igualdad 9.4. Operaciones aritméticas 9.4.1. Operación +I: sumar 9.4.2. Operación -I: restar 9.4.3. Operación *I: multiplicar 9.4.4. Operación /I: dividir UNIDAD 10. PROGRAMACIÓN DEL AUTÓMATA (III) 10.1. Áreas de memoria de la CPU 10.2. Imagen del proceso 10.3. Ciclo de ejecución del programa del autómata 10.4. Bloques del programa de usuario 10.4.1. Bloques de organización 10.4.2. Bloques de organización para la ejecución cíclica del programa (OB1) 10.5. Definir bloques lógicos 10.6. Funciones (FC) 10.6.1. Llamada a una función 10.6.2. Entrada (EN) y salida (ENO) Autómatas Programables 6 01 Autómatas Programables Introducción a la automatización Autómatas Programables 01 • Índice • OBJETIVOS .......................................................................................................... 3 • INTRODUCCIÓN .................................................................................................. 4 1.1. Introducción a la automatización de procesos industriales ................... 5 1.1.1. Definición de autómata programable .................................................... 5 1.2. Objetivos de la automatización industrial ................................................ 7 1.3. Las funciones de la automatización .......................................................... 8 1.4. Niveles de automatización ....................................................................... 10 1.5. Tipos de procesos industriales ............................................................... 12 1.5.1. Procesos continuos ............................................................................. 12 1.5.2. Procesos discretos .............................................................................. 13 1.6. Estructura de los sistemas automatizados ............................................ 15 1.7. Descripción del funcionamiento de un automatismo ............................ 17 1.8. Campos de empleo de las distintas tecnologías ................................... 20 • RESUMEN .......................................................................................................... 21 Introducción a la automatización 1 Autómatas Programables 01 • Objetivos • Justificar la automatización mediante los objetivos que persigue. • Aclarar las funciones, grados y niveles de automatización. • Clasificar los tipos de procesos industriales. • Desglosar los sistemas automatizados en las partes que lo constituyen. • Describir y definir las diferentes tecnologías usadas para la realización de automatismos. Introducción a la automatización 3 Formación Abierta • Introducción El fin primordial del autómata programable es sin duda la automatización de un proceso, cualquiera que sea éste. Será necesario pues, que contemos con los conocimientos indispensables para abordar el tema. El tema de autómatas programables es muy extenso y complejo ya que se pueden realizar aplicaciones del más alto nivel. Sin embargo, abordaremos los temas con el fin de dar los pasos adecuados para ir entrando en este mundo tan apasionante. No pretendemos alcanzar un nivel que no logremos entender bien, si no todo lo contrario, ir con pasos adecuados para avanzar sin inconvenientes. Lo que veremos aquí es aplicable a todo tipo de automatismo, desde el más elemental hasta aplicaciones totalmente programadas. 4 Introducción a la automatización Autómatas Programables 01 1.1. Introducción a la automatización de procesos industriales No hace falta irse muy lejos para centrar el tema que nos ocupa. Si buscamos en un diccionario los siguientes términos, encontraremos definiciones como las que aparecen a continuación: Automatización Conjunto de procedimientos que tienden a reducir o suprimir la intervención humana en los procesos de producción. Automática Ciencia que trata de sustituir en un proceso el operador humano por dispositivos mecánicos o electrónicos. Automatizar Aplicar la automática a un proceso, a un dispositivo, etc. Automatismo Dispositivo cuyo funcionamiento intervención del hombre. no requiere la Está claro pues, que la automatización pretende liberar al hombre de la realización de procesos mentales o físicos, en la medida de lo posible. Y decimos liberar porque la automatización pretendió desde el principio evitar al hombre trabajos rutinarios y monótonos o aquellos en los que se requerían grandes esfuerzos físicos. En esencia, aquellos procesos que resultaban más penosos para nosotros. 1.1.1. Definición de autómata programable El autómata programable (también llamado PLC, siglas en inglés de Programable Logic Controler que traducido es Controlador Lógico Programable) es el equipo que en un sistema automático nos permite elaborar y modificar las funciones que tradicionalmente se han realizado con relés, contactores, temporizadores, etc. En otras palabras, un autómata programable es un equipo electrónico utilizado para “controlar automáticamente”, a través de secuencias lógicas, máquinas y equipos. Basan su funcionamiento en las técnicas digitales con microprocesadores, empleando una estructura similar a la de un ordenador doméstico. Introducción a la automatización 5 Formación Abierta Según IEC 61131 (Comisión Internacional Electrotecnia), un autómata programable (AP) es un sistema electrónico programable diseñado para ser utilizado en un entorno industrial, que utiliza una memoria programable para el almacenamiento interno de instrucciones orientadas al usuario, para implantar unas soluciones específicas tales como funciones lógicas, secuencia, temporización, recuento y funciones aritméticas con el fin de controlar mediante entradas y salidas, digitales y analógicas, diversos tipos de máquinas o procesos. Figura 1.1. 6 Fotografía de un autómata programable de la familia Siemens. Introducción a la automatización Autómatas Programables 1.2. Objetivos industrial de la 01 automatización Los procesos industriales están cada vez más automatizados. Esta tendencia está justificada por los propios objetivos que persigue la automatización. Podemos reunirlos en los siguientes: • Competitividad: exige la búsqueda de costes más bajos para el producto, por medio de la reducción de los gastos de mano de obra, ahorro de material, economización de energía, etc. • Seguridad: la supresión de los trabajos peligrosos o pesados por parte del hombre, permite la mejora de las condiciones de trabajo y el ennoblecimiento del mismo. • Calidad: “Errar es humano”. Al limitar el factor humano en la realización del producto, conseguiremos un mejor acabado para el mismo y una calidad relativamente constante. • Evitar las limitaciones humanas: realizando controlar intelectual o manualmente. • Disponibilidad del producto: mejorando la disponibilidad de los productos, pudiendo proveer las cantidades necesarias en el momento preciso. • Flexibilidad de la herramienta: significa, poder modificar de forma sencilla y rápida los medios de los que disponemos para la fabricación de distintos productos o para modificar el proceso de elaboración. operaciones imposibles de Introducción a la automatización 7 Formación Abierta 1.3. Las funciones de la automatización Supongamos un proceso sin automatizar en el que una persona recoge las cajas que le entrega el puesto anterior cuando le avisan. Según el tamaño de estas cajas, pequeñas o grandes, deberá pintarlas de un color u otro (rojo para las grandes y verde para las pequeñas). Para realizar este trabajo, la persona debe pasar por tres etapas, a saber: 1. Adquisición de datos: el operario deberá identificar sensorialmente (con el sentido de la vista o el del tacto, por ejemplo), si se trata de una caja grande o pequeña. 2. Tratamiento de los datos: una vez determinado el tamaño de la caja, deberá decidir (proceso mental) si la pinta de rojo (caja grande) o si por el contrario debe ser pintada de verde (caja pequeña), en función de las instrucciones que le hayan dado. 3. Ejecución de lo decidido: cuando ya haya decidido lo que debe realizar, pasará a la acción cogiendo la brocha y pintura adecuada (trabajo manual). Al terminar de pintar la caja esperará a que vuelvan a avisarle de la llegada de una nueva caja. Según todo esto, la labor de este operario engloba la adquisición de datos, el tratamiento de los mismos, y la ejecución de lo decidido. Pintado de caja en rojo Tratamiento de datos (Toma de decisiones) Adquisición de datos Pintado de caja en verde Figura 1.2. 8 Toma de decisiones y discriminación de color. Introducción a la automatización Autómatas Programables 01 Si nos planteáramos automatizar totalmente este proceso, deberíamos cubrir las mismas funciones que tenía encomendadas el operario. Por lo tanto, las funciones de la automatización son las siguientes: Adquirir datos con algún tipo de sensor, de forma que sepa “discriminar” el tipo de caja que tiene en ese momento (caja grande o pequeña) Tratar o procesar los datos adquiridos con algo que tenga algún poder de decisión, en base a una herramienta programada que contenga los casos posibles del proceso productivo. Ejecutar lo decidido mediante algún actuador que sea capaz de sustituir el trabajo manual, de forma que se pinte la caja con el color adecuado dependiendo de la información de entrada. Introducción a la automatización 9 Formación Abierta 1.4. Niveles de automatización La automatización existente en una empresa o fábrica puede abarcar distintos niveles. Nosotros los hemos clasificado de la siguiente forma: Figura 1.3. Niveles de automatización. Nivel 1 Automatización de una máquina sencilla o parte de una máquina. El proceso necesitará de la utilización de un equipo de “gama baja” en el que se procesarán pocas señales de entrada y de salida. Por ejemplo pequeños autómatas modulares. Nivel 2 Automatización de un conjunto de máquinas sencillas o de una máquina más compleja. El proceso constará de varios equipos de “gama baja” interconectados entre sí o de un equipo de “gama media” (que puede gestionar mayor número de entradas / salidas). La utilización de una configuración u otra dependerá principalmente de las necesidades del proyecto en sí y del coste de inversión. 10 Introducción a la automatización Autómatas Programables 01 Nivel 3 Automatización de un proceso de producción completo. En este caso estamos tratando ya un problema complejo en el que además de automatizar el proceso de fabricación se requieren datos del estado del mismo (supervisión del sistema). De esta forma utilizaremos equipos de “gama media o alta” y equipos de intercambio de información hombre-máquina. Nivel 4 Es el nivel de automatización llamado de “gestión integrada”, en el que se pretende efectuar la unión entre la producción y la gestión de la empresa. En este caso se utilizarán equipos de “gama media o alta” interconectados entre sí y equipos de supervisión de donde se obtendrán datos de productividad, almacén, pedidos, facturación, etc. Autómata gama alta Autómata gama media PC Autómata gama media Figura 1.4. Supervisión Generación de informes Ejemplo de automatización de nivel 4. Introducción a la automatización 11 Formación Abierta 1.5. Tipos de procesos industriales Los procesos industriales pueden ser de dos tipos básicos, en función de su evolución con el tiempo. Estos dos tipos básicos son: los procesos continuos y los procesos discretos. Los primeros se suelen tratar con disciplinas como la regulación y los servomecanismos; mientras que los discretos, son los que tradicionalmente han venido tratando la automatización Industrial clásica. Sin embargo, dado que cada vez contamos con elementos de control más potentes, no debemos olvidarnos de los procesos continuos. Actualmente, muchos autómatas cuentan con reguladores PID integrados que nos permiten regular de forma muy fina la velocidad de un motor asíncrono por ejemplo. Los controladores PID (Proporcional Integral Derivativo) son los tipos de dispositivos de electrónica de control cuya tecnología intenta mantener su salida en un nivel predeterminado. Se utiliza en aplicaciones tales como control de presión, flujo, química, fuerza, velocidad y otras variables. Además es utilizado en reguladores de velocidad de automóviles. Queremos hacer notar además, que, cualquier proceso industrial podrá ser continuo, discreto o una mezcla de ambos. 1.5.1. Procesos continuos En los procesos continuos, los valores del proceso se recogen continuamente para poder compararlos con el valor de referencia o consigna, y variar las salidas del proceso también de forma continua. En un aparato de aire acondicionado, el sistema de control recibe continuamente el valor de la temperatura de la habitación para compararlo con el valor que nosotros deseamos, y obrar en consecuencia. 12 Introducción a la automatización Autómatas Programables 01 Características de los sistemas continuos Todos los valores del proceso son función de un tiempo continuo t. El valor de proceso no será igual ahora, que dentro de cinco minutos, aún sin haber tocado nada, o sin haber introducido ningún tipo de consigna. Las variables empleadas en el proceso y el sistema de control son de tipo analógico, por ejemplo presiones de temperaturas, volumen, etc. La temperatura de un proceso pueden tomar infinitos valores (22º, 22.1º, 22º...). Temperatura de referencia deseada Sistema de control de temperatura Figura 1.5. 1.5.2. Temperatura controlada Esquema de sistema de control de temperatura. Procesos discretos En los procesos discretos, la recogida de valores del proceso sólo se efectúa en instantes muy puntuales. En el circuito de marcha - paro, el sistema de control tan solo se interesa por los valores del proceso cuando cambian las consignas del operario, es decir, cuando pulsamos el botón de marcha o el de paro. Introducción a la automatización 13 Formación Abierta Características de los procesos discretos Los valores de proceso son conocidos por el sistema de control sólo en instantes discretos (determinados) de tiempo. Las variables empleadas en el proceso y el sistema de control son de tipo todo nada (activado o desactivado, conectado o desconectado, 1 ó 0...) Figura 1.6. Ejemplo de proceso discreto (marcha paro de un motor). Cuando encadenamos varios procesos discretos uno detrás de otro, de forma que la ejecución del siguiente depende de si ha concluido ya el anterior, hablamos de “procesos por lotes” (o en ingles batch). 14 Introducción a la automatización Autómatas Programables 1.6. Estructura de automatizados los 01 sistemas Podemos desglosar los sistemas automatizados en dos partes bien diferenciadas, la Parte Operativa (P.O.), y la Parte de Mando (P.M.). Máquina A Sensores Parte operativa Parte de mando Actuadores Operario Sensores Parte operativa Parte de mando Actuadores Máquina B Figura 1.7. Figura 1.6. Estructura de los sistemas automatizados. Parte Operativa Engloba la parte del sistema que opera sobre la máquina y el producto. En general comprende lo siguiente: Útiles y medios diversos que se aplican en el proceso de fabricación como pueden ser moldes, útiles de estampar, herramientas de corte, bombas, prensas, etc. Accionadores destinados a mover el proceso automatizado, como un motor eléctrico para accionar una bomba, un cilindro hidráulico para cerrar un molde, etc. Parte de Mando Como su propio nombre indica, es la que manda o envía las órdenes hacia la Parte Operativa y recibe las señales de retorno para coordinar sus acciones (si se trata de un control en lazo cerrado). Introducción a la automatización 15 Formación Abierta La Parte de Mando puede recibir o enviar información (comunicarse) con tres posibles interlocutores: 1. Con la Parte Operativa de la máquina o proceso que controla: Recibe información de la máquina o proceso mediante los captadores o sensores (finales de carrera, detectores de nivel, de proximidad, etc.) Envía información a los accionadores (motores, cilindros, etc.) por medio de los preaccionadores (contactores, electroválvulas, etc.). 2. Con la persona que está al cargo de la máquina o proceso: Recibe información del operario en forma de consignas o instrucciones para la ejecución del proceso de una forma u otra, para el ajuste del proceso o máquina, para su reparación, etc. Envía información al operario de la situación o estado del proceso mediante indicadores luminosos, sonoros, de panel, etc. 3. Con la Parte de Mando de otras máquinas o procesos: Cuando varias máquinas cooperan en una misma producción, la coordinación entre todas ellas debe realizarse mediante la comunicación entre las Partes de Mando de las mismas. 16 Introducción a la automatización Autómatas Programables 01 1.7. Descripción del funcionamiento de un automatismo Cuando nos enfrentamos a la automatización de un proceso, debemos conseguir realizar una descripción de la estructura del mismo de la forma más clara posible. Si lo conseguimos, la realización, explotación, mantenimiento o reparación del mismo, siempre será mucho más sencilla. Cuando el cliente nos pide la automatización de un proceso es muy probable que lo haga mediante un lenguaje corriente: • Quiero que cuando la pieza que va sobre la cinta transportadora llegue a… Después de prestar atención a todas sus indicaciones y ponerlas en común con el cliente, será trabajo nuestro el desarrollar todo lo pedido hasta el más bajo nivel, teniendo en cuenta cómo y cuándo deben trabajar los actuadores y captadores para plasmarlo sobre papel de una forma clara. Si hablamos de automatismos sencillos, la descripción literal del funcionamiento quizá pudiera bastar, junto con algún esquema o diagrama, pero cuando los procesos comienzan a ser más complejos, tenemos que buscar métodos gráficos que nos permitan trabajar más fácilmente. Los métodos de los que disponemos para desarrollar estas especificaciones son los diagramas de contactos, representación mediante funciones lógicas, los organigramas o flujogramas, cronogramas o diagramas de tiempo, el Grafcet, etc. Ejemplos de diagramas de contactos y funciones lógicas Introducción a la automatización 17 Formación Abierta Ejemplo de organigrama Inicio SÍ ¿Funciona? NO SÍ NO ¿Lo has tocado? ¡ No lo toques! SÍ ¿Lo sabe alguien? NO ¿Puedes culpar a otro? Ocúltalo SÍ Ningún problema Fin Ejemplo de cronograma 18 Introducción a la automatización ¿Te traerá problemas? NO NO Tíralo Justificable con palabrejos técnicos incomprensibles Autómatas Programables 01 Ejemplo de Grafcet. Desarrollo de etapas o acciones de un proceso productivo GRAFCET NIVEL Grafcet Nivel 1 1 NO HAY FALLO Sistema OK Ok Sistema EE 00 FALLO PULSADOR MARCHA Y NO FALLO Arrancar ARRANCAR EE 11 MOTOR motorA A FALLO ARRANCAR temporización Arrancar TEMPORIZACIÓN T1 5sg T 5sg 1 5sg T 1 Y NO FALLO Arrancar ARRANCAR EE 22 MOTOR motorB B FALLO ARRANCAR Arrancar temporización TEMPORIZACIÓN T2 5sg T 5sg 2 5sg T 2 Y NO FALLO ARRANCAR Arrancar motor C MOTOR C EE 33 FALLO PULSADOR PARO Y NO FALLO ARRANCAR Arrancar temporización TEMPORIZACIÓN 5sg T T 5sg 3 EE 44 FALLO 3 5sg T 3 Y NO FALLO Parar PARAR EE 55 MOTOR motorAA FALLO ARRANCAR Arrancar temporización TEMPORIZACIÓN T 5 5sg T 5sg 4 5sg T 4 Y NO FALLO Parar ARRANCAR EE 66 MOTOR motorBB FALLO ARRANCAR Arrancar temporización TEMPORIZACIÓN T 5 5sg T 5sg 5 5sg T EE 77 FALLO 5 Y NO FALLO PARAR Parar motor C MOTOR C MOTOR PARADO Y NO FALLO EE 88 Parar Motor A Parar Motor B Parar Motor C Parar temporización T1,T2,T3,T4,T5 NO FALLO Introducción a la automatización 19 Formación Abierta 1.8. Campos de empleo de las distintas tecnologías Tecnologías cableadas Los relés electromagnéticos siguen siendo muy utilizados en aquellos automatismos muy sencillos, ya que pueden trabajar directamente con tensiones de la red, y el coste de material e instalación en estos casos no justifica el uso de otros métodos. El mando neumático, es sumamente atractivo en las máquinas de producción equipadas con cilindros neumáticos. Placas electrónicas El uso de estas tarjetas queda relegado a los automatismos que pueden realizarse en serie, por el gran volumen de producción. Como ya comentamos, están diseñadas para dar solución a un problema muy concreto. Ordenadores industriales Si bien la adquisición de datos, control y monitorización de procesos mediante ordenador está dando grandes avances, el empleo de los mismos, se encuentra reducido, en la actualidad, a las aplicaciones cercanas a la gestión que requieren grandes volúmenes de programas o de datos. Cada vez es más frecuente encontrar al ordenador como “maestro” en un nivel superior al de los autómatas programables. Autómatas programables Se requiere su uso tan pronto como el automatismo se vuelve excesivamente complejo, o exige una gran flexibilidad y capacidad de evolución, circunstancias cada vez más frecuentes. 20 Introducción a la automatización Autómatas Programables 01 • Resumen • • • • • • • • La automatización tiende a reducir la intervención humana en los procesos de producción. Los objetivos que persigue la automatización son: ser más competitivos, la seguridad, la calidad, evitar limitaciones humanas, la disponibilidad del producto y la flexibilidad. Las funciones de la automatización son: la adquisición de datos, el tratamiento de los mismos y la ejecución de decisiones. Los procesos industriales pueden ser continuos, discretos o una mezcla de ambos. Un sistema automatizado consta de parte operativa (P.O.) y parte de mando (P.M.). Los elementos de un sistema automatizado son: accionadores y preaccionadores, captadores o sensores, elementos de procesamiento, elementos de diálogo hombre-máquina, elementos de comunicación entre máquinas. Para describir y documentar un automatismo usaremos diagramas de contactos, de funciones lógicas, organigramas, cronogramas, el Grafcet. Dependiendo de las necesidades del proceso a desarrollar, emplearemos tecnologías cableadas, placas electrónicas, ordenadores industriales o autómatas programables. Introducción a la automatización 21 02 Autómatas Programables Elementos de un sistema automatizado Automatas Programables 02 • Índice • OBJETIVOS .......................................................................................................... 3 • INTRODUCCIÓN .................................................................................................. 4 2.1. Sensores y captadores ............................................................................... 5 2.1.1. Sensores táctiles ................................................................................... 7 2.1.1.1. Termostatos .................................................................................... 9 2.1.1.2. Presostatos y vacuostatos .............................................................. 9 2.1.2. Sensores de proximidad ..................................................................... 11 2.1.2.1. Sensores de proximidad magnéticos............................................ 14 2.1.2.2. Sensores de proximidad inductivos .............................................. 15 2.1.2.3. Sensores de proximidad capacitivos ............................................ 17 2.1.2.4. Sensores ópticos o fotosensores.................................................. 20 2.1.2.5. Sensores de ultrasonidos ............................................................. 24 2.2. Accionadores y preaccionadores ............................................................ 27 2.2.1. Accionadores ...................................................................................... 27 2.2.1.1. Eléctricos ...................................................................................... 27 2.2.1.2. Neumáticos ................................................................................... 28 2.2.1.3. Hidráulicos .................................................................................... 28 2.2.2. Preaccionadores ................................................................................. 29 2.2.2.1. Eléctricos ...................................................................................... 29 2.2.2.2. Neumáticos ................................................................................... 32 2.2.2.3. Hidráulicos .................................................................................... 33 2.3. Elementos de diálogo hombre-máquina ................................................. 34 2.3.1. Pulsadores .......................................................................................... 34 2.3.2. Selectores manuales ........................................................................... 35 2.3.3. Pilotos ................................................................................................. 35 2.3.4. Visualizadores ..................................................................................... 36 2.3.5. Paneles de operador ........................................................................... 36 • RESUMEN .......................................................................................................... 39 Elementos de un sistema automatizado 1 Automatas Programables 02 • Objetivos • Conocer los detectores de señal más comunes: pulsadores, interruptores, presostatos, termostatos, etc. • Describir los sensores utilizados en la industria asiduamente: magnéticos, inductivos, capacitivos, ópticos y otros de sumo interés. • Conocer los distintos accionadores y preaccionadores existentes en el mercado. • Conocer los dispositivos hombre-máquina que se pueden utilizar en un sistema automatizado. Elementos de un sistema automatizado 3 Formación Abierta • Introducción Hasta ahora hemos visto los procesos industriales de automatización. Dentro de estos se encuentran, como es evidente, los distintos elementos que coordinados entre sí hacen que el proceso automático funcione. En el caso de los autómatas programables, dichos elementos están conectados en las entradas y salidas de los mismos. En las salidas pueden ir conectados los contactores, (que intentaremos describir en sus datos más relevantes de cara a su buen funcionamiento), las electroválvulas y por supuesto el hermano pequeño: el relé auxiliar, entre otros. En las entradas conectaremos los pulsadores, con o sin enclavamiento mecánico, presostatos, termostatos y ¡cómo no!, sensores de tipo magnético, inductivo, capacitivo, óptico, etc. Nuestras salidas se conectarán a los distintos accionadores o preaccionadores, como son pilotos, réles, contactores, etc. Por su importancia de cara al buen funcionamiento de todo el proceso automático general, es evidente que necesitamos conocer los elementos que se describen en el presente tema. 4 Elementos de un sistema automatizado Automatas Programables 02 2.1. Sensores y captadores La automatización de las instalaciones industriales requiere la existencia de ciertos dispositivos que suplan la acción del operario en los cambios de actuación o de operación. Se trata de los sensores, de los que existe una diversidad cada vez mayor debido al avance y perfeccionamiento de los automatismos. Los sensores desarrollan una serie de funciones de vital importancia en las instalaciones automatizadas. Entre ellas destacamos las siguientes: • Seguimiento del ciclo de funcionamiento, para facilitar la sincronización de las distintas fases operativas del mismo. • Reconocimiento de piezas para informar al sistema de control e información de este reconocimiento al sistema de control, para que este realice un proceso u otro en función del tipo de pieza detectada. • Vigilancia de la marcha del proceso en tiempo real, informando al sistema de control de cualquier emergencia o situación anómala, y que éste pueda obrar en consecuencia. • Vigilancia de la apertura de las defensas de máquinas, instalaciones, etc. cuando exista la posibilidad de que se ocasionen accidentes. En esencia, detectar situaciones de peligro para el personal, e incrementar la seguridad de las instalaciones. El campo de la sensórica ha avanzado espectacularmente motivado precisamente por las exigencias de la automatización. Hoy por hoy, tenemos la posibilidad de medir - controlar cualquier cosa. Para abarcar y estudiar con detalle todas las posibilidades sería necesario un curso de volumen similar al que tenemos entre manos. En este tema, entenderemos por sensor a aquel dispositivo capaz de convertir una magnitud física (presión, temperatura, velocidad, etc.) en una señal eléctrica directamente utilizable por nosotros. Antes de nada, aclararemos la frase “señal eléctrica directamente utilizable por nosotros”. El fin último que nos marcamos es el de conectar los sensores al autómata, y es precisamente el hecho de usar un autómata lo que abre las posibilidades enormemente. Elementos de un sistema automatizado 5 Formación Abierta Las señales provenientes de sensores que podremos utilizar directamente serán: • Señales todo - nada, proporcionadas mediante el cierre y apertura de unos contactos, o por la aplicación de tensión o no mediante elementos electrónicos (un transistor saturado o en corte como salida del sensor). Estas son las señales más ampliamente utilizadas. • Señales analógicas linealizadas, es decir, aquellas en las que una magnitud física, como por ejemplo una temperatura se corresponden proporcionalmente con una señal eléctrica (tensión o corriente). Al decir linealizadas, nos referimos a que un incremento en la magnitud física provoca un incremento (o decremento) proporcional en la señal eléctrica. En la tabla siguiente, podemos observar como un sensor de temperatura ideal, nos ofrece una tensión proporcional a la temperatura captada, de forma que por cada grado centígrado se incrementa la tensión en medio voltio. Temperatura en ºC Tensión de salida del sensor 0ºC 0V 1ºC 0,5 V 2ºC 1V 3ºC 1.5 V 4ºC 2V Esta señal analógica conectada a una entrada analógica del autómata, nos permitirá, mediante la programación pertinente, inferir la temperatura del sistema controlado. • Señales binarias o numéricas. Cada vez son más los sensores que ofrecen su salida como una combinación binaria, facilitándonos su uso con dispositivos de control como los autómatas. Hechas estas aclaraciones, dividiremos los sensores en dos grandes grupos, dejando claro que para casi todos ellos habrá la posibilidad de encontrarlos en sus versiones todo - nada, analógicos o numéricos: 6 • Sensores táctiles, que requieren contacto físico con el objeto. • Sensores de proximidad, que no requieren contacto físico con el objeto. Elementos de un sistema automatizado Automatas Programables 02 A continuación, ofrecemos una pincelada de los más usuales, sin entrar en demasiados detalles técnicos, ya que esto sería más propio de un curso de automatismos eléctricos: 2.1.1. Sensores táctiles Los sensores táctiles son los más utilizados en las instalaciones automatizadas, siendo los más simples los interruptores final de carrera y los microinterruptores. Su función es muy sencilla: abrir o cerrar un circuito o enviar una señal todo nada. Finales de carrera y micro interruptores Son aparatos destinados a controlar la posición de un órgano en una máquina o la posición de la misma máquina. Su aplicación va dirigida a la parada o inversión del sentido del desplazamiento por lo que se convierten en órganos de los que depende la seguridad del material y del personal. Al actuar una fuerza mecánica sobre la parte saliente del interruptor, desplaza los contactos y abre o cierra circuitos. De acuerdo con el tipo de trabajo a realizar, se eligen para los finales de carrera: los de varilla, bola, rodillo, leva con rodillo, etc. Con vástago de rodillo. Con anillo para estirar. Con varilla flexible. Elementos de un sistema automatizado 7 Formación Abierta Rodillo y palanca sencilla. Palanca de rodillo. Figura 2.1. Ejemplos de finales de carrera. Los microinterruptores tienen un cometido similar a los finales de carrera, y un funcionamiento idéntico. En realidad, podríamos hablar de ellos como finales de carrera miniaturizados. Básico. Básico de tipo botón. De lámina. Pulsador de rueda. Con leva de rodillo. Con rodillo escamoteable. Figura 2.2. Ejemplo de microinterruptores. 8 Elementos de un sistema automatizado Automatas Programables 2.1.1.1. 02 Termostatos Son aparatos que cierran o abren circuitos en función de la temperatura que les rodee. Hay que aclarar que el termostato no nos da el valor de la variable de temperatura en cada momento, si no que dispara un contacto en función de la consigna prefijada. Termostato abierto. Termostato activado. Figura 2.3. Imagen de un termostato y esquema de funcionamiento. En la imagen superior se puede observar un termostato para control de temperaturas de fluidos. La bulba debe ser sumergida en el fluido cuya temperatura se desea controlar. El punto de consigna, es decir la temperatura en la que cambiará de posición el contacto, se regula mediante el muelle. El funcionamiento es el siguiente: La presión del vapor interno de la bulba, que aumentará proporcionalmente con la temperatura, actúa sobre una membrana que a través de un pistón abrirá o cerrará los contactos. 2.1.1.2. Presostatos y vacuostatos Son aparatos que accionan circuitos en función de la presión que actúa sobre una instalación neumática o hidráulica. La función de los vacuostatos es regular depresiones. Pueden ser de tipo mecánico cuyo principio de funcionamiento es similar al de los termostatos. También existen los presostatos electrónicos que constan de un sensor cerámico piezo-resistivo (resistencia que varía con la presión). Además poseen un display y pueden ser programados mediante teclas. Elementos de un sistema automatizado 9 Formación Abierta Normalmente los presostatos y vacuostatos electrónicos disponen de dos puntos de consigna, uno alto (PA) y otro bajo (PB) que se pueden regular de forma independiente. Punto de consigna alto Es el valor máximo de presión escogido y ajustado en el presostato o el vacuostato para el que la salida eléctrica cambiará de estado cuando la presión sea ascendente. Punto de consigna bajo Es el valor de presión mínima escogido y ajustado en el presostato o el vacuostato para el que la salida eléctrica cambiará de estado cuando la presión sea descendente. Figura 2.4. Ejemplos de presostatos: mecánico y electrónico. Se utilizan frecuentemente para: 10 Controlar la puesta en marcha de grupos compresores en función de la presión del depósito. Asegurarse de la circulación de un fluido lubricante o refrigerador. Limitar la presión de ciertas máquinas-herramienta provistas de cilindros hidráulicos. Detener el funcionamiento de una máquina en caso de baja presión. Elementos de un sistema automatizado Automatas Programables 02 Los principales criterios de selección son los siguientes: Tipo de funcionamiento, vigilancia de un umbral o regulación entre dos umbrales. Naturaleza de los fluidos (aceites hidráulicos, agua, aire...). Valor de la presión que se controla. Entorno. Tipo de circuito eléctrico, circuito de control (el caso más frecuente), circuito de potencia (presostato de potencia). 2.1.2. Sensores de proximidad Tal y como indicamos previamente, la principal característica de estos sensores es que no requieren contacto físico con el objeto a detectar. La mayoría de los sensores de proximidad nos proporcionan señales todo - nada. Tienen un contacto abierto y otro cerrado en reposo, o nos proporcionan una tensión a su salida cuando realizan la detección (puede ser una tensión positiva o masa en función del sensor usado), que podremos emplear según la aplicación. Los símbolos de los sensores de proximidad más habituales aparecen a continuación: 1 5 BN(1) 2 BK(4) 6 BU(3) Elementos de un sistema automatizado 11 Formación Abierta BN(1) BK(4) 3 BN(1) 7 BU(3) WH(2) AV BN(1) BK(4) 4 8 BU(3) Donde: 1. Sensor de proximidad magnético. 2. Sensor de proximidad inductivo. 3. Sensor de proximidad capacitivo. 4. Sensor óptico de barrera (emisor). 5. Sensor óptico de barrera (receptor). 6. Sensor de proximidad óptico en un cuerpo. 7. Sensor de proximidad por ultrasonido. 8. Sensor de proximidad genérico. Podemos encontrar estos sensores con tecnología de dos, tres y cuatro hilos: Tecnología de dos hilos La tensión de alimentación puede ser corriente continua o alterna. Tienen como ventaja que la conexión es en serie con la carga como los interruptores de posición mecánicos. Como desventajas existe una corriente de fuga (pequeña corriente que circula en estado abierto) y una tensión residual (que se mediría en bornes del detector cuando se encuentra en estado cerrado). 12 Elementos de un sistema automatizado Automatas Programables 02 Tecnología de tres hilos Estos aparatos constan de dos hilos para la alimentación en corriente continua y un hilo para la transmisión de la señal de salida. Pueden ser de dos tipos: Tipo PNP: Conmutación sobre la carga del potencial positivo. Tipo NPN: Conmutación sobre la carga del potencial negativo. BN NPN +24 V BK BU 0V Tecnología de cuatro hilos Al igual que los anteriores constan también de dos hilos para la alimentación en corriente continua, pero para la señal tiene uno más. El nuevo hilo (WH) nos da una señal NC (normalmente cerrada). También pueden ser de tipo PNP o NPN. Para todas estas tecnologías la designación de los terminales del sensor es tal y como sigue: Conexión del terminal Color Designación Desig. numérica Alimentación (+) Marrón BN 1 Alimentación (-) Azul BU 3 Salida del sensor (abierta) Negro BK 4 Salida ambivalente Blanco WH 2 Existen de varios tipos, tamaños, marcas y formatos. A continuación mostramos los más comunes. Elementos de un sistema automatizado 13 Formación Abierta 2.1.2.1. Sensores de proximidad magnéticos Este tipo de sensores reaccionan ante los campos magnéticos de imanes permanentes, o electroimanes. Los de tipo REED tienen las láminas de contacto de material ferromagnético que forman el contacto, siendo este de tipo N.C., N.A. o conmutado, si bien, el contacto más usual es de tipo N.A. Las láminas están selladas dentro de un pequeño tubo de vidrio, con un gas en su interior de naturaleza inerte (Nitrógeno) con el fin de que no se produzcan arcos en la conmutación. Figura 2.5. Detectores magnéticos tipo Reed. Si se acerca un campo magnético al sensor las láminas se unen por magnetismo y se produce el contacto eléctrico. Figura 2.6. Detector magnético tipo Reed. Por gentileza de FESTO Pneumatics S.A. Precauciones al realizar el montaje A la hora de trabajar con detectores magnéticos, se deberán tener en cuenta algunas precauciones... 14 Este tipo de detectores es altamente influenciable por entornos magnéticamente agresivos. Es por ello por lo que, si existen campos magnéticos importantes, los detectores Reed deberán ser apantallados correspondientemente. Elementos de un sistema automatizado Automatas Programables Si el montaje se realiza sobre cilindros neumáticos, la distancia entre detectores no deberá ser inferior a 60 mm., ya que, de lo contrario, podrían producirse conmutaciones no deseadas (falsos contactos). No obstante, se recomienda consultar las características propias de cada detector dadas por los fabricantes. En los detectores tipo Reed la corriente de paso debe limitarse al máximo, por lo que se suele realizar un montaje directo a una carga controlada (habitualmente un relé que fije la máxima intensidad de paso por debajo del límite del detector). Este paso no es preciso en el montaje con PLC. Por último, y en especial para aplicaciones electroneumáticas, ha de tenerse en cuenta que la potencia de llamada de un relé es de aproximadamente 8 veces el valor de la potencia de mantenimiento. Por este motivo se deberá tomar el valor de la potencia de llamada como valor de cálculo. 02 Aplicaciones de los detectores Reed Son muchas las aplicaciones de los detectores magnéticos, pero la más conocida es la detección de la posición de los cilindros neumáticos, tal y como muestra la figura. Figura 2.7. Aplicación de los detectores magnéticos tipo Reed. No obstante, estos detectores pueden dar solución a infinidad de procesos de automatización, tales como: Interruptores de puertas. Posicionado de componentes / materiales. Mediciones de velocidad. Sistemas de conteo. Etc. 2.1.2.2. Sensores de proximidad inductivos Los sensores inductivos, emiten un campo magnético y aprecian los cambios que los objetos a detectar provocan en el. Estos sensores se aplican especialmente a metales ferrosos, si bien pueden utilizarse con otros objetos metálicos no ferrosos, aunque aceptando una disminución en su sensibilidad. Elementos de un sistema automatizado 15 Formación Abierta Figura 2.8. Detectores inductivos de tipo cilíndrico y rectangular. Por gentileza de FESTO Pneumatics S.A. Principio de funcionamiento Básicamente, está compuesto por un oscilador cuyos bobinados componen la cara sensible. Delante de dicha cara se crea un campo magnético alterno. 1. Oscilador. 2. Etapa de tratamiento. 3. Etapa de salida. Figura 2.9. Composición del detector de proximidad inductivo. Al colocar una pantalla metálica en el campo magnético del detector, se producen unas corrientes inductivas que originan una carga adicional que provoca la parada de las oscilaciones. Después del tratamiento se suministra una señal de salida que corresponde con un contacto de cierre NA, de apertura NC o complementario NA + NC. Figura 2.10. Esquema de funcionamiento de un detector inductivo. 16 Elementos de un sistema automatizado Automatas Programables 02 El principal inconveniente de este tipo de sensores es la influencia de las perturbaciones electromagnéticas, que pueden alterar el campo generado. Es el caso, por ejemplo, de los soldadores, en los que las corrientes de elevada energía que se desarrollan en los electrodos, producen ondas electromagnéticas cuyo campo puede inducir un cambio en el del sensor, similar al creado por una pieza. Como características más relevantes, podemos citar que poseen un tiempo de conmutación casi instantáneo, y que son insensibles a la suciedad. Generalmente se distinguen dos tipos de sensores inductivos: PNP con salida positiva y NPN con salida negativa. Aplicaciones de los detectores inductivos Las aplicaciones industriales de estos sensores son múltiples. A continuación tenemos una pequeña muestra de las mismas: Detección del émbolo de un cilindro neumático. Detección de transportadoras metálicas de piezas en una cinta de cadena de producción. Detección del sentido de giro. Detección de objetos y formas. 2.1.2.3. Sensores de proximidad capacitivos Los detectores capacitivos son adecuados para detectar objetos o productos no metálicos de cualquier tipo (papel, vidrio, plástico, líquido, etc.). Un detector de proximidad capacitivo se compone básicamente de un oscilador cuyo condensador está formado por 2 electrodos situados en la parte delantera del aparato, una etapa de tratamiento y una señal de salida. Figura 2.11. Ejemplo de sensor capacitivo y esquema de funcionamiento. Elementos de un sistema automatizado 17 Formación Abierta El principio de funcionamiento es similar al de un sensor inductivo, con la diferencia de que aquí se mide el campo eléctrico por la proximidad o lejanía de un objeto. Cuando se sitúa en este campo un material conductor o aislante de permitividad superior a 1, se modifica la capacidad de conexión y se bloquean las oscilaciones. Cualquier material cuya constante dieléctrica sea mayor de 2 será detectado. Cuanto menor sea esta constante menor será la distancia de conmutación. Permitividad: Propiedad de un dieléctrico (material aislante) para debilitar las fuerzas electrostáticas, por referencia a estas mismas fuerzas cuando se ejercen en el vacío. Se representa con ε y es el producto de la constante dieléctrica de un dieléctrico, εr, y la permitividad eléctrica del vacío, ε0. ε = εr•ε0 La constante dieléctrica depende de la naturaleza del material. Para el aire εr es 1. La sensibilidad de estos sensores suele ajustarse mediante un potenciómetro. La máxima distancia de detección que puede obtenerse depende de la marca que empleemos, pudiendo llegar a varios cm. El alcance de los detectores capacitivos, varía notablemente en función de las características del ambiente, de la humedad y temperatura del aire y de la cantidad de polvo en suspensión. Por ello, su utilización no está muy extendida, y su uso se limita a los casos en los que no sea posible aplicar otra tecnología, por ejemplo, con líquidos y materiales granulosos o pulverulentos. Las aplicaciones de estos sensores pueden ser las siguientes entre otras: 18 Detección de objetos a través de paredes no metálicas de grosor no superior a 4 mm., siempre que el material a detectar tenga una constante dieléctrica superior a 4 veces la de la pared. Nivel de llenado de contenedores de almacenamiento. Detección de materiales no metálicos. Detección de objetos de color mate o negro. Detección del nivel de líquidos. Detección del nivel de material a granel. Supervisión de la rotura de un cable de cobre. Elementos de un sistema automatizado Automatas Programables 02 Ejemplo de aplicación de detección y llenado de un recipiente: mediante dos sensores. Una cinta transportadora trae los recipientes para llevar a cabo su llenado. Los detectores 1 (para materiales aislantes) y 2 (para materiales conductores) no se encuentran activados. Cuando el recipiente entra en la zona de detección del detector 1, comienza la operación de llenado. 2 1 El detector 2 detecta el nivel alcanzado y detiene la operación de llenado. Elementos de un sistema automatizado 19 Formación Abierta 2.1.2.4. Sensores ópticos o fotosensores Los sensores ópticos están basados en la interceptación o modificación por parte del objeto a detectar, de un haz luminoso que lanza un emisor (diodo electroluminiscente o LED) y es recogido por un elemento receptor (fototransistor). Podemos encontrarlos de tres tipos: de reflexión directa, de barrera luminosa y de retroreflexión. Un caso especial son los fotosensores de fibra óptica. En la siguiente figura se muestran las distintas partes que componen un sensor óptico. 1. Emisor de luz. 2. Receptor de luz. 3. Etapa de tratamiento. 4. Etapa de salida. Figura 2.12. Partes de que consta un sensor óptico. Sensores de reflexión directa Suelen disponer el receptor y transformador de señales incorporado en un único alojamiento. Funcionan mediante la emisión de un haz luminoso que es reflejado por el objeto a reconocer y captado por el detector, el cual emite la señal de actuación prevista. La luz emitida es una radiación infrarroja modulada, con lo que se evitan las interferencias debidas a la luz ambiental. Figura 2.13. Ejemplo de sensor de reflexión directa y esquema de funcionamiento. 20 Elementos de un sistema automatizado Automatas Programables 02 La distancia de trabajo de este tipo de sensores es variable, aunque son aptos en general para alcances medios. Depende principalmente de la reflexión del objeto. Además se deberá tener cuidado con el fondo, ya que podría reflejar el haz hacia el receptor y dar falsas detecciones. Sus aplicaciones son múltiples en las instalaciones automatizadas. Por ejemplo pueden usarse en el control de piezas sobre una cinta transportadora, o en la verificación de la realización de determinadas operaciones. Ejemplos de objetos que puede detectar son láminas transparentes, vidrio claro, etc. Sensores de barrera luminosa Las unidades de barrera luminosa trabajan con receptor y emisor en cuerpos separados, lo que conlleva una instalación más complicada. La barrera de luz que estos sensores establecen entre el emisor y el receptor es interrumpida por el objeto que se interpone entre ambos elementos, activándose las señales oportunas. Este sistema es más seguro para grandes distancias y el que mejor se adapta a condiciones ambientales severas. Algunos modelos pueden llegar a alcanzar distancias de 100 m. Es necesario alinear cuidadosamente el emisor y el receptor. Ciertos modelos disponen de diodos electroluminiscentes que facilitan la alineación mediante el control de la intensidad del haz luminoso que llega al receptor. Además de cumplir esta función de ayuda, los diodos indican si un exceso de acumulación de suciedad en los componentes ópticos puede llegar a provocar defectos de detección. Figura 2.14. Esquema de funcionamiento de un sensor de barrera. Sensores de retroreflexión o réflex Estos sensores cuentan con emisor y receptor en el mismo cuerpo. El haz luminoso es reflejado por un elemento catadióptrico colocado en el lado opuesto. Si un objeto se coloca entre el sensor y el elemento catadióptrico, se interrumpe el haz detectándose la presencia del objeto. Elementos de un sistema automatizado 21 Formación Abierta Figura 2.15. Sensor refléx y diferentes catadióptricos. El catadióptrico es un reflector consta de una elevada cantidad de triedros trirrectángulos de reflexión total cuya propiedad consiste en devolver todo rayo luminoso incidente en la misma dirección. Objeto a detectar E R Reflector Emisor Figura 2.16. Esquema de funcionamiento de un sensor de retroreflexión. Su funcionamiento es muy similar al de los de barrera luminosa, y la diferencia con respecto a los de reflexión directa es que en aquellos se usa el propio objeto a detectar para realizar la reflexión del haz de luz. ¿Dónde estás cansado de ver sensores de retroreflexión? 22 Elementos de un sistema automatizado Automatas Programables 02 Fotosensores de fibra óptica En aplicaciones muy específicas pero también muy difundidas, el sensor fotoeléctrico está asociado a fibras ópticas. Gracias a esto se pueden detectar piezas de reducido tamaño y muy próximas. La fibra óptica permite la instalación alejada de los elementos electrónicos de tratamiento. Figura 2.17. Cabezal de un detector de fibra óptica. Constan de un amplificador que contiene el emisor y receptor. La luz se transporta desde el punto de detección hasta el amplificador por medio de fibras ópticas que, gracias a su reducido tamaño, pueden integrarse en los emplazamientos más pequeños. Estos sensores pueden funcionar como dispositivos de barrera y como dispositivos de reflexión. La fibra óptica es insensible a las perturbaciones de campo, reduce la necesidad de espacio para los dispositivos ópticos en el punto de aplicación, puede aplicarse con temperaturas ambiente de hasta 250 ºC y también en lugares expuestos a peligro de explosión, o en el seno de líquidos. Su peso limitado y elevada resistencia a las vibraciones y al desgaste, la hacen especialmente apta para la colocación sobre órganos en movimiento. Se utilizan dos tipos de fibras: Fibras plásticas: El corazón de las fibras plásticas consta de un “conductor” único con diámetro de 0,25 a 1 mm. Actualmente, su uso es muy frecuente debido a: ° La sencillez de su instalación, que puede llevar a cabo el propio usuario sin más herramientas que el cortahílos de corte longitudinal que se suministra con la fibra. ° Su rendimiento, comparable al de la fibra de vidrio. Elementos de un sistema automatizado 23 Formación Abierta Fibras de vidrio: El corazón de las fibras de vidrio consta de un haz de hilos de silicio de varias decenas de micras de diámetro. Se utilizan principalmente en ambientes corrosivos, con peligro de deterioro de las fibras plásticas, y en casos de temperatura ambiente elevada. Fibra Fibra Funda Funda Fibras Fibras Funda Figura 2.18. Fibra plástica y fibra de vidrio. 2.1.2.5. Sensores de ultrasonidos El principio del funcionamiento esta basado, en la emisión y reflexión de ondas acústicas, sobre a detectar. El portador de estas ondas es el aire. El detector mide y evalúa el tiempo que tarda los ultrasonidos desde emisión hasta su recepción. Figura 2.19. Ejemplos de sensores de ultrasonidos. Estos detectores están compuestos por tres módulos principales: Transmisor de ultrasonidos. Unidad de evaluación. Etapa de salida. La transmisión de los ultrasonidos, se realiza en una frecuencia no audible entre 30 y 300 Hz. La unidad de transmisión lleva unos filtros, los cuales comprueban y evalúan si el sonido recibido, es realmente el eco de las ondas emitidas. 24 Elementos de un sistema automatizado Automatas Programables 02 Modos de operación Hay dos modos básicos de operación: modo opuesto y modo difuso (eco). En el modo opuesto, un sensor emite la onda de sonido y otro, montado en posición opuesta al emisor, recibe la onda de sonido. En el modo difuso, el mismo sensor emite la onda de sonido y luego escucha el eco que rebota de un objeto. Modo opuesto Modo eco Figura 2.20. Modos de aplicación de los sensores de ultrasonidos. Elementos de un sistema automatizado 25 Formación Abierta Entre las posibles aplicaciones están las siguientes: Instalaciones de almacenamiento. Sistema de transporte. Industria de la alimentación. Procesos de metales, vidrios y plásticos. Supervisión de materiales a granel. Ventajas Detecta con seguridad objetos a grandes distancias. Los objetos a detectar pueden ser solidos, liquidos o en forma de polvo. El material a detectar puede ser transparente. Es posible la detección selectiva de objetos a través de la zona de conexión. Distancia de ecos elegible. Servicio libre de mantenimiento. Relativa insensibilidad a la suciedad y el polvo. Posibiliddad de aplicaciones al aire libre. Desventajas 26 El objeto a detectar tiene que estar dispuesto en forma perpendicular al eje de propagación. Son lentos. Son más caros que los ópticos. Los materiales suaves tales como telas o caucho esponjoso son difíciles de detectar porque no reflejan el sonido adecuadamente. Los sensores ultrasónicos tienen una zona ciega inherente ubicada en la cara de detección. El tamaño de la zona ciega depende de la frecuencia del sensor. Los objetos ubicados dentro de la zona ciega no se pueden detectar de manera confiable. Elementos de un sistema automatizado Automatas Programables 02 2.2. Accionadores y preaccionadores 2.2.1. Accionadores Los accionadores son los elementos destinados a mover el proceso automatizado. En definitiva proporcionan al proceso la fuerza motriz para, por ejemplo, mover una bomba, cerrar un molde, etc. 2.2.1.1. Eléctricos Los accionadores eléctricos utilizan directamente la energía eléctrica distribuida en las máquinas y toman diferentes formas: motores, resistencias de calentamiento, electroimanes, etc. De ellos los más importantes y profusamente utilizados son los motores en sus diferentes versiones. Motores Se usan para convertir energía eléctrica en mecánica, permitiéndonos por ejemplo suministrar la energía al cuerpo de una bomba, desplazar una cinta, etc. Figura 2.21. Ejemplo de motor eléctrico. Elementos de un sistema automatizado 27 Formación Abierta 2.2.1.2. Neumáticos Los accionadores neumáticos utilizan directamente la energía producida por el aire a presión. El trabajo realizado por un actuador neumático puede ser lineal o rotativo. El movimiento lineal se obtiene por cilindros de émbolo (éstos también proporcionan movimiento rotativo con variedad de ángulos por medio de actuadores del tipo piñón-cremallera). También encontramos actuadores neumáticos de rotación continua (motores neumáticos). Cilindro estándar. Pinza neumática. Actuador giratorio. Figura 2.22. Ejemplos de actuadores neumáticos. Cilindros lineales Los cilindros neumáticos independientemente de su forma constructiva, representan los actuadores más comunes que se utilizan en los circuitos neumáticos. Existen dos tipos fundamentales de los cuales derivan construcciones especiales. Cilindros de simple efecto, con una entrada de aire para producir una carrera de trabajo en un sentido. Cilindros de doble efecto, con dos entradas de aire para producir carreras de trabajo de salida y retroceso. 2.2.1.3. Hidráulicos Los actuadores hidráulicos utilizan la energía producida por un fluido hidráulico (usualmente aceite) para transformarla en un movimiento. La gama de actuadores hidráulicos es bastante más limitada que la de los neumáticos, pero el principio de funcionamiento y componentes no varía. 28 Elementos de un sistema automatizado Automatas Programables 02 Al igual que los actuadores neumáticos podemos diferenciar dos tipos principalmente: Actuadores de movimiento rectilineo o lineal: Lo proporcionan los denominados genéricamente cilindros, que pueden ser de doble efecto o de simple efecto. Actuadores de movimiento giratorio: Este movimiento lo ejecutan los motores hidráulicos, que pueden ser de paletas, de pistones o dentados. Existen actuadores que tienen limitada la mecánica de giro. Cilindro hidráulico. Motor hidráulico. Figura 2.23. Ejemplos de actuadores hidráulicos. 2.2.2. Preaccionadores Los preaccionadores se encuentran a caballo entre la parte operativa y la parte de mando. Proporcionan la potencia a los accionadores en función de las señales de mando recibidas desde el sistema de control. 2.2.2.1. Eléctricos Son los encargados de gobernar los motores a través del autómata programable. Son muy utilizados, y los más importantes son: Contactores En un principio y de forma elemental podemos definir el contactor como “un interruptor gobernado a distancia que vuelve a la posición de reposo cuando la fuerza de accionamiento deja de actuar sobre el”. Elementos de un sistema automatizado 29 Formación Abierta Figura 2.24. Ejemplo de contactor. Su principal aplicación es efectuar las maniobras de apertura y cierre de circuitos relacionados con instalaciones de motores. Constan de los siguientes elementos: Soporte o chasis: es el cuerpo aislante en el que van alojados los demás elementos. Estructura magnética: compuesta a su vez de un circuito magnético de hierro macizo (para C.C.) o chapas laminadas (en el caso de C.A.) y una bobina. Cuando la bobina es alimentada atrae la parte móvil del circuito magnético y cierra los contactos asociados. Contactos: son los encargados de abrir y cerrar el circuito eléctrico. Los contactos principales son los encargados de alimentar a los receptores, principalmente motores. Mientras que los auxiliares son utilizados para la realimentación, señalización, etc. Variadores de velocidad Cada vez con mayor frecuencia nos enfrentamos a problemas de automatización en los que se necesita regular la velocidad de un motor entre ciertos márgenes. Los variadores de velocidad como indica su propia denominación, nos facilitan notablemente este trabajo. El trabajo conjunto de estos variadores con los autómatas programables nos ofrece un sistema de regulación de velocidad de motores altamente sofisticado. 30 Elementos de un sistema automatizado Automatas Programables 02 L1 L2 L3 Terminales para suministro eléctrico RUN FWD REV STOP AUTOMATIC DIRECT Display y teclado de configuración 0 100 1.0HP 230V 3PH Terminales de control de entradas salidas V I R1 R10 +10V AJ D11 D12 D13 D14 CM Bornes del motor T1 T2 T3 Figura 2.25. Imagen típica de variador de velocidad. En función del tipo de motor usado, los encontraremos para motores de corriente continua de excitación independiente, o para motores de corriente alterna. En un porcentaje muy elevado se utilizan variadores para controlar motores de c.a. ya que son más baratos y permiten una regulación casi tan precisa como los motores de c.c. Los variadores de velocidad electrónicos constan de dos módulos normalmente integrados en una misma envolvente: Un módulo de control que gestiona el funcionamiento del aparato. Un módulo de potencia que suministra energía eléctrica al motor. Entre la infinidad de las aplicaciones de los variadores de frecuencia podemos destacar como ejemplo las siguientes: Transportadoras. Controlan y sincronizan la velocidad de producción de acuerdo al tipo de producto que se transporta, para dosificar, para evitar ruidos y golpes en transporte de botellas y envases, para arrancar suavemente y evitar la caída del producto que se transporta, etc. Elementos de un sistema automatizado 31 Formación Abierta Ascensores y elevadores. Para arranque y parada suaves. Prensas mecánicas y balancines. Se consiguen arranques suaves y mediante velocidades bajas en el inicio de la tarea, se evitan los desperdicios de materiales. 2.2.2.2. Neumáticos Electroválvulas Controla eléctricamente la apertura y cierre de circuitos neumáticos. Clasificación según su forma de trabajo: Electroválvulas monoestables: Tienen una única bobina para que la electroválvula cambie de posición, y el retorno se realiza con muelle. Tienen por lo tanto una única posición estable, de ahí que se denominen “monoestables”. Electroválvulas biestables: Tienen dos bobinas para realizar el paso de una posición a otra. Una se conoce como bobina de SET y la otra como RESET. Al activar cualquiera de las dos bobinas, la electroválvula permanecerá estable en la posición alcanzada. Esto significa que posee dos posiciones estables, por lo que la denominamos “biestable”. Figura 2.26. Imágenes de electroválvulas monoestable y biestable. Teniendo esto en cuenta, a la hora de gobernar un cilindro con el autómata, debemos prestar atención exclusivamente a si las electroválvulas que utilizamos son monoestables o biestables. Sin son monoestables, la salida del autómata asignada a la bobina de la electroválvula deberá estar activa durante todo el tiempo que deba estarlo el cilindro. 32 Elementos de un sistema automatizado Automatas Programables 02 Si son biestables, bastará con enviar un impulso a las bobinas de SET y RESET de la electroválvula para que esta cambie de posición y permanezca en la misma. Por lo tanto no será necesario que las salidas del autómata asignadas a estas bobinas permanezcan activas al mismo tiempo que lo está el cilindro. 2.2.2.3. Hidráulicos Electroválvulas Aunque existen muchas similitudes en cuanto a funcionamiento y composición de las válvulas direccionales hidráulicas y neumáticas, cabe destacar que en hidráulica predominan las válvulas de tres posiciones en lugar de las de dos. La tercera corresponde a una posición de reposo en la que se situará si no están alimentadas ninguna de las dos bobinas. Elementos de un sistema automatizado 33 Formación Abierta 2.3. Elementos máquina de diálogo hombre- De alguna forma tendremos que comunicarle al sistema de control nuestras intenciones con respecto al sistema automatizado, puesto que siempre habrá alguna consigna de operación proporcionada por el hombre. Para este menester existe una gran diversidad de elementos: 2.3.1. Pulsadores Es el elemento de mando que se emplea con más frecuencia. Simple de marcha. Doble marcha + paro. Tipo “seta” de emergencia. Figura 2.27. Distintos tipos de pulsadores industriales. Están provistos de contactos de acción instantánea que vuelven a su posición inicial cuando la presión manual sobre el pulsador cesa. Existen gran variedad de modelos, cuyo color y forma se elegirá en función del empleo final. Algunos integran contactos y piloto de señalización en el mismo elemento. Una variante a estos pulsadores bastante habitual son los pulsadores temporizados en los que los mismos elementos actuadores de los pulsadores se acoplan indistintamente a un dispositivo neumático de tiempo que acciona un micro interruptor con un contacto conmutado. La conmutación de los contactos se efectúa instantáneamente al actuar sobre el elemento pulsador, pero una vez cesa el impulso, vuelve a su posición inicial con un periodo de retardo que puede ser regulado entre un segundo y un minuto. 34 Elementos de un sistema automatizado Automatas Programables 2.3.2. 02 Selectores manuales De la misma manera que los pulsadores, están provistos de contactos de acción instantánea. Se caracterizan porque el contacto queda en la posición que se ha seleccionado y no cesa hasta que no se actúa otra vez manualmente; entonces los contactos se cierran o abren bruscamente. De maneta. Cerradura con llave. Figura 2.28. Ejemplos de selector manual. Su denominación más empleada es: interruptor con enclavamiento mecánico. 2.3.3. Pilotos Todos los procesos automatizados tienen algún elemento que indique al hombre el estado en que se encuentra el mismo, o dispositivos que señalizan situaciones de anómalas o de alarma. Los más habituales son los pilotos o indicadores luminosos, y los visualizadores. La información que nos proporcionan se refiere a situaciones del tipo todo - nada. Como se ha dicho antes pueden estar integrados en pulsadores. Al igual que los pulsadores los pilotos de señalización tienen unos colores definidos para cada uso concreto. Figura 2.29. Piloto luminoso. Elementos de un sistema automatizado 35 Formación Abierta 2.3.4. Visualizadores Los visualizadores permiten representar todo tipo de información acerca del funcionamiento del proceso. El uso junto con los autómatas programables hace que la información que recibimos del proceso sea más clara y detallada. Figura 2.30. Diferentes tipos de visualizadores industriales. 2.3.5. Paneles de operador Estos dispositivos permiten actuar directamente sobre el proceso de manera que se puede escribir nuevos parámetros en el proceso (por ejemplo variar el valor de un temporizador) y leer diversa información (por ejemplo mensajes de alarmas o defectos). Figura 2.31. Distintos tipos de paneles de operador. 36 Elementos de un sistema automatizado Automatas Programables 02 La inmensa mayoría de los paneles de operador utilizan pantallas planas de LCD (Liquid Crystal Display). Suelen ser monocromas o de hasta millones de colores. Existen modelos con teclado para introducir datos y moverse por las pantallas o con pantalla táctil que permiten un manejo más intuitivo. Elementos de un sistema automatizado 37 Automatas Programables 02 • Resumen • Los sensores suplen la acción del operario en los cambios de actuación u operación. • Un sensor es un dispositivo capaz de convertir una magnitud física en una señal eléctrica directamente utilizable por nosotros. Estas señales son señales todo-nada, señales analógicas linealizadas y señales binarias o numéricas. • Los dos grandes grupos en que podemos clasificar los sensores son: sensores táctiles y sensores de proximidad. • Dentro de los sensores táctiles podemos citar los finales de carrera y microinterruptores, junto con termostatos y presostatos. • Dentro de los sensores de proximidad podemos citar los magnéticos, inductivos, capacitivos, ópticos y de ultrasonidos. • Los accionadores suministran al proceso la fuerza motriz que éste requiere. Los más importantes son los motores eléctricos y los cilindros neumáticos. • Los preaccionadores proporcionan la potencia necesaria a los accionadores en función de las señales de mando recogidas desde el sistema de control. Las más usuales son los contactores y electroválvulas neumáticas. • Los elementos de diálogo hombre-máquina permiten el diálogo entre el proceso y el usuario. • Para enviar información o consignas al proceso, podemos usar los pulsadores, selectores y teclados. • Para recibir información del proceso se usan pilotos y visualizadores. Elementos de un sistema automatizado 39 03 Autómatas Programables Estructura del autómata programable Autómatas Programables 03 • Índice • OBJETIVOS .......................................................................................................... 3 • INTRODUCCIÓN .................................................................................................. 4 3.1. Conceptos básicos ..................................................................................... 5 3.1.1. El interruptor como bit (unidad elemental de información) ................... 5 3.1.2. El interruptor como parte de una instrucción u orden ........................... 6 3.2. Transición de la lógica cableada a la lógica programada ....................... 8 3.2.1. La lógica cableada ................................................................................ 8 3.2.2. Traducción de circuitos eléctricos en listas de instrucciones en castellano .......................................................................................... 9 3.2.3. La lógica programable ......................................................................... 13 3.3. Partes y funcionamiento de un autómata programable ........................ 16 3.3.1. Estructura externa ............................................................................... 16 3.3.2. Estructura interna ................................................................................ 18 • RESUMEN .......................................................................................................... 29 Estructura del autómata programable 1 Autómatas Programables 03 • Objetivos • Introducir conceptos como bit e instrucción. • Comprobar que todo circuito eléctrico cableado puede convertirse en una lista de instrucciones, y por tanto, en un programa de autómata. • Descubrir las partes y funcionamiento de un autómata. Estructura del autómata programable 3 Formación Abierta • Introducción Tenemos la intención de presentar los autómatas programables de forma que la introducción a los mismos resulte sencilla para aquellos que estén acostumbrados a los automatismos eléctricos. Las definiciones que debemos conocer irán apareciendo de forma gradual a medida que se vayan requiriendo. Hubiera sido muy sencillo esquematizar la estructura de un autómata, pero pensamos que es más didáctico e interesante plantearnos los problemas a resolver (una automatización por ejemplo), e intentar desglosar los procedimientos que realizaríamos de hacerlo manualmente, y ver a partir de aquí, qué requisitos debería cumplir un dispositivo que lo hiciera por nosotros. 4 Estructura del autómata programable Autómatas Programables 03 3.1. Conceptos básicos Cuando vemos un interruptor o un contacto auxiliar de un contactor, estamos acostumbrados a pensar en el mismo como algo que permite o no el paso de la corriente eléctrica, y en función de esto, activar o desactivar distintos elementos. Figura 3.1. Circuito eléctrico. Activar, desactivar. Al hablar de automatización industrial, y en concreto de autómatas programables, necesitamos introducir nuevas concepciones, aunque en esencia sean lo mismo. Presentamos dos nuevas formas de pensar en un interruptor: • La primera, como unidad elemental de información o “bit”, que permitirá introducirnos en el mundo digital, el mundo de los autómatas al fin y al cabo. • La segunda, como algo que puede convertirse en parte de una instrucción u orden, que nos ayudará a realizar la transición entre la lógica cableada (aquella que hemos venido usando habitualmente) y la lógica programable. 3.1.1. El interruptor como bit información) (unidad elemental de Parece obvio que un interruptor en condiciones normales sólo es capaz de estar en dos posiciones: conectado o desconectado. En principio, sólo nos interesan las acciones que pueda desencadenar su estado (p. ej. la conexión o desconexión de un motor), no pensamos en la información que nos está proporcionando. Si desestimamos posibles fallos en la instalación eléctrica (nadie es perfecto), bastaría con mirar el interruptor del motor; en una posición, el motor estaría conectado y en otra, desconectado. Estructura del autómata programable 5 Formación Abierta Cualquier cosa que solamente pueda tener dos estados distintos, puede considerarse como una unidad elemental de información o bit. Podemos pensar en un interruptor como algo capaz de almacenar una información de un bit, siendo sus dos estados posibles: DESACTIVADO → ESTADO “0”. ACTIVADO → ESTADO “1”. Para simplificar el asunto a la hora de escribir, diremos que el interruptor o bit, está a “0” cuando no permite el paso de la corriente eléctrica, y a “1” cuando permite el paso de la misma. 3.1.2. El interruptor como parte de una instrucción u orden Que cualquier circuito de mando tenga un pulsador de marcha es algo que se da por supuesto, y a nadie se le pasa por la cabeza preguntarle al cliente o jefe si quiere que presionando el mismo, el proceso se ponga en funcionamiento. S1 K1M Nosotros lo expresaremos de varias formas con el ejemplo anterior de interruptor y motor. La primera: Dándole al interruptor, debe ponerse en marcha el motor. 6 Estructura del autómata programable Autómatas Programables 03 La segunda: Cuando S1 esté activado, deberá activarse el motor. La tercera: Si S1 está a “1”, el motor deberá ponerse a “1”. La última: U E 124.1 = A 124.0 Todas quieren decir lo mismo, pero la última es la única que va a entender un autómata. Prestando atención a la última forma, veremos que hemos conseguido expresar la puesta en marcha de un motor en dos instrucciones; la primera (U E 124.1), evalúa si el interruptor está a “1” ó a “0”, y la segunda (= A 124.0) hace que el estado del motor sea el mismo que el del interruptor. Estructura del autómata programable 7 Formación Abierta 3.2. Transición de la lógica cableada a la lógica programada Como quiera que la mayoría de nosotros provenimos de la automatización clásica, nos será más sencillo en principio convertir un circuito eléctrico en un programa de autómata. Por ello introducimos este apartado. 3.2.1. La lógica cableada Cuando hablamos del circuito de mando de una instalación eléctrica, hablamos de algo que consta generalmente de los siguientes elementos: Sensores o captadores (un pulsador, un interruptor, final de carrera, Pt100, etc.). Actuadores (la bobina de un contactor, de una electroválvula). Elementos auxiliares (relés auxiliares, temporizadores, contadores, etc.). El cableado (la parte más importante del circuito). Si queremos diseñar un circuito de mando cableado, estaremos realizando las siguientes etapas: 1. El número de elementos distintos de los que disponemos para realizar el circuito. Si tenemos que montar un circuito con un elevado número de contactos auxiliares, siempre será más sencillo y práctico si contamos además de contactores, con bloques de contactos auxiliares. 2. La forma en que hemos unido (cableado) los distintos elementos para realizar la automatización que el cliente nos ha pedido. 3. Nuestra capacidad para realizar el circuito especificaciones pedidas, de la forma más simple. Figura 3.2. 8 Estructura del autómata programable Esquema marcha-paro. que cumpla con las Autómatas Programables 03 Más adelante realizaremos el mismo símil con la lógica programable y el lenguaje de los autómatas. La parte que más nos interesa ahora, en ambos casos, y en concreto en el del circuito eléctrico, es la segunda, esto es, la forma en que hemos cableado los distintos elementos. El cableado es lo que da sentido al circuito, es lo que hace que el automatismo responda ante los sensores tal y como debe hacerlo. En definitiva es el cerebro del circuito y el que manda en el mismo. Sin cableado sólo nos quedan un montón de elementos sin sentido alguno. 3.2.2. Traducción de circuitos eléctricos en listas de instrucciones en castellano El título de este apartado nos da el paso previo para llegar desde la lógica cableada a la lógica programable. Como ya dejamos entrever en el apartado anterior, los distintos elementos de un circuito eléctrico (sensores, actuadores, etc.) junto con el cableado que las une, tienen una traducción inmediata a una lista de instrucciones. Cada elemento generará una instrucción distinta en función de dos cosas: 1. Como es obvio, del elemento que se trate (contacto normalmente abierto, normalmente cerrado, contacto temporizado, si es un sensor o un actuador, etc.). 2. De la localización de dicho elemento dentro del circuito, es decir, de su relación con el resto de elementos (cableado). Empezaremos comentando los dos circuitos más simples, que, a la postre, nos presentarán las instrucciones más básicas de la lógica programable. Ejemplo de traducción de circuito con dos contactos normalmente abiertos en serie Este circuito es el que se utiliza en cualquier máquina cuyo accionamiento puede ser peligroso, como por ejemplo una prensa. Para que la prensa baje, el operario debe pulsar necesariamente dos pulsadores, que están separados lo suficiente como para no poder hacerlo con una sola mano. A continuación veremos el circuito y lo traduciremos a una lista de instrucciones que se parecerá mucho a lo pedido por el cliente. Estructura del autómata programable 9 Formación Abierta S1 Lista de instrucciones si está activado s1 y está activado s2 activa k1a S2 K1A Figura 3.3. Dos contactos en serie. Creo que fue Unamuno quien firmó la frase: “Que inventen ellos”, refiriéndose a los extranjeros. Pues bien, lo hicieron y por ello no encontraréis ningún autómata que se programe en castellano o con abreviaciones (mnemónicos) de nuestra querida lengua. En la lista de instrucciones anterior, hemos remarcado en negrita la operación “Y”, más conocida en el mundillo digital como “AND” (del inglés), y que es la que veníamos buscando en este apartado. En alemán se escribe “UND”, y aunque ahora no importe mucho, recordadlo más adelante. La operación AND consulta si se cumplen simultáneamente dos o más condiciones. En el ejemplo propuesto verifica si tanto S1 como S2 están activados, y en función de si es cierto o falso, activa o no la bobina K1A. Otra “cosita sin importancia” que aprovechamos para presentaros es lo que se ha dado en llamar la TABLA DE LA VERDAD, ahí es nada. La tabla de la verdad de un circuito, muestra todos los valores posibles de cada uno de sus captadores, y el estado en que se encontrarán los actuadores en función de éstos. 10 Estructura del autómata programable Autómatas Programables 03 Para el circuito que nos ocupa sería la siguiente: Captadores Actuadores S1 S2 K1A 0 (Desactivado) 0 (Desactivado) 0 (Desactivado) 0 (Desactivado) 1 (Activado) 0 (Desactivado) 1 (Activado) 0 (Desactivado) 0 (Desactivado) 1 (Activado) 1 (Activado) 1 (Activado) Figura 3.4. Tabla de verdad de una función AND. En ella, podemos comprobar que K1A se activa (1) exclusivamente cuando también lo están S1 y S2. La tabla de la verdad es un valioso instrumento para ciertos circuitos, en concreto para aquellos en los que hay gran cantidad de captores del tipo todo-nada. Mediante la tabla de la verdad conseguiremos las conocidas ecuaciones lógicas, y mediante la simplificación de éstas, podríamos llegar a circuitos más simples. Bueno, sigamos con lo nuestro, vamos a definir dos conceptos: Operación: a acción a realizar. Operando: el elemento sobre el que se realizará la acción. Si volvemos al circuito AND y la lista de instrucciones conseguida, veremos que podemos dividir cada instrucción en operación y operando: Instrucción Operación Operando 1 SI ESTÁ ACTIVADO S1 2 Y ESTÁ ACTIVADO S2 3 ACTIVA K1A La forma de conectar el circuito nos indican la operación. Los elementos (contactos, etc.) nos dan el operando. Estructura del autómata programable 11 Formación Abierta Ejemplo de traducción de circuito con dos contactos normalmente abiertos en paralelo Queremos encender una bombilla desde dos puntos distintos, de forma que activando cualquiera de los dos contactos lo consigamos. El esquema eléctrico será el siguiente: Lista de instrucciones si está activado S1 o está activado S2 activa L1 Figura 3.5. Dos contactos en paralelo. En la lista de instrucciones anterior, hemos remarcado en negrita la operación “O”, más conocida como “OR”. La operación “OR” consulta si se cumple una de dos o más condiciones. En el ejemplo se verifica si S1 o S2 están activadas, y si cualquiera de los dos lo está, activa a L1. Captadores S1 S2 L1 0 (Desactivado) 0 (Desactivado) 0 (Desactivado) 0 (Desactivado) 1 (Activado) 1 (Activado) 1 (Activado) 0 (Desactivado) 1 (Activado) 1 (Activado) 1 (Activado) 1 (Activado) Figura 3.6. 12 Actuadores Estructura del autómata programable Tabla de verdad de la función OR. Autómatas Programables 3.2.3. 03 La lógica programable La lógica programable, según nos apunta su nombre, será la usada por las “tecnologías programadas” que indicábamos en el tema anterior. Cuando en apartados anteriores hablábamos de un circuito de mando utilizando una tecnología cableada, comentábamos que el mismo constaba de los siguientes elementos: Sensores o captadores. Actuadores. Elementos auxiliares. El cableado. Usando una tecnología programada serán éstos: Sensores o captadores. Actuadores. Autómata programable ( o dispositivo programable). Al pasar de una a otra hemos sustituido los elementos auxiliares y el cableado por el autómata programable. Sensores y actuadores son comunes a ambas tecnologías, salvo que con las tecnologías programadas será más sencillo e inmediato el uso de alguno de ellos. Los elementos auxiliares utilizados en tecnologías cableadas como pueden ser los relés auxiliares, temporizadores y contadores, estarán integrados dentro del autómata. El cableado o la forma en que hemos unido los diferentes elementos de una tecnología cableada es como ya sabemos, lo que hace que el automatismo se comporte como deseamos. Vamos a definir un nuevo concepto: Programa: lista de instrucciones El programa en una tecnología programada será lo que haga que el automatismo se comporte como deseemos. Estructura del autómata programable 13 Formación Abierta Tecnología Cableada Tecnología Progamada Sensores Sensores Actuadores Actuadores Autómata programable Temporizadores Contadores Relés auxiliares Temporizadores Contadores Marcas Cableado Programa (memoria) Las listas de instrucciones que generamos con los circuitos serie y paralelo serán pues programas. Si dispusiéramos de un autómata capaz de entender esas instrucciones en castellano, esos dos circuitos quedarían tal y como sigue: En los dibujos vemos que la conexión de sensores y actuadores al autómata es idéntica para ambos casos, y que lo único que cambia es el programa o lista de instrucciones incrustado en esa caja a la que hemos llamado memoria. La memoria es una zona del autómata destinada a almacenar nuestro programa. Esta capacidad de “memorizar” los programas hace que los autómatas sean tan flexibles a la hora de modificar un automatismo, ya que, sin necesidad de tocar la conexión de sensores y actuadores, podemos cambiar el funcionamiento del mismo, sustituyendo el programa almacenado en la memoria por uno nuevo. 14 Estructura del autómata programable Autómatas Programables 03 Se dice que una lógica es programable cuando para que actúe, necesita la ejecución de instrucciones almacenadas en una memoria”. Una última aclaración: el autómata no puede saber si hemos pulsado S1 realmente, pero sí puede comprobar si llega tensión a la entrada en la que lo hemos conectado (en este caso al terminal de la Entrada 1 ENT 1). Si llega tensión a ENT 1 (ENT 1 ACTIVADA), será obviamente porque S1 está cerrado. Por lo tanto, en las instrucciones del programa, el operando será la entrada o salida a la que hayamos conectado el sensor o actuador respectivamente. Ahora que hemos centrado ideas, estamos preparados para saber qué es lo que necesitamos aprender para utilizar un autómata programable: Cómo utilizar las entradas y salidas del autómata para conectar sensores y actuadores respectivamente. Cómo traducir las instrucciones que conocemos del castellano al lenguaje del autómata. Aprendizaje del lenguaje del autómata. Cómo realizar la instalación del autómata. Y finalmente, cómo comunicarnos con el autómata para introducir en su memoria el programa que deseamos. La creación de un programa que cumpla con las especificaciones que nos piden, será mejor o peor, más o menos sencillo de realizar, en función de: El número de instrucciones distintas de las que disponemos para realizar el programa, y de los elementos como temporizadores, contadores, marcas, etc., que posee internamente el autómata. La forma en que hemos colocado cada una de estas instrucciones, para cumplir con lo que ha pedido el cliente. Nuestra habilidad para realizar el programa más simple. Estructura del autómata programable 15 Formación Abierta 3.3. Partes y funcionamiento autómata programable de un Tenemos una primera aproximación de lo que es un autómata programable y para que se utiliza. Ahora nos centraremos en ver sus partes (externas e internas) y su funcionamiento. 3.3.1. Estructura externa Todos los autómatas programables, poseen una de las siguientes estructuras externas: Compacta En un solo bloque están todos los elementos. Los pequeños autómatas suelen tener este tipo de estructura, ya que incorporan en la misma CPU los módulos de entrada/salida digitales, fuente de alimentación e incluso conectores para comunicaciones. La utilización de estos dispositivos ha ido aumentando rápidamente, ya que en algunos modelos se permite la incorporación de módulos de ampliación e incluso señales analógicas. Figura 3.7. 16 Ejemplo de un autómata compacto. Estructura del autómata programable Autómatas Programables 03 Modular Cada elemento que conforma el autómata programable está por separado: fuente de alimentación, CPU, módulos de entradas y salidas digitales, etc. Esta disposición de dispositivos permite una gran flexibilidad de configuración para las necesidades del usuario. Un sistema modular facilita el diagnóstico y mantenimiento, ya que si un dispositivo falla puede ser rápidamente sustituido. En cambio, en un autómata compacto, aunque sólo falle el módulo de entradas/salidas debe ser sustituido todo el autómata. Figura 3.8. Estructura modular de un autómata programable. Exteriormente nos encontraremos con cajas que contienen una de estas estructuras, las cuales poseen indicadores y conectores en función del modelo y fabricante. Para el caso de una estructura modular se dispone de la posibilidad de fijar los distintos módulos en raíles normalizados, para que el conjunto sea compacto y resistente. Los micro-autómatas suelen venir sin caja, en formato kit, ya que su empleo no es determinado y se suele incluir dentro de un conjunto más grande de control o dentro de la misma maquinaria que se debe controlar. Estructura del autómata programable 17 Formación Abierta 3.3.2. Estructura interna Internamente el autómata programable contiene un “pequeño ordenador” que hace ejecutar las órdenes que previamente hemos introducido en su memoria. Este pequeño ordenador contiene esencialmente las diferentes partes que se muestran a continuación: Memoria. C.P.U (Unidad Central de Proceso). Unidades de I/O. Buses. Bus de Direcciones Dispositivo I/O Memoria CPU RAM ROM Entradas Salida Programadora Etc. Bus de Datos Figura 3.9. Estructura interna por bloques de un autómata programable. En los siguientes puntos vamos a ir presentando los distintos componentes tanto internos como externos, la función de cada uno de ellos. Memoria Podemos definir memoria como un dispositivo capaz de almacenar información. Esta información puede ser nuestro programa o datos que el mismo necesita. También puede ser información transparente a nosotros, es decir, programas y datos ya incluidos dentro del autómata, y usados por él, sin que nosotros seamos conscientes de ello. 18 Estructura del autómata programable Autómatas Programables 03 Ya sabemos que un bit es la unidad fundamental de información, y en su momento, lo comparamos con un interruptor, o con algo que pudiera tener dos estados distintos estables. Si utilizamos un elemento biestable (como por ejemplo un interruptor) como dispositivo para almacenar información, sólo podremos guardar dos posibles informaciones: si se encuentra a “1” o a “0”. Un dispositivo que tan solo pueda almacenar una información de 1 bit nos da poco juego, así que, en su día, se recurrió a juntar 8 biestables dentro de una misma caja para poder almacenar 8 bits. Los 8 interruptores de la figura pueden formar 256 combinaciones diferentes según el estado en el que se encuentre cada uno de ellos de forma individual. Para comprobarlo tenemos dos métodos: Armarnos de paciencia y realizar a mano todas las combinaciones. O utilizar la fórmula 2ⁿ, dónde “n” es el número de bits que utilizamos. En nuestro caso, para 8 bits, el número de combinaciones posibles es 28=256. Según esto, podemos almacenar en nuestra caja 256 informaciones diferentes. En la tabla siguiente vemos las primeras y últimas combinaciones: bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0 Combinación 1 0 0 0 0 0 0 0 0 Combinación 2 0 0 0 0 0 0 0 1 Combinación 255 1 1 1 1 1 1 1 0 Combinación 256 1 1 1 1 1 1 1 1 Si añadimos más cajas, colocándolas una debajo de otra, conseguiremos una matriz de biestables. En la figura siguiente aparece una matriz con “n” cajas o con la capacidad de almacenar “n” bytes de información. Estructura del autómata programable 19 Formación Abierta Hemos conseguido una matriz de biestables, agrupados de 8 en 8, en la que podemos almacenar “n” bytes. Una matriz de celdas parecida a ésta, es la que tienen los autómatas programables, ordenadores y, en esencia, cualquier dispositivo lógico programable. Como es obvio, no son interruptores, sino elementos semiconductores insertados en una pastilla de silicio (la fotografía nos muestra una pastilla aumentada), y que también tienen la característica de ser elementos biestables. Una de la características más importantes de un autómata, y en general de cualquier dispositivo programable (un ordenador, por ejemplo) es la cantidad de memoria que posee. Revisaremos a continuación los términos usados para describir la cantidad de memoria. En el mundillo de la informática, seguro que hemos escuchado a alguien hablar de que un fichero ocupa “tantos Kas”, o que tienen un disco duro de “no se cuantos megas”. Pues bien, están hablando de múltiplos del byte: 1 kilobyte = 1Kbyte = 210 bytes = 1024 bytes. 1 megabyte = 1024 Kbytes = 220 bytes = 1.048.576 bytes. ¿Cuántas instrucciones pueden ocupar nuestro programa si la memoria de nuestro autómata es capaz de almacenar 16 K y cada instrucción ocupa 2 bytes? Si la memoria es capaz de almacenar 16 K, podremos hacer programas que ocupen como máximo 16 x 1024 = 16.384 bytes. Como cada instrucción ocupa 2 bytes, el número máximo de instrucciones que podrá tener el programa que hagamos será 16.384/2 = 8.192 instrucciones. 20 Estructura del autómata programable Autómatas Programables 03 Los dos tipos de memoria usados en los autómatas son la memoria RAM (de Random Access Memory o memoria de acceso aleatorio), también conocida como “memoria de lectura/escritura” y la ROM (Read-Only Memory o memoria de sólo lectura). A continuación lo explicamos más detenidamente: Memoria ROM (READ ONLY MEMORY o memoria de sólo lectura). La ROM es la memoria que no pierde sus datos cuando quitamos la alimentación. Por esta razón, la ROM también se conoce como memoria no volátil. La ROM contiene programas e información esencial para el funcionamiento del autómata, introducida por el fabricante. La información de la ROM es permanente y no puede cambiarse por el usuario ni se pierde cuando desconectamos el autómata. Hay distintos tipos de memoria ROM, como la PROM, EPROM, EEPROM, Flash EPROM. Veámoslas: ° PROM (ROM programable): La memoria PROM es una memoria ROM que puede ser programada por el usuario. Por cada bit de la PROM hay algo parecido a un fusible. La PROM se programa fundiendo estos fusibles. Si la información grabada en la PROM resulta ser errónea, la podemos tirar tranquilamente, puesto que estos fusibles se funden de forma permanente. Por este motivo a la memoria PROM también se conoce como OTP (One-Time Programmable, o programable sólo una vez). ° EPROM (Erasable Progammable ROM o ROM programable y borrable): Esta memoria se inventó para permitir cambios en los contenidos de una memoria PROM una vez que la habíamos “fundido”. Con los EPROM podemos programar el chip de memoria y después borrarlo tantas veces como queramos. El único problema es que el borrado puede tardar unos 20 minutos. Todas las memorias EPROM tienen una ventanita en el chip, usada para permitir el paso de radiaciones ultravioletas (UV), que son las que realizan las tareas de borrado. Por esta razón podemos encontrar referencias a las mismas como UV-EPROM. Figura 3.10. Memoria EPROM. Estructura del autómata programable 21 Formación Abierta ° EEPROM (Electrically Erasable Programmable ROM o ROM programable y borrable eléctricamente) La memoria EEPROM tienen grandes ventajas sobre su antecesora EPROM, como el hecho de que su sistema de borrado es eléctrico e instantáneo. Además, con las EEPROM podemos seleccionar qué byte queremos borrar, en contraste con las UV-EPROM en las que se borraba el contenido entero de la memoria. Aun así, la principal ventaja de las memorias EEPROM, es el hecho de que podemos programar y borrar sus contenidos desde la misma tarjeta de sistema que la soporta, es decir, no necesita un dispositivo externo para programarla o borrarla (un chollo vamos). Para aprovechar esta característica completamente, el diseñador debe incorporar en la tarjeta de sistema la circuitería necesaria. ° Flash EPROM Su nombre proviene de la rapidez con la que se realiza el proceso de borrado. Como el sistema de borrado es eléctrico, también la encontraremos como Flash EEPROM. La mayor diferencia con las EEPROM puras es que las Flash EPROM se borran completamente. ° Memoria RAM (Random Access Memory o memoria de acceso aleatorio) También conocida como memoria volátil, ya que al quitarle la alimentación se pierde su contenido. El autómata usa la RAM para almacenar temporalmente los programas que esté ejecutando. Estos datos se pierden cuando apagamos el autómata, a menos que contemos con una batería (batería tampón). Por esta razón a la RAM se la conoce también como “memoria volátil”. Hay tres tipos de RAM: SRAM, DRAM y NV-RAM. También las vemos: 3 SRAM (Static RAM o RAM estática): Las celdillas en la SRAM están hechas con biestables flip-flops y no necesitan refrescar su contenido para mantener los datos. El principal problema que presentan es que, por sus características constructivas, pueden almacenar a igual tamaño, menos información que sus primas-hermanas DRAM. 22 Estructura del autómata programable Autómatas Programables 03 3 DRAM (Dynamic RAM o RAM dinámica): Estas memorias usan un condensador para almacenar cada bit. El uso de condensadores supone un menor tamaño para almacenar la misma información que con una SRAM, pero tiene el inconveniente de que necesitan “refrescar” su contenido constantemente, por el hecho de que el condensador pierde su carga (todos los condensadores tienen una corriente de pérdida). Otra desventaja con respecto a la SRAM, es que el “tiempo de acceso” (el tiempo que se tarda en leer o escribir un dato en ellas), es mayor. Su principal ventaja: son mucho más baratas. 3 NV-RAM (Nonvolatile RAM o RAM no volátil): Simplemente es una RAM que cuenta con una pequeña batería de litio integrada en el mismo chip. Cuando desconectamos la alimentación, la batería se encarga de mantener los datos. ¿Cuánto dura la batería? Unos diez años. ¿Cuál es su principal astronómicamente caras. inconveniente? Son Estructura de la memoria del autómata programable La memoria de programa se estructura en diferentes áreas, que son: ° Área de datos. ° Área de programa. ° Área de configuración del sistema. El área de datos reúne los objetos vinculados a los datos de la configuración software, o sea, aquí se almacenará información referente al número de entradas y salidas manejables por el equipo, cantidad de palabras direccionables para almacenado de datos, bits especiales, etc. En el área de programa se almacenará el programa que nosotros desarrollemos, lo que se denomina código ejecutable. Estructura del autómata programable 23 Formación Abierta El área de configuración del sistema es la encargada de almacenar los datos de configuración y la estructura de nuestro programa o aplicación. Aquí se almacena información tal como el número de entradas y salidas conectadas al autómata, número de temporizadores y contadores disponibles, registros, etc. También se almacenan datos referentes a como queremos que se ejecute nuestro programa y si queremos que el autómata nos avise de determinadas anomalías. Figura 3.11. Asignación de memoria de un autómata. C.P.U. (Unidad Central de Proceso) Es el “cerebro” del sistema. Su misión es controlar el funcionamiento de las demás unidades, así como procesar los datos de acuerdo al programa introducido en la memoria La C.P.U. se conecta a la memoria y a los dispositivos I/O mediante un conjunto de cables a los que llamamos buses. Los buses del autómata llevan información de un lugar a otro, de forma similar a la que un autobús lleva gente de un sitio a otro. Todos los dispositivos programables tienen tres tipos de buses: el bus de direcciones, el bus de datos y el bus de control. 24 Estructura del autómata programable Autómatas Programables 03 Para que un dispositivo (de memoria o I/O) sea reconocido por la C.P.U. del autómata, debe tener una “dirección” asignada. Esta dirección debe ser única; no puede haber dos dispositivos con la misma dirección. Tampoco puede haber un dispositivo con las direcciones distintas (sería interesante que los cheques llegaran a mi casa y las facturas a la de mi vecino, pero no me dejan). La C.P.U. pone la dirección (en binario, con unos y ceros) en el bus de direcciones, y un circuito decodificador se encarga de encontrar el dispositivo al que se dirige. Entonces, la C.P.U. usa el bus de datos para recoger datos de ese dispositivo o para enviárselos. Funcionamiento de la C.P.U. Un programa guardado en la memoria proporciona instrucciones a la C.P.U. para realizar una acción. La acción puede ser simplemente sumas de números o controlar un proceso industrial. La función de la C.P.U. consiste en ir recogiendo (leyendo) estas instrucciones una por una en la memoria e ir ejecutándolas. Para realizar las acciones de lectura y ejecución de las instrucciones, todas las C.P.U. cuentan con recursos como los siguientes: ° Uno de los principales recursos de la C.P.U. es el número de registros que tiene a su disposición. La C.P.U. usa los registros para almacenar información temporalmente. Esta información pueden ser los datos que han de procesarse, o la dirección de un valor que necesitamos recoger de la memoria. Los registros de la C.P.U pueden ser de 8 bits, 16 bits o incluso más dependiendo de la misma. En general, cuanto más y mayor información puedan almacenar los registros, mejor será la C.P.U. ° La C.P.U. también cuenta con lo que se reconoce como “ALU” (arithmetic/logic unit O unidad aritmético lógica). La ALU es la encargada de realizar las funciones aritméticas, como la suma y la resta, y las funciones lógicas como AND, OR y NOT. ° Todas las C.P.U. tienen un “contador de programa”. La función del contador de programa es apuntar a la dirección de la siguiente instrucción que debe ejecutarse. Cada vez que se ejecuta una instrucción, el contador de programa se incrementa para apuntar hacia la dirección de la siguiente instrucción que debe ser ejecutada. Esto es, el contenido del contador de programa se deposita en el bus de direcciones para encontrar y leer la instrucción siguiente. Estructura del autómata programable 25 Formación Abierta ° Por último, la C.P.U. cuenta con el “decodificador de instrucciones”. La función del mismo es la de interpretar la instrucción en curso recogida por la C.P.U. de la memoria. Esta instrucción se guarda momentáneamente en un registro especial llamado registro de instrucciones. Podemos pensar en el decodificador de instrucciones como una especie de diccionario en el que está almacenado el significado de cada instrucción, y que le cuenta a la C.P.U. qué pasos debe seguir una vez haya recibido una instrucción dada. Del mismo modo que un diccionario es mejor cuantas más palabras define, la C.P.U será mejor cuanto mayor sea el juego de instrucciones que puede comprender. A continuación vemos un esquema de bloques del contenido interno de una C.P.U. de aplicación general: Figura 3.12. Figura 3.12. CPU de aplicación general. Unidades de entrada/salida Su función es canalizar la transferencia de información entre el sistema microcomputador y los dispositivos exteriores Buses Como ya hemos comentado, los buses unen los diferentes dispositivos del sistema y pueden ser de tres tipos: bus de datos, bus de direcciones y bus de control. 26 Estructura del autómata programable Autómatas Programables 03 Bus de Datos Como su nombre indica el bus de datos contiene información referida exclusivamente a datos. Dado que el bus de datos se usa para llevar información de / hacia la C.P.U., cuanto mayor sea el bus de datos, mejor será la C.P.U. Si pensamos en el bus de datos como si fuera una autopista lo veremos más claro. Cuantos más carriles tenga la autopista, más información podrá circular entre la C.P.U. y los dispositivos externos. En el tema que nos ocupa, un carril será un cable, que podrá tener tensión o no (“1” o “0” respectivamente). Figura 3.13. Ejemplo de bus. En el dibujo, hemos unido la C.P.U. con la memoria mediante un bus de datos con 8 cables. Si por cada cable podemos enviar un “1” o un “0”, este bus permitirá que la C.P.U. envíe o recoja 8 bits o 1 byte de golpe. Está claro que cuanto mayor sea el tamaño del bus de datos, es decir, cuantas más líneas posea, más información podremos tratar en el mismo tiempo, y más cara será la C.P.U. y el autómata. Decimos que el bus de datos es bidireccional por el hecho de que los datos fluyen desde “y” hacia la C.P.U. Bus de direcciones Como su nombre indica el bus de direcciones contiene información referida exclusivamente a direcciones de memoria. El bus de direcciones se usa para identificar los dispositivos y la memoria conectados a la C.P.U., cuantas más líneas (cables) posea, mayor número de dispositivos podremos direccionar. En otras palabras, el número de líneas del bus de direcciones determina el número de lugares con los que podrá comunicarse la C.P.U. El número de localizaciones será igual a 2ⁿ donde “n” es el número de líneas (¿de qué nos suena esta formulilla?). Estructura del autómata programable 27 Formación Abierta Una C.P.U. con 16 líneas en el bus de direcciones, puede proporcionarnos un total de 65.536 (216) o 64K de memoria direccionable. Cada posición puede tener un máximo de 1 byte de información. El bus de direcciones es unidireccional, lo que significa que la C.P.U. lo usa exclusivamente para colocar una dirección en el mismo y que el dispositivo elegido se dé por aludido. Como el bus de direcciones se usa para identificar los dispositivos y la memoria conectados a la C.P.U., cuantas más líneas (cables) posea, mayor número de dispositivos podremos direccionar. En otras palabras, el número de líneas del bus de direcciones determina el número de lugares con los que podrá comunicarse la C.P.U. El número de localizaciones será igual a 2n donde “n” es el número de líneas (¿de qué nos suena esta formulilla?). Bus de control El bus de control contiene líneas que se usan para comunicarle al dispositivo, si lo que quiere la C.P.U. es leer datos o escribirlos. De los tres buses, el de datos y el de direcciones determinan las prestaciones de la C.P.U. 28 Estructura del autómata programable Autómatas Programables 03 • Resumen • El bit es la unidad fundamental de información. Sólo puede proporcionarnos dos posibles informaciones. “1” o “0”. • Los circuitos eléctricos pueden explicarse utilizando listas de instrucciones en castellano. • Una instrucción consta de: operación y operando. • El autómata programable sustituye a la mayoría de los elementos auxiliares (temporizadores, contadores, etc.), y al cableado de un circuito clásico. • La memoria es un dispositivo capaz de almacenar información. • El mapa de memoria muestra cómo se distribuyen las diferentes áreas de memoria del autómata. En él, podemos encontrar las imágenes de proceso de entradas y salidas, el sistema operativo y datos internos del autómata, y la zona destinada al programa de usuario. • Los principales tipos de memoria son la RAM y la ROM. 1 Nibble = 4 bits. 1 Byte = 8 bits. 1 Palabra = 16 bits = 2 bytes. 1 Kilobyte = 210 bytes = 1024 bytes. • Podemos considerar que el autómata está compuesto por una unidad central de proceso o C.P.U., la memoria, y los dispositivos de entrada/salida. • Los buses de un autómata son: el bus de direcciones, el bus de datos y el bus de control. • Los recursos de la C.P.U. son los registros internos, la unidad aritmético lógica o A.L.U., el contador de programa, el decodificador de instrucciones, etc. Estructura del autómata programable 29 04 Autómatas Programables Conceptos de programación Autómatas Programables 04 • Índice • OBJETIVOS .......................................................................................................... 3 • INTRODUCCIÓN .................................................................................................. 4 4.1. Escritura de un programa .......................................................................... 5 4.2. Formas de representación de un programa ............................................. 6 4.2.1. Lista de instrucciones ............................................................................ 6 4.2.2. Esquema de funciones .......................................................................... 6 4.2.3. Esquema de contactos .......................................................................... 7 4.3. Estructura del programa ............................................................................ 8 4.3.1. Programación lineal .............................................................................. 8 4.3.2. Programación estructurada ................................................................... 8 4.4. Objetos de programación ......................................................................... 10 4.4.1. Entradas digitales ................................................................................ 10 4.4.2. Salidas digitales .................................................................................. 11 4.4.3. Marcas ................................................................................................ 12 4.4.4. Temporizadores .................................................................................. 13 4.4.5. Contadores .......................................................................................... 13 4.4.6. Entradas/salidas analógicas ............................................................... 14 4.5. Operaciones básicas ................................................................................ 16 4.5.1. Operaciones combinacionales ............................................................ 16 4.5.2. Elementos biestables .......................................................................... 18 4.5.3. Temporizadores .................................................................................. 19 4.5.4. Contadores .......................................................................................... 20 4.5.5. Operaciones de carga y transferencia ................................................ 21 4.5.6. Operaciones aritméticas y de comparación ........................................ 22 • RESUMEN .......................................................................................................... 25 Conceptos de programación 1 Autómatas Programables 04 • Objetivos • Conocer las distintas formas de representar un programa. • Conocer como se puede estructurar un programa. • Razonar los posibles inconvenientes que pueden salir a la hora de estructurar un programa. • Conocer los distintos objetos de programación existentes en un autómata programable como son: entradas, salidas, marcas, etc. Conceptos de programación 3 Formación Abierta • Introducción Escribir un programa para cualquier autómata requiere conocer el lenguaje de programación del mismo, el cual puede ser expresado a través de diferentes simbologías por ello intentaremos conocerlas y realizaremos ejemplos con estas. Aprender los conceptos de programación supone conocer las operaciones disponibles (operaciones como OR, AND, etc.) y la forma en que deben representarse. También exige saber los diferentes operandos, cómo representarlos y cómo acceder a ellos (entradas, salidas, accediendo a nivel de bit, de byte, de palabra, etc.). Con este capítulo daremos el primer paso. 4 Conceptos de programación Autómatas Programables 04 4.1. Escritura de un programa Ya sabemos lo que es un programa (una lista de instrucciones), y probablemente podríamos realizar alguno con las instrucciones en castellano que vimos en temas anteriores. Lamentablemente, el autómata sería incapaz de comprenderlo. Lo que sí entendería son los códigos binarios de los ejemplos de operaciones que vimos, pero programar el autómata mediante unos y ceros no sería muy práctico. Para ayudar al hombre en las tareas de programación se inventaron los lenguajes mnemónicos, que utilizan en lugar de las instrucciones, tal y como las diríamos nosotros, abreviaturas de las mismas. En realidad, serán abreviaturas de palabras inglesas, alemanas, francesas, etc., Puesto que los fabricantes no suelen ser españoles. Deberemos escribir los programas siguiendo las reglas prefijadas por el fabricante mediante un dispositivo programador (por ejemplo un ordenador), y será este dispositivo el que se encargue de convertirlo en unos y ceros (código máquina). Hay que tener en cuenta que: • Cada fabricante utiliza su lenguaje de programación, aunque todos se rigen por unas reglas más o menos comunes. • El único lenguaje de programación común para todos los fabricantes es el de contactos. • Una instrucción es la parte más reducida de un programa escrito, y normalmente ocupa una palabra (dos bytes) dentro de la zona de memoria de programa. • Para introducir las instrucciones en la memoria del autómata necesitamos un aparato de programación. Figura 4.1. Aparatos de programación: consola y ordenador. Conceptos de programación 5 Formación Abierta 4.2. Formas de representación de un programa Todos los fabricantes permiten programar sus autómatas programables con las siguientes formas de representación: 4.2.1. Lista de instrucciones En la que se representa el programa como sucesión de abreviaturas de instrucciones. Una instrucción tiene la siguiente estructura. Operación Operación (Dirección del operando) U E 124.0 UN E 124.3 U E 124.1 ON E 124.2 E 32.0 Parámetro Identificador del operando 4.2.2. U O E 124.7 = A 124.0 Esquema de funciones En el que se representan gráficamente con símbolos las operaciones lógicas que conforman el programa. 6 Conceptos de programación Autómatas Programables 4.2.3. 04 Esquema de contactos Se representan gráficamente con símbolos eléctricos las funciones de mando. E124 . 0 E124 . 1 E124 . 2 A124 . 0 E125 . 0 E125 . 6 Cada forma de representación tiene sus particularidades. Por ello, un módulo de programa que haya sido escrito en lista de instrucciones, no puede sacarse así como así en funciones o contactos. Las formas de representación gráficas tampoco son compatibles entre sí al 100 %. Sin embargo, siempre es posible traducir a lista de instrucciones los programas escritos en funciones o contactos. La siguiente figura muestra de forma gráfica la compatibilidad entre las tres formas de representación. FUP KOP AWL (100%) Conceptos de programación 7 Formación Abierta 4.3. Estructura del programa Anteriormente, vimos cómo se almacenaba un programa en la memoria de programa. Este programa se desarrollará de forma lineal o estructurada dependiendo de su complejidad: 4.3.1. Programación lineal Se utiliza para procesar tareas simples de automatización. Su característica principal es que solamente se utiliza un módulo o bloque de programa. Esta sección en cuestión es el “módulo principal”. Su ejecución es cíclica, es decir, irá procesando línea a línea nuestro programa hasta llegar a la última, momento en el que automáticamente retornará a la primera, repitiéndose este proceso continuamente. 1ª Instrucción 2ª Instrucción … … … … Última instrucción 4.3.2. Programación estructurada Cuando la automatización que tenemos que resolver es compleja resulta conveniente dividir nuestro programa en secciones. Este procedimiento tiene las siguientes ventajas: 8 Programación más simple y clara, en programas de gran tamaño. Posibilidad de estandarizar partes del programa. Facilidad para efectuar modificaciones. Prueba y depuración más simple del programa. Puesta en servicio más sencilla. Utilización de subprogramas. Conceptos de programación Autómatas Programables 04 Las secciones que comentábamos reciben el nombre de módulos o subrutinas. En este tipo de programación también existe un programa principal, solo que, en diversos tramos de éste “saltamos” a ejecutar otros módulos más pequeños, retornando al principal cuando éste ha sido realizado. Al igual que en la programación lineal ésta también es cíclica. Proceso/Módulo 1 Retorna... Proceso/Módulo 1 Retorna... Proceso/Módulo 1 Retorna... Normalmente, el programador utiliza la programación estructurada en el 100 % de los casos. Conceptos de programación 9 Formación Abierta 4.4. Objetos de programación A continuación comentaremos los objetos de programación más conocidos. Estos objetos se utilizan para cualquier tipo de autómata y fabricante. 4.4.1. Entradas digitales Permiten conectar al autómata programable los detectores del proceso automatizado. Estos detectores dan información binaria al autómata programable (si hay pieza o no, si un interruptor está abierto o cerrado, etc). Módulo de Entradas Digitales Esta información llegará a activar o no un bit interno en la memoria del autómata. Figura 4.2. Conexión de detectores en módulos de entradas del autómata programable. Los módulos de entradas digitales trabajan siempre con señales de tensión, es decir, cuando tenemos tensión en la entrada el autómata toma un “1” y cuando no hay tensión un “0”. El nivel de tensión utilizado normalmente es de 24 V. en corriente continua, aunque también existen entradas a 110 V y 220 V en corriente alterna. Estas últimas se utilizan poco para maximizar la seguridad en lo posible. 10 Conceptos de programación Autómatas Programables 04 ¿Por qué se utiliza la tensión de 24 V en corriente continua y no por ejemplo 5 V (que en el campo de la electrónica es la más usual)? Porque en una instalación industrial se puede dar en muchos casos conectar un detector a un cable de 150 m. Esto puede ocasionar caídas de tensión, además de ruido en la línea que no garantiza que la información llegue al autómata correctamente (el caso de utilizar 5 V en c.c.) El proceso de adquisición de la señal de entrada consta esencialmente de una etapa de protección de sobretensiones y otra de aislamiento galvánico: Protección sobretensiones: protege la parte de las entradas ante transitorios en la señal. Aislamiento galvánico: separa la electrónica de control de las conexiones de las cartas de entradas. Bus Interno Figura 4.3. Memoria de Módulo Aislamiento galvánico Protección sobretensiones Esquema de bloques de una entrada digital del autómata programable. En algunos autómatas también se aplica una etapa de filtrado. Esta etapa evita posibles ruidos que puedan entrar por el cable del detector. Un ruido que se introduzca por el cable del sensor durante un tiempo inferior al configurado por el filtrado no será interpretado como “1”. 4.4.2. Salidas digitales El módulo de salidas digitales del autómata programable permite activar los preaccionadores y accionadores de todo o nada del proceso automatizado (electroválvulas, contactores, pilotos, etc.). Los módulos de salidas digitales pueden ser de salida a relé o de salida estática: Las salidas a relé tiene la ventaja de ser libres de tensión. La tensión puede provenir de una fuente externa y conectarse al relé. Esta tensión puede ser variable, aunque no se debe sobrepasar la intensidad máxima que soporta el contacto del relé. Conceptos de programación 11 Formación Abierta Los módulos con salidas estáticas tienen como elemento de conmutación un componente electrónico como son transistores o triacs. Este sistema de salida sólo puede actuar con elementos que trabajen a la misma tensión, sin embargo son más baratos y pueden trabajar a una velocidad mucho mayor que los de salida a relé. Esta característica es muy importante ya que en el caso de tener que controlar los pulsos de un motor paso a paso nunca lo podríamos hacer con salidas digitales a relé. Las salidas digitales estarán formadas según el siguiente esquema de bloques: Memoria de Módulo Bus Interno Figura 4.4. 4.4.3. Aislamiento galvánico Circuito de mandos Bloques de una salida digital. Marcas Son posiciones de memoria que permiten guardar información temporalmente, o sea podemos realizar operaciones de lectura y escritura. Se utilizan para activar bits (incluso bytes o palabras) en el caso de producirse un suceso establecido en el programa. Este bit es interno, de forma que no utilizamos una salida real del autómata. Las marcas suelen ser remanentes y no remanentes. En las marcas remanentes se guarda la información aunque quitemos tensión al autómata, mientras que en las marcas no remanentes esta información desaparece cuando quitamos tensión. La información de las marcas remanentes solamente se podrá cambiar mediante las oportunas instrucciones en programa. Cada fabricante establece las posiciones de memoria dedicadas a la utilización de marcas. 12 Conceptos de programación Autómatas Programables 4.4.4. 04 Temporizadores Los temporizadores son componentes casi imprescindibles en cualquier proceso automatizado, y como los autómatas están completamente orientados a la resolución de estos procesos, sería un contrasentido que no contasen con ellos. No sólo cuentan con ellos, sino que además, son más versátiles que los clásicos. Se trata de un dispositivo mecánico, electrónico, neumático, etc., que al activarlo, permite accionar o detener un aparato al cabo de un cierto tiempo previamente determinado. La propia definición nos da las pautas a seguir para usar un temporizador: Tenemos que saber cómo activarlo. Tenemos que saber cómo indicarle el tiempo que debe temporizar. Y por último, tenemos que saber cómo indicarle si la temporización es para acciona, o para detener el aparato en cuestión. 4.4.5. Contadores En numerosos procesos surge el problema de contar cosas. Dentro de la automatización clásica disponemos de elementos contadores con diferentes prestaciones como en el caso de los temporizadores. A este respecto los autómatas no son menos y también implementan de forma interna elementos contadores. Las operaciones que los manejan, unidas al resto de operaciones soportadas por nuestro autómata, nos permitirán contar cualquier cosa y de formas muy diversas. Hablamos de un dispositivo mecánico, eléctrico, electrónico, etc., que al activarlo incrementa o decrementa en una unidad un valor, hasta alcanzar otro valor previamente determinado. En ese momento permitirá accionar o detener un aparato. Para utilizar el contador debemos conocer: Cómo activarlo para que cuente hacia delante o hacia atrás. Cómo cargar el valor que tiene que alcanzar. Cómo utilizarlo para activar o desactivar una salida. Conceptos de programación 13 Formación Abierta 4.4.6. Entradas/salidas analógicas Este tipo de módulos permiten controlar elementos de señales analógicas como son los captadores de temperatura o de presión o accionadores como variadores de velocidad de un motor. Entradas analógicas Permite convertir una magnitud analógica en un número que se guarda en una variable interna de la memoria de datos. Esta conversión se realiza atendiendo a la resolución (numero de bits empleado en la conversión) y cada cierto intervalo de tiempo. La precisión de estos módulos oscila entre los 12 y 16 bits. A mayor número de bits más precisa será la lectura, ya que podremos diferenciar intervalos más pequeños de la señal a muestrear. La señal, una vez acondicionada y filtrada entra en el conversor analógico/digital, quien convierte la señal en palabras binarias, es decir, con “1” y “0”. Figura 4.5. Esquema interno de bloques de entradas analógicas. Con estos módulos se puede trabajar normalmente en tensión o en corriente: Los rangos trabajando en tensión suelen ser: 0..10 V 10 V o sea podremos conectar dispositivos que proporcionen dichas tensiones. Trabajando en corriente los márgenes de funcionamiento son: 0-20 mA y 420 mA. También nos podemos encontrar módulos de entradas analógicas adaptados para trabajar con sondas de temperatura. Normalmente termopares o termoresistencias (Pt100, NTC, termopares J, K, etc). ¿Cuándo emplearemos unas u otras? Viene determinado por la distancia existente entre el captador y la carta de entradas analógicas. Si hablamos de distancias cortas podemos utilizar indistintamente entradas a tensión o entradas en corriente. Si la distancia es larga deberemos utilizar exclusivamente entradas a corriente, ya que si no se producirían caídas de tensión en los conductores que desvirtuaría la señal a medir. 14 Conceptos de programación Autómatas Programables 04 Salidas analógicas Permiten que el valor de una variable numérica interna del autómata se convierta en tensión o intensidad. Esta tensión o intensidad en la salida del módulo nos permitirá controlar actuadores de mando analógico como pueden ser variadores de velocidad, reguladores de caudal, etc. La resolución de estos módulos suele ir de los 12 a 14 bits (menor que la de los módulos de entrada). El tipo de señal suministrada puede ser: 0-10 V, 10 V, 0-20 mA y 4-20 mA A continuación, se muestra un esquema de bloques de un módulo de salidas analógicas. Figura 4.6. Esquema interno por bloque de salidas analógicas. Conceptos de programación 15 Formación Abierta 4.5. Operaciones básicas Las operaciones básicas que a continuación se van a explicar, son comunes para todo tipo de autómata y fabricante: 4.5.1. Operaciones combinacionales Siempre estamos a vueltas con lo mismo, contamos con unas señales de entrada y en función de éstas, nuestro sistema de control (elemento de tratamiento) debe activar o no, unas salidas. Esto significa que, ante una combinación dada de señales de entrada, el sistema de control debe responder con una única combinación de señales de salida. De forma general, diremos que en un circuito combinacional, el estado de las salidas depende directamente del estado de las entradas. Esto que puede ser lógico no lo es tanto, ya que posteriormente veremos que en otros tipos de circuitos no es exactamente así. Las operaciones combinacionales en programación de autómatas programables se basan en la combinación de contactos (abiertos y cerrados) en serie y paralelo. Combinación de contactos en serie Como ya vimos en el tema 3, se basa en programar exactamente en el esquema de contactos: SI ESTÁ ACTIVADO S1 Y ESTÁ ACTIVADO S2 ACTIVA LA SALIDA Como hemos comentado anteriormente, puede suceder que utilicemos para nuestra aplicación contactos normalmente cerrados: 16 Conceptos de programación Autómatas Programables 04 La programación será exactamente igual, sólo que emplearemos la condición del contacto cerrado: SI ESTÁ ACTIVADO S1 Y NO ESTÁ ACTIVADO S2 ACTIVA LA SALIDA Combinación de contactos en paralelo S1 S2 Igual que en el ejemplo anterior programaremos exactamente el esquema de contactos, SI ESTÁ ACTIVADO S1 O ESTÁ ACTIVADO S2 ACTIVA LA SALIDA Combinación de contactos serie y paralelo En estos casos, la programación se realizará por partes más sencillas, uniendo, cuando interese, estas partes. Para unir las distintas partes en las que se pueda dividir el automatismo, se utiliza normalmente paréntesis o de forma más estructurada con marcas. Veamos el siguiente ejemplo solucionado con marcas, ya que a la vez nos permitirá entender mejor este concepto: Bloque 1 S1 S4 S2 Bloque 2 S3 Conceptos de programación 17 Formación Abierta El programa estructurado con marcas será: SI ESTÁ ACTIVADO S1 O ESTÁ ACTIVADO S2 ACTIVA LA MARCA DEL BLOQUE 1 SI ESTÁ LA MARCA DEL BLOQUE 1 Y ESTÁ ACTIVADO S4 ACTIVA LA MARCA DEL BLOQUE 2 SI ESTÁ LA MARCA DEL BLOQUE 2 O ESTÁ CTIVADO S3 ACTIVA LA SALIDA 4.5.2. Elementos biestables Si utilizamos alguna salida del sistema de control, como entrada al mismo, además de como salida, seguiremos teniendo una combinación de entradas, pero con una particularidad muy interesante, y es que la salida ofrecida por el sistema de control, depende de las entradas, pero además también depende del estado previo en que se encontraba esta salida, es decir, de cómo se encontraba la salida un instante antes (suele indicarse como instante t-1). En realidad seguimos hablando de lógica combinacional, pero la particularidad comentada la hace tan importante como para darle un nombre: lógica secuencial. Los sistemas que forman parte de la lógica secuencial son aquellos en los que, el estado de sus salidas depende además del estado de las entradas, de los estados anteriores de las salidas, que han sido memorizados de alguna forma. Lo que quiere decir todo esto es que cuando se repite una misma combinación de estados de las entradas, la salida puede ser distinta, según cuando se haya producido y la secuencia de estados anteriores. 18 Conceptos de programación Autómatas Programables Figura 4.7. 4.5.3. 04 Ejemplo de aplicación de elementos biestables. Temporizadores Como ya comentábamos en apartados anteriores, estos elementos permiten realizar cualquier tipo de temporización de tipo industrial, es decir, a la conexión, a la desconexión, por impulso, etc. Usualmente, el temporizador se programa de forma que arranca con una orden de entrada, por ejemplo cuando un sensor detecta pieza. Después se programará el tipo de temporizador a utilizar (a la conexión, desconexión, por impulso, etc.) y el tiempo a temporizar (tantos minutos o segundos). Una vez realizada la temporización, el autómata nos “avisa” activando un bit interno de control que podemos consultar en cualquier momento. Veamos un ejemplo general de utilización de un temporizador de retardo a la conexión de 5 seg. La programación será: 1. Condición de activación de temporizador. 2. Carga del tipo de temporizador y tiempo a temporizar (en este caso temporizador con retardo a la conexión y 5 seg.). 3. Activación de bit del temporizador. Conceptos de programación 19 Formación Abierta El diagrama de tiempos será: “1” 3s “0” T1 “1” 5s “0” Como se observa, la señal de entrada se activa y empieza a temporizar. Una vez que ha terminado, se activa el bit del temporizador que determinará, según el programa, las acciones realizar a posteriormente. 4.5.4. Contadores Ya hemos explicado anteriormente que son dispositivos que se utilizan para “contar” diferentes elementos como son piezas terminadas, número de botellas, averías de proceso en un turno de trabajo, etc. Los contadores pueden ser ascendentes, (cuentan hacia arriba), descendentes, (cuentan hacia abajo), o ascendentes/descendentes, en los que se combinan los dos anteriores (por ejemplo para el control de ocupación de un aparcamiento). Usualmente, el contador se programa de forma que arranca con una consigna de entrada, por ejemplo cuando un sensor detecta el paso de un automóvil. Después se programará la forma de contaje (ascendente o descendente) y el contador a utilizar (hay que tener en cuenta que en la mayoría de los casos tendremos más de 64 contadores para poder utilizar). Una vez realizado el contaje, el autómata activará un bit que podremos consultar a través de programa. Veamos un ejemplo general de utilización de un contador ascendente hasta 999. 20 Conceptos de programación Autómatas Programables 04 La programación será: 1. Condición de incremento de contador. 2. Carga del tipo de contador. (En este caso ascendente). 3. Activación de bit del contador. El diagrama de tiempos será: “1” “0” Valor de contador 999 998 5 4 3 2 1 0 Como se observa, cada vez que se activa la entrada, el contador incrementa. Según el ejemplo, cuando llegue a contar 999 el bit del contador nos señalará que ha llegado al número deseado y permitirá seguir ejecutando el programa teniendo en cuenta este suceso. 4.5.5. Operaciones de carga y transferencia Hasta el momento hemos comprobado cómo las operaciones combinacionales, los biestables, etc, trataban informaciones de un bit, esto es, operandos cuyo estado podía ser exclusivamente “1” ó “0”. Los autómatas pueden trabajar con operandos de longitud byte (8 bits) y palabra (16 bits). Las operaciones de carga y transferencia nos permitirán recuperar y enviar estos operandos de un lado para otro según nos interese. Conceptos de programación 21 Formación Abierta Dos bytes de la zona de operandos de entradas, salidas y marcas, pueden formar conjuntamente una palabra de entradas, de salidas o de marcas. A groso modo, las operaciones de carga y transferencia permiten: Intercambiar informaciones entre las diferentes zonas de operandos. Preparar temporizaciones y valores de contador para su posterior tratamiento. Cargar valores constantes, necesarios para la ejecución del programa. El intercambio de información no se realiza directamente, sino por medio del acumulador. El acumulador es un registro del procesador que opera como memoria intermedia. El flujo de la información intercambiada es el que define el nombre de estas operaciones: El flujo de información de la memoria al acumulador se denomina carga (el acumulador se carga). El flujo de información del acumulador a la memoria se denomina transferencia (el contenido del acumulador es transferido a la memoria). 4.5.6. Operaciones aritméticas y de comparación Este apartado presenta dos tipos de operaciones distintas que se explican a a continuación: Operaciones aritméticas Estas operaciones permiten tratar los contenidos de los acumuladores como números y operar con ellos aritméticamente (sumarlos o restarlos). Estas operaciones utilizan normalmente operandos de 8 bits (byte), 16 bits (palabra) o 32 bits (doble palabra). El resultado de la operación efectuada se deposita en el acumulador, el cual es un registro que el dispositivo utiliza para guardar temporalmente los datos utilizados en cada operación 22 Conceptos de programación Autómatas Programables 04 Operaciones de comparación Las operaciones de comparación, permiten comparar entre sí los contenidos de los dos acumuladores: si dos números son iguales, si una es mayor o menor que otro, etc. Para poder comparar dos operandos, será necesario cargarlos sucesivamente en los dos acumuladores tal y como vimos con las operaciones de carga. Cuando se da la condición de comparación se activa un indicador. El uso de estas indicaciones nos permitirá modificar el curso del programa mediante la realización de saltos condicionales (operaciones de salto), pero esto es “otra historia” y lo guardamos para más adelante. Conceptos de programación 23 Autómatas Programables 04 • Resumen • Los programas realizados pueden representarse mediante lista de instrucciones AWL, diagramas de contactos KOP o esquema de funciones FUP. • Para la programación podemos optar por el uso de una programación lineal o una estructurada. • Los programas se pueden estructurar de forma lineal o de forma estructurada. • Aprender a programar requiere conocer cómo representar operaciones y operandos. • Los objetos de programación típicos de cualquier autómata programable son: entradas/salidas digitales, marcas, temporizadores, contadores, entradas/salidas analógicas. • Las operaciones básicas de programación son: operaciones combinacionales y secuenciales, operaciones con temporizadores y contadores, de carga y transferencia y de comparación y aritméticas. Conceptos de programación 25 05 Autómatas Programables El hardware del S7-300 Autómatas Programables 05 • Índice • OBJETIVOS .......................................................................................................... 3 • INTRODUCCIÓN .................................................................................................. 4 5.1. Características generales ........................................................................... 5 5.1.1. Estructura de un s7-300 ........................................................................ 5 5.2. Montaje ......................................................................................................... 8 5.2.1. Disposición de elementos en único bastidor ......................................... 8 5.2.2. Disposición de los módulos en varios bastidores.................................. 9 5.2.3. Montaje de los módulos en el perfil soporte ........................................ 11 5.3. Direccionamento ....................................................................................... 13 5.4. Configuración del software ...................................................................... 16 5.4.1. CPU 314 IFM ...................................................................................... 16 5.4.2. Configuración de hardware mediante step-7 ...................................... 24 • RESUMEN .......................................................................................................... 31 El hardware del S7-300 1 Autómatas Programables 05 • Objetivos • Presentar el autómata S7-300. • Analizar las características técnicas de nuestro autómata. • Estudiar las diferentes posibilidades de ampliación del autómata. • Estudiar la configuración interna del S7-300 y su funcionamiento. El hardware del S7-300 3 Formación Abierta • Introducción Difícilmente podremos trabajar con algo si desconocemos sus características a todos los niveles. Cuando hablamos de autómatas es muy importante conocer las posibilidades con que cuentan a la hora de recoger datos (entradas) y activar elementos externos (salidas). En este mismo punto también será primordial saber las características que deben cumplir los elementos sensores y actuadores para conectarlos al autómata. También será esencial conocer la potencia de proceso del autómata, es decir, qué instrucciones o funciones soporta el tamaño máximo del programa de usuario, etc. 4 El hardware del S7-300 Autómatas Programables 05 5.1. Características generales El S7-300 tiene configuración modular, es decir, que es posible componerlo de forma personalizada utilizando la amplia gama de módulos existentes. La gama de módulos comprende: • Unidades CPU con diferentes prestaciones. • Módulos de señales para entradas/salidas digitales y analógicas. • Módulos de función para funciones tecnológicas (posicionamiento, contadores, etc.). • CP para tareas de comunicación. • Fuentes de alimentación de carga para conectar el S7-300 a una tensión de alimentación de 120/230 V c.a. • Interfases, también denominadas módulos de interconexión, para interconectar los bastidores. Todos los módulos del S7-300 están protegidos por una caja con grado de protección IP 20, es decir, disponen de envolvente y operan sin ventilador. 5.1.1. Estructura de un s7-300 Cada S7-300 puede estar compuesto de los módulos siguientes: Bastidor. Fuente de alimentación (PS). CPU. Módulos de señales (SM). Módulos de función (FM). Procesador de comunicaciones (CP). El hardware del S7-300 5 Formación Abierta Componente Función Perfil soporte (rack) Accesorios: Es el bastidor de un S7-300. Estribo de conexión de pantallas Suministro de corriente (PS) (Power Supply) CPU Accesorios: conector frontal (para CPU con periferia integrada) Módulos de señales (SM) (Signal Module)(módulos de entrada digital, módulos de salida digital, módulos de entrada/salida digital, módulos de entrada analógica, módulos de salida analógica, módulos de entrada/salida analógica) Convierte la tensión de red (120/230 V c.a.) en tensión de servicio de 24 V c.c. y procura la alimentación del S7-300, así como la alimentación de carga para circuitos de intensidad de carga de 24 V c.c. Ejecuta el programa de usuario, alimenta el bus de fondo del S7- 300 con 5 V, se comunica con otras estaciones de una red MPI a través de la interfaz MPI. Además, una CPU puede ser maestro DP o esclavo DP en una subred PROFIBUS. Ajustan diferentes niveles de señal de proceso al S7-300. Accesorios: conector frontal Módulos de función (FM) (Function Modul) Accesorios: conector frontal Procesador de comunicaciones (CP) Accesorios: cable de conexión 6 El hardware del S7-300 Realizan tareas temporales y de almacenamiento para el procesamiento de señales de proceso. Por ejemplo posicionar o regular. Descarga la CPU de tareas de comunicación, por ejemplo CP 342-5 DP para conectar a PROFIBUS-DP Imagen Autómatas Programables Componente SIMATIC TOP connect Accesorios: módulo de conector frontal con conexión de cable plano Módulo interfase (IM) (Interface Module) Accesorios: cable de conexión Función 05 Imagen Sirve para cablear los módulos digitales. Interconecta las diferentes líneas de un S7-300. Cable de bus PROFIBUS con conector de bus Interconecta estaciones de una subred MPI o PROFIBUS. Cable PG Conecta una PG/un PC con una CPU Repetidor RS 485 Sirve para reforzar las señales de una subred MPI o PROFIBUS, así como para interconectar segmentos de una subred MPI o PROFIBUS. Unidad de programación (PG) o PC con el paquete de software STEP 7 La PG configura, parametriza, programa y prueba el S7-300. El hardware del S7-300 7 Formación Abierta 5.2. Montaje En este apartado se expone cómo se debe configurar la estructura mecánica, así como preparar los componentes del S7-300 para el montaje y posterior conexionado. 5.2.1. Disposición de elementos en único bastidor Es posible instalar un S7-300 en posición horizontal o vertical. Temperaturas admitidas en disposición horizontal: entre 0 y 60ºC. Temperaturas admitidas en disposición vertical: entre 0 y 40ºC. RUN P SIEMENS 24 VD C SIEMENS RUN STOP MRES ON OFF N BATERÍA 3,4 V L1 L M M L L M M Disposición horizontal La CPU y la fuente de alimentación deben disponerse a la izquierda o abajo. M RUN P RUN STOP MRES L M 3,4 V SIEMENS L1 N L M L M SIEMENS 24 VD C ON OFF Disposición vertical Figura 5.1. 8 El hardware del S7-300 Disposición de los módulos en un bastidor. Autómatas Programables 05 Reglas Para colocar los módulos en un bastidor rigen las reglas siguientes: A la derecha de la CPU pueden enchufarse como máximo 8 módulos (SM, FM, CP). La cantidad de módulos (SM, FM, CP) enchufables está limitada por su consumo de corriente tomado del bus posterior de S7-300. El consumo total en el bus posterior de S7-300 para todos los módulos montados en un bastidor no deberá rebasar: En CPU 313/314/314 IFM/315/315-2-DP/316-2 DP/318-2 1,2 A En CPU 312 IFM 0,8 A La figura muestra la disposición de los módulos en una estructura S7-300 equipada con 8 módulos de señales. 5.2.2. Disposición de los módulos en varios bastidores Si por necesidades de la instalación, utilizamos totalmente un bastidor, y necesitamos montar más módulos podríamos recurrir al montaje de bastidores adicionales. Excepciones Las CPU 312 IFM y 313 solamente son adecuadas para el montaje en un bastidor. Reglas Para disponer los módulos en varios bastidores rigen las reglas siguientes: El módulo de interconexión (IM) ocupa siempre el puesto (slot) 3 y debe encontrarse siempre a la izquierda del primer módulo de señales. En cada bastidor pueden enchufarse como máximo 8 módulos (SM, FM, CP). Estos módulos se hallan siempre a la derecha de los módulos de interconexión. El hardware del S7-300 9 Formación Abierta Excepción: Para la CPU 314 IFM, no está permitido enchufar módulo alguno en el slot 11 del bastidor 3. La cantidad de módulos (SM, FM, CP) enchufados está limitada por la toma de corriente admisible del bus posterior S7-300. El consumo total de cada línea no debe exceder de 1,2 A. Requisito: módulos de interconexión (IM) Para la configuración en varios bastidores se requieren módulos de interconexión que conecten en bucle el bus posterior S7-300 desde un bastidor al siguiente. La CPU se encuentra siempre en el bastidor 0. Módulo de interconexión Utilizable en… Referencia IM 360 Bastidor 0 ---- IM 361 Bastidores 1 a 3 ---- Sólo para configurar en dos líneas… IM 365 S Bastidor 0 ---- IM 365 R Bastidor 1 ---- Capacidad máxima de una configuración La figura muestra la disposición de los módulos en una configuración S7-300 de 4 bastidores (excepto para CPU 312 IFM/313). 10 El hardware del S7-300 Autómatas Programables 05 No para la CPU 314 IFM IM Cable de enlace 386 IM Cable de enlace 386 IM Cable de enlace 386 SIEMENS SIEMENS 24 VD C PS CPU IM SM RUN P RUN ON STOP OFF MRES L1 N BATERÍA 3,4 V L M M L L M M 5.2.3. Montaje de los módulos en el perfil soporte A la hora del montaje hay que tener presente un orden para encajar los módulos y también averiguar los números de slot. Orden seguido para encajar los módulos en el perfil soporte 1. Fuente de alimentación. 2. CPU. 3. Modulo(s) de señales. Enchufe el conector de bus en la CPU y los módulos de señales / función / comunicaciones / interfaz. Todos los módulos incluyen un conector de bus, menos la CPU. Comience siempre enchufando el conector de bus en la CPU. Para ello, tome el conector de bus del “último” módulo de la línea. Enchufe el conector de bus a los demás módulos. En el “último” módulo no se enchufa ningún conector de bus. El hardware del S7-300 11 Formación Abierta Enganche cada módulo en el orden previsto (1), desplácelo hasta el módulo izquierdo (2) e inclínelo hacia abajo (3). Atornille los módulos manualmente. Asignar los números de slot Después del montaje, puede asignar a cada módulo un número de slot para facilitar la atribución de los módulos dentro de la tabla de configuración en STEP 7. En la tabla se especifica la asignación de los números de slot. 12 Nº de Slot Módulo Observaciones 1 Fuente de alimentación (PS) ---- 2 CPU ---- 3 Módulo de interconexión (IM) A la derecha, junto a la CPU 4 Módulo de señales 1 A la derecha, junto a la CPU o IM 5 Módulo de señales 2 ---- 6 Módulo de señales 3 ---- 7 Módulo de señales 4 ---- 8 Módulo de señales 5 ---- 9 Módulo de señales 6 ---- 10 Módulo de señales 7 ---- 11 Módulo de señales 8 ---- El hardware del S7-300 Autómatas Programables 05 5.3. Direccionamento En cuanto al direccionamiento nos centramos por un lado en la averiguación de direcciones orientadas al slot y por otro en la averiguación discrecional se direcciones. Asignación discrecional de direcciones En la asignación libre de direcciones puede atribuir a cada módulo una dirección cualquiera dentro del área de direccionamiento posible para la CPU. En el S7-300 sólo es posible la asignación discrecional de direcciones con las CPU 315, 315-2 DP, 316-2 DP y 318-2. Asignación de direcciones orientada al slot La asignación de direcciones por slot corresponde al direccionamiento por defecto, es decir, STEP 7 asigna a cada número de slot una dirección inicial de módulo prefijada. En el direccionamiento orientado al slot (direccionamiento por defecto), cada número de slot lleva asignada una dirección inicial de módulo. Dependiendo del tipo de módulo, se trata de una dirección digital o analógica. En este apartado se muestra qué dirección inicial de módulo está asignada a qué número de slot. Estas informaciones son necesarias para determinar las direcciones iniciales de los módulos utilizados. Capacidad máxima La figura muestra la configuración de un S7-300 en 4 bastidores y los slots posibles. Téngase en cuenta que con las CPU 312 IFM y 313 sólo es posible una configuración en el bastidor 0. El hardware del S7-300 13 Batidor 3 Formación Abierta IM 3 4 5 6 7 8 9 10 11 3 4 5 6 7 8 9 10 11 3 4 5 6 7 8 9 10 11 3 4 5 6 7 8 9 10 11 Batidor 2 Nº Slot Nº Slot Batidor 1 IM IM Nº Slot SIEMENS SIEMENS 24 VD C PS CPU RUN P ON Batidor 0 RUN STOP OFF MRES L1 N BATERÍA 3,4 V L M M L L M M Nº Slot 1 2 Direcciones iniciales de módulo La tabla muestra la correspondencia entre las direcciones iniciales de módulo y los números de slot y bastidores. En los módulos de entrada/salida, las direcciones de las entradas y las salidas comienzan a partir de la misma dirección inicial del módulo. Al utilizarse la CPU 314 IFM, no deberá enchufarse ningún módulo en el slot 11 del bastidor 3. Las direcciones del mismo están ocupadas por las entradas y salidas integradas. 14 El hardware del S7-300 Autómatas Programables Bastidor 0 1’ 2’ 3’ Direcciones iniciales de módulo Digital Analógico Digital Analógico Digital Analógico Digital Analógico 05 Número de Slot 1 2 3 PS CPU IM --- IM --- IM --- IM 4 5 6 7 8 9 10 11 0 4 8 12 16 20 24 28 256 272 288 304 320 336 352 368 32 36 40 44 48 52 26 60 384 400 416 432 448 464 480 493 64 68 72 76 80 84 88 92 512 528 544 560 576 592 608 624 96 100 104 108 112 116 120 124 640 656 672 688 704 720 736 7522 2 El hardware del S7-300 15 Formación Abierta 5.4. Configuración del software Una vez realizado el montaje deberemos configurar el software para que nuestro programa pueda usar los módulos conectados. Esta labor la realizaremos desde el Step-7, y concretamente con la herramienta de configuración de hardware. 5.4.1. CPU 314 IFM Referente a la CPU 314 IFM presentamos los siguientes apartados: Vista frontal de la CPU 314 IFM. Datos técnicos de la CPU 324 IFM. Propiedades de las entradas/ salidas integradas en la CPU 314 IFM. Datos técnicos de las entradas analógicas en la CPU 314 IFM. Vista frontal de la CPU 314 IFM Este es el aspecto de la CPU con la que vamos a trabajar habitualmente: Es un modelo compacto ya que dispone de entradas y salidas integradas, pero también es modular puesto que tiene posibilidad de ampliación. Vamos a ver detenidamente algunas de las partes que componen este dispositivo. Dispone de un puerto de comunicaciones MPI, a través del que realizaremos funciones tales como la transferencia de programas y la supervisión en línea de nuestros programas. 16 El hardware del S7-300 Autómatas Programables 05 También disponemos de un selector con el que podremos elegir el modo de funcionamiento. Básicamente son tres: STOP: detiene la ejecución del programa. RUN: inicia la ejecución del programa. RUN-P: inicia la ejecución del programa y permite la modificación del mismo sin tener que detener su ejecución. Disponemos de otra posición denominada MRES que sirve para efectuar funciones de borrado de memoria (programa, configuración, etc). A nivel informativo, disponemos de una serie de indicadores que nos van a permitir realizar labores de diagnóstico básicas, entre las que se encuentran: Estado de ejecución (RUN, STOP). Alimentación interna (DC5V). Fallos de sistema (SF). Estado de batería (BATF). A continuación se representan unas tablas con las características técnicas de este dispositivo. El hardware del S7-300 17 Formación Abierta Datos técnicos de la CPU 314 IFM CPU y estado de producto Áreas de datos y su remanencia MLFB 6ES7314-...-0AB0 -5AE03- -5AE10- • versión de hardware 01 01 • versión de firmware V 1.1.0 V 1.1.0 • paquete de programas correspondiente STEP 7 V5.0, Service Pack 3 Memorias Memoria central máx. 2 DB, 144 bytes Marcas 2.048 • remanencia ajustable de MB 0 a MB 143 • preajustado de MB 0 a MB 15 Marcas de ciclo 8 (1 byte de marcas) máx. 127 (DB 0 reservado) máx. 8 Kbytes máx. 2 DB, 144 byte de datos sin remanencia • integrada 32 Kbytes 32 Kbytes Bloques de datos • ampliable no no • capacidad • remanencia ajustable Memoria de carga 48 Kbytes RAM 48 Kbytes FE-PROM 48 Kbytes RAM • FEPROM ampliable no hasta 4 Mbytes • RAM ampliable no no • integrada • preajustado Datos locales (no ajustable) 1.536 bytes • según prioridad 256 bytes Bloques OBs vea lista de operaciones sí • capacidad máx. 8 Kbytes • con pila todos los datos Profundidad de anidado • sin pila 144 bytes • según prioridad Respaldo Tiempos de procesamiento Tiempos de procesamiento para • adicionales dentro de un OB de error FB • capacidad 8 4 128 máx. 8 Kbytes • operaciones binarias mín. 0,3 μs FC 128 • operaciones de palabras mín. 1 μs • capacidad máx. 8 Kbytes • aritmética en coma fija mín. 2 μs Áreas de direccionamiento (entradas/salidas) • aritmética en coma flotante mín. 50μs Àrea de direccionamiento de periferia Tiempos/contadores y su remanencia Contadores S7 64 • remanencia ajustable de Z 0 a Z 63 • preajustado de Z 0 a Z 7 • margen de cómputo 0 a 999 Contador IEC sí • tipo SFB Tiempos S7 128 • remanencia ajustable de T 0 a T 7 sin temporizadores remanentes 10 ms a 9.990 s • preajustado • margen de tiempo 18 Àrea de datos remanente total (incl. marcas; temporizadores; contadores) Temporizador IEC sí • tipo SFB El hardware del S7-300 • digital – integrada • analógica – integrada 0 a 123/0 a 123 124 a 127/124, 125 256 a 751/256 a 751 128 a 135/128, 129 Imagen de proceso (no ajustable) 128 bytes/128 bytes Canales digitales máx. 992+20 integrados/ máx. 992+16 integrados Canales analógicos máx. 248+4 integrados/ 124+1 integrados Autómatas Programables Configuración Bastidor Módulos por cada bastidor Funciones de comunicación máx. 4 máx. 8; en el bastidor 3, máx. 7 Cantidad de maestros DP Funciones PG/OP Comunicación por datos globales • cantidad de paquetes GD • integrados ninguno – emisor • a través de CP 1 – receptor Funciones de aviso S7 Bloques S de alarma activos simultáneamente máx. 40 Hora • capacidad de los paquetes GD – consistentes sí sí 1 1 máx. 22 bytes 8 bytes Funciones básicas S7 sí • datos útiles por petición Reloj sí • respaldado si • precisión Contador de horas de funcionamiento • número consulte el apartado 1.1.6 Funciones S7 máx. 76 bytes 32 bytes en X/I_PUT/_GET; 76 bytes en X_SEND/_RCV sí (servidor) 1 • datos útiles por petición máx. 160 bytes 0 • margen 0 a 32.767 horas • granularidad 1 hora – consistentes Funciones compatibles con S5 • datos útiles por petición 32 bytes sí (a través de CP y FC cargable) según el CP – consistentes • remanente sí – consistentes Sincronización de la hora sí Funciones estándar • en el autómata maestro • en MPI maestro/esclavo Funciones de prueba y puesta en marcha Variable Estado/Control • variable sí entradas, salidas, marcas, DB, tiempos, contadores • cantidad – observar variable máx. 30 – forzar variable máx. 14 Forzado permanente sí • variable entradas, salidas • cantidad máx. 10 Estado bloque sí Paso individual sí Puntos de parada 2 Búfer de diagnóstico cantidad de registros (no ajustable) 05 sí 100 • datos útiles por petición – consistentes Cantidad de recursos de enlace • reservados para – funciones PG según el CP sí (a través de CP y FC cargable) según el CP según el CP 12 para funciones PG/OP/ básicas S7/S7 máx. 11 ajustables entre 1 y 11 preajustado 1 – funciones OP ajustables preajustado – funciones básicas S7 máx. 11 entre 1 y 11 1 máx. 8 ajustables preajustado entre 0 y 8 8 Interfases 1ª interface Funcionalidad • MPI sí • maestro DP no • esclavo DP no • separación galvánica no El hardware del S7-300 19 Formación Abierta Alimentación de PG a MPI (15 a 30 V c.c.) Potencia disipada MPI • servicios – funciones PG/OP – comunicación por datos globales – funciones básicas S7 sí – funciones S7 sí (servidor) • velocidades de transferencia Dimensiones Dimensiones de montaje Ancho-alto-fondo (mm) Peso sí Pila sí • Autonomía de respaldo a 25_ C y respaldo ininterrumpido de la CPU • Duración de almacenamiento de la batería a 25_C Batería 19,2; 187,5 kbaudios 160x125x130 aprox. 0,9 kg Programación Lenguaje de programación STEP 7 Juego de operaciones vea lista de operaciones Niveles de paréntesis 8 Funciones de sistema (SFC) Bloques de función del sistema (SFB) Protección del programa de aplicación Tensiones, intensidades vea lista de operaciones Tensión de alimentación 24 V c.c. • margen admisible 20,4 a 28,8 V Consumo (en vacío) habitual. 1,0 A Intensidad al conectar habitual. 8 A l2·t Protección externa para líneas de alimentación (recomendación) 20 El hardware del S7-300 vea lista de operaciones protección mediante contraseña • autonomía de respaldo del reloj – a entre 0 y 2º C – a 40º C – a 60º C • tiempo de carga máx. 200 mA típ. 16 W sí mín. 1 año aprox. 5 años sí aprox. 4 semanas aprox. 3 semanas aprox. 1 semana aprox. 1 hora Entradas/salidas integradas Direcciones para • entradas digit. integr. E 124.0 a E 127.7 • salidas digit. integr. A 124.0 a A 127.7 • entradas analógicas integr. PEW 128 a PEW 134 • salidas analógicas integr. PAW 128 Funciones integradas Contadores 0,4 A2s Frecuencímetro interruptor LS; 2 A tipo B o C Posicionamiento 1 ó 2, 2 comparaciones en función de la dirección (vea el manual Funciones integradas) hasta máx. 10 kHz (vea el manual Funciones integradas) 1 canal (vea el manual Funciones in-tegradas) Autómatas Programables 05 Propiedades de las entradas/salidas integradas en la CPU 314 IFM Entradas/salidas Características Entradas analógicas integradas • • • • Entradas de tensión ± 10 V Entradas de intensidad ± 20 mA Resolución 11 bits + signo Separación galvánica Salida analógica • • • • Salida de tensión ± 10 V Salida de intensidad ± 20 mA Resolución 11 bits + signo Separación galvánica Todos los datos necesarios relativos a • la representación de valores analógicos • a la conexión de sensores de medida y cargas/actuadores a las entradas y cargas/actuadores a las entradas/salidas analógicas figuran en el manual de referencia Datos de los módulos. Entradas especiales (E 126.0 a E 126.3) Entradas digitales integradas • Frecuencia de entrada a 10 kHz • Sin separación galvánica Entradas ”estándar” • Separación galvánica • Tensión nominal de entrada 24 V c.c. • Adecuadas para interruptores mecánicos y detectores de proximidad (BERO) a 2 hilos Salidas digitales integradas • • • • Intensidad de salida 0,5 A Tensión nominal de carga 24 V c.c. Separación galvánica Adecuadas para electroválvulas y contactores de c.c. Como podemos observar en la tabla, la CPU 314 IFM dispone de entradas salidas digitales, y entradas salidas analógicas. Este aspecto hace que esté modelo tenga una gran versatilidad, ya que podemos afrontar un gran número de aplicaciones sin tener que recurrir a la adquisición de módulos de ampliación. Las entradas digitales trabajan a 24 V en corriente continua y algunas admiten frecuencias de conmutación de hasta 10 KHz (E126.0 a E126.3), lo que las hacen aptas para realizar funciones de contaje. En todas ellas podremos conectar directamente dispositivos tales como pulsadores, detectores a dos hilos, detectores a tres hilos, etc. Las salidas digitales son transistorizadas, razón por la que los dispositivos que conectemos en ellas no podrán superar un consumo de 0,5 A. En ellas podremos conectar desde lámparas hasta contactores de corriente continua. El hardware del S7-300 21 Formación Abierta Datos técnicos de las entradas analógicas en la CPU 314 IFM Supresión de perturbaciones, límites de error, continuación Datos específicos del módulo Cantidad de entradas 4 Límite de error básico (límite de error práctico a 25 °C, referido al área de entrada) Longitud de cable • apantallado máx. 100 m Tensiones, intensidades, potenciales Separación galvánica • entre canales y bus posterior sí Diferencia de potencial ad-misible • entre entradas y MANA (UCM) 1,0 V c.c. 75 V c.c 60 V c.a. 500 V c.c. • entre MANA y Minterno (UISO) Aislamiento ensayado con Formación de valores analógicos Codificación momentanea (aproximaciones sucesivas) Tiempo de conversión / resolución por canal Principio de medición • tiempo de conversión básico 100 μs • resolución (incl. Margen de 11 bits + signo rebase por exceso) Supresión de perturbaciones, límites de error Supresión de tensiones perturbadoras • perturbación en fase (UCM < 1,0 V) > 40 dB Diafonía entre las entradas > 60 dB Límite de error práctico (en todo el margen de temp., referido al margen de entrada) • entrada de tensión ± 1,0 % • entrada de intensidad ± 1,0 % • entrada de tensión • entrada de intensidad Error por temperatura (referido al margen de entrada) Error por linealidad (referido al margen de entrada) Precisión de repetición (en estado estabilizado a 25 °C, referida al área de entrada) Estado, alarmas, diagnósticos ± 0,9 % ± 0,8 % ± 0,01 %/K ± 0,06 % ± 0,06 % Alarmas ninguna Funciones de diagnóstico ninguna Datos para seleccionar un sensor Márgenes de entrada (valores nominales) /resistencia de entrada tensión ± 10 V/50 kΩ intensidad Tensión de entrada admisible para las entradas de tensión (límite de destrucción) Intensidad de entrada admis. para las entradas de corriente (límite de destrucción) Conexión del encoder de señal ± 20 mA/105,5 kΩ máx. 30 V estable; 38 V durante máx. 1 s (ciclo de trabajo 1:20) • para medida de tensión posible • para medida de intensidad - como transductor de medida de 2 hilos - como transductor de medida de 4 hilos No posible 34 mA Posible En este equipo disponemos de cuatro entradas analógicas con una resolución de 11 bits más signo (2048 “pasos” más signo). Además nos ofrecen la posibilidad de trabajar en tensión (+-10 V) o en corriente (+- 20 mA), siendo aptas para trabajar en modo unipolar o bipolar, lo que les confiere una gran versatilidad para realizar medición de variables físicas (temperatura, presión, etc.) válidas por ejemplo, para realizar labores de regulación. 22 El hardware del S7-300 Autómatas Programables 05 Datos técnicos de la salida analógica en la CPU 314 IFM Datos específicos del módulo Estado, alarmas; diagnósticos Cantidad de salidas Alarmas ninguno Funciones de diagnóstico ninguno 1 Longitud de cable • apantallado Datos para seleccionar un actuador máx. 100 m Tensiones, intensidades, potenciales Márgenes de salida (valores nominales) Separación galvánica • tensión ± 10 V ± 20 mA • entre canal y bus posterior sí • intensidad Diferencia de potencial admisible 75 V c.c. Resistencia de carga • entre MANA y Minterno (UISO) 60 V c.a. Aislamiento ensayado con 500 V c.c. • para salida de tensión carga capacitiva • para salida de intensidad carga inductiva Salida de tensión mín. 2,0 kΩ máx. 0,1 μF máx. 300 Ω máx. 0,1 mH • protección contra cortocircuito si • intensidad de cortocircuito Máx. 40 mA Formación de valores analógicos Resolución (incl. margen de rebase por exceso) Tiempo de conversión 11 bits + signo 40 μs Tiempo de estabilización Salida de intensidad • para carga óhmica 0,6 ms • para carga capacitiva 1,0 ms • para carga inductiva 0,5 ms Valores de sustitución aplicables no Supresión de perturbaciones, límites de error Límite de error práctico (en todo el margen de temp., referido al margen de salida) • salida de tensión ± 1,0 % • salida de intensidad ± 1,0 % Límite de error básico (límite de error práctico a 25 °C, referido al área de salida) • salida de tensión ± 0,8 % • salida de intensidad Error por temperatura (referido al margen de salida) Error de linealidad (referido al margen de salida) Precisión de repetición (en estado estabilizado a 25 °C, referida al área de salida) Ondulación de salida; margen de 0 a 50 kHz (referida al área de salida) ± ± 0,9 % 0,01 %/K ± 0,06 % ± 0,05 % Máx. 16 V • tensión en vacío Límite de destrucción contra tensiones/corrientes aplicadas desde el exterior máx. ± 15 V estable; • tensiones en salida respecto ± 15 V durante máx. a MANA 1s (ciclo de trabajo 1:20) • intensidad máx. 30 mA Conexión de los actuadores • para salida de tensión conexión a 2 hilos Posible conexión a 4 hilos No posible • Para salida de corriente Conexión a 2 hilos posible ± 0,05 % El hardware del S7-300 23 Formación Abierta La disponibilidad de salidas analógicas en la CPU 314 IFM, tal como podemos observar en la tabla es bastante reducida, ya que sólo existe una. Esta salida analógica nos permite trabajar en modo unipolar y en modo bipolar tanto en tensión (+-10V) como en corriente (+-20 mA). Del mismo modo que en las entradas analógicas su resolución es de 11 bits más signo. 1 Fuente de alimentación de carga (opcional) 5 LED para señalización de estados y fallos 2 Pila tampón (a partir de CPU 313) 6 Memory Card (a partir de CPU 313) 3 Conexión para 24 VDC 7 MPI (interface multipunto) 4 Selector de modo (con llave) 8 Conector frontal Figura 5.2. 5.4.2. Aspecto de la CPU 314 con diversos módulos. Configuración de hardware mediante step-7 Vamos a considerar el caso de tener que añadir un módulo de entradas digitales a nuestra CPU 314-IFM. Inicialmente cuando realizamos nuestros proyectos, al utilizar el asistente, éste nos realiza todas las labores de configuración de hardware, pero si deseamos realizar alguna ampliación, el asistente no realizará estas tareas. Para ello deberemos recurrir a la configuración manual. En el Administrador Simatic deberemos seleccionar el equipo en la ventana de la izquierda. 24 El hardware del S7-300 Autómatas Programables 05 En la ventana derecha podremos observar dos objetos. Por un lado la CPU 314 IFM, y por otro, hardware. Haciendo doble clic en este último abriremos la herramienta de configuración de hardware. En esta aplicación podemos observar la disposición de módulos en el bastidor. Tal como hemos visto anteriormente, la CPU ocupa la posición 2 en el bastidor. Si lo que deseo es añadir un nuevo módulo, deberé seleccionarlo en el catálogo de hardware. El hardware del S7-300 25 Formación Abierta Como estamos trabajando con un S7-300, deberemos recurrir a la familia de componentes Simatic 300. Dentro de esta familia, tendremos todos los módulos disponibles organizados por funciones. Como deseamos añadir una carta de entradas digitales recurriremos a las funciones SM-300. Dentro de estas funciones disponemos de entradas digitales, salidas digitales, combinaciones de ambas, entradas analógicas, salidas analógicas y combinaciones de estas últimas. En nuestro caso recurriremos a la subdivisión DI 300 (Digital Input). 26 El hardware del S7-300 Autómatas Programables 05 Vamos a instalar una carta de 16 entradas digitales a 24 V en corriente continua. Al desplegar la subdivisión, podremos observar todos los módulos disponibles. El hardware del S7-300 27 Formación Abierta Seleccionamos aquella que se ajusta a nuestras necesidades. Una vez que sabemos que módulo vamos a añadir, debemos incorporarlo al bastidor. Para ello deberemos arrastrar el módulo desde el catálogo hasta la posición deseada del bastidor. La posición 3 del bastidor no podrá ser usada para entradas digitales. Por ello deberemos arrastrarlo hasta la posición 4 o superiores. 28 El hardware del S7-300 Autómatas Programables 05 Una vez ubicado el módulo, es necesario guardar y compilar la nueva configuración. Para ello en la barra de botones seleccionaremos esta función. Si hubiese algún error, el programa nos lo indicará mediante un mensaje de aviso. En caso contrario, nos indicará que todo se ha realizado correctamente y podremos transferir la configuración al equipo. Para transferir la nueva configuración seleccionaremos la función a través de la barra de botones. En este momento nuestro autómata ya sabe que se le ha conectado un nuevo módulo, por lo que cuando realicemos nuestro programa, podremos emplearlo normalmente. El hardware del S7-300 29 Autómatas Programables 05 • Resumen • A la hora de montar un S7-300, consideraremos componentes básicos el bastidor, la fuente de alimentación y la CPU. • Una vez montados los componentes básicos, deberemos montar los módulos de señales o de funciones especiales. Éstos siempre irán montados después de la CPU. • El bastidor admite tanto montaje vertical como horizontal. Así mismo, estos equipos admiten el montaje de varios bastidores. • Para montar varios bastidores necesitaremos módulos de interconexión (IM). • Fundamentalmente, el direccionamiento de los distintos módulos incorporados estará en función del bastidor y la posición dentro del mismo. • El número máximo de bastidores será 4. • Para realizar la configuración a nivel de hardware debemos usar la herramienta suministrada con el entorno STEP7. • La configuración posibilita la utilización en nuestros programas de los módulos que hayamos montado en los bastidores. El hardware del S7-300 31 06 Autómatas Programables El paquete de programación Step-7 Autómatas Programables 06 • Índice • OBJETIVOS .......................................................................................................... 3 • INTRODUCCIÓN .................................................................................................. 4 6.1. Instalación del software y autorización .................................................... 5 6.1.1. Instalación del step-7 ............................................................................ 5 6.1.2. Instalación de autorización .................................................................. 11 6.2. El administrador simatic .......................................................................... 13 6.2.1. Crear un proyecto nuevo con el asistente ........................................... 13 6.2.2. Estructura del proyecto en el administrador simatic............................ 15 6.3. El editor de programas de step-7 ............................................................ 23 6.3.1. Las barras de herramientas ................................................................ 25 6.3.2. Tablas de símbolos ............................................................................. 25 6.3.3. El editor de programas en contactos .................................................. 27 6.3.4. Función observar ................................................................................ 30 6.3.5. Función cargar .................................................................................... 34 • RESUMEN .......................................................................................................... 35 El paquete de programación Step-7 1 Autómatas Programables 06 • Objetivos • Conocer de forma general las funciones más importantes del paquete de programación de Siemens. • Aprender a transferir nuestro programa al autómata programable. • Realizar la configuración oportuna para nuevos proyectos. • Realizar tablas de símbolos de los operando utilizados en el programa. • Editar el programa tanto en instrucciones como en contactos. El paquete de programación Step-7 3 Formación Abierta • Introducción Con este tema pretendemos dar una visión general de cómo programar con STEP 7. Entre otras cosas, explicaremos cómo instalar y arrancar el software, cómo crear programas y cuáles son los principales componentes de los programas de usuario. Para utilizar este tipo de aplicaciones, se requieren conocimientos básicos en el campo de la automatización, por eso hemos estudiado antes todos los conceptos necesarios. Ahora sí que estamos dispuestos a entender lo que la aplicación nos ofrece. La aplicación contiene numerosos conceptos, sin embargo creemos conveniente centrarnos solamente en aquellos que consideramos imprescindibles en relación a los conocimientos que tenemos. Sería conveniente adentrarnos más en la aplicación cuando tengamos un nivel de conocimientos mayor. 4 El paquete de programación Step-7 Autómatas Programables 6.1. Instalación autorización del software 06 y A continuación explicaremos las fases de instalación del paquete de programación. Ésta constará, básicamente, de la instalación del software del Step-7 y su correspondiente autorización. 6.1.1. Instalación del step-7 Una vez insertado el CD comenzará la instalación de modo automático dándonos opción de indicar el idioma utilizado: Seguidamente indicaremos los módulos que queremos instalar. En este caso, indicaremos los módulos Step-7 y AuthorsW. El módulo Step-7 es el paquete donde programaremos nuestras aplicaciones y el módulo AuthorsW es el gestor de instalación de licencias del software. El paquete de programación Step-7 5 Formación Abierta Después añadiremos los datos de usuario, empresa y nº de identificación que lo obtendremos del paquete proporcionado por el fabricante. Este número de identificación NO es el número de licencia, ya que ésta se instalará posteriormente con el programa adecuado. 6 El paquete de programación Step-7 Autómatas Programables 06 Después, nos indicará la ruta de directorio de instalación y el tipo de instalación: normal, mínima o personalizada. En esta pantalla haremos clic directamente en la pestaña “siguiente”. Una vez que hemos llegado aquí comenzará la instalación propia del software elegido, aunque antes nos preguntarán de nuevo por el idioma elegido. El paquete de programación Step-7 7 Formación Abierta Después, cuando haya terminado de realizar la correspondiente instalación del software nos pedirá la instalación de la licencia. Tomaremos la opción “ignorar”, ya que realizaremos esta operación con el programa AuthorsW posteriormente. A continuación, si fuera el caso, podríamos indicarle que instalara el driver EPROM para guardar los programas en el cartucho de memoria flash. En este caso haremos clic en la opción “sin driver EPROM” Ahora vamos a instalar el interface de comunicaciones. Instalaremos el interface “PC Adapter”, Para ello seleccionaremos esta opción y haremos clic en la pestaña “instalar” 8 El paquete de programación Step-7 Autómatas Programables 06 Terminaremos la instalación del interface de comunicaciones haciendo clic en “Sí” a la pregunta ¿Desea que S7ONLINE acceda ahora a PC Adapter (MPI)?. De esta forma comprobará que están las comunicaciones OK. El paquete de programación Step-7 9 Formación Abierta Esta verificación inicial de la comunicaciones la realizará si el autómata esta conectado en el momento de realizar la instalación. 10 El paquete de programación Step-7 Autómatas Programables 06 Para terminar sería conveniente reiniciar el equipo. Una vez instalado el software, instalaremos las licencias correspondientes con la aplicación AuthorsW. 6.1.2. Instalación de autorización Para instalar la autorización se requiere el correspondiente disquete protegido contra copia que se suministra con el software. Dicho disquete contiene la autorización en sí. El programa "AuthorsW", necesario para visualizar, instalar y desinstalar la autorización, se encuentra en el CD-ROM de instalación STEP 7. El número permitido de autorizaciones está fijado en dicho disquete mediante un contador de instalaciones. Dicho número se reduce en 1 al instalar una autorización. Cuando el contador alcanza el valor "cero", no se pueden instalar más autorizaciones con el disquete. El paquete de programación Step-7 11 Formación Abierta Una vez instalado dicho software, lo activaremos para instalar la mencionada autorización. Para ello, haremos clic en: Simatic > AuthorsW > AuthorsW, tal y como muestra la figura: Una vez activada la aplicación, tendremos una pantalla de trabajo como esta: Una vez aquí, insertaremos nuestro disquete de autorizaciones para que la aplicación las detecte y la incorpore a la columna de lectura “A:\”. Seguidamente, haremos clic en la correspondiente licencia y la transferiremos al disco duro de nuestro ordenador (C:\) activando el icono central (Transferir licencia). . Una vez realizada esta operación estamos dispuestos a editar y transferir al autómata programable nuestros programas. También podremos utilizar las operaciones de actuación on line, es decir, con el autómata en marcha ejecutando nuestro programa. 12 El paquete de programación Step-7 Autómatas Programables 06 6.2. El administrador simatic Al arrancar STEP 7 se abre la ventana del Administrador SIMATIC. De forma estándar, arranca asimismo el Asistente de STEP 7, el cual nos ayudará a crear el proyecto. Los proyectos se estructuran de tal modo que permiten depositar de forma ordenada todos los datos y programas que se necesitan durante la programación. 6.2.1. Crear un proyecto nuevo con el asistente Al activar el asistente de Step-7 se abrirá la siguiente ventana de inicio de configuración de un proyecto nuevo: Seleccionaremos la pestaña siguiente para indicar el modelo de CPU que vamos a utilizar. También configuraremos la dirección MPI de comunicaciones. Por defecto utilizaremos la dirección 2. El paquete de programación Step-7 13 Formación Abierta A continuación indicaremos el bloque de programación con el que queremos empezar a programar. Normalmente, como ya conocemos, será el OB1. También en esta página indicaremos el formato de programación a utilizar: AWL, KOP o FUP. Finalmente, anotaremos el nombre que vamos a darle a nuestro proyecto nuevo o indicaremos uno que ya teníamos anteriormente. 14 El paquete de programación Step-7 Autómatas Programables 6.2.2. 06 Estructura del proyecto en el administrador simatic Tan pronto se haya cerrado el asistente de STEP 7 aparecerá el administrador SIMATIC con la ventana del proyecto creado abierto. Desde esta ventana se accede a todas las funciones y ventanas de STEP 7. La jerarquía de objetos para proyectos y librerías del administrador SIMATIC está estructurada de la misma forma que los directorios con carpetas y archivos del Explorador de Windows. La figura siguiente muestra un ejemplo de jerarquía de objetos: Objeto “Proyecto”. Objeto “Equipo”. Objeto “Módulo Programable”. Objeto “Programa S7/M7”. Objeto “Carpeta Fuentes”. Objeto “Carpeta Bloques”. El paquete de programación Step-7 15 Formación Abierta Objeto "Proyecto" Un proyecto representa la totalidad de los datos y programas de una tarea de automatización, constituyendo el nivel superior de la jerarquía de objetos. Símbolo Carpeta de objetos Proyecto Selección de funciones importantes Crear un proyecto. Archivar proyectos y librerías. Imprimir la documentación de un programa. Reorganizar. Traducir y editar textos de usuario. Insertar estaciones de operador (OS). Compartir la elaboración de proyectos. Convertir proyectos de la versión 1. Convertir proyectos de la versión 2. Ajustar interface PG / AG. Las funciones más importantes de proyecto son: Archivar proyectos y librerías: Permite realizar una copia de seguridad de nuestros proyectos. Los proyectos y las librerías se pueden guardar de forma comprimida en un archivo comprimido. Para archivar un proyecto o una librería: ° ° Elija el comando de menú Archivo > Archivar. ° En el cuadro de diálogo que aparece entonces, ajuste el directorio de destino para el archivo comprimido, así como el nombre y el tipo de dicho archivo. Mediante el tipo de archivo se determina el programa archivador a utilizar. Elija en el cuadro de diálogo "Archivar" el proyecto o la librería que desea archivar y confirme la entrada efectuada. En caso necesario, se visualiza un cuadro de diálogo adicional donde es preciso efectuar otros ajustes más para el archivado. A continuación se abre una ventana del DOS en la que se lleva a cabo el archivado. El proyecto o la librería se comprime y se guarda en el directorio de destino. Ajustar interface PG/PC: Los ajustes que se efectúen aquí determinan la comunicación entre PLC/PC y el sistema de automatización. 16 El paquete de programación Step-7 Autómatas Programables 06 El cuadro de diálogo también se puede visualizar y modificar después de la instalación, llamando el programa "Ajustar interface PG/PC" que se encuentra instalado en el panel de control de Windows. Una vez abierto el cuadro de diálogo “ajustar interface PLC/PC” seleccionaremos la función de comunicación S7ONLINE y PCAdapter (MPI), ya que estaremos comunicados normalmente con el autómata con el cable de comunicaciones MPI (Interface Multi Punto). Estaremos atentos a las propiedades para que tanto el puerto serie como la velocidad de transferencia seleccionada sean los adecuados. Objeto "Equipo" Un equipo SIMATIC 300/400 representa una configuración de hardware S7 compuesta por uno o varios módulos programables. En un proyecto, un equipo representa la configuración física del sistema de automatización, conteniendo los datos para configurar y parametrizar los diversos módulos. Los nuevos proyectos que se hayan creado con el Asistente 'Nuevo proyecto' ya contienen un equipo. En caso contrario, el equipo se podrá crear mediante el comando de menú Insertar > Equipo. Se puede elegir entre los siguientes equipos: Equipo SIMATIC 300. Equipo SIMATIC 400. Equipo H SIMATIC. Equipo PC SIMATIC El paquete de programación Step-7 17 Formación Abierta PC/PG SIMATIC S5 Otros equipos, es decir, que no sean de SIMATIC S7/M7 o de SIMATIC S5 El equipo se inserta con un nombre estándar (por ejemplo Equipo SIMATIC 300 (1), Equipo SIMATIC 300 (2) etc.). Los nombres de los equipos se pueden cambiar por denominaciones más explícitas. Las funciones más importantes del objeto equipo son: Símbolo Carpeta de objetos Selección de funciones importantes Equipo Equipo PC SIMATIC Insertar equipos. Cargar equipos en PG. Cargar una configuración en un sistema de destino. Cargar la configuración desde otro equipo. Visualizar los mensajes de la CPU y los mensajes de diagnóstico personalizados. Configurar la “notificación de errores del sistema”. Diagnóstico del hardware y visualizar el estado del módulo. Visualizar y cambiar el estado operativo de la CPU. Visualizar y ajustar la hora y fecha de la CPU. Borrar las memorias de carga de trabajo y borrado total de CPU. Crear y parametrizar los equipos PC SIMATIC. Configurar SIMATIC. enlaces para un equipo PC Objeto "Módulo programable" Un módulo programable representa los datos de parametrización de un módulo programable (CPUxxx, FMxxx, CPxxx). Los datos de sistema de los módulos que no disponen de memoria remanente (p.ej. CP441), se cargan a través de la CPU del equipo. Por tanto, a dichos módulos no se ha asociado ningún objeto "Datos de sistema", por lo que no se visualizan en la jerarquía de proyectos. 18 El paquete de programación Step-7 Autómatas Programables 06 Las funciones más importantes son: Símbolo Carpeta de objetos Selección de funciones importantes Visión de conjunto: procedimientos para configurar y parametrizar un sistema centralizado. Visualizar los mensajes de la CPU y los mensajes de diagnóstico personalizados. Configurar “notificación errores de sistema”. Módulo programable. Diagnóstico del hardware y visualizar el estado del módulo. Cargar mediante Memory Cards EPROM. Protección por contraseña para acceder a sistemas de destino. Visualizar ventanas de forzado permanente. Visualizar y cambiar el estado operativo. Visualizar y ajustar la fecha y hora. Ajustar el comportamiento del sistema. Borrar las memorias de carga de trabajo y borrado total de CPU. Símbolos de diagnóstico en la ventana online. Subdivisión de la memoria en áreas. Guardar en la EPROM integrada los bloques cargados. Actualizar el sistema operativo en el sistema de destino. Objeto "Programa S7/M7" Un programa (S7/M7) es una carpeta de software que contiene módulos CPU S7/M7 o módulos que no sean CPUs (p.ej. módulos CP o FM programables). Para cada módulo programable se crea automáticamente un programa S7 o M7 como carpeta de software. Un programa M7 corresponde a un programa con un autómata M7. Esos autómatas son microcomputadores industriales y se utilizan habitualmente para procesos continuos, almacenamiento masivo de datos, etc. El paquete de programación Step-7 19 Formación Abierta El programa S7 contiene ya los siguientes componentes: Una tabla de símbolos siguiente apartado). Una carpeta "Bloques" con el primer bloque. en objeto "Símbolos" (se explicará en el Una carpeta "Fuentes" para programas fuente. El programa M7 contiene ya los siguientes componentes: Una tabla de símbolos (objeto "Símbolos"). Una carpeta "Bloques". Símbolo Carpeta de objetos Selección de funciones importantes Programa S7 20 Insertar un programa S7 o M7. Ajustar la preferencia de operandos. Procedimiento básico bloques lógicos. para crear Asignar números de mensaje. Generar y editar mensajes diagnóstico personalizados. de Traducir y editar textos de usuario. Visualizar mensajes mensajes de personalizados. de CPU y diagnóstico Medidas en el programa para tratar fallos. Programa M7 Procedimiento para sistemas M7. Programa Crear el software en el proyecto. El paquete de programación Step-7 Autómatas Programables 06 Objeto "Carpeta de fuentes" Una carpeta de fuentes contiene programas fuente en forma de texto, es decir, permite exportar nuestro programa a un fichero de texto e importar un fichero de texto y convertirlo en programa. Las funciones más importantes de la carpeta fuentes son: Símbolo Carpeta de objetos Carpeta fuentes Selección de funciones importantes Reglas para programar en fuentes AWL. Exportar fuentes. Importar fuentes. Objeto "Carpeta de bloques" La carpeta de bloques puede contener bloques lógicos (OB, FB, FC, SFB, SFC), bloques de datos (DB), tipos de datos de usuario (UDT) y tablas de variables para ser programados. El objeto "Datos de sistema" representa bloques de datos de sistema. Existen varias alternativas para abrir un objeto dentro de la carpeta de bloques: Hacer doble clic en el icono del objeto. Seleccionar el objeto y elegir el comando Edición > Abrir objeto. Esta alternativa sólo puede ser aplicada a objetos que no sean carpetas. Una vez abierto el objeto, su contenido puede ser editado o modificado. No es posible modificar objetos cuyo contenido esté siendo utilizado. Las propiedades de objetos son atributos que determinan el comportamiento de los mismos. El cuadro de diálogo para ajustar dichas propiedades aparece automáticamente al crear un objeto. No obstante, éstas se pueden también modificar posteriormente. Con el comando Edición > Propiedades del objeto se llama un cuadro de diálogo donde se pueden visualizar o ajustar las propiedades del objeto seleccionado. Podemos también cortar, copiar o pegar objetos además de cambiarlo de nombre como vemos en las opciones de objetos (cursor en zona de objetos y clic en botón izquierdo). El paquete de programación Step-7 21 Formación Abierta Para abrir un objeto nuevo (FC), hacemos clic con el botón izquierdo en la ventana derecha. Después insertar nuevo objeto > función > nombre (FC1) > aceptar. Después de esto estamos en disposición a empezar a editar nuestro programa, para ello, tal y como hemos explicado anteriormente, haremos clic dos veces sobre el objeto creado (FC1). 22 El paquete de programación Step-7 Autómatas Programables 06 6.3. El editor de programas de step-7 Una vez que estamos en editor, podremos introducir en la aplicación nuestro programa. Las diferentes partes del editor se explican a continuación: Zona de edición de programa En esta zona empezaremos a escribir nuestro programa. Haremos clic en la zona para poder introducir las instrucciones, teniendo en cuenta que escribiremos la instrucción con el siguiente formato: Instrucción <espacio> operando *Por ejemplo: U E 124.0 Si no lo hacemos así, aparecerá el texto en rojo, indicando que la introducción de esa instrucción no ha sido correcta. La zona de edición se organiza por segmentos. En cada segmento editaremos una “parte distinta” de programa. Básicamente, nos ayuda a “organizar” mejor las diferentes partes en las que se podría dividir el programa. El paquete de programación Step-7 23 Formación Abierta Para poner nuevos segmentos haremos clic en Insertar>segmento o posicionado en la zona de edición botón derecho>Insertar segmento. Para borrar un segmento creado haremos clic encima del segmento y teclearemos suprimir. Zona de introducción de texto Es una zona donde añadiremos las anotaciones que consideremos oportuno a modo informativo. Estas zonas son las denominadas como “Título” y “Comentario” dentro de la zona de edición del programa. Es importante añadir esta información, ya que en posteriores revisiones del programa nos ayudará a identificar su contenido más fácilmente. Zona de declaraciones Es una zona donde tendremos diversa información dependiendo del bloque programado. Esta información puede ser: declaración de datos locales, de variables, llamadas a bloques de función especial, etc. 24 El paquete de programación Step-7 Autómatas Programables 6.3.1. 06 Las barras de herramientas Las barras de herramientas en el administrador Simatic tienen las siguientes funciones: Proyecto nuevo. Abrir proyecto. Estaciones accesibles. Memory Card. Cortar, copiar y pegar. Cargar. Representación offline. Representación online. Elección de iconos grandes, pequeños, con lista y con detalles. Configurar red. Activar/Desactivar simulación (abre el S7-PLCSIM). 6.3.2. Tablas de símbolos La creación de tablas de símbolos nos ayuda a utilizar etiquetas en lugar de operandos. Esta técnica nos ayudará a identificar mejor los operandos utilizados, ya que les vamos a poner “nombre”. El paquete de programación Step-7 25 Formación Abierta La tabla de símbolos tiene el siguiente aspecto: Como se puede observar en la figura, la tabla se compone básicamente de: Una columna donde anotaremos el símbolo deseado (por ejemplo “MARCHA”). La dirección del operando (por ejemplo “E124.0”). El tipo de dato con el que hacemos el símbolo (por ejemplo BOOLEANO, BYTE, etc). El tipo de dato lo añade la aplicación automaticamente. Comentarios sobre el símbolo realizado. Crear una tabla de símbolos Para crear una tabla de símbolos haz doble clic en el programa S7 de la ventana del proyecto, de manera que en la mitad derecha de la misma se visualice el objeto "Símbolos". Con el comando Insertar > Tabla de símbolos inserte una nueva tabla de símbolos en caso de que la tabla se haya borrado o de que desee sobreescribirla. Abra el objeto "Símbolos" (p.ej., haciendo doble clic en el objeto). A continuación aparece una ventana en la que se visualiza la tabla de símbolos para poder editarla. También podemos abrir una tabla de símbolos desde el editor de programas. Para ello haremos clic en Herramientas > Tabla de símbolos. Abrir una tabla de símbolos Para abrir una tabla de símbolos de cualquier proyecto en el "Editor de símbolos" puedes proceder de la siguiente forma: 26 Seleccionar el comando de menú Tabla > Abrir. Hacer clic en el correspondiente botón de la barra de herramientas. El paquete de programación Step-7 Autómatas Programables Pulsar simultáneamente las teclas CTRL + O. En el cuadro de diálogo visualizado, elige el proyecto y luego la tabla de símbolos deseada. Confirmar pulsando el botón "Aceptar". 06 Para abrir una tabla de símbolos que se haya editado recientemente, seleccione uno de los comandos de menú Tabla > 1, 2, 3, ó 4. Guardar una tabla de símbolos Para guardar la tabla de símbolos actual tiene las siguientes posibilidades: Seleccionar el comando de menú Tabla > Guardar. Hacer clic en el correspondiente botón de la barra de herramientas. Pulsar simultáneamente las teclas CTRL + S. Mostrar los simbólicos y comentarios Una vez creada la tabla podemos ver los simbólicos o no. Para ello, haremos clic en Ver > Mostrar, donde nos encontraremos diferentes posibilidades: Representación simbólica: permite o no ver los símbolos creados en la tabla. Información del símbolo: permite ver o no la información referente a los comentarios realizados en la tabla y el operando relacionado. Comentario: permite ver o no el área de comentarios de texto. 6.3.3. El editor de programas en contactos De la misma forma que el editor de programas nos permite hacerlo en AWL, también nos permite programar en KOP y FUP. Nos centraremos en ver como se utiliza el editor en KOP, ya que en FUP se utilizará de forma parecida. Para empezar, debemos seleccionar el modo de programación en contactos. Para ello, al configurar el nuevo proyecto habremos seleccionado la opción, si no es así lo seleccionaremos en el menú Ver > KOP. Una vez seleccionada la opción estaremos preparados para realizar nuestro programa en contactos: El paquete de programación Step-7 27 Formación Abierta También podremos comprobar que las herramientas de edición de contactos se activan para poder ser utilizadas. Las funciones que tenemos son: Insertar: Contacto NA. Contacto NC. Salida (bobina). Cuadro vacío. Abrir rama. Cerrar rama. Conexión. Una vez seleccionada la rama donde queremos añadir el contacto (se pone la rama en verde), seleccionaremos alguna de las opciones de edición de contactos (por ejemplo: contacto NA). Una vez editado el contacto, insertaremos el operando que corresponda haciendo clic en el espacio “??.?”. (por ejemplo: E 124.0). 28 El paquete de programación Step-7 Autómatas Programables 06 Después, si queremos insertar un contacto: En serie: seleccionaremos el punto donde se une e insertaremos de nuevo el contacto. En paralelo: seleccionaremos la rama de inicio e insertaremos el contacto. 2º Insertamos el operando 1º Seleccionamos la rama De forma general, iremos completando nuestro esquema de contactos, seleccionando la rama donde queremos que se conecte e insertando la operación. Podremos insertar cualquier función que hemos visto en formato AWL, seleccionado el “catalogo” de operaciones. Para ello, haremos clic en Ver > catalogo o en el icono de la barra de herramientas. El paquete de programación Step-7 29 Formación Abierta Realiza la edición del siguiente esquema de contactos: 6.3.4. Función observar Permite comprobar el funcionamiento del programa en cada cambio de estado de los operandos. Esta comprobación se basa en los cambios que se producen en el RLO al ejecutar cada instrucción. Para activar la función observar haremos clic en Test > Observar. Esta función solamente la tendremos activa cuando estemos en comunicación con el autómata programable. Esta comprobación se puede realizar en AWL, KOP y FUP, (dependiendo del formato de programación utilizado), aunque en este caso desarrollaremos ejemplos en AWL y KOP que son los más utilizados. 30 El paquete de programación Step-7 Autómatas Programables 06 Función “observar” en AWL Una vez activado el comando “observar” en modo AWL tendremos activa la siguiente página. A la izquierda nos queda el programa que se está ejecutando y a la derecha el resultado del RLO después de ejecutar cada operación, el estado del operando (STA) y estándar (que sólo se utiliza cuando necesitamos ver el estado numérico de una variable, por ejemplo el contenido de un contador). Veamos pues como se desarrolla la ejecución del programa del siguiente “marcha-paro”: El paquete de programación Step-7 31 Formación Abierta Al pulsar la entrada E124.0 el estatus de ésta se pone a “1”, por lo que al cumplirse esta condición el RLO también se cumple y se activa. La salida se activará, pues se cumple la condición anterior y el RLO está a “1”. Si observamos el estado del “paro” vemos que ésta a “0” ya que no se cumple, por lo que RLO será “0”, sin embargo, el estado de la salida “R A124.0” si que está a “1” porque se ha activado anteriormente. Si dejamos de activar el pulsador de ”marcha”, el estatus de esta vuelve a “0” y por lo tanto RLO también, ya que el resultado de la operación es “0”. Sin embargo el estado de la salida A124.0 permanece a “1” ya que está bajo lo efectos de la instrucción Set. ¿Cuál sería el estado del RLO y STA si pulsáramos el “paro”? 32 Línea de programa RLO U E124.0 0 0 S A124.0 0 0 U E124.1 1 1 R A124.0 1 0 El paquete de programación Step-7 STA Autómatas Programables 06 Cuál sería el estado del RLO y STA si dejamos de pulsar el “paro” Función “observar” en KOP Esta herramienta es mucho más sencilla de manejar, ya que es totalmente gráfica. Veamos como se ejecuta el siguiente programa de dos contactos en serie (E 124.0 y E 124.1) con la activación de una salida (A 124.0). Este modo de representación se pondrá en verde cuando se vayan cumpliendo las instrucciones del programa y permanecerá con líneas discontinuas cuando no se cumplen. Así pues, se puede observar claramente que la entrada E 124.0 está activada y la entrada E 124.1 no. El paquete de programación Step-7 33 Formación Abierta Si después, activamos también la entrada E 124.1 tendremos la línea totalmente conectada por lo que la salida A 124.0 se activa. 6.3.5. Función cargar Para cargar nuestro programa en el PLC, una vez conectado el cable MPI, o activaremos el comando Sistema de destino haremos clic en el icono > Cargar. De esta forma quedará transferido el objeto en el autómata. Podemos transferir nuestro programa, también desde el administrador. Para ello seleccionaremos los objetos que deseamos transferir y haciendo clic en el icono . Si deseamos transferir varios objetos, tendremos la precaución de hacer las llamadas oportunas en el bloque de organización OB1, ya que si no lo hacemos no se ejecutarán los objetos no “llamados”. 34 El paquete de programación Step-7 Autómatas Programables 06 • Resumen • El paquete de programación Step-7 es la herramienta que Siemens nos ofrece para poder programar sus equipos. • La instalación de la aplicación se realiza según las consignas del fabricante. Después debemos de instalar la correspondiente autorización, ya que sin ella no podremos transferir nuestro programa al autómata. • Podremos crear fácilmente un proyecto nuevo con el asistente de la aplicación. • El administrador Simatic nos crea una estructura de árbol en cada proyecto que creamos. Esta estructura contiene bloques de: Proyecto. Equipo. Módulo programable. Programas: bloques y funciones. • Una vez creado nuestro bloque de programación, editaremos nuestro programa. • La edición de programas se puede realizar en AWL, KOP y FUP, aunque lo más habitual es editar programas en los dos primeros. • Crearemos tablas de símbolos de los operandos de nuestro programa. Esto nos permitirá “cambiar de nombre” a este operando que no tan difíciles de recordar. • Con la función transferir, volcaremos nuestro programa en el autómata. • Con la función observar, analizaremos la correcta ejecución. El paquete de programación Step-7 35 07 Autómatas Programables El simulador PLCSIM Autómatas Programables 07 • Índice • OBJETIVOS .......................................................................................................... 3 • INTRODUCCIÓN .................................................................................................. 4 7.1. La instalación del software ........................................................................ 5 7.2. Los primeros pasos con la aplicación ...................................................... 7 7.3. Descripción de los menús ........................................................................ 10 7.3.1. Menú simulación ................................................................................. 10 7.3.2. Menú edición ....................................................................................... 11 7.3.3. Menú insertar ...................................................................................... 11 7.3.4. Menú PLC ........................................................................................... 16 7.3.5. Menú ejecutar ..................................................................................... 17 7.3.6. Menú ver ............................................................................................. 21 7.3.7. Menú herramientas ............................................................................. 24 • RESUMEN .......................................................................................................... 27 El simulador PLCSIM 1 Autómatas Programables 07 • Objetivos • Conocer la aplicación para simular programas realizados en temas anteriores con entradas, salidas, marcas, temporizadores, etc. • Dominar las diferentes formas de ejecutar la simulación del programa. • Aprender a visualizar los resultados de las operaciones en los acumuladores. • Conocer los diferentes menús y sus funciones. El simulador PLCSIM 3 Formación Abierta • Introducción La aplicación PLCSIM permite ejecutar y comprobar el programa de usuario en un autómata programable simulado en un PC. Puesto que la simulación se realiza sólo mediante el software STEP 7, no se requiere ninguna conexión con equipos hardware S7 (CPU o módulos de ampliación). El PLC simulado permite probar y depurar programas para las CPUs S7-300 y S7-400. PLCSIM incorpora un sencillo interface de usuario para visualizar y modificar diversos parámetros utilizados por el programa (como p.ej. para activar y desactivar las entradas). Además se pueden usar varias aplicaciones del software STEP 7 mientras se va ejecutando el programa en el PLC simulado. Ello permite utilizar herramientas tales como la tabla de variables (VAT) para visualizar y modificar variables. PLCSIM permite simular programas temporizadores y contadores entre otros. 4 El simulador PLCSIM con entradas y salidas, marcas, Autómatas Programables 07 7.1. La instalación del software La instalación de la aplicación PLC-SIM es sencilla y no requiere ninguna complicación. Una vez que hemos hecho clic en “Setup” nos preguntará sobre el idioma de la instalación. Después, tendremos diferentes pantallas sobre condiciones de licencia y requisitos de hardware. Haremos clic continuamente en “siguiente”. A continuación nos realizará la anterior pregunta. Contestaremos que “sí”, ya que esta versión es perfectamente compatible con las versiones presentadas de Setp-7. Más adelante confirmará datos generales y el directorio de instalación y empezará la instalación propia del programa. El simulador PLCSIM 5 Formación Abierta Una vez terminada la instalación, nos confirmará el éxito de ésta con esta pantalla. Una vez terminada la instalación del programa, tendremos que instalar la correspondiente autorización, tal y como explicamos en el tema anterior. 6 El simulador PLCSIM Autómatas Programables 07 7.2. Los primeros pasos con la aplicación Si desea utilizar S7-PLCSIM por primera vez, los siguientes pasos le facilitarán el comienzo: 1. Abre el administrador SIMATIC y edita tu programa: Por ejemplo: U E 124.0 Si se activa el pulsador de marcha. S A 124.0 activa el motor. U E 124.1 Si activamos el pulsador de paro. R A 124.0 el motor se para. El programa hace las veces de un simple marcha-paro de un motor. 2. Desde el administrador, haz clic en el botón o elije el comando de menú Herramientas > Simular módulos. Se abrirá la aplicación S7-PLCSIM con una subventana de control de la CPU (con la dirección MPI estándar ajustada a 2), puesta en modo STOP. Ten en cuenta que el modo de simulación no estará disponible si hay alguna conexión con PLCs reales. 3. Una vez abierto la aplicación S7-PLCSIM, nos dispondremos a abrir las subventanas necesarias que permitirán la simulación de cada uno de los operandos utilizados en nuestro programa. En nuestro caso, será insertar entrada (EB124) y salida (AB124). El simulador PLCSIM 7 Formación Abierta Si tu programa lo requiere, puedes simular también estados de: marcas, temporizadores, contadores, variables, etc. Consulta próximas páginas de este manual. 4. En el administrador SIMATIC, haz clic en o elige el comando de menú Sistema de destino, Cargar, para cargar los objetos programados en el PLC simulado. 5. Una vez realizada esta operación ya está “transferido” el programa para ser simulado. Ahora trabajaremos en la aplicación S7-PLCSIM. 6. Selecciona el menú PLC en S7-PLCSIM y asegúrate de que junto al comando ON aparece un punto con indicación de seleccionado. (De esta forma “encendemos” el autómata para poder trabajar). 7. Elije el comando de menú Ejecutar Ciclo y asegúrate de que junto a Continuo aparece un punto como en el caso anterior. 8. Una vez realizados estos pasos, estamos en disposición de empezar a simular el programa. Cambia la CPU simulada a modo RUN haciendo clic en la casilla de verificación "RUN" o "RUN-P". 9. Haz clic en el bit 0 de EB124 para simular que se ha activado la entrada E124.0 y observa que se activa el icono. 8 El simulador PLCSIM Autómatas Programables 07 De esta forma, estamos simulando que se nos activa la entrada E124.0. Recuerda el programa que estábamos simulando: U E 124.0 Si pulsamos marcha. S A 124.0 activamos el motor. U E 124.1 Si pulsamos el paro. R A 124.0 paramos el motor. 10. Una vez que hemos activado esta entrada se activará (según el programa) la salida A124.0. Haz clic de nuevo en el icono del bit 0 de la entrada EB124 para desactivarla. Ten en cuenta que estamos simulando la acción de “apretar” un pulsador, así que haremos clic para activar la entrada y haremos de nuevo clic para desactivarla. 11. Ahora haz clic en el bit 1 de EB124 para simular el paro del motor (de esta forma el bit 0 de AB124 se desactivará). 12. Finalmente haz clic en o elige el comando de menú Archivo Guardar PLC como... para guardar con otro nombre el estado actual del PLC simulado. Los archivos de simulación tienen extensión .plc. El simulador PLCSIM 9 Formación Abierta 7.3. Descripción de los menús A continuación daremos un “repaso” a todas las opciones que tiene la aplicación. 7.3.1. Menú simulación El menú simulación permite realizar diferentes operaciones de gestión, comunes en la mayoría de los programas de Windows. Nuevo PLC Permite abrir un nuevo documento de simulación. La extensión de este nuevo documento es siempre .plc. Directamente puedes hacer clic en . Abrir PLC Para buscar y abrir una simulación existente de un PLC (que se haya guardado), haz clic en o elige el comando de menú Archivo > Abrir PLC... Cerrar PLC Este comando cierra la subventana "CPU" y todas las demás subventanas abiertas en ese momento. Al cerrar el programa simulado se presentarán errores en las aplicaciones conectadas actualmente al simulador. Guardar PLC y guardar como Realizar las típicas funciones de Windows de guardar archivo y de guardar como (indicando el nombre). 10 El simulador PLCSIM Autómatas Programables 07 Al guardar el PLC se memorizan los siguientes elementos: Programa. Estado operativo de la CPU (RUN-P, RUN o STOP). Alimentación (ON u OFF). Opción de control de ejecución (ciclo continuo, ciclo individual). Estado de las entradas y salidas. Valores de los temporizadores (área de memoria T). Para guardar también podemos hacer clic en Abrir y cerrar disposición Permite abrir o cerrar la disposición actual de las subventanas. Guardar disposición y guardar como Permite guardar la disposición actual de las subventanas. Ultima simulación Mantiene en forma de acceso directo la última simulación realizada. Última disposición Abre la última disposición de las subventanas guardada. 7.3.2. Menú edición Realiza de forma general las funciones típicas de Windows, como son deshacer, cortar, copiar y pegar. De igual forma para acceder a estas funciones también podemos emplear el acceso directo de la barra de herramientas principal: 7.3.3. Menú insertar Nos permite insertar cartas de entradas, salidas, marcas, temporizadores, contadores y variables para poder ser simulado su funcionamiento en el programa que se está ejecutando. El simulador PLCSIM 11 Formación Abierta Tal como se muestra en la figura, podemos utilizar las teclas de funciones para acceder a las diferentes funciones de este menú. También tenemos los accesos correspondientes a estas funciones en la barra de herramientas principal: Subventana entrada. Subventana salida. Subventana marca Subventana temporizador. Subventana contador. Subventana variable general. Subventana entrada Esta subventana permite observar y modificar los datos siguientes: Variables de las entradas periféricas (externas): permite acceder a las áreas de memoria de las entradas periféricas (PE) de la CPU. Variables de la imagen del proceso de las entradas: permite acceder a las áreas de memoria de las entradas (E) de la CPU. La CPU sobreescribe la memoria E con la memoria PE al comienzo de cada ciclo. Si se cambia un valor de la memoria E, el simulador copiará inmediatamente el valor modificado en el área periférica. Así se garantiza que el cambio deseado no se pierda cuando, en el siguiente ciclo, el valor periférico sobreescriba la imagen del proceso de las entradas. La CPU reacciona inmediatamente a cualquier cambio que se efectúe en esta subventana. 12 El simulador PLCSIM Autómatas Programables 07 Subventana salida Esta subventana permite observar y modificar los datos siguientes: Variables de las salidas periféricas (externas): permite acceder a las áreas de memoria de las salidas periféricas (PA) de la CPU. Variables de la imagen del proceso de las salidas: permite acceder a las áreas de memoria de las salidas (A) de la CPU. Durante el ciclo, el programa calcula valores de salida y los deposita en la tabla de salidas de la imagen del proceso. Al final del ciclo, el sistema operativo lee de la tabla los valores de salida calculados y los envía a las salidas del proceso. La tabla de salidas de la imagen del proceso mapea los primeros 512 bytes de la memoria de las salidas periféricas. La CPU reacciona inmediatamente a cualquier cambio que se efectúe en esta subventana. Cualquier modificación que se haga en una tabla de variables de STEP 7 tendrá efecto en el debido momento del ciclo de la CPU: las entradas se leen al comienzo del ciclo y las salidas se escriben al final del mismo. Subventana marca Esta subventana permite observar y modificar la marca, permite acceder a las variables almacenadas en el área de marcas (M) de la memoria de la CPU. En el área de marcas (M) se almacenan los resultados intermedios calculados en el programa. A los datos se puede acceder en formato de bit, byte, palabra, etc. Esta subventana se abre con la dirección estándar MB 0. El simulador PLCSIM 13 Formación Abierta Subventana temporizador Esta subventana permite observar y modificar los temporizadores utilizados por el programa. Para inicializar todos los temporizadores del programa, utilice el botón "Inicializar temporizadores" de la barra de herramientas. Para inicializar un temporizador individual, Haz clic en el botón "Inicializar temporizadores" de la subventana correspondiente al temporizador en cuestión. Subventana contador En esta subventana se pueden observar y modificar los contadores que utiliza el programa de usuario. Estos contadores se pueden observar con diferentes formatos: decimal, hexadecimal, binario, etc. La subventana se abre con la dirección estándar Z 0. Subventana variable general Esta subventana permite observar y modificar los datos siguientes: 14 Variables de las entradas y de las salidas periféricas (externas): permite acceder a las áreas de memoria de las entradas periféricas (PE) y de las salidas periféricas (PA) de la CPU. Variables de la imagen del proceso de las entradas y salidas: permite acceder a las áreas de memoria de las entradas (E) y de las salidas (A) de la CPU. La CPU sobreescribe la memoria I con la memoria PE al comienzo de cada ciclo. Si se cambia un valor de la memoria E, el simulador copiará inmediatamente el valor modificado en el área periférica. Así se garantiza que el cambio deseado no se pierda cuando, en el siguiente ciclo, el valor periférico sobreescriba la imagen del proceso de las entradas. Marcas: permite acceder a las variables almacenadas en el área de marcas (M) de la memoria de la CPU. El simulador PLCSIM Autómatas Programables Temporizadores y contadores: permite acceder a los temporizadores y contadores que utiliza el programa. Bloques de datos: permite acceder a los datos almacenados en los bloques de datos del programa. 07 La CPU reacciona inmediatamente a cualquier cambio que se efectúe en esta subventana. Cualquier modificación que se haga en una tabla de variables de STEP 7 tendrá efecto en el debido momento del ciclo de la CPU: las entradas se leen al comienzo del ciclo y las salidas se escriben al final del mismo. El simulador PLCSIM 15 Formación Abierta 7.3.4. Menú PLC El menú PLC nos permitirá acceder a la simulación de la conexión (ON) o apagado (OFF) de la alimentación del autómata programable. Borrado total Nos permitirá borrar el programa de control y la memoria del PLC simulado. Podemos acceder también a esta función con el icono MRES de la subventana CPU. Al efectuar un borrado total, la CPU pasa automáticamente a modo STOP. Dirección MPI El comando “dirección MPI” nos permite cambiar la dirección MPI de la CPU simulada. La nueva dirección queda almacenada con la configuración del PLC simulado al utilizar los comandos Guardar PLC o Guardar PLC como... del menú Simulación. Estando activado el botón "Simulación on/off” en la barra de herramientas del administrador SIMATIC y haciendo clic en “Estaciones accesibles”, se visualizará el PLC que esté abierto en ese momento. 16 El simulador PLCSIM Autómatas Programables 07 Cuando esté usando aplicaciones de STEP 7 para observar el programa no podrá cambiar la dirección de estación que tenga el PLC simulado. Antes de cambiar la dirección de estación deberá cerrar dichas aplicaciones de STEP 7. 7.3.5. Menú ejecutar El menú ejecutar nos permitirá controlar de forma general parámetros de ejecución de la simulación. Posición del selector de modo Es posible cambiar el modo de operación de la CPU. El PLC simulado reaccionará de la misma manera que un PLC real. En las casillas de verificación que aparecen en la subventana del PLC simulado se indica el modo de operación actual. Para cambiar el modo de operación, haz clic en la casilla de verificación en cuestión o utiliza los comandos de menú Ejecutar > Posición del selector de modo. Los modos de operación de la CPU simulada funcionan como el selector de modo de una CPU real. En caso de utilizar herramientas de STEP 7 para cambiar el modo de operación o en caso de que la CPU cambie automáticamente de modo (por ejemplo, si se presenta una condición de error y la CPU cambia de RUN a STOP), no se modifican las casillas de verificación en la subventana de la CPU simulada. El indicador LED cambia, pero no la posición del selector. Ello indica que la CPU ha cambiado de modo de operación, probablemente debido a un error en el programa. El simulador PLCSIM 17 Formación Abierta Modo RUN-P: ° La CPU ejecuta el programa y al mismo tiempo permite modificar tanto el programa como sus parámetros. Si desea utilizar las aplicaciones de STEP 7 para cambiar alguno de los parámetros del programa durante su ejecución, deberá cambiar la CPU a modo RUN-P. No obstante, puede seguir utilizando las subventanas creadas en S7-PLCSIM para modificar los datos del programa. Modo RUN: ° La CPU actualiza las entradas, ejecuta el programa y actualiza luego las salidas. ° No es posible cargar programas en la CPU ni utilizar aplicaciones de STEP 7 para cambiar parámetros (como p.ej. los valores de las entradas) cuando la CPU esté en modo RUN. Las subventanas creadas en S7-PLCSIM se pueden seguir utilizando para modificar los datos del programa. Modo STOP: ° La CPU no ejecuta el programa. A diferencia del modo STOP de una CPU real, las salidas no se ajustan a valores estándar ("seguros”), sino que conservan el estado en el que se encontraban cuando la CPU cambió a modo STOP. ° Los programas se pueden cargar en la CPU cuando ésta está en modo STOP. ° Al cambiar de STOP a RUN se inicia la ejecución del programa a partir de la primera operación. La subventana "CPU" dispone también de una serie de indicadores que corresponden a los diodos luminosos de una CPU real: SF (error de sistema) indica que la CPU ha encontrado un error de sistema que ha causado un cambio del modo de operación. DP (periferia descentralizada o distribuida) indica el estado de la comunicación con unidades periféricas descentralizadas (distribuidas). DC (alimentación) indica si la alimentación de la CPU está conectada o desconectada. Posición del interruptor de arranque Con este comando determinamos si la CPU simulada debe efectuar un rearranque completo (CRST) o un rearranque en caliente (WRST) cuando se conmute de STOP a RUN. 18 El simulador PLCSIM Autómatas Programables 07 En un rearranque completo, el sistema operativo llama al OB de rearranque completo (OB100), el programa de usuario se reinicia desde el comienzo y se borran los datos almacenados en las áreas no volátiles. En un rearranque en caliente, el sistema operativo llama al OB de rearranque (OB101) y el programa de usuario continúa desde el punto en el que se produjo la interrupción. Para poder utilizar estos comandos, es preciso haber habilitado previamente el rearranque manual en STEP 7. Ciclo Se determina si se ejecuta el programa con ciclo continuo o individual. se ejecuta el programa ciclo por ciclo. La CPU ejecuta un En el ciclo individual ciclo del programa entero y espera a que se le solicite que ejecute el siguiente ciclo. En el ciclo continuo se ejecuta el programa de la misma manera que la CPU ejecuta el OB1. La CPU ejecuta el programa si se encuentra en estado operativo RUN y detiene la ejecución cuando se cambia a STOP. Al comienzo del ciclo, se leen las entradas periféricas (PE) y se actualiza la imagen del proceso de las entradas (E). La CPU ejecuta entonces las operaciones del programa y actualiza las áreas de memoria. Al final del ciclo, la imagen del proceso de las salidas (A) se escribe en las salidas periféricas (PA). Temporizadores automáticos y manuales. Iniciar temporizadores Elige el comando de menú Ejecutar > Temporizadores automáticos para que la CPU ejecute los temporizadores del programa. Para inicializar un temporizador individual, haga clic en el botón "T =0" de la correspondiente subventana. Para inicializar todos los temporizadores del programa, haga clic en el correspondiente botón en la barra de herramientas. Elige el comando de menú Ejecutar > Temporizadores manuales para ajustar la CPU de manera que sea posible introducir un valor específico o desactivar (inicializar) los temporizadores del programa. Para inicializar un temporizador individual, haga clic en el botón "T = 0" de la correspondiente subventana. Para inicializar todos los temporizadores del programa, haga clic en el correspondiente botón en la barra de herramientas. El simulador PLCSIM 19 Formación Abierta El cuadro de diálogo "Inicializar temporizadores" permite ajustar el valor estándar de un temporizador individual o de todos los temporizadores utilizados en el programa. Si elige la opción “Todos” se inicializarán todos los temporizadores del programa. Asimismo, puede seleccionar sólo algunos de los temporizadores que desea inicializar. Haciendo clic en el botón en la barra de herramientas se inicializan todos los temporizadores del programa. Activar OB de error Utilizaremos este comando para comprobar cómo el programa trata los diversos OBs de alarma. S7-PLCSIM asiste las siguientes funciones: OB40 a OB47 (alarma de proceso). OB70 (errores de redundancia en la periferia). OB72 (errores de redundancia en la CPU). OB73 (errores de redundancia en la comunicación). OB80 (error de tiempo). OB82 (alarma de diagnóstico). OB83 (presencia de módulo (extraer/retirar)). OB85 (error de ejecución del programa). OB86 (fallo del bastidor). Utilice el comando de menú Ejecutar > Activar OB de error... para elegir un OB específico e introduzca en el cuadro de diálogo la información del encabezado. Haciendo clic en el botón "Aceptar" o "Aplicar", el PLC simulado generará el evento apropiado y ejecutará el programa en el OB asociado. Para poder simular OBs de alarma es preciso cargar una configuración de hardware que contenga las entradas y salidas (E/S). En algunos casos, las E/S no están incluidas automáticamente en los datos de sistema que STEP7 carga en S7PLCSIM. 20 El simulador PLCSIM Autómatas Programables 07 Vigilancia del tiempo de ciclo Este cuadro de diálogo permite habilitar o inhibir la vigilancia del tiempo de ciclo (watchdog) y ajustar el tiempo máximo de ciclo a vigilar en una simulación. Puesto que el programa tarda más en ejecutarse en el software S7-PLCSIM que en una CPU real (especialmente si hay otras aplicaciones que se tienen que ejecutar con más prioridad), puede ocurrir que se produzcan molestos “timeouts” (intervalos de espera). Este cuadro de diálogo permite inhibir o prolongar la vigilancia del tiempo de ciclo sin tener que modificar el programa para el sistema de destino (CPU). Ten en cuenta que este cuadro de diálogo no refleja el tiempo de vigilancia ajustado en la configuración del hardware, y que cualquier cambio que se realice afectará solamente a la simulación. Estando seleccionada la opción "Habilitar vigilancia del tiempo de ciclo", es posible ajustar el tiempo de vigilancia a cualquier valor comprendido entre 1 segundo (1000 ms) y 1 minuto (60000 ms) inclusive. El tiempo de vigilancia predeterminado es de 20000 ms. 7.3.6. Menú ver Desde este menú podremos observar contenidos de los acumuladores internos y registros del autómata programable. También nos permitirá seleccionar diferentes barras de herramientas. El simulador PLCSIM 21 Formación Abierta Acumuladores El comando “acumuladores”: Permite acceder al contenido de los acumuladores de la CPU. En la subventana se visualizan cuatro campos de acumuladores para la CPU S7400, en tanto que los programas para la CPU S7-300 utilizan sólo dos acumuladores. Palabra de estado: permite acceder a los bits de la palabra de estado: RLO, desvordamiento, acarreo, bit de signo, etc. Registros de direcciones: permite acceder al contenido de los dos registros de direcciones (AR1 y AR2). Éstos se utilizan para el direccionamiento indirecto de las variables. Haz clic en el botón o elige el comando de menú Ver > Acumuladores para crear una subventana donde se pueden observar y modificar los datos anteriormente descritos. Registros Haz clic en el botón o elige el comando de menú Ver > Registros de bloques para crear una subventana que permita observar el contenido de los registros de direcciones de los bloques de datos (DB1 y DB2). Además, se visualizan los números de los bloques lógicos actual y anterior, así como el número de operación (contador de direcciones SAC) de cada bloque. 22 El simulador PLCSIM Autómatas Programables 07 Pilas Haz clic en el botón o elige el comando de menú Ver > Pilas para crear una subventana donde se pueden observar la pila de anidado y la pila MCR (Master Control Relay): En la pila de anidado es posible depositar siete entradas como máximo. Dicha pila almacena de cada entrada los estados de los bits RLO, RB y OR de la palabra de estado. Para cada operación que inicie una nueva cadena lógica se crea una entrada en la pila de anidado. Dichas operaciones son: Y (A), Y-NO (AN), O (O), O-NO (ON), O exclusiva (X) y O-NO exclusiva (XN). En la pila MCR se pueden almacenar ocho niveles de anidado (como máximo) para un Master Control Relay. Cada nivel muestra el estado del bit RLO de una operación MCR (que comienza con un área MCR). Barras de herramientas Permite activar las barras de herramientas de la aplicación: Estándar: Insertar: Modo CPU: Barra de estado Permite mostrar/ocultar la información y los mensajes que aparecen en el borde inferior de la ventana de S7-PLCSIM. Siempre visible Con esta opción aparece S7-PLCSIM en el primer plano de la pantalla, aunque paralelamente se estén ejecutando otras aplicaciones. Se puede activar también con la opción de la barra de herramientas. El simulador PLCSIM 23 Formación Abierta 7.3.7. Menú herramientas Configuraremos en este menú las distintas opciones de mostrar símbolos en nuestra aplicación. Asignar módulos Este comando de menú invoca un cuadro de diálogo donde se puede elegir la tabla de diálogo de STEP 7 a la que se hace referencia. Tras asignar una tabla de símbolos se puede utilizar el comando de menú Herramientas > Mostrar símbolos con objeto de visualizar las direcciones simbólicas en las subventanas. Elige el comando de menú Herramientas > Asignar símbolos... para utilizar el direccionamiento simbólico en el programa simulado. Para visualizar la tabla de símbolos en sí, elige el comando de menú Herramientas > Tabla de símbolos. Mostrar símbolos Permite o no visualizar los símbolos utilizados en la simulación. Datos de referencia Permite abrir la aplicación de STEP 7 “Visualizar datos de referencia S7”, es decir, muestra información del programa como ocupación de entradas/salidas, temporizadores ocupados, referencias cruzadas, símbolos utilizados, etc. 24 El simulador PLCSIM Autómatas Programables 07 Este comando de sólo se podrá activar si se ha asignado previamente una tabla de símbolos de STEP 7 al programa simulado. Tabla de símbolos Permite visualizar la tabla de símbolos utilizada en la simulación. El simulador PLCSIM 25 Autómatas Programables 07 • Resumen • La aplicación PLCSIM nos permite simular nuestro programa sin tener conectado un PLC real. • Para ello una vez realizado nuestro programa en Step-7, lo “transferimos” al autómata. • Una vez en la aplicación, insertaremos las subventanas necesarias para simular nuestro programa: subventanas de entradas, salidas, marcas, temporizadores, etc. • Pondremos nuestra CPU en RUN, para poner en “marcha” nuestro autómata. • Activaremos el icono correspondiente a cada bit simulado dentro de cada subventana. • Guardaremos el archivo con la configuración de nuestro programa simulado. Estos archivos tienen extensión .plc. El simulador PLCSIM 27 08 Autómatas Programables Programación del autómata programable (I) Autómatas Programables 08 Índice OBJETIVOS ........................................................................................................ 3 INTRODUCCIÓN ................................................................................................. 4 8.1. Consideraciones iniciales ......................................................................... 5 8.1.1. ¿Cómo interpretamos en nuestro programa una entrada, salida o marca?............................................................................................. 5 8.1.2. Operandos byte, palabra y doble palabra ............................................ 6 8.1.3. El acumulador (accu) ........................................................................... 9 8.1.4. Imagen de proceso de entradas (pae) y de salidas (PAA) ................... 9 8.1.5. El RLO ............................................................................................... 10 8.2. Operaciones combinacionales ............................................................... 11 8.2.1. Operación U (AND) ............................................................................ 11 8.2.2. Operación UN (AND con entradas negadas) ..................................... 11 8.2.3. Operación O (OR) .............................................................................. 13 8.2.4. Operación on (or con entradas negadas) ........................................... 14 8.2.5. Operación O sin operando ................................................................. 15 8.2.6. Operación U( ..................................................................................... 17 8.2.7. Operación o( ...................................................................................... 18 8.2.8. La programación con marcas............................................................ 19 8.3. Operaciones set y reset .......................................................................... 25 8.3.1. La operación S (SET) ........................................................................ 25 8.3.2. La operación R (RESET) ................................................................... 25 8.3.3. La importancia del orden en que colocamos las instrucciones ........... 26 8.4. Temporizadores ....................................................................................... 29 8.4.1. Carga del tiempo del temporizador .................................................... 29 8.4.2. Tipos de temporizaciones .................................................................. 31 8.5. Contadores............................................................................................... 41 8.5.1. ¿Cómo cargar el valor de un contador? ............................................. 41 8.5.2. Operaciones de contaje ..................................................................... 41 RESUMEN......................................................................................................... 47 Programación del autómata programable (I) 1 Autómatas Programables 08 Objetivos Aprender a programar las operaciones combinacionales básicas. Aprender a desarrollar programas para aplicaciones secuenciales. Desarrollar la programación necesaria para trabajar con temporizadores. Aprender a programar contadores ascendentes y descendentes. Programación del autómata programable (I) 3 Formación Abierta Introducción Escribir un programa para cualquier autómata requiere conocer el lenguaje de programación del mismo. Los autómatas de la serie S7 de SIEMENS utilizan el lenguaje unificado STEP 7. Aprender el STEP 7 supone conocer las operaciones disponibles (operaciones como OR, AND, etc.) y la forma en que deben representarse. También exige saber los diferentes operandos, cómo representarlos y cómo acceder a ellos (entradas, salidas, accediendo a nivel de bit, de byte, de palabra, etc.). Seguramente podríamos obviar alguno de los conceptos que tratamos en el tema y comenzar a utilizarlas sin más. Pero utilizar y dominar son cosas distintas. Nosotros pretendemos dominar estas operaciones, y para ello creemos necesario enfocarlas tal y como lo hacemos. 4 Programación del autómata programable (I) Autómatas Programables 08 8.1. Consideraciones iniciales Antes de empezar a explicar los conceptos principales de programación es conveniente ver una serie de puntos que nos ayudarán a entender mejor los contenidos del tema. 8.1.1. ¿Cómo interpretamos en nuestro programa una entrada, salida o marca? A modo de breve introducción, y para aclarar conceptos, a continuación hablamos de cada uno de ellos. Entradas (E) Aunque en principio podemos utilizar como operandos desde E0.0 hasta E127.7, sólo tiene sentido usar aquellos con los que realmente contemos. Si no contamos con módulos de periferia externa conectados al autómata, de nada sirve, por ejemplo, usar la entrada E0.0, dado que no existe para nuestro autómata. En el autómata que nos ocupa utilizaremos las entradas integradas que ya tiene, es decir: Byte 124: Entradas desde el bit E124.0 hasta el bit E124.7. Byte 125: Entradas desde el bit E125.0 hasta el bit E125.7. Byte 126: Entradas desde el bit E126.0 hasta el bit E126.3. En total 20 entradas integradas: Operación Operación (dirección del operando) U E 32.0 Parámetro Identificador del operando Salidas (A) Con las salidas podemos hacer las mismas consideraciones que con las entradas. En nuestro autómata utilizaremos: Byte 124: Salidas desde el bit A124.0 hasta el bit A124.7. Byte 125: Salidas desde el bit A125.0 hasta el bit A125.7. En total 16 salidas integradas. Programación del autómata programable (I) 5 Formación Abierta Marcas M Las marcas vienen a ser los relés auxiliares de los circuitos eléctricos (como ya explicamos en temas anteriores). Podemos considerarlos como si de salidas se trataran, pero con la salvedad de que no tienen un terminal de salida. Contamos con 256 bytes de marcas para nuestro “uso y disfrute”. Byte 0: Marcas desde el bit M 0.0 hasta el bit M 0.7. Byte 256: Marcas desde el bit M 256.0 hasta el bit M 256.7. 8.1.2. Operandos byte, palabra y doble palabra Byte y palabra son conceptos que no tienen que sonarnos a nuevo. Si repasamos un poco, recordaremos que definíamos a un byte como 8 bits, y que una palabra estaba compuesta por dos bytes. Lo que nos toca ahora es conocer los operandos que trabajan con estas longitudes y cómo utilizarlos. Operandos de longitud byte El byte tiene una longitud de 8 bits que quedan definidos de derecha a izquierda con las direcciones bit de 0….7. 7 6 5 4 3 2 1 0 Byte Si pensamos en las entradas, salidas y marcas que venimos usando, casi está todo dicho. Podemos usar por ejemplo desde la entrada E 124.0 hasta la E 124.7 (8 bits) accediendo a cada una de ellas a nivel de bit. (Ocho bits = 1 byte). Parece lógico que las entradas sean operandos a los que pueda accederse con una longitud de 1 byte. Con las salidas y las marcas sucede exactamente lo mismo. Los operandos de longitud byte son pues EB (entradas Byte), AB (salidas Byte) y MB (marcas Byte). Para referirnos a la entrada 124 como operando byte escribiremos: EB 124. La marca 10 será: MB 10. La salida 125: AB 125. 6 Programación del autómata programable (I) Autómatas Programables 08 Operandos de longitud palabra (Word) La siguiente unidad al byte es la palabra, en inglés word. Tiene una longitud de 16 bits, que quedan definidos de derecha a izquierda con las direcciones bit de 0…15. 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 Byte Byte Word Dos bytes de la zona de operandos de entradas, salidas y marcas, pueden formar conjuntamente una palabra de entradas EW, de salidas AW o de marcas MW. E125.0 E125.7 E124.0 E124.7 Por ejemplo, EW 124, estará formada por EB 124 + EB 125. EB125 EB124 EW124 Con los operandos EW, AW y MW, hay que tener presente que de los dos bytes, el de la izquierda debe tener la dirección byte más pequeña, siendo esta dirección byte idéntica a la dirección de la palabra. MB 8 M9.0 M9.7 M8.0 M8.7 Por ejemplo, la MW 8 será: MB 9 MW 8 Programación del autómata programable (I) 7 Formación Abierta M10.0 M10.7 M9.0 M9.7 Y la MW 9: MB 9 MB 10 MW 9 MW1 MW0 Si representamos la zona de memoria en la que se almacenan las marcas, lo veremos más claro. M0.7 M0.6 M0.5 M0.4 M0.3 M0.2 M0.1 M0.0 MB.0 M1.7 M1.6 M1.5 M1.4 M1.3 M1.2 M1.1 M1.0 MB.1 MW2 MB.2 MW3 MB.3 MW4 MB.4 MB.5 MB.6 MB.7 ... ... ... ... ... ... ... ... Operandos de longitud doble palabra (double word) Tienen una longitud de 32 bits, que quedan definidos de derecha a izquierda con las direcciones bit de 0…31. EB 124 7 6 5 4 3 EB 125 2 1 0 7 6 5 4 3 EB 126 2 1 0 7 6 5 4 3 EB 127 2 1 EW 124 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 8 Programación del autómata programable (I) 0 7 6 5 4 3 2 1 0 6 5 4 3 2 1 0 EW 126 9 8 7 Autómatas Programables 08 Dos palabras de la zona de operandos de entradas, salidas y marcas, pueden formar conjuntamente una doble palabra de entradas ED, de salidas AD, o de marcas MD. Por ejemplo, ED 124, estará formada por EW124 + EW126 8.1.3. El acumulador (accu) De momento nos conformaremos con saber que el acumulador es el registro donde se guardan todos los resultados de operaciones como transferencia de datos, operaciones aritméticas, con temporizadores, etc. Nuestro autómata programable consta de dos acumuladores (ACCU1 y ACCU2) de 32 bits cada uno. Cada uno de ellos se subdivide en ACCU-H y ACCU-L, es decir en parte alta (High) y parte baja (Low), tendremos pues: ACCU1 (32 bits): ACCU1-H (16 bits) + ACCU1-L (16 bits) y ACCU2 (32 bits): ACCU2-H (16 bits) + ACCU2-L (16 bits) ACCU 1 ACCU 1-H 31 8.1.4. ACCU 1-L 16 15 0 Imagen de proceso de entradas (pae) y de salidas (PAA) La imagen de proceso de entradas (PAE) y salidas (PAA) es una zona de memoria que el autómata lee para actualizar cambios en las entradas y salidas del proceso. De esta forma la PAE del autómata actualiza los posibles cambios que han podido suceder en el estado de entradas y la PAA actualiza las salidas que han podido cambiar después de ejecutar el programa. Todo esto lo indicamos en el siguiente esquema de bloques de forma simplificada: Programación del autómata programable (I) 9 Formación Abierta Leer entradas reales y almacenar en la PAE Ejecutar el programa instrucción por instrucción usando los valores de PAE y PAA Actualizar las salidas reales en función del contenido de la PAA 8.1.5. El RLO Es un bit de estado que nos indica si la operación en curso se cumple o no se cumple. Por ejemplo, consideremos la siguiente instrucción: U E 124.0. Suponiendo que el estado de la entrada sea “0” al ejecutar dicha instrucción el RLO será “0”, ya que la sentencia no se cumple. Si por el contrario el valor de la entrada es “1”, RLO será “1” ya que la instrucción se cumple. Considerando la siguiente instrucción UN E 126.3 y que el valor de dicha entrada es “0”, ¿qué valor tiene RLO? 10 Programación del autómata programable (I) Autómatas Programables 08 8.2. Operaciones combinacionales Las operaciones combinacionales son operaciones que trabajan con señales binarias. Como sabemos, las operaciones binarias sólo pueden tomar dos valores: “1” ó “0”, “ACTIVADO” o “DESACTIVADO”. Como ya explicamos en el tema anterior, las operaciones combinacionales tratan básicamente la combinación de funciones AND y OR. 8.2.1. Operación U (AND) Con esta operación se consulta si se cumplen simultáneamente varias condiciones. Si se cumplen todas, el resultado en la salida será “1”, y basta con que una de ellas no se cumpla para que la salida esté a “0”. E124 . 0 E124 . 0 E124 . 1 E124 . 2 E124 . 1 E124 . 2 A124 . 0 & A124 . 0 = Explicación Si cerramos los tres interruptores, el resultado de la combinación o RLO estará a “1” haciendo que la salida A 124.0 se active. Si cualquiera de los tres interruptores se abre, el RLO será “0” y por lo tanto, la salida A 124.0 también estará a “0”. 8.2.2. Operación UN (AND con entradas negadas) Con esta operación se consulta si no se cumplen simultáneamente varias condiciones. Cuando no se cumple ninguna condición, la salida se activa, bastando que una de ellas se cumpla para que ésta esté a “0”. Programación del autómata programable (I) 11 Formación Abierta E124.2 UN E 124.0 UN E 124.1 UN E 124.2 = A 124.0 A124.0 S E A S S2 E124.1 S1 E124.0 S0 K1A Esquema eléctrico & E124 . 0 A124 . 0 E124 . 1 = E124 . 2 E124 . 0 E124 . 1 E124 . 2 A124 . 0 Explicación La tabla de la verdad del programa es: E 124.0 E 124.1 E 124.2 A 124.0 0 0 0 1 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 0 Y nos muestra que la única combinación que activa la salida A 124.0 se da, cuando las tres entradas están desactivadas (los tres interruptores abiertos). La negación es otra operación combinacional cuyo único cometido es invertir una señal, poniéndola a “0” si estaba a “1” y viceversa. Se conoce en el mundillo como operación “NOT”. 12 Programación del autómata programable (I) Autómatas Programables 08 Los “círculos” de entrada en el diagrama FUP son el símbolo de negación de las entradas. La tabla de verdad de la operación NOT es muy simple: a a 0 1 1 0 donde a se lee “a negada” Cuando utilizamos la operación UN, lo que hacemos es negar la entrada correspondiente y luego realizar la operación AND. Volvamos al ejemplo anterior, y veamos la tabla de verdad con el paso intermedio de la negación: Entradas reales Entradas negadas AND E 124.0 E124.1 E 124.2 E 124.0 E 124.1 E 124.2 A 124.0 0 0 0 1 1 1 1 0 0 1 1 1 0 0 0 1 0 1 0 1 0 0 1 1 1 0 0 0 1 0 0 0 1 1 0 1 0 1 0 1 0 0 1 1 0 0 0 1 0 1 1 1 0 0 0 0 8.2.3. Operación O (OR) Con esta operación se consulta si se cumple una, de dos o más condiciones. Bastará con que se cumpla una de ellas para que en la salida se ponga “1” Para que la salida sea “0”, deberá ocurrir que no se cumpla ninguna condición. Programación del autómata programable (I) 13 Formación Abierta E124 . 0 A124 . 0 E124 . 1 E124 . 2 >=1 E124 . 0 A124 . 0 E124 . 1 = E124 . 2 Explicación Al cerrar cualquiera de los tres interruptores, dos de ellos o los tres, activaremos la salida A 124.0. La única combinación que desactiva la salida A 124.0, se da cuando los tres interruptores están abiertos. 8.2.4. Operación on (or con entradas negadas) Con esta operación se consulta si NO se cumple una, de dos o más condiciones. Bastará con que no se cumpla una de ellas para que se ponga a “1” la salida. E124.2 E124.1 S2 UN E 124.0 UN E 124.1 UN E 124.2 = A 124.0 A124.0 S E A S S1 E124.0 S0 K1A Esquema eléctrico 14 Programación del autómata programable (I) Autómatas Programables E124 . 0 08 A124 . 0 E124 . 1 E124 . 2 >=1 E124 . 0 A124 . 0 E124 . 1 = E124 . 2 Explicación Al cerrar los tres interruptores, desactivaremos la salida A 124.0. Ésta será la única combinación en que la salida A 124.0 estará a “0”. Entradas reales Entradas negadas OR E 124.0 E 124.1 E 124.2 E 124.0 E 124.1 E 124.2 A 124.0 0 0 0 1 1 1 1 0 0 1 1 1 0 1 0 1 0 1 0 1 1 0 1 1 1 0 0 1 1 0 0 0 1 1 1 1 0 1 0 1 0 1 1 1 0 0 0 1 1 1 1 1 0 0 0 0 8.2.5. Operación O sin operando Realizará la combinación OR de la primera parte del programa con la segunda. Lo mejor es ver un ejemplo: Programación del autómata programable (I) 15 Formación Abierta UN E 124.0 UN E 124.1 UN E 124.2 = A 124.0 E124.2 E124.1 S2 A124.0 S E A S S1 E124.0 S0 K1A Esquema eléctrico E124 . 0 & >=1 E124 . 1 E124 . 2 & E124 . 0 = E124 . 3 E124 . 0 E124 . 2 E124 . 1 E124 . 0 E124 . 3 Explicación La salida A 124.0 se activará cuando E 124.0 y E 124.1 estén activadas o cuando E 124.2 y E 124.3 estén activadas. En esencia, esta operación coloca dos ramas en paralelo, tal y como se observa en el esquema anterior de contactos. Desarrolla el programa correspondiente al siguiente esquema de contactos: 16 Programación del autómata programable (I) Autómatas Programables E124 . 0 E124 . 1 08 A124 . 0 E124 . 1 E124 . 2 E124 . 3 E124 . 0 & E124 . 2 >=1 E124 . 1 A124 . 0 = E124 . 3 8.2.6. Operación U( Si nos piden que hagamos la operación 5x2+6, nos puede surgir la duda acerca de qué debemos realizar primero, si la suma o la multiplicación. Realizando 1º la multiplicación el resultado sería 16, mientras que si efectuamos la suma en primer lugar, sería 40. Para evitar estas ambigüedades, utilizamos los paréntesis, de forma que para la expresión (5x2)+6 daríamos como resultado 16, y para 5x (2+6) diríamos que el resultado es 40 sin vacilar. Los paréntesis dan prioridad a lo que tienen en su interior, puesto que al verlos, hacemos en primer lugar la operación que tienen dentro, y luego utilizamos el resultado de ésta para realizar las restantes. Así pues la operación U( hará la combinación lógica AND entre la operación precedente, y el resultado de lo que contenga entre los paréntesis. Desarrolla el programa correspondiente al siguiente esquema de contactos: E124 . 0 E124 . 1 A124 . 0 E124 . 2 E124 . 3 E124 . 2 E124 . 3 >=1 E124 . 1 & E124 . 0 >=1 A124 . 0 = Programación del autómata programable (I) 17 Formación Abierta El programa que nos piden será: U O U U( O O ) = 8.2.7. E 124.0 E 124.1 E E 124.2 124.3 A 124.0 Operación o( La operación O hará la combinación lógica OR entre la operación precedente y el resultado de lo que contenga entre paréntesis. Las consideraciones realizadas para la operación U son igualmente válidas para esta operación. Desarrolla el programa correspondiente al siguiente esquema de contactos: E124 . 0 A124 . 0 E124 . 1 E124 . 2 E124 . 3 E124 . 1 E124 . 3 & E124 . 2 >=1 E124 . 0 & A124 . 0 = E124 . 4 La solución en este caso será: U U( U O O( U U ) ) = 18 E124 . 4 E 124.0 E E 124.1 124.2 E E 124.3 124.4 A 124.0 Programación del autómata programable (I) Autómatas Programables 08 Como podemos comprobar en el ejemplo, las operaciones O y U pueden estar anidadas, es decir, podemos tener paréntesis dentro de otros paréntesis. Activar la salida A124.1 si de dos pulsadores, está activado solamente uno. Siempre que los dos pulsadores estén activados o desactivados a la vez, activar la salida A 124.0 8.2.8. La programación con marcas Ya dimos alguna pincelada de las marcas, diciendo que eran como salidas, pero sin terminal al exterior. Y eso es lo que son, sin más. Reciben el nombre de marcas, porque se usan entre otras cosas para “marcar” o recordar algún estado, como paso intermedio para activar, por ejemplo, una salida. Supongamos un proceso en el que tenemos tres motores con sus correspondientes relés térmicos y un pulsador de paro general. Activando el pulsador “a” se activará el motor “A”, con el “b” el “B” y con el “c” el “C”. Cuando, cualquiera de los motores falle, deberán desconectarse todos. El esquema eléctrico tradicional sería como sigue: P (E124 . 0) FA (E124 . 1) FB (E124 . 2) FC (E124 . 3) E124 . 4 E124 . 5 a A A b E124 . 6 B B A124 . 0 c C C A124 . 1 A124 . 2 Programación del autómata programable (I) 19 Formación Abierta P: pulsador de paro general (cerrado en reposo NC). FA: relé térmico motor A (NC). FB: relé térmico motor B (NC). FC: relé térmico motor C (NC). a: pulsador de marcha motor A (abierto en reposo NA). b: pulsador de marcha motor B (NA). c: pulsador de marcha motor C (NA). A: contactor motor A. B: contactor motor B. C: contactor motor C. En primer lugar, vamos a hacer la asignación de entradas y salidas: Entradas 20 Salidas P E 124.0 A: A 124.0 FA E 124.1 B: A 124.1 FB E 124.2 C: A 124.2 FC E 124.3 a E 124.4 b E 124.5 c E 124.6 Programación del autómata programable (I) Autómatas Programables 08 En principio, sin usar marcas, el programa podría ser como sigue: U U U U U( O O ) = E E E E 124.0 124.1 124.2 124.3 E A 124.4 124.0 A 124.0 U U U U U( O O ) = E E E E 124.0 124.1 124.2 124.3 E A 124.5 124.1 A 124.1 U U U U U( O O ) = E E E E 124.0 124.1 124.2 124.3 E A 124.6 124.2 A 124.2 El diagrama KOP es: E124 . 0 E124 . 1 E124 . 2 E124 . 3 A124 . 4 A124 . 0 A124 . 0 E124 . 0 E124 . 1 E124 . 2 E124 . 3 A124 . 5 A124 . 1 A124 . 1 E124 . 0 E124 . 1 E124 . 2 E124 . 3 A124 . 6 A124 . 2 A124 . 2 Programación del autómata programable (I) 21 Formación Abierta Utilizando una marca, el programa se simplificará bastante: U U U U = E E E E M 124.0 124.1 124.2 124.3 0.0 Activamos esta marca si se dan las condiciones iniciales de funcionamiento, es decir P, FA, FB y FC. Si se observa la solución anterior, este pequeño programa se repite hasta tres veces. U U( O O ) = M 0.0 A E 124.0 124.4 A 124.0 U U( O O ) = M 0.0 A E 124.1 124.5 A 124.1 U U( O O ) = M 0.0 A E 124.2 124.6 A 124.2 La información referente a los contactos en serie desde la E124.0 hasta la E124.3 se encuentra en la marca M 0.0. Si esta marca está a “1” los contactos descritos anteriormente estarán cerrados. Posteriormente en el programa no se arrastra la información de cada contacto si no que, se arrastra sólo la información de la marca. 22 Programación del autómata programable (I) Autómatas Programables E124 . 0 M0 . 0 E124 . 1 A124 . 0 E124 . 2 E124 . 3 08 M0 . 0 A124 . 0 E124 . 4 M0 . 0 A124 . 1 A124 . 1 E124 . 5 M0 . 0 A124 . 2 A124 . 2 E124 . 6 Explicación Si todo está correcto (no ha saltado ningún relé térmico y no hemos pulsado el botón de paro), llegará tensión a las entradas E 124.0, E 124.1, E 124.2, y E 124.3 (recordemos que los contactos conectados a las mismas son cerrados en reposo), activándose la marca M 0.0. Si la M 0.0 está activada (todo OK), pulsando cualquiera de los tres pulsadores a, b, o c, pondremos en marcha los motores correspondientes. Para el 1er listado AWL utilizaremos 27 instrucciones, mientras que con el uso de la marca utilizaremos 23. Además de esta rebaja en el nº de instrucciones, también resulta más claro el seguimiento del programa. Programación del autómata programable (I) 23 Formación Abierta Realiza el programa correspondiente al siguiente esquema de contactos con marcas. E124 . 0 E124 . 1 E124 . 2 E124 . 4 E124 . 3 E124 . 5 A124 . 0 24 Programación del autómata programable (I) A124 . 1 A124 . 2 Autómatas Programables 08 8.3. Operaciones set y reset Estas instrucciones forman parte de las operaciones biestables que explicamos en el tema anterior. Este tipo de instrucciones se utilizarán en aplicaciones donde se deben de tener en cuenta el estado anterior en el que encontraba el sistema. 8.3.1. La operación S (SET) La operación SET significa poner en marcha o lo que es lo mismo poner a “1”. U E 124.0 S A 124.0 Al poner a “1” la entrada E 124.0, activaremos la salida A 124.0, y además permanecerá activada aunque la entrada E 124.0 vuelva a “0”. 8.3.2. La operación R (RESET) La operación RESET o más conocido RESETEAR significa poner a “0” o parar. U E 124.0 S A 124.0 U E 124.1 R A 124.0 Del mismo modo que en el ejemplo anterior, activando la E 124.0, activa la salida A 124.0 permaneciendo así aunque E 124.0 se ponga a “0”. Pero si activamos E 124.1, realizaremos el RESET de A 124.0 poniéndola nuevamente a “0”. Resumiendo, al activar E 124.0, pondremos a “1” A 124.0, y al activar E 124.1, pondremos a “0” A 124.0. Así pues tendremos en este pequeño programa el equivalente a un marcha-paro de un motor. Programación del autómata programable (I) 25 Formación Abierta La única forma de poner a “0” un operando puesto a “1” por un SET es haciendo un RESET a ese mismo operando. 8.3.3. La importancia del orden en que colocamos las instrucciones Retomemos el ejemplo anterior. E124.1 U E 124.0 S A 124.0 U E 124.1 R A 124.0 A124.0 S E A S S1 E124.0 S0 L1 Esquema eléctrico ¿Qué sucederá si pulsamos a la vez S0 y S1? Para contestar esta cuestión tenemos que recordar cuál es el funcionamiento del autómata. Las entradas reales se convertían a unos y ceros y eran guardadas en la imagen de proceso de entradas (PAE). Se ejecutaba el programa instrucción por instrucción, utilizando los valores almacenados en la PAE y actualizando la imagen de proceso de salidas (PAA). Y finalmente, se convertían los unos y ceros de la PAA en tensiones de las respectivas salidas y se volvía a empezar. 26 Programación del autómata programable (I) Autómatas Programables 08 Si pulsamos S0 y S1 a la vez: E 124.0 = “1” E 124.1 = “1” U E 124.0 S A 124.0 U E 124.1 R A 124.0 A 124.0 = “0” Como la instrucción de RESET es la última, prevalecerá sobre la de SET, así que al pulsar S0 y S1 al mismo tiempo la salida A 124.0 no se activará y no lucirá la bombilla. El programa se comportaría como un circuito con prioridad a la desconexión S0 K1A S1 K1A Programación del autómata programable (I) 27 Formación Abierta Realizar un programa que arranque en cascada tres motores: M1: Arranca con el pulsador 1(P1). M2: Arranca con el pulsador 2 (P2) y sólo si M1 esta activo. M3: Arranca con el pulsador 3 (P3) y sólo si M1 y M2 están activos. Los motores tienen un único pulsador de paro común. Descripción de entradas / salidas: 28 P1: E 124.1 P2: E 124.2 E 125.0 P3: E 124.3 M1: A 124.1 M2: A 124.2 M3: A 124.3 Programación del autómata programable (I) Paro: Autómatas Programables 08 8.4. Temporizadores Tal y como contábamos en el tema anterior, un temporizador: 1. Se arranca con una condición de arranque. 2. Se carga con el tiempo deseado. 3. Se indica con qué tipo de temporización se quiere trabajar y con qué temporizador. 4. Cuando acabe de temporizar, el sistema activará un bit que podremos consultar. Teniendo en cuenta todas estas fases, vamos a programar temporizadores con el autómata que nos ocupa. 8.4.1. Carga del tiempo del temporizador Los temporizadores tienen un área reservada en la memoria de la CPU. Esta área de memoria reserva una palabra de 16 bits para cada operando de temporizador. Los 10 primeros bits (del 0 al 9) de la palabra de temporización contienen el valor de temporización en código binario. Este valor indica un número de unidades a contar. La actualización decremento el valor de temporización en una unidad y en el intervalo indicado por la base de tiempo hasta alcanzar el valor 0. El valor de temporización se puede cargar en los formatos binario, hexadecimal o decimal codificado en binario (BCD). El área de temporización va de 0 a 9.990 segundos. El valor de temporización se puede cargar en cualquiera de los siguientes formatos: w#16#txyz Siendo: t= la base de tiempo (es decir, intervalo de tiempo o resolución) Base de tiempo en código binario: Base de tiempo Código binario 10 ms 00 100 ms 01 1s 10 10 s 11 Programación del autómata programable (I) 29 Formación Abierta xyz = el valor de temporización en formato BCD. Tiempo total = Base de tiempo x valor de temporización Si queremos realizar una temporización de 5 segundos en este tipo de formato sería: w#16#10005 Donde: 10 equivale a “t”= 1 seg. (base de tiempos) y 005 equivale al valor “xyz” = valor de temporización. Así pues tendremos: 1 seg. x 5= 5 seg. S5T#aH_bM_cS_dMS Siendo: H (horas), M (minutos), S (segundos), MS (milisegundos); a, b, c, d los define el usuario. La base de tiempo se selecciona automáticamente y el valor de temporización se redondea al próximo número inferior con esa base de tiempo. El valor de temporización máximo que puede introducirse es de 9.990 segundos o 2H_46M_30S. Si queremos realizar una temporización de 5 segundos en este tipo de formato sería: S5T#5S Donde S5T# sería el formato obligatorio y 5S la temporización, en este caso 5 segundos. A partir de ahora cargaremos el temporizador con el formato: S5T#XX, ya que consideramos que es mucho más sencillo y directo de manejar. 30 Programación del autómata programable (I) Autómatas Programables 8.4.2. 08 Tipos de temporizaciones Una vez cargado el dato del tiempo a temporizar nos dispondremos a utilizar un tipo de temporización u otra. El autómata S7-300 nos permite los siguientes: Como opciones para el retardo de tiempo: Temporizador como retardo a la conexión (SE). Temporizador como retardo a la desconexión (SA). Temporizador como retardo a la conexión con memoria (SS). Como opciones de temporización por impulso: Temporizador como impulso (SI). Temporizador como impulso prolongado (SV). Dependiendo de las necesidades del proceso utilizaremos un tipo u otro de temporizador, aunque en un porcentaje muy elevado se utilizan normalmente los temporizadores de retardo a la conexión (SE) y a la desconexión (SA). Explicaremos ahora cómo funciona y cómo se programa cada uno de ellos: Temporizador como retardo a la conexión (SE) Este temporizador arranca cuando existe un flanco ascendente en la condición de marcha. La salida se activará transcurrido el tiempo programado, siempre que haya permanecido activado la condición de marcha. En el caso de que la condición de marcha se desactive, el temporizador deja de trabajar, esperando otro flanco para volver a empezar el contaje. Programación del autómata programable (I) 31 Formación Abierta Se puede observar, que la salida “retarda” su conexión, el tiempo deseado. Todo esto se puede expresar mejor en un diagrama de tiempos: E 124.0 “1” 8s “0” 3s t RLO “1” “0” t T1 “1” 5s “0” t El temporizador T 1 se pone a “1” al cabo de los 5 segundos preestablecidos, siempre y cuando el RLO continúe en estado “1”, es decir, E 124.0 siga activada. U E 124.0 L S5T#5S SE T1 En este ejemplo, cuando activamos la condición U E 124.0 cargamos el temporizador con 5 segundos, con el temporizador T1 y en el modo de retardo a la conexión. La operación SE es inhibidora del RLO, es decir, que la siguiente instrucción de programa será tratada como instrucción de 1ª consulta. La operación L carga el valor de la temporización al acumulador. De momento nos quedaremos solamente con este concepto. Es una instrucción que explicaremos con más detalle más adelante. 32 Programación del autómata programable (I) Autómatas Programables 08 Temporizador como retardo a la desconexión (SA) Cuando existe un flanco ascendente en la condición de marcha, RLO se pone a “1” y la salida se activa. El tiempo empieza a contar cuando cae la condición de marcha. Una vez transcurrido el tiempo de retardo la salida también se desactiva. Este temporizador “retarda” la desconexión de la salida una vez desactivada la condición de arranque. Todo esto se puede expresar mejor en un diagrama de tiempos: E 124.0 “1” 8s “0” t RLO “1” “0” t T1 “1” 5s “0” t Como se puede observar, al desactivar la entrada E 124.0 se produce un flanco decreciente del RLO, que activa la temporización de 5 segundos durante los cuales el T 1 continuará a “1”. U E 124.0 L S5T#5S SA T1 La operación SA es inhibidora del RLO, es decir, que la siguiente instrucción de programa será tratada como instrucción de 1ª consulta. Programación del autómata programable (I) 33 Formación Abierta Temporizador como retardo a la conexión con memoria (SS) La temporización se arranca con el flanco creciente de la condición de arranque. El temporizador se pone a “1” cuando ha transcurrido la temporización, independientemente del estado del RLO, es decir, cuando cae E 124.0. Para colocar a “0” nuevamente al temporizador, tenemos que utilizar la instrucción reponer una temporización (R), que explicaremos a continuación. Veamos el funcionamiento en el siguiente cronograma: E 124.0 “1” 3s “0” t RLO “1” “0” t T1 “1” 5s “0” t U E 124.0 L S5T#5S SS T1 La operación SS es inhibidora del RLO, es decir, que la siguiente instrucción de programa será tratada como instrucción de 1ª consulta. Temporizador como impulso (SI) Esta operación arranca una temporización con el flanco creciente en la condición de arranque. En este momento se pone a “1” RLO. Con RLO a “1” la salida se activa. Mientras la condición de arranque está activada el temporizador cuenta el tiempo deseado. 34 Programación del autómata programable (I) Autómatas Programables 08 Si la condición de arranque cae antes de que pase el tiempo programado, RLO se pone a “0” y la salida se desactiva. Veamos el funcionamiento en el siguiente cronograma: E 124.0 “1” 8s 3s “0” t RLO “1” “0” t T1 “1” 3s 5s “0” t U E 124.0 L S5T#5S SI T1 La operación SI es inhibidora del RLO, es decir, que la siguiente instrucción de programa será tratada como instrucción de 1ª consulta. Temporizador como impulso prolongado (SV) Esta operación arranca una temporización con el flanco creciente de la condición de entrada, por lo que RLO se pone a “1”. Mientras dura la temporización, el temporizador estará a “1”, y además un cambio del RLO a “0” no afectará a la temporización. Programación del autómata programable (I) 35 Formación Abierta Veamos el funcionamiento en el siguiente cronograma: E 124.0 “1” 8s 3s “0” t RLO “1” “0” t T1 “1” 5s 5s “0” t En este caso, aunque la condición de entrada deje de cumplirse, el temporizador sigue contando y se desactiva cuando acaba de temporizar. U E 124.0 L S5T#5S SV T1 La operación SV es inhibidora del RLO, es decir, que la siguiente instrucción de programa será tratada como instrucción de 1ª consulta. Operación R. Reponer (borrar) una temporización La temporización se repone al valor inicial mientras el RLO precedente a esta instrucción sea “1”. Si el RLO está a “0” la temporización no se borra. 36 U E 124.0 L S5T#5S SS T1 U E 124.1 R T1 Programación del autómata programable (I) Autómatas Programables 08 E 124.0 "1" 3s "0" t RLO "1" "0" t E 124.1 "1" "0" t RLO "1" "0" t T1 "1" 5s "0" t Cuando activamos E 124.0 arrancamos la temporización de T 1 como retardo a la conexión memorizada. Una vez que el temporizador T 1 se ha puesto a “1”, la única forma de ponerlo a “0” es activando la entrada E 124.1, que coloca a “1” el RLO. Si el RLO está a “1” la instrucción R T 1 hace que T1 se ponga a “0”. La operación R es inhibidora del RLO, es decir, que la siguiente instrucción de programa será tratada como instrucción de 1ª consulta. Operaciones combinacionales con temporizadores. Los contactos del temporizador Ya sabemos cómo cargar el tiempo de temporización, y hacer que el temporizador trabaje de una u otra forma mediante las operaciones de tiempo. Ahora, necesitamos conocer cómo reflejar el estado de nuestro temporizador en alguna salida del autómata. Con los temporizadores clásicos es muy sencillo, tan sólo habrá que utilizar los contactos que nos ofrecen y conectarlos como queramos al resto del circuito. Programación del autómata programable (I) 37 Formación Abierta Cuando veíamos las operaciones combinacionales U, UN, O, etc, como operandos, usábamos entradas, salidas y marcas: U E 124.0 = A 124.0 Con los temporizadores es idéntico: U T 1 = A 124.0 Activará la salida A 124.0 cuando el temporizador T 1 esté a “1”. U E 124.0 L S5T#5S SI T1 U T1 = A 124.0 Cronograma: E 124.0 “1” 8s “0” t T1 “1” “0” t A 124.0 “1” 5s “0” 38 Programación del autómata programable (I) t Autómatas Programables 08 Al tratarse de una operación combinacional, obviamente podremos hacer combinaciones. U E 124.0 Si activamos E 124.0, el RLO se pone a “1” (pasa de “0” a “1” flanco creciente). L S5T#5S Cargamos la temporización de 5 seg. SV T 1 Si ha habido un flanco creciente del RLO, arrancamos la temporización (5 segundos) como impulso prolongado (SV) y usando el temporizador T 1. U E 124.1 Si la entrada E 124.1 está a “1”, U T 1 y el temporizador T1 están a “1”, = A 124.0 la salida A124.0 se pone a “1”. Activar un motor (A 124.0) con un pulsador de marcha (E 124.1) y pararlo automáticamente 3 segundos después. Solución Primeramente, buscaremos un temporizador que active el bit T1 una vez que ha terminado de temporizar. Éste puede ser el temporizador con retardo a la desconexión (SA). Teniendo esto en cuenta tendremos: U E 124.1 S A 124.0 Activamos el motor. L S5T#3S SA T1 Cargamos 3 seg. en T1 con el modo de temporización de retardo a la desconexión. También el bit de T1 se activará. UN T1 R A 124.0 Si no está T1, habrá acabado de temporizar y reseteará la salida. Programación del autómata programable (I) 39 Formación Abierta Realizar un programa que controle la apertura y cierre de una puerta de garaje. El dispositivo dispone de un final de carrera para detectar que la puerta está arriba (E 124.2) y otro que detecta que la puerta está abajo (E 124.1). También dispone de una fotocélula de seguridad (E 124.3), que hará que abra la puerta en el caso de que ésta esté bajando y haya presencia de coche. La puerta en su funcionamiento habitual, se abre activando el contacto de apertura con llave (E 124.0). Una vez ha subido temporiza 6 seg. y baja. Realizar un programa que encienda y apague un piloto cada 2 segundos. A 124.0 “1” “0” t 2s 40 Programación del autómata programable (I) 2s 2s Autómatas Programables 08 8.5. Contadores Ya hemos explicado anteriormente que son dispositivos que se utilizan para “contar” diferentes elementos. La programación será: 1. Condición de incremento o decremento de contador. 2. Tipo de contador y contador a utilizar. 3. Activación de bit del contador. (Una vez que tenga la cuenta deseada). 8.5.1. ¿Cómo cargar el valor de un contador? Para fijar un valor previo al contador, deberemos tenerlo cargado con antelación en el acumulador. De nuevo este paso se realiza utilizando las operaciones de carga que veremos en capítulos siguientes. Para salir del paso explicaremos la operación de carga de un valor de contador como constante. La operación en cuestión es L + Dato: Operación Operando L C# 57 Valor del contador (0 a 999) En el ejemplo se cargaría en el ACCU 1 un valor de contador de 57. Los valores de contador válidos para esta instrucción van desde 0 hasta 999 inclusive. 8.5.2. Operaciones de contaje Estas operaciones permiten al autómata realizar directamente tareas de contaje. Como comentábamos, es posible contar hacia delante (incrementar), ir hacia atrás (decrementar), cargar y borrar el contador. Programación del autómata programable (I) 41 Formación Abierta Las operaciones de contaje disponibles son: S: Activar o cargar un contador. R: Borrar o reponer un contador. ZV: Incrementar un contador (contaje hacia delante). ZR: Decrementar un contador (contaje hacia atrás). Operación S: activar o cargar un contador Esta operación carga un contador con el valor depositado en el ACCU 1, si se ha producido un flanco creciente del RLO. L C#5 Carga el valor 5 en el ACCU 1 como constante de contador. U E 124.0 Si activamos la entrada E 124.0 (flanco creciente del RLO). S Z 1 Carga el valor contenido en el ACCU 1 (5) en el contador Z1. Aprovecharemos este ejemplo para comentar algo importante: En primer lugar decir que la operación U no modifica el contenido del ACCU 1 al ejecutarse. La operación U, y en general todas las combinacionales, “pasan totalmente” del acumulador ACCU 1. En segundo lugar, como veremos más adelante, las operaciones de carga, ni dependen, ni modifican el RLO. Así que éstas “pasan totalmente” de lo que le suceda al RLO. ¿A dónde nos lleva todo esto?, pues a que el siguiente código de programa funcionaría exactamente igual que el propuesto en el ejemplo: U E 124.0 Si activamos E 124.0, el autómata detecta un flanco creciente del RLO. L C#5 Cargamos en el ACCU 1 el valor 5 (no se modifica el RLO). S Z 1 Como se ha detectado un flanco creciente del RLO, cargamos el contenido del ACCU 1 (5) en el contador Z1. La operación S es inhibidora del RLO, y lo que sigue a continuación ya deberíamos saberlo a estas alturas: la siguiente operación combinacional será tratada como si fuera de primera consulta. 42 Programación del autómata programable (I) Autómatas Programables 08 Operación ZV: incrementar un contador (contaje hacia delante) Es una operación muy simple, con un flanco creciente de la condición de activación del contador, se incrementa en 1 el valor de un contador. U E 124.0 Si activamos E 124.0 (flanco creciente del RLO). ZV Z 1 Incrementamos contador Z1. en 1 el valor deL Si no hemos cargado previamente el contador con la operación S, su valor inicial será cero, es decir, comenzará a contar desde cero. Si intentamos sobrepasar el valor de 999, no se nos permitirá, permaneciendo a este valor aunque utilicemos nuevamente la operación ZV. Operación ZR: decrementar un contador (contaje descendente) Es una operación muy simple, con un flanco creciente de la condición de activación del contador, se decrementa en 1 el valor de un contador. U E 124.0 Si activamos E 124.0 (flanco creciente del RLO). ZR Z 1 Decrementar en 1 el valor del contador Z1. Si no hemos cargado previamente el contador con la operación S, su valor inicial será cero, y cualquier intento de decrementarlo será desestimado. Operación R: borrar o reponer un contador Esta operación pone a 0 el valor del contador siempre y cuando se active la condición de borrado de contador. U E 124.0 Si activamos E 124.0 (RLO = 1). R Z 1 Pone a 0 el valor del contador. Programación del autómata programable (I) 43 Formación Abierta Como esta operación no depende del flanco creciente del RLO, permanecerá activa durante el tiempo que lo esté el RLO, es decir, mientras el RLO esté a “1” no se tendrán en cuenta las operaciones S, ZV y ZR que se hubieran ejecutado anteriormente. Tal y como advertimos en temas anteriores, el orden de colocación de las instrucciones influirá en el funcionamiento del programa. No es lo mismo incrementar y después borrar que borrar y después incrementar. Operaciones combinacionales con contadores Las operaciones combinacionales con contadores evalúan si el valor del contador es cero o diferente de cero: Si el valor del contador es 0, se considera que su estado es “0”. Si el valor del contador es diferente de 0, se considera que su estado es “1”. Para usar las operaciones combinacionales con contadores, procederemos de igual forma que hasta ahora, indicando la operación combinacional deseada y el operando utilizado. Por ejemplo U Z1, UN Z1, ON Z1, etc. Analicemos el siguiente programa: U E 124.0 R Z 1 U E 124.1 ZV Z 1 U Z 1 = A 124.0 S A 124.1 La entrada E 124.0 borrará el contenido del contador (pasando por tanto su estado a “0”). La entrada E 124.1 incrementará el valor del contador en 1 (pasando su estado a “1”), cuando se produzca un flanco creciente del RLO. Las salidas A 124.0 y A 124.1 se activarán cuando el valor del contador sea distinto de cero, con la única diferencia de que la A 124.0 se activará sólo cuando el valor de Z 1 sea distinto de cero, y la A 124.1 permanecerá activada desde el primer momento en que suceda esto. 44 Programación del autómata programable (I) Autómatas Programables 08 Realizar un contador ascendente (E 124.0), descendente (E 124.1), con carga predefinida igual a 10 (E 124.2) y con puesta a “0” (E 124.3). Activa la salida A 124.0 siempre que Z 1 sea distinto de cero. Programación del autómata programable (I) 45 Autómatas Programables 08 Resumen Se pueden representar operandos como bit, byte, palabra o doble palabra. El acumulador es el registro donde se guardan todos los resultados de operaciones como transferencia de datos, operaciones aritméticas, con temporizadores, etc. El RLO es un bit que almacena el resultado de las operaciones combinacionales ejecutadas. Si la combinación resulta cierta se pone a “1”, y si resulta falsa se pone a “0”. El “bit de primera consulta”, indica al autómata si la operación combinacional a tratar es una primera consulta (“1”) o si se trata de las siguientes consultas (“0”). Cuando una operación es inhibidora del RLO, coloca el bit de 1ª consulta a “1”. Las operaciones combinacionales binarias son U, UN, O, ON, O sin operando, U( y O(. Las salidas pueden activarse y ofrecernos una tensión, pero también tienen contactos abiertos y cerrados a nuestra disposición. Las marcas son como salidas, pero sin terminal al exterior. A la hora de realizar la programación de un automatismo, debemos tener muy en cuenta si los contactos reales de pulsadores, finales de carrera, etc., son abiertos o cerrados en reposo. Los diagramas de tiempo o cronogramas son gráficos que representan el estado de entradas, salidas, etc., en función del tiempo. Para cargar el tiempo de temporización en el ACCU 1 usaremos una operación de carga. En cualquier caso, deberemos especificar la Temporización con el formato S5T#xx Las operaciones de tiempo del S7-300 son SI, SV, SE, SS, SA, y R. Podemos comprobar el estado de un temporizador utilizando las operaciones combinacionales. Programación del autómata programable (I) 47 Formación Abierta Para cargar el valor de un contador en el ACCU 1 usaremos una operación de carga. El valor del contador tiene como límites mínimo y máximo 0 y 999 respectivamente. Las operaciones de contaje del S7-300 son S, ZV, ZR y R. 48 Programación del autómata programable (I) 09 Autómatas Programables Programación del autómata (II) Autómatas Programables 09 • Índice • OBJETIVOS .......................................................................................................... 3 • INTRODUCCIÓN .................................................................................................. 4 9.1. Operaciones de carga y transferencia ...................................................... 5 9.1.1. Operación L: cargar .............................................................................. 6 9.1.2. Operación T: transferir .......................................................................... 8 9.1.3. Operaciones de carga con operandos constantes ................................ 9 9.2. Entradas-salidas analógicas .................................................................... 11 9.3. Operaciones de comparación .................................................................. 13 9.3.1. Operaciones de comparación ............................................................. 13 9.3.2. Operación ==I: comparación respecto a igualdad............................... 14 9.3.3. Operación <>I: comparación respecto a desigualdad ........................ 15 9.3.4. Operación >I: comparación respecto a superioridad ......................... 15 9.3.5. Operación >=I: comparación respecto a superioridad o igualdad ...... 15 9.3.6. Operación <I: comparación respecto a inferioridad ........................... 16 9.3.7. Operación <=I: comparación respecto a inferioridad o igualdad ......... 16 9.4. Operaciones aritméticas .......................................................................... 17 9.4.1. Operación +I: sumar............................................................................ 17 9.4.2. Operación -I: restar ............................................................................. 18 9.4.3. Operación *I: multiplicar ...................................................................... 19 9.4.4. Operación /I: dividir ............................................................................. 20 • RESUMEN .......................................................................................................... 21 Programación del autómata (II) 1 Autómatas Programables 09 • Objetivos • Aprender a programar las operaciones de carga y transferencia de datos. • Aprender a desarrollar programas entradas y salidas analógicas. • Desarrollar la programación necesaria para realizar operaciones aritméticas. • Aprender a programar operaciones de comparación. Programación del autómata (II) 3 Formación Abierta • Introducción Hasta el momento hemos comprobado cómo las operaciones combinacionales (U, UN, O,…), las de memoria (S, R), etc., trataban informaciones de un bit, esto es, operandos cuyo estado podía ser exclusivamente “1” ó “0” (E 124.0 por ejemplo). El autómata S7-300, y en general cualquiera de la gama SIMATIC S7 puede trabajar con operandos de longitud byte (8 bits), palabra (16 bits) y doble palabra (32 bits). Las operaciones de carga y transferencia nos permitirán recuperar y enviar estos operandos de un lado para otro según nos interese. Las operaciones de comparación nos permitirán comprobar, por ejemplo, si el valor de un contador es mayor, menor o igual que el de otro. Las operaciones aritméticas nos brindan, por ejemplo, la posibilidad de conocer el número de vehículos que entran en un garaje por los diferentes accesos al mismo. El conocimiento de estas operaciones, nos permitirá realizar automatizaciones que resultarán excesivamente caras y complejas mediante los sistemas clásicos. 4 Programación del autómata (II) Autómatas Programables 09 9.1. Operaciones de carga y transferencia Con las operaciones de carga y transferencia, el lenguaje de programación STEP 7 hace posible el intercambio de informaciones entre los módulos de la periferia externa, la imagen de procesos para las entradas y salidas, las memorias del sistema, las marcas y los datos, así como para la elaboración posterior de valores de tiempo y cómputo. A groso modo, las operaciones de carga y transferencia permiten: • Intercambiar informaciones entre las diferentes zonas de operandos. • Preparar temporizaciones y valores de contador para su posterior tratamiento. • Cargar valores constantes, necesarios para la ejecución del programa. El intercambio de información no se realiza directamente, sino por medio del acumulador (ACU 1). El acumulador es un registro del procesador que opera como memoria intermedia. El flujo de la información intercambiada es el que define el nombre de estas operaciones: • El flujo de información de la memoria al acumulador se denomina carga (el acumulador se carga). • El flujo de información del acumulador a la memoria se denomina transferencia (el contenido del acumulador es transferido a la memoria). En realidad son dos los registros acumuladores, ACU 1 y ACU 2, ambos de 32 bits. Programación del autómata (II) 5 Formación Abierta 9.1.1. Operación L: cargar La operación L copia el contenido del operando en el acumulador ACU 1, con independencia del RLO, y sin influenciar el RLO, aunque si es necesario, puede estar condicionado a una combinación de operandos. Consideraciones Cuando el operando, o la información que se carga, tiene longitud menor que el acumulador, por ejemplo operandos EB, AB, o MB (8 bits), este se cargará en ACU1-L, y el resto del ACU 1 (bits 16 al 31) se cargará con ceros. Además de copiarse el contenido del operando en el ACU 1, la información que el ACU 1 tuviera anteriormente se pasará al ACU 2. La información previa del ACU 2 se desecha. Supongamos que tenemos conectados en los puestos de enchufe 0, 1, y 2 de la periferia externa tres módulos de entradas digitales de 8 canales cada uno. Supongamos además, que tenemos una serie de entradas activadas, tal y como aparece en la figura, y que ejecutamos el programa que le sigue: Puesto 1 Puesto 2 EB 0 EB 1 EB2 E.0.0 E.1.0 E.2.0 E.0.1 E.1.1 E.2.1 E.0.2 E.1.2 E.2.2 E.0.3 E.1.3 E.2.3 E.0.4 E.1.4 E.2.4 E.0.5 E.1.5 E.2.5 E.0.6 E.1.6 E.2.6 E.0.7 E.1.7 E.2.7 S7 300 Activado, “1” 6 Puesto 0 Programación del autómata (II) Desactivado, “0” Autómatas Programables 09 AWL L EB 0. Carga en ACU 1 el contenido de EB 0. L EW 1 Carga en ACU 1 el contenido de EW 1 (EB 1 y EB 2), pasando el contenido anterior del ACU 1 (EB 0) al ACU 2. EW 1 La información contenida en la PAE según aparecen las entradas del dibujo será: 7 6 5 4 3 2 1 0 0 1 0 1 0 1 0 1 EB 0 1 1 0 0 0 0 1 1 EB 1 0 0 1 1 1 1 0 0 EB 2 x x x x x x x x EB 3 x x x x x x x x EB 4 ... En principio, la información contenida en ACU 1 y ACU 2 no nos interesa. Vayamos por partes: 1. Antes de ejecutar L EB 0. 2. ACU 1 y ACU 2 contienen información que no nos interesa. 3. Después de ejecutar L EB 0. El byte bajo del ACU 1 se carga con EB 0 y el byte alto se rellena con ceros. 4. Después de ejecutar L EW 1. El contenido de ACU 1 (EB0) pasa al ACU 2. El byte alto del ACU 1 se carga con EB 1 y el byte bajo del ACU 1 con EB 2. Programación del autómata (II) 7 Formación Abierta 9.1.2. Operación T: transferir La operación T, copia el contenido del acumulador ACU 1 en el operando designado, con independencia del estado del RLO y sin influenciar el mismo. Consideraciones Al transferir, se copia la información contenida en el ACU 1 al operando destino. Con ello no se modifica el contenido del ACU 1. El ACU 2 no interviene en las operaciones de transferencia. Al transferir a un operando de tipo byte (por ejemplo AB 5), se copia el byte bajo del ACU 1 en la zona de memoria correspondiente (1 byte). Al transferir a un operando de tipo palabra (por ejemplo AW 5), se copia el contenido del ACU 1-L en el operando destino. Al transferir a un operando de tipo doble palabra (por ejemplo AD 10), se copia el contenido del ACU 1 (parte alta y parte baja) en el operando destino. Supongamos que tenemos conectados en los puestos 0 y 1 de la periferia externa, dos módulos de entradas digitales de 8 canales cada uno, y en los puestos 2 y 3, otros dos módulos de salidas digitales también de 8 canales. Supongamos además que tenemos una serie de entradas activadas, tal y como aparece en la figura: S7 300 Puesto 0 Puesto 1 Puesto 2 Puesto 3 EB 0 EB 1 EB 2 EB 3 E.0.0 E.1.0 E.2.0 E.3.0 E.0.1 E.1.1 E.2.1 E.3.1 E.0.2 E.1.2 E.2.2 E.3.2 E.0.3 E.1.3 E.2.3 E.3.3 E.0.4 E.1.4 E.2.4 E.3.4 E.0.5 E.1.5 E.2.5 E.3.5 E.0.6 E.1.6 E.2.6 E.3.6 E.0.7 E.1.7 E.2.7 E.3.7 Activado, “1” Con operandos byte. 8 Programación del autómata (II) Desactivado, “0” Autómatas Programables 09 AWL L EB 0. Carga en ACU 1 el contenido de EB 0. T AB 2. Transfiere el byte bajo del ACU 1 a AB 2. Después de ejecutar el programa, veremos lo siguiente: S7 300 Activado, “1” Puesto 0 Puesto 1 Puesto 2 Puesto 3 EB 0 EB 1 EB 2 EB 3 E.0.0 E.1.0 E.2.0 E.3.0 E.0.1 E.1.1 E.2.1 E.3.1 E.0.2 E.1.2 E.2.2 E.3.2 E.0.3 E.1.3 E.2.3 E.3.3 E.0.4 E.1.4 E.2.4 E.3.4 E.0.5 E.1.5 E.2.5 E.3.5 E.0.6 E.1.6 E.2.6 E.3.6 E.0.7 E.1.7 E.2.7 E.3.7 Desactivado, “0” Como podemos comprobar, las salidas digitales conectadas al puesto 2, se han copiado tal y como se encontraban las entradas del puesto 0. Cualquier cambio en una de las entradas del puesto 0, se reflejará inmediatamente en las salidas del puesto 2. 9.1.3. Operaciones de carga con operandos constantes Antes de comenzar a ver los distintos operandos constantes, queremos señalar que estos operandos se usan exclusivamente con la operación de carga L (cargar al acumulador). De forma general diremos que para cargar un dato constante en el ACU1, primero indicaremos la base del número, después teclearemos #, y después la constante. L 2#0101. Carga al ACU1 en nº 0101 (en binario). L L#15. Carga al ACU1 en nº 15 (en decimal). L 16#FA. Carga al ACU1 en nº FA (en hexadecimal). Como excepción de lo anteriormente indicado, está la utilización del formato en el sistema decimal, ya que en este caso se puede poner el número directamente. Programación del autómata (II) 9 Formación Abierta L 10 Carga al ACU1 en nº 10 (en decimal). Una vez cargado el acumulador, hay que estar muy atento donde vamos a transferir este dato, ya que un formato de destino erróneo podría perder información. L 16#10FA T MB100 En el ejemplo vemos que el dato que cargamos en el acumulador es de 16 bits, mientras que la transferencia de esos datos lo hacemos a la marca MB100 cuya capacidad es de 8 bits. 10 Programación del autómata (II) Autómatas Programables 09 9.2. Entradas-salidas analógicas Hasta ahora hemos tratado exclusivamente con información procedente de áreas de memoria digitales, por ejemplo las entradas o salidas del PLC. Los autómatas ofrecen también la posibilidad de trabajar con otro tipo de entradas y salidas completamente diferentes a la vistas hasta ahora. Éstas son las analógicas. Estas entradas - salidas permiten analizar no sólo dos estados, sino un rango de medida. Mientras una entrada digital sólo contempla los 0 voltios como estado “0” y los 24 voltios como estado “1”, una entrada analógica podría contemplar estados intermedios, por ejemplo divisiones de 1 voltio, con lo que contemplaría 25 estados posibles. Todo esto ya lo hemos visto en detalle en el tema 4. Para el autómata, el tratamiento de estas entradas – salidas será como tratar información numérica, y será posible realizar las operaciones asociadas a este tipo de datos. ¿Cómo accederemos a este tipo de entradas – salidas? Sencillamente realizando operaciones de carga y transferencia. Si deseamos leer una entrada analógica utilizaremos una operación de carga. En cambio, si deseo escribir un valor en una salida analógica, emplearemos una operación de transferencia. La siguiente pregunta que surge sería: ¿Y qué nombre reciben estos objetos? En el caso de las entradas analógicas reciben el nombre de PEW y en el de las salidas PAW. Esto nos da ya una idea de la longitud de estos objetos, ya que la terminación en W nos indica una longitud de 16 bits, aunque veremos que depende de la resolución empleada, siendo normalmente algo menor. Programación del autómata (II) 11 Formación Abierta En el caso de la CPU 314-IFM, para acceder a una de sus entradas analógicas deberíamos hacerlo a través del objeto PEW128. L PEW 128 T MW 100 Tomemos el supuesto de una salida usando la misma CPU. Deberíamos acceder a la misma a través de la PAW 128. L MW 100 T PAW 128 12 Programación del autómata (II) Autómatas Programables 09 9.3. Operaciones de comparación Las operaciones aritméticas y las de comparación nos permiten trabajar con el contenido de los acumuladores. Las operaciones de comparación nos permitirán comprobar, por ejemplo, si el valor de un contador es mayor, menor o igual que el de otro. Las operaciones aritméticas nos permiten realizar diferentes operaciones básicas como son sumas, restas, multiplicaciones, etc. 9.3.1. Operaciones de comparación Las operaciones de comparación, permiten comparar entre sí los contenidos de los dos acumuladores ACU 1 y ACU 2, sin modificarlos. Para poder comparar dos operandos, será necesario cargarlos sucesivamente en los dos acumuladores tal y como vimos con las operaciones de carga. La ejecución de estas operaciones no depende del estado del RLO, pero sí modifica el mismo: Si se cumple la comparación, el RLO se pone a “1”. Si no se cumple la comparación, el RLO se pone a “0”. Además del RLO, también modifican lo que vamos a denominar como indicaciones (también conocidas como “señalizaciones”, “banderas” o “flags”). Estas indicaciones, no son otra cosa que bits, que se colocan a “1” ó “0” en función del resultado de la ejecución de determinadas operaciones, entre ellas las de comparación. El uso de estas indicaciones nos permitirá modificar el curso del programa mediante la realización de saltos condicionales (operaciones de salto), pero esto es “otra historia”, y lo guardamos para más adelante. Por ahora, nos quedaremos con la existencia de tres indicaciones (tres bits), A0, A1 y OV, que tienen diferente comportamiento según las operaciones que ejecutemos. Las operaciones de comparación sólo afectan a A0 y A1. Los tipos de comparación para números enteros (16 bits) son los siguientes: ==I ACU 2 es igual al ACU 1. <>I ACU 2 es diferente al ACU 1. >I ACU 2 es mayor que ACU 1. <I ACU 2 es menor que ACU 1. Programación del autómata (II) 13 Formación Abierta >=I ACU 2 es mayor que o igual al ACU 1. <=I ACU 2 es menor que o igual al ACU 1. También se dispone de operaciones de comparación en otro tipo de formato: •? D Comparar enteros dobles. ==, <>, >, <, >=, <=. •? R Comparar números en coma flotante (32 bits). ==, <>, >, <, >=, <=. 9.3.2. Operación ==I: comparación respecto a igualdad Con esta operación se comprueba si el contenido de ambos acumuladores es igual. En caso de que sean iguales el RLO se pone a “1”, y a “0” si son distintos. Las indicaciones A0 y A1 cambiarán su estado según muestra la siguiente tabla, que será válida también para el resto de operaciones de comparación: Indicaciones Contenido del ACU 2 comparado con el contenido del ACU 1 A1 A 0 Igual (ACU 2 = ACU 1) 0 0 Menor (ACU 2 < ACU 1) 0 1 Mayor (ACU 2 > ACU 1) 1 0 La letra I de todas las operaciones de comparación, hace referencia a que se comparan en coma fija de 16 bits. L 5. Carga el nº 5 en ACU 1. L 10. Carga nº 10 en ACU1, ACU 2 = 5. == I. Compara si son iguales. = A 124.0. Si son iguales (RLO = 1) activa la salida. (En este caso A124.0 no se activará). 14 Programación del autómata (II) Autómatas Programables 9.3.3. Operación <>I: desigualdad comparación respecto 09 a Esta operación comprueba si el contenido de ambos acumuladores es distinto. Si son distintos el RLO se pone a “1”, y si son iguales a “0”. Los indicadores A0 y A1 modificarán su estado según muestra la tabla del apartado anterior. L 5. Carga el nº 5 en ACU 1. L 10. Carga nº 10 en ACU 1, ACU 2 = 5. <>I . Compara si son diferentes. = A 124.0 Si son diferentes (RLO = 1) activa la salida. En este caso A 124.0 sí se activará. 9.3.4. Operación >I: superioridad comparación respecto a Esta operación comprueba si el valor cargado en ACU 2 es mayor que el contenido en ACU 1. De ser así, el RLO se coloca a “1”, y a “0” en caso contrario. Las indicaciones se procesan como antes. L 5. Carga el nº 5 en ACU 1. L 10. Carga nº 10 en ACU 1, ACU 2 = 5. > I. Compara si ACU 2 es > ACU 1. = A 124.0. Si se cumple la condición, (RLO = 1) se activará la salida. En este caso no se activará. 9.3.5. Operación >=I: comparación superioridad o igualdad respecto a La operación comprueba si el valor cargado en ACU 2 es mayor o igual que el contenido por ACU 1. En caso de ser así, el RLO se coloca a “1”, y a “0” en caso contrario. Las indicaciones se procesan igual que antes. Programación del autómata (II) 15 Formación Abierta L 500 L 18 >=I. ACU 2 > ACU 1® RLO = “1”. = A 124.5. Se activa A 124.5. 9.3.6. Operación <I: inferioridad comparación respecto a La operación comprueba si el contenido de ACU 2 es menor que el contenido de ACU 1. Si esto es verdad, el RLO se pone a “1”, y a “0” en caso contrario. Las indicaciones se procesan como antes. L 18 L5 < I. ACU 2 < ACU 1 ® RLO = “1”. = A 124.5. No se activa A 124.5. 9.3.7. Operación <=I: comparación respecto a inferioridad o igualdad La operación comprueba si el contenido de ACU 2 es menor o igual que el contenido de ACU 1. Como siempre, en caso de ser cierto el RLO se pone a “1”, y a “0” si resulta ser falso. Las indicaciones se procesan como antes, y los contenidos de ambos acumuladores se interpretan como números en coma fija. L +500 L -1000 <=I. ACU 2 > ACU 1 ® RLO = “0”. = A 124.5. No se activa A 124.5. 16 Programación del autómata (II) Autómatas Programables 09 9.4. Operaciones aritméticas Estas operaciones permiten tratar los contenidos de los acumuladores como números en coma fija, y operar con ellos aritméticamente (sumarlos, restarlos, multiplicarlos, etc.). El resultado de la operación efectuada se deposita en el ACU 1, para seguir utilizándolo en el programa. El contenido del ACU 2 no se modifica. Estas operaciones no dependen, modifican o inhiben el RLO. Las operaciones aritméticas básicas influyen sobre los siguientes bits A1, A0, OV, OS de la palabra de estado. Los tipos de operaciones son: • +I Sumar. ACU 1 y ACU 2 como entero. • -I Restar. ACU 1 de ACU 2 como entero. • /I Dividir. ACU 2 por ACU 1 como entero. • *I Multiplicar. ACU 1 por ACU 2 como entero. 9.4.1. Operación +I: sumar Suma los contenidos de ambos acumuladores, tratando el contenido de los mismos como números en coma fija. El resultado queda almacenado en el ACU 1. L +876. ACU 1= +876. L +668. ACU1 = +668, ACU 2 = +876. +I. ACU 1 = ACU 1 + ACU 2 = 1544. T AW 124. 1544 = 0000 0110 0000 1000 ë2. El contenido de ACU 1 se transfiere a la salida AW 124, de forma que se activarán las salidas A 124.1, A 124.2, y A 125.3. Pero ahora nos preguntamos, ¿qué sucederá si intentamos sumar dos números cuyo resultado exceda el máximo permitido (+32767)? Programación del autómata (II) 17 Formación Abierta L 32767. ACU 1= +32767. L +1. ACU1 = +1, ACU 2 = +32767. +I. ACU 1 = ACU 1 + ACU 2 = -32768 (8000 T AW 124 -32768 = 1000 0000 0000 0000 activará la salida A 124.7. 16). 2. Se En el ejemplo vemos como se ha pasado del mayor número positivo (+32767) al menor número negativo (-32768). A esta situación se le conoce como desbordamiento (overflow en inglés), y nos viene de “perlas” para presentar la indicación OV o indicación de desbordamiento. La indicación de desbordamiento OV nos señala cuando está a “1”, que el signo de resultado es opuesto al que hubiéramos obtenido sin limitación del número de bits (si pudiéramos disponer de más de 16 bits). La tabla siguiente nos muestra el estado de las indicaciones tras ejecutar operaciones aritméticas: Indicaciones Resultado tras ejecutar la operación aritmética A1 A0 OV < -32768 1 0 1 -32768 a -1 0 1 0 0 0 0 0 +1 a +32767 1 0 0 > +32767 0 1 1 (-) 65536* 0 0 1 Resultado de la operación (-32768) + (-32768). En el ejemplo propuesto deberíamos esperar un resultado mayor de +32767 (> +32767), así que el OV estará a “1” indicando que el resultado real tiene signo opuesto al esperado y es de signo negativo. 9.4.2. Operación -I: restar El contenido de ACU 1 se resta del contenido del ACU 2, guardándose el resultado en ACU 1: ACU 1 = ACU 2 - ACU 1. 18 Programación del autómata (II) Autómatas Programables 09 L 1200. ACU 1= 1200. L 200. ACU1 = 200, ACU 2 = 1200. -I. ACU 1 = ACU 2 - ACU 1 = 1000. A1 = 1, A0 = 0, OV = 0. La tabla de indicaciones anterior será aplicable también para esta operación. Las consideraciones realizadas para la operación suma acerca del desbordamiento, también son válidas en este caso. Por último, reseñar que sumar un número negativo a otro positivo es lo mismo que hacer la resta entre ambos. Así, el ejemplo siguiente funcionaría exactamente igual que el anterior. L 1200. ACU 1= 1200. L -200. ACU1 = -200. ACU 2 = 1200. +I. ACU 1 = ACU 2 + ACU 1 = 1200 + (-200) = 1000. 9.4.3. Operación *I: multiplicar Con la operación *I multiplicamos el contenido del ACU2- por el contenido del ACU1. Los contenidos del ACU1 y ACU2- se evalúan como enteros (16 bits). El resultado se almacena como entero doble (32 bits) en el ACU 1. Si los bits de la palabra de estado OV 1= 1 y OS = 1, el resultado queda fuera del margen válido para un entero (de 16 bits). La operación se ejecuta sin tener en cuenta ni afectar al RLO. Una vez realizada la operación se activan los bits de la palabra de estado A1, A0, OS y OV. L 10. ACU 1= 10. L 18. ACU1 = 18, ACU 2 = 10. *I. ACU 1 = ACU 2 * ACU 1 = 180. Programación del autómata (II) 19 Formación Abierta 9.4.4. Operación /I: dividir La operación /I (dividir enteros) divide el contenido del ACU 2-L por el contenido del ACU 1-L. Los contenidos de ACU 1-L y ACU2 -L se evalúan como enteros (de 16 bits). El resultado se almacena en el ACU 1 y contiene dos enteros (de 16 bits), el cociente y el resto de la división. El cociente se almacena en el ACU 1-L y el resto de la división en el ACU 1-H. La operación se ejecuta sin tener en cuenta ni afectar al RLO. Una vez realizada la operación se activan los bits de la palabra de estado A1, A0, OS y OV. L 25. ACU 1-L= 25. L 4. ACU 1-L = 4, ACU 2-L = 25. /I. ACU 1-L = ACU 2 / ACU 1 = 6. ACU 1-H = 1. 20 Programación del autómata (II) Autómatas Programables 09 • Resumen • El autómata también puede trabajar con operandos de longitud byte, palabra y doble palabra. • Las entradas, salidas y marcas pueden direccionarse a nivel de bit, de byte, de palabra y doble palabra. • Las operaciones de carga y transferencia trabajan directamente con el acumulador ACU 1. • La operación de carga L, carga el contenido del operando direccionado en el ACU 1. • La operación de transferencia T, transfiere el contenido del ACU 1 al operando direccionado. • Podemos cargar valores constantes en el acumulador utilizando diferentes formatos. • Las operaciones de entradas - salidas analógicas permiten analizar no sólo dos estados, sino un rango de medida. • Las operaciones de comparación, permiten comparar entre sí los contenidos de los dos acumuladores. En todas ellas el RLO se coloca a “1” si se cumple la comparación y a “0” si no se cumple. Programación del autómata (II) 21 10 Autómatas Programables Programación del autómata (III) Autómatas Programables 10 • Índice • OBJETIVOS .......................................................................................................... 3 • INTRODUCCIÓN .................................................................................................. 4 10.1. Áreas de memoria de la CPU ..................................................................... 5 10.2. Imagen del proceso .................................................................................... 7 10.3. Ciclo de ejecución del programa del autómata ........................................ 8 10.4. Bloques del programa de usuario ........................................................... 10 10.4.1. Bloques de organización ..................................................................... 11 10.4.2. Bloques de organización para la ejecución cíclica del programa (OB1) ............................................................................................... 12 10.5. Definir bloques lógicos ............................................................................ 14 10.6. Funciones (FC) .......................................................................................... 15 10.6.1. Llamada a una función ........................................................................ 18 10.6.2. Entrada (EN) y salida (ENO) ............................................................... 21 • RESUMEN .......................................................................................................... 23 Programación del autómata (III) 1 Autómatas Programables 10 • Objetivos • Describir cómo se divide y utiliza la memoria del autómata. • Comprender qué procesos se repiten ciclo a ciclo en los autómatas programables. • Conocer los diferentes bloques que componen un programa en Step7. • Aprender a programar funciones. • Echar un vistazo al curso avanzado de programación de autómatas. Programación del autómata (III) 3 Formación Abierta • Introducción Hasta el momento hemos realizados programas sencillos que no requerían gran organización y básicamente se componían de un listado de instrucciones. Pero para sacarle partido al potencial de los autómatas programables es imprescindible conocer como trabajan internamente y los diferentes procesos que se ejecutan en ellos. Una buena estructuración en la programación de un autómata es fundamental para el desarrollo de sistemas complejos. Veremos entonces, a modo de adelanto del curso avanzado de autómatas programables, los bloques que poseen los autómatas de la marca Siemens, y en particular la función (FC), bloque fundamental a la hora de estructurar programas. 4 Programación del autómata (III) Autómatas Programables 10 10.1. Áreas de memoria de la CPU Las tres áreas de memoria de la CPU son: • Memoria de carga. • Memoria de sistema. • Memoria de trabajo. Memoria de carga La memoria de carga permite almacenar el programa de usuario, sin los valores de la tabla simbólica ni comentarios (éstos permanecen el la memoria del PG u ordenador), también almacena información del sistema (configuración, enlaces, parámetros del módulo, etc.). Los bloques que no se consideran relevantes para la ejecución, se guardan exclusivamente en la memoria de carga. La memoria de carga puede ser RAM o EPROM. Para un S7-300 la memoria de carga es la Micro Memory Card, en ella es posible almacenar todos los datos de configuración de un proyecto. Para los S7-300 la transferencia de programas de usuario y, por consiguiente, el funcionamiento de la CPU sólo es posible si hay una SIMATIC Micro Memory Card insertada en la CPU. Memoria de sistema La memoria del sistema (RAM) está integrada en la CPU y no se puede ampliar. Contiene los elementos de memoria que cada CPU pone a disposición del programa de usuario: • Las áreas de marcas, temporizadores y contadores. • Las imágenes del proceso de entradas y salidas. • Pilas de bloques y de interrupción. • Pila de datos locales asignada al programa para los datos locales del bloque llamado. Estos datos sólo tienen vigencia mientras esté activo el bloque correspondiente. Programación del autómata (III) 5 Formación Abierta Memoria de trabajo La memoria de trabajo está integrada en la CPU y no se puede ampliar. Sirve para procesar el código y los datos del programa de usuario (partes relevantes para la ejecución del programa). Este procesamiento tiene lugar exclusivamente en el área de la memoria de trabajo y en la memoria del sistema. 6 Programación del autómata (III) Autómatas Programables 10 10.2. Imagen del proceso Si en el programa de usuario se accede a las áreas de entradas (E) y salidas (A), no se consulta el estado de las señales en los módulos de entrada y salida del autómata, sino que se accede a un área de la memoria de sistema de la CPU. Esta área de memoria se denomina imagen del proceso estando dividida esta imagen en dos partes: la imagen del proceso de las entradas y la imagen del proceso de las salidas. Ventajas de la imagen del proceso El acceso a la imagen del proceso presenta, frente al acceso directo a los módulos de entrada y salida, la ventaja de que la CPU ofrece una imagen coherente de las señales del proceso durante la ejecución cíclica del programa. Si durante la ejecución del programa cambia el estado de las señales de un módulo de entrada, el estado original permanecerá en la imagen del proceso hasta que se actualice dicha imagen en el siguiente ciclo. Además, el acceso a la imagen del proceso requiere menos tiempo que el acceso directo a los módulos de señal, ya que la imagen del proceso se encuentra en la memoria de sistema de la CPU. Programación del autómata (III) 7 Formación Abierta 10.3. Ciclo de ejecución del programa del autómata Las fases de la ejecución cíclica del programa son: • El sistema operativo inicia el tiempo de vigilancia del ciclo. • Se escriben los valores de la imagen del proceso de las salidas en los módulos de salida. • Se leen los estados de los módulos de entrada y se actualiza la imagen del proceso de las entradas. • Se ejecuta el programa de usuario y las operaciones indicadas en dicho programa. • Al finalizar el ciclo, el sistema operativo realiza las tareas pendientes, ej. cargar y borrar bloques, recibir y enviar datos, etc. • Finalmente, se regresa al principio del ciclo y arranca nuevamente la vigilancia del tiempo de ciclo. Ejecución cíclica del programa SiOp PAA PAE OB1 8 Programación del autómata (III) Autómatas Programables 10 Significado del concepto tiempo de ciclo El tiempo de ciclo es el tiempo que necesita el sistema operativo para ejecutar el programa cíclico, así como todas las partes del programa que interrumpen dicho ciclo (ej. la ejecución de otros bloques de organización) y las actividades del sistema (ej. la actualización de las imágenes del proceso). La ejecución cíclica del programa, tras la conexión, comienza tan pronto el programa de arranque haya finalizado sin errores. En el programa de arranque se pueden definir determinados preajustes para el programa cíclico a través de la programación del OB de arranque. Programación del autómata (III) 9 Formación Abierta 10.4. Bloques del programa de usuario Los distintos bloques que se pueden utilizar en la programación del autómata permiten estructurar el programa de usuario, es decir, subdividirlo en distintas partes. Esto aporta las siguientes ventajas: • Los programas de gran tamaño se pueden programar de forma clara. • Se pueden estandarizar determinadas partes del programa. • Se simplifica la organización del programa. • Las modificaciones del programa pueden ejecutarse más fácilmente. • Se simplifica el test del programa, ya que puede ejecutarse por partes. • Se simplifica la puesta en marcha del sistema. Las partes de un programa de usuario estructurado equivalen a las distintas tareas y se definen como los bloques del programa. Tipos de bloques En un programa de usuario con Step7 se pueden utilizar diversos tipos de bloques: • Bloques de organización (OB): definen la estructura del programa de usuario. • Bloques de función del sistema (SFBs) y funciones de sistema (SFCs): bloques preprogramados que forman parte del sistema operativo, por lo que no se cargan como parte integrante del programa. Ofrecen diversas tareas, como por ejemplo: comunicación vía enlaces configurados y no configurados, manipulación del reloj y del contador de horas de funcionamiento, información sobre datos del sistema, p. ej. diagnóstico, etc. • Bloques de función (FB): bloques con memoria que puede programar el mismo usuario. • Funciones (FC): contienen rutinas de programa para funciones frecuentes. • Bloques de datos de instancia (DBs de instancia): al llamarse a un FB/SFB, los DBs de instancia se asocian al bloque. Los DBs de instancia se generan automáticamente al efectuarse la compilación. • Bloques de datos (DB): áreas de datos para almacenar los datos de usuario. Los OBs, FBs, SFBs, FCs y SFCs contienen partes del programa, por lo que se denominan también bloques lógicos. El número permitido de bloques de cada tipo y su longitud admisible dependen de la CPU. 10 Programación del autómata (III) Autómatas Programables 10 10.4.1. Bloques de organización Los bloques de organización (OB) constituyen el interfaz entre el sistema operativo y el programa de usuario. Son llamados por el sistema operativo y controlan el procesamiento cíclico y controlado por alarmas del programa, el comportamiento de arranque del sistema de automatización y el tratamiento de los errores. Programando los bloques de organización se define el comportamiento de la CPU. Prioridad de los bloques de organización Los bloques de organización determinan la secuencia en la que habrán de ejecutarse las diferentes partes del programa. La ejecución de un OB puede ser interrumpida por la llamada de otro OB, esto depende de la prioridad. Los OBs de mayor prioridad pueden interrumpir a los de menor prioridad. No todos los bloques de organización y sus prioridades existen en todas las CPUs S7. Ciclo libre (OB1) con prioridad 1 Alarma cíclica (OB35): interrumpe la ejecución cíclica del programa en intervalo determinado (100 ms). El tiempo de arranque del período corresponde al cambio de estado operativo de STOP a RUN. Prioridad 12. Bloques de arranque: las condiciones para el comportamiento durante el arranque de la CPU se pueden definir programando el bloque de organización OB 100 para el rearranque completo (en caliente), el OB 101 para el rearranque u OB 102 para el arranque en frío. El programa de arranque debe tener una longitud discrecional, su ejecución no tiene límite de tiempo y la vigilancia del tiempo de ciclo no está activa. La ejecución controlada por tiempo o por alarma no es posible en el programa de arranque. En el arranque, todas las salidas digitales tienen el estado de señal 0. Prioridad 27. Error de programación (OB121): el sistema operativo de la CPU llama el OB 121 cuando ocurre un error de programación, como p. ej., cuando el bloque llamado no está cargado. Si no se programa el OB 121, la CPU cambia al estado operativo "STOP" al detectarse un error de programación. Programación del autómata (III) 11 Formación Abierta Información de arranque de un OB Cada bloque de organización contiene una información de arranque de 20 bytes de datos locales, suministrada por el sistema operativo durante el arranque de un OB. La información de arranque indica el evento de arranque del OB, la fecha y hora de arranque de OB, así como errores ocurridos y eventos de diagnóstico. La información de arranque del OB 40 de alarma de proceso indica la dirección del módulo que ha causado la alarma. 10.4.2. Bloques de organización para la ejecución cíclica del programa (OB1) El sistema operativo de la CPU ejecuta el OB 1 de forma cíclica: una vez finalizada la ejecución del OB 1, el sistema operativo comienza a ejecutarlo de nuevo. En el OB 1 es posible realizar la llamada a bloques de función (FBs, SFBs) o a funciones (FCs, SFCs). Modo de funcionamiento del OB1 El OB 1 presenta la prioridad más baja de todos los OBs sometidos a vigilancia en lo que respecta a su tiempo de ejecución. Todos los demás OBs pueden interrumpir la ejecución del OB 1. Los eventos siguientes dan lugar a que el sistema operativo llame al OB 1: Final de la ejecución del arranque. Final de la ejecución del ob1 (durante el ciclo anterior). Una vez finalizada la ejecución del OB 1, el sistema operativo envía datos globales. Antes de arrancar de nuevo el OB 1, el sistema operativo escribe la imagen del proceso de las salidas en los módulos de salidas, actualiza la imagen del proceso de las entradas y recibe datos globales. Tiempo de ciclo máximo Con STEP 7 se puede supervisar el tiempo de ciclo máximo. El valor del tiempo de ciclo máximo está preajustado a 150 ms, pero puede ser modificado. Si el programa sobrepasa el tiempo de ciclo máximo para el OB 1, el sistema operativo llama al OB 80 (OB de error de tiempo). Si no está programado el OB 80, la CPU pasa al estado operativo STOP. 12 Programación del autómata (III) Autómatas Programables 10 Además de la supervisión del tiempo de ciclo máximo, puede garantizarse el cumplimiento de un tiempo de ciclo mínimo. El sistema operativo retarda el comienzo de un nuevo ciclo (escritura de la imagen del proceso de las salidas en los módulos de salidas) hasta que se haya alcanzado el tiempo de ciclo mínimo. Datos locales de OB1 La tabla siguiente contiene las variables temporales (TEMP) del OB 1. Como nombres de variables se eligieron los nombres por defecto del OB 1. Variable Tipo de datos Descripción OB1_EV_CLASS BYTE Clase de evento e identificadores: B#16#11: activo B#16#01: Conclusión del rearranque completo (arranque en caliente) B#16#02: Conclusión del rearranque OB1_SCAN_1 BYTE B#16#03: Conclusión del ciclo libre B#16#04: Conclusión del arranque en frío B#16#05: Primer ciclo del OB1 de la nueva CPU maestra tras la conmutación del maestro de reserva y el STOP de la antigua CPU maestra OB1_PRIORITY BYTE Prioridad: 1 OB1_OB_NUMBR BYTE Número de OB (01) OB1_RESERVED_1 BYTE Reservado OB1_RESERVED_2 BYTE Reservado OB1_PREV_CYCLE INT Tiempo de ejecución del ciclo anterior (ms) OB1_MIN_CYCLE INT Tiempo de ciclo mínimo (ms) desde el último arranque OB1_MAX_CYCLE INT Tiempo de ciclo máximo (ms) desde el último arranque OB1_DATE_TIME DATE_AND_TIME Fecha y hora a las que se solicitó el OB Programación del autómata (III) 13 Formación Abierta 10.5. Definir bloques lógicos La estructura del programa se define subdividiendo el programa de usuario en diferentes bloques y jerarquizando las llamadas de bloques. Jerarquía de las llamadas de bloques: La figura siguiente representa la jerarquía de los bloques que se pueden llamar en un programa estructurado. 14 • OB1: representa el interface con el sistema operativo de la CPU y contiene el programa principal. En el OB 1 se llaman los bloques FB 1 y FC 1 y se transfieren los parámetros específicos necesarios para controlar el proceso. • FB 1: un sólo bloque de función puede controlar la bomba de alimentación para el material A, la bomba de alimentación para el material B y el motor del agitador, puesto que las exigencias (conectar, desconectar, contar las horas de trabajo, etc.) son idénticas. • DBs de instancia 1-3: los parámetros actuales y los datos estáticos para el control del material A, del material B y del motor del agitador son diferentes, por lo que se depositan en tres DBs de instancia asociados al FB 1. • FC 1: las válvulas de entrada, de alimentación para los materiales A y B y de salida utilizan también un bloque lógico común. Como sólo se deben programar las funciones "Abrir" y "Cerrar", basta con utilizar una sola FC. Programación del autómata (III) Autómatas Programables 10 10.6. Funciones (FC) Las funciones son bloques programables. Una función es un bloque lógico "sin memoria". Las variables temporales de las FCs se memorizan en la pila de datos locales. Estos datos se pierden tras el tratamiento de las FCs. Para fines de memorización de datos, las funciones pueden utilizar bloques de datos globales (DB). Como una FC no tiene asignada ninguna memoria, se han de pasar siempre valores para los parámetros actuales (IN, OUT e IN_OUT). Campo de aplicación La FC contiene un programa que se ejecuta cada vez que la misma es llamada por otro bloque lógico. Las funciones se pueden utilizar para: • Devolver un valor de función al bloque invocante (ejemplo: funciones matemáticas). • Ejecutar una función tecnológica (ejemplo: control individual con combinación binaria). • Dividir y estructurar un programa complejo en partes más simples. Asignación de parámetros actuales a parámetros formales: Los parámetros actuales sustituyen a los parámetros formales al efectuar la llamada a una FC. A los parámetros formales de una función se han de asignar siempre parámetros actuales (ej. al parámetro formal "Marcha" un parámetro actual "E3.6"). Al llamarse a un FC se utiliza temporalmente para los parámetros actuales los datos locales del bloque que realiza la llamada. Si en ese caso no se escribe un parámetro de salida (OUTPUT) en el programa de un FC, los valores resultantes pueden ser casuales. El área de los datos locales del bloque que realiza la llamada a la función no se escribe debido a la falta de asignación del parámetro de salida, por lo que permanece sin modificar. De ese modo se escribe el valor desconocido existente en esta área, ya que los datos locales no están ocupados automáticamente ej. con 0. Programación del autómata (III) 15 Formación Abierta La siguiente figura muestra la declaración de los parámetros formales de un FC usado como temporizador con retardo a la conexión. Notar que posee tres variables de entrada (IN), dos de entrada – salida (IN_OUT) y dos temporales (TEMP). Tanto el parámetro “Tiempo transcurrido” como “Tiempo alcanzado” son del tipo entrada – salida, el motivo es que los valores que toman estos parámetros deben ser memorizados entre una llamada a la FC y la siguiente. Figura 10.1. Declaración de los parámetros formales de un FC. La siguiente figura muestra la llamada al FC usado como temporizador con retardo a la conexión. Cuando esta función es llamada se pasa el valor actual de las variables conectadas a las entradas y entradas – salidas a datos locales del bloque que llama a la función, en este caso: • “DescargaCamion_Aux”.HabilitOperadorHorno. • “TiempoUltimoScan”. • T#3H. • "DescargaCamion_Aux".AuxFinHabilitaTiempo. • "DescargaCamion_Aux".AuxFinHabilitaOperador. A continuación se ejecuta la FC según lo programado en la misma. Al finalizar la función se pasan los resultados, guardados en los datos locales del bloque que ha llamado a la función, a las variables conectadas a las salidas y entradas – salidas, en este caso: 16 • "DescargaCamion_Aux".AuxFinHabilitaTiempo. • "DescargaCamion_Aux".AuxFinHabilitaOperador. Programación del autómata (III) Autómatas Programables 10 Variables temporales Al generar bloques se pueden declarar variables temporales (TEMP) que sólo estarán disponibles durante el procesamiento del bloque, pudiendo volver a escribirse después. Antes del primer acceso de lectura, los datos locales deberán inicializarse. El acceso a los datos locales tiene lugar más rápidamente que el acceso a los datos en DBs. La CPU dispone de memoria para las variables temporales (datos locales) de los bloques que se acaban de procesar. El tamaño de esta área de memoria depende de la CPU. Para la función de temporización que acabamos de ver se han declarado dos parámetros temporales: • "AuxTiempoOB”. • "AuxConsigna". Estas variables deberán ser siempre escritas antes de su utilización en la lógica programada en la función, ya que sus valores no están guardados en un lugar de memoria reservado a tal fin, como podría ser una marca (M) o un bloque de datos (DB), sino que pertenecen a los datos locales, cuyos contenidos son desconocidos. Programación del autómata (III) 17 Formación Abierta L #TiempoOB ITD T #AuxTiempoOB La variable temporal #AuxTiempoOB es cargada con un valor conocido antes de ser utilizada en la siguiente sentencia. L #AuxTiempoOB L #TiempoTranscurrido +D T #TiempoTranscurrido 10.6.1. Llamada a una función La forma en que una función debe ser llamada para su ejecución depende del lenguaje utilizado. Para realizar la llamada en AWL se utiliza la sentencia CALL. Para el lenguaje KOP la llamada se realiza a través del cuadro “??”. Una vez ingresado el cuadro se debe escribir el número de la función a llamar. 18 Programación del autómata (III) Autómatas Programables 10 Por último, sólo queda pasarle variables a los parámetros de la función, si es que éstos existen. Para el lenguaje FUP la llamada se realiza a través del cuadro “??”. Una vez ingresado el cuadro se debe escribir el número de la función a llamar. Programación del autómata (III) 19 Formación Abierta Por último, sólo queda pasarle variables a los parámetros de la función, si es que éstos existen. Una llamada puede ser condicionada por una lógica combinacional, de comparación, etc. El siguiente segmento muestra como habilitar o deshabilitar la llamada a una función según el valor de una variable tipo BOOL: 20 Programación del autómata (III) Autómatas Programables 10 El siguiente segmento muestra como habilitar o deshabilitar la llamada a una función según el resultado de una comparación: Una función puede ser llamada desde un bloque organizativo (OB), desde otra función (FC) o desde un bloque de función (FB). 10.6.2. Entrada (EN) y salida (ENO) Al llamarse a una función desde un cuadro siempre estarán presentes la habilitación de entrada (EN), la habilitación de salida (ENO) y el nombre o número de la función. Mientras que dependerá de la función la existencia de parámetros y la cantidad de los mismos. La llamada se ejecutará siempre que EN sea igual a 1, y finalizada la función el programa vuelve al bloque que realiza la llamada, continuando en el mismo segmento si ENO vale 1 o en el segmento siguiente si ENO es 0. En la siguiente figura observamos que se habilita EN para la función FC3, por lo que la misma se ejecuta. Cuando dicha función finaliza no se habilita ENO, entonces tampoco se habilita EN para la función FC5. En lugar de ejecutarse esta función, se ejecuta la lógica del segmento 5. Programación del autómata (III) 21 Formación Abierta El valor de ENO corresponde al valor del bit RB de la palabra de estado, cuando se finaliza la ejecución de una función. Para asegurarnos que una función habilite ENO al devolver el control al bloque invocante, se deberá poner a 1 el bit RB, por ejemplo, como muestra la siguiente figura. Si realizamos esta modificación en FC3 y ejecutamos el programa, resultará que la función FC5 también se ejecutará. Las instrucciones del programa de usuario leen y escriben directamente los bits de la palabra de estado de la CPU. Cada vez que se ejecuta una instrucción, los bits de la palabra de estado son utilizados conforme a la operación de que se trate. De la combinación lógica entre las instrucciones del programa y los bits de la palabra de estado, se indican los resultados y las informaciones sobre los errores que se puedan haber producido. Palabra de estado: RB A1 A0 OV OS OR STA RLO /ER 22 Programación del autómata (III) Autómatas Programables 10 • Resumen • La memoria del autómata está dividida en tres partes: la memoria de carga utilizada para la transferencia de programas y configuraciones, la memoria de sistema contiene elementos que puede utilizar el usuario (temporizadores, marcas, etc.) y la memoria de trabajo donde se guardan las partes relevantes a la ejecución del programa. • El estado de las entradas y salidas es almacenado en cada ciclo en la imagen del proceso para ser utilizado luego en el programa. • Cuando el autómata cambia a modo RUN se ejecuta el bloque organizativo de arranque, utilizado para inicializar valores, al finalizar el mismo comienza la ejecución cíclica del bloque organizativo principal (OB1). • Para una mejor estructuración del programa, el usuario cuenta con una serie de bloques preprogramados, tales como SFCs y SFBs; también puede programar otros según su necesidad, éstos pueden ser FCs, FBs, DBs, etc. • Una función es un bloque sin memoria que el usuario puede programar a su conveniencia. En ella se pueden declarar parámetros de entrada y salida y variables temporales, requeridas para la ejecución de la función. Programación del autómata (III) 23