www.infoPLC.net Unidad Iztapalapa Ciencias Básicas e Ingeniería Licenciatura en Ing. Electrónica Área de concentración: Computación El PLC como dispositivo de automatización Alumnos: Taboada Balderas Armando 93222934 Zozoaga Gómez Erick 94218343 Asesor: ________________________ Víctor Hugo Téllez Arrieta Martes 10 de Abril de 2003 www.infoPLC.net El PLC como dispositivo de automatización Taboada Balderas Armando Zozoaga Gómez Erick www.infoPLC.net AGRADECIMIENTOS De antemano quiero agradecer a todas aquellas personas que han confiado en mí para sacar adelante, no un trabajo, sino toda una carrera, y que sin las cuales no sería posible tal empresa. Desde luego muy especialmente a: Primeramente a mis papás: El Sr. Leovino Taboada Ortega y la Sra. Socorro Balderas Bonilla Quienes me enseñaron que una de las cosas más importantes en la vida es el luchar por convertir en realidad los más anhelados sueños y que sin sus consejos, desvelos y apoyo no habría podido continuar con esta bonita carrera. A mi esposa e hijo: Myrna Raquel Ruiz Gómez y Armando Taboada Ruiz respectivamente. Mis Amores. A quienes les he robado muchos días y muchas noches en los que no he podido estar con ellos. Esperándoles de alguna manera devolverles con creces todo ese tiempo. A mis hermanas Susana Taboada Balderas, Carmen Taboada Balderas, Graciela Taboada Balderas y Socorro Taboada Balderas Quienes me apoyaron incondicionalmente en lo económico y lo más importante en lo moral para no claudicar en la terminación de este un paso más en mi carrera. Armando Taboada Balderas www.infoPLC.net A mis padres por su apoyo incondicional siempre. Erick Zozoaga Gómez www.infoPLC.net Contenido CONTENIDO PRÓLOGO......................................................................................................................................xv 1.0 INTRODUCCIÓN....................................................................................................................1 1.1 SISTEMAS DE CONTROL ..................................................................................................1 1.1.1 Fases de estudio en la elaboración de un automatismo ..................................................2 1.1.2 Opciones tecnológicas....................................................................................................3 1.2 CONTROLADORES LÓGICOS PROGRAMABLES .........................................................3 1.2.1 Campos de aplicación.....................................................................................................5 1.2.2 Ventajas e inconvenientes del plc ..................................................................................5 1.2.3 Historia del PLC.............................................................................................................6 2.0 ESTRUCTURA DE LOS PLC................................................................................................9 2.1 ESTRUCTURA O ARQUITECTURA EXTERNA .............................................................................9 2.1.1 Estructura compacta .......................................................................................................9 2.1.2 Estructura modular .......................................................................................................11 2.2 ESTRUCTURA O ARQUITECTURA INTERNA ............................................................................12 2.2.1 Unidad central de procesamiento (CPU)......................................................................14 2.2.1.1 Configuración de la unidad de control....................................................................15 2.2.1.2 Funciones de la CPU ..............................................................................................18 2.2.1.3 CPU sin µP .............................................................................................................19 2.2.1.4 Ciclo básico de trabajo de la CPU ..........................................................................19 2.2.2 Memorias del PLC .......................................................................................................20 2.2.2.1 Organización de la memoria. Principios de direccionamiento ...............................21 2.2.3 Fuente de alimentación.................................................................................................25 2.2.4 Unidades de entrada-salida...........................................................................................26 2.2.4.1 Entradas ..................................................................................................................26 2.2.4.2 Salidas.....................................................................................................................27 2.2.5 Áreas de interfaces .......................................................................................................28 2.2.6 Tipos y unidades de programación...............................................................................28 2.2.6.1 Funciones principales de los equipos de programación..........................................28 2.2.6.2 Tipos de unidades de programación .......................................................................31 2.2.7 Periféricos.....................................................................................................................33 2.2.8 Tamaño de los PLC ......................................................................................................33 2.3 CONFIGURACIÓN DE E/S.......................................................................................................34 2.3.1 Entradas/Salidas centralizadas .....................................................................................35 2.3.2 Entradas/Salidas distribuidas........................................................................................36 3.0 INTERFACES DE ENTRADA / SALIDA...........................................................................41 3.1 INTRODUCCIÓN ...............................................................................................................41 3.2 TIPOS DE INTERFACES DE E/S ......................................................................................41 3.3 ENTRADAS/SALIDAS DIGITALES.................................................................................43 3.3.1 Entradas lógicas............................................................................................................44 3.3.1.1 Entradas de corriente directa PNP ..........................................................................45 3.3.1.2 Entradas de corriente directa NPN .........................................................................46 ix www.infoPLC.net Contenido 3.3.1.3 Entradas de corriente alterna.................................................................................. 47 3.3.2 Salidas lógicas ............................................................................................................. 49 3.3.2.1 Salidas de CD PNP ................................................................................................ 49 3.3.2.2 Salidas de CD NPN................................................................................................ 51 3.3.2.3 Salidas de relé ........................................................................................................ 52 3.3.2.4 Salidas estáticas de CA .......................................................................................... 53 3.4 ENTRADAS Y SALIDAS ANALÓGICAS ....................................................................... 54 3.4.1 Conversión A/D........................................................................................................... 55 3.4.1.1 Convertidores basados en contadores binarios ...................................................... 56 3.4.1.2 Convertidores de aproximaciones sucesivas.......................................................... 56 3.4.1.3 Convertidores de doble rampa de integración........................................................ 57 3.4.2 Conversion D/A........................................................................................................... 57 3.4.2.1 Convertidores D/A unipolares ............................................................................... 57 3.4.2.2 Convertidores D/A dipolares o con signo .............................................................. 57 3.4.3 Interfaces para entradas analógicas ............................................................................. 58 3.4.4 Interfaces para salidas analógicas................................................................................ 59 4.0 PROGRAMACION DEL PLC............................................................................................. 61 4.1 INTRODUCCION............................................................................................................... 61 4.2 MNEMONICOS (LENGUAJE BOLÉANO Y LISTAS DE INSTRUCCIONES) .................................. 64 4.2.1 Primera consulta .......................................................................................................... 66 4.2.2 Asignación ................................................................................................................... 66 4.2.3 And .............................................................................................................................. 67 4.2.4 Or................................................................................................................................. 67 4.2.5 XOR (O exclusiva) ...................................................................................................... 67 4.2.6 Expresiones entre paréntesis........................................................................................ 68 4.2.7 Y antes de O ................................................................................................................ 69 4.2.8 Operaciones de flancos................................................................................................ 69 4.2.9 Set y Reset ................................................................................................................... 70 4.2.10 Negar, activar, desactivar y salvar el RLO ................................................................. 70 4.2.11 Operaciones con contadores ....................................................................................... 71 4.2.11.1 Cargar un valor preseleccionado.......................................................................... 71 4.2.11.2 Borrar un contador ............................................................................................... 72 4.2.11.3 Contadores ascendentes y descendentes .............................................................. 72 4.2.11.4 Consulta del saldo de contadores ......................................................................... 72 4.2.11.5 Lectura del valor de un contador.......................................................................... 73 4.2.12 Operaciones con temporizadores ................................................................................ 73 4.2.12.1 Cargar un valor de temporizador ......................................................................... 74 4.2.12.2 Consulta del estado de temporizadores ................................................................ 75 4.2.12.3 Temporizador como impulso ............................................................................... 75 4.2.12.4 Temporizador como impulso prolongado ............................................................ 76 4.2.12.5 Temporizador como retardo a la conexión con memoria..................................... 76 4.2.12.6 Temporizador como retardo a la desconexión ..................................................... 76 4.2.12.7 Borrar un temporizador........................................................................................ 77 4.2.12.8 Re-arranque de un temporizador.......................................................................... 77 4.2.12.9 Lectura de un valor de temporizador ................................................................... 78 4.2.13 Operaciones con salto incondicional........................................................................... 78 4.2.14 Operaciones de salto condicional en bifurcación del RLO......................................... 79 4.2.15 Operaciones de salto condicional en función de RB u OV/OS................................... 80 4.2.16 Operaciones de salto condicional en función de A1 y A0 .......................................... 80 4.2.17 Loop ............................................................................................................................ 81 x www.infoPLC.net Contenido 4.2.18 Llamar funciones y módulos de función con CALL ...................................................82 4.2.19 Llamar funciones y módulos con CC y UC.................................................................83 4.2.20 Llamar funciones de sistema integradas ......................................................................84 4.2.21 Funciones Master Control Relay .................................................................................84 4.2.22 Finalizar módulos ........................................................................................................86 4.2.23 Operaciones de comparación.......................................................................................87 4.2.23.1 Comparar dos números enteros ............................................................................87 4.2.23.2 Comparar dos números reales...............................................................................89 4.3 LENGUAJES DE ALTO NIVEL ..................................................................................................90 4.4 LADDER (DIAGRAMA DE ESCALERA) ................................................................................91 4.4.1 Load y Load not ...........................................................................................................95 4.4.2 Out y Out not................................................................................................................96 4.4.3 ...........................................................................................................................................97 4.4.4 And y And not ..............................................................................................................97 4.4.5 Or y Or not ...................................................................................................................98 4.4.6 Combinación de instrucciones AND y OR ................................................................98 4.4.7 Instrucciones de bloque lógico AND LOAD/OR LOAD.............................................99 4.4.8 End .............................................................................................................................100 4.4.9 Actualización de entradas y salidas............................................................................101 4.4.10 Instrucciones avanzadas.............................................................................................102 4.4.10.1 Relevadores temporales ......................................................................................102 4.4.10.2 Temporizadores ..................................................................................................104 4.4.10.3 On-delay timer ....................................................................................................104 4.4.10.4 Off-delay timer ...................................................................................................105 4.4.10.5 Retentive o temporizadores acumulativos ..........................................................105 4.4.10.6 Temporizador de alta velocidad..........................................................................107 4.4.10.7 Exactitud del tiempo ...........................................................................................107 4.4.10.8 Contadores ..........................................................................................................109 4.4.10.9 Contadores ascendentes ......................................................................................110 4.4.10.10 Contadores descendentes ..................................................................................111 4.4.10.11 Contadores ascendente-descendente.................................................................112 4.4.10.12 Contadores de alta velocidad ............................................................................113 4.4.10.13 Instrucción KEEP .............................................................................................114 4.4.10.14 Instrucción DIFERÉNCIATE UP-DIFU ..........................................................115 4.4.10.15 Instrucción DIFFERENTIATE DOWN-DIFD.................................................115 4.4.10.16 Instrucción INTERLOCK e INTERLOCK CLEAR – IL e ILC ......................116 4.4.10.17 Instrucciones JUMP y JUMP END (JMP y JME)............................................117 4.4.10.18 Registros de corrimiento...................................................................................118 4.5 GRAFCET .............................................................................................................................119 4.5.1 Etapas .........................................................................................................................121 4.5.1.1 Etapas iniciales .....................................................................................................121 4.5.1.2 Etapas normales ....................................................................................................122 4.5.2 Acciones asociadas.....................................................................................................122 4.5.2.1 Acción condicionada ............................................................................................123 4.5.2.2 Acción retardada...................................................................................................124 4.5.2.3 Acción limitada.....................................................................................................124 4.5.2.4 Acción de impulso ................................................................................................124 4.5.2.5 Acción memorizada ..............................................................................................125 4.5.3 Transacciones .............................................................................................................125 4.5.3.1 Receptividades asociadas a las transiciones .........................................................126 4.5.4 Líneas de evolución o líneas de enlace ......................................................................126 4.5.5 Diseño y estructuras del Grafcet ................................................................................126 xi www.infoPLC.net Contenido 4.5.5.1 4.5.5.2 4.5.5.3 4.5.5.4 4.5.5.5 4.5.5.6 4.5.5.7 4.5.5.8 4.5.5.9 4.5.5.10 Desarrollo del sistema.......................................................................................... 127 Evolución del sistema .......................................................................................... 128 Secuencia única.................................................................................................... 128 Bifurcación en “O”. También llamada selección de secuencia............................ 129 Bifurcación en “Y”. También llamada trabajos en paralelo ................................ 131 Saltos de etapas .................................................................................................... 133 Bucles................................................................................................................... 134 Subrutinas ............................................................................................................ 135 Macro-etapas........................................................................................................ 136 Diagramas paralelos........................................................................................... 136 4.6 DIAGRAMAS LÓGICOS ..................................................................................................... 137 4.6.1 Funciones básicas ...................................................................................................... 138 4.6.2 Funciones especiales.................................................................................................. 139 4.6.2.1 Temporizador con retardo a conexión ................................................................. 139 4.6.2.2 Temporizador con retardo a desconexión ............................................................ 139 4.6.2.3 Relevador de impulsos......................................................................................... 139 4.6.2.4 Reloj..................................................................................................................... 140 4.6.2.5 Biestable Set-Reset .............................................................................................. 140 4.6.2.6 Generador de pulsos............................................................................................. 140 4.6.2.7 Temporizador a la conexión con memoria........................................................... 140 4.6.2.8 Contador progresivo/regresivo............................................................................. 141 4.6.2.9 Contador de horas de servicio.............................................................................. 141 4.6.2.10 Relevador de supresión ...................................................................................... 141 4.6.2.11 Conmutador de valor de umbral para frecuencias.............................................. 141 4.6.3 Comparación del plano de funciones con LADDER................................................. 142 5.0 COMUNICACIONES Y REDES....................................................................................... 145 5.1 INTERCONEXIONES ESTÁNDAR................................................................................ 145 5.1.1 Comunicaciones serie ................................................................................................ 145 5.1.2 Ethernet...................................................................................................................... 146 5.2 REDES INDUSTRIALES ................................................................................................. 147 5.2.1 Niveles en una red industrial ..................................................................................... 148 5.3 REDES LAN INDUSTRIALES........................................................................................ 149 5.3.1 MAP .......................................................................................................................... 149 5.3.2 Ethernet industrial...................................................................................................... 150 5.4 PROTOCOLOS Y BUSES DE CAMPO .......................................................................... 151 5.4.1 MODBUS .................................................................................................................. 152 5.4.2 AS-i............................................................................................................................ 152 5.4.3 BITBUS ..................................................................................................................... 153 5.4.4 COMPOBUS ............................................................................................................. 154 5.4.5 PROFIBUS ................................................................................................................ 154 5.4.5.1 PROFIBUS-DP .................................................................................................... 155 5.4.5.2 PROFIBUS-PA .................................................................................................... 155 5.4.5.3 PROFIBUS-FMS ................................................................................................. 155 5.5 COMPARACIÓN DE LOS BUSES DE CAMPO............................................................ 156 5.5.1 Información general................................................................................................... 156 5.5.2 Características físicas ................................................................................................ 157 5.5.3 Mecanismo de transporte........................................................................................... 158 5.5.4 Desempeño ................................................................................................................ 159 xii www.infoPLC.net Contenido 6.0 6.1 6.2 6.3 6.4 6.5 6.6 6.7 APLICACIONES .................................................................................................................161 CONTROL DE UNA PUERTA CORREDIZA.................................................................161 DETECCIÓN DE ETIQUETAS EN UNA EMBOTELLADORA....................................163 ELEVADOR CLASIFICADOR DE PAQUETES (FESTO)............................................164 CONTROL AUTOMÁTICO DEL TREN DE LAVADO DE AUTOS ............................167 CONTROL AUTOMÁTICO DE UN GARAGE ..............................................................171 CONTEO DEL NÚMERO TOTAL DE PRODUCTOS EN LÍNEAS MÚLTIPLES DE PRODUCCIÓN (KEYENCE)..........................................................................................175 CONTEO DEL NÚMERO DE ROTACIONES - CONTADOR DE FRECUENCIA (KEYENCE).......................................................................................................................177 APÉNDICE. NORMA IEC-61131-3 ...........................................................................................179 CONCLUSIONES..........................................................................................................................187 BIBLIOGRAFÍA Y REFERENCIAS ..........................................................................................191 xiii www.infoPLC.net Contenido xiv www.infoPLC.net Prólogo PRÓLOGO El objetivo de este libro radica en la gran importancia que tiene el conocer la tecnología que actualmente se emplea en la automatización y de la cual no existe una gran bibliografía, o al menos no se difunde como debería de hacerse. El contenido del presente trabajo se ha recopilado tanto de libros, paginas web, revistas y tutoriales, algunos de ellos muy buenos, en los que de alguna manera sus autores, se han preocupado por tratar de exponer los temas más importantes acerca de la automatización de procesos mediante el empleo de los controladores lógicos programables mejor conocidos como PLCs. Finalmente cabe mencionar que mucha de la información presentada aquí podría parecer incompleta, pero la idea principal es tener un buen punto de partida para aquellas personas que se interesen por el tema y sobre todo que deseen continuar investigando y de ser posible enriquecer, corregir o más aún actualizar los temas aquí tratados. Nunca consideres el estudio como una obligación sino como una oportunidad para penetrar en el bello y maravillosos mundo del saber. Albert Einstein Un camino de mil millas comienza con un paso. Franklin, Benjamín xv www.infoPLC.net Prólogo xvi www.infoPLC.net Introducción 1.0 1.1 INTRODUCCIÓN SISTEMAS DE CONTROL Todo proceso industrial se compone de secuencias de acciones que deben ser controladas. En los procesos sencillos, un operario es el que se encarga de este control y de vigilar la marcha correcta del sistema pero, en la mayoría de las ocasiones, esto no es posible debido al tamaño del proceso. Se puede definir el control como la manipulación indirecta de las magnitudes de un sistema denominado planta a través de otro sistema llamado sistema de control. Este sistema opera, en general, con magnitudes de baja potencia o señales, y gobierna unos accionamientos que son los que realmente modulan la potencia entregada a la planta. Habitualmente el sistema de control se encarga de la toma de ciertas decisiones ante determinados comportamientos de la planta, hablándose entonces de sistemas automáticos de control. Para esto se requiere la existencia de unos sensores que detecten el comportamiento de dicha planta y de unas interfaces para adaptar las señales de los sensores a las entradas del sistema de control. Todo sistema automático por simple que éste sea se basa en el concepto de bucle o lazo: UNIDAD DE CONROL SEÑALES DE ENTRADA INTERFACES RESPUESTA SALIDAS SEÑALES DE CONTROL ACCIONAMIENTOS PLANTA SENSORES SEÑALES DE REALIMENTACIÓN Elementos de señal Elementos de potencia Figura 1.1 Sistema de control automático en lazo cerrado Primordialmente el papel del autómata programable dentro de éste sistema es el de la unidad de control, aunque suele incluir también totalmente o en parte, las interfaces con las señales de proceso. Al conjunto de señales de entrada y de realimentación que entran a la unidad de control se les denomina genéricamente entradas y al conjunto de señales de control obtenidas salidas. 1 www.infoPLC.net Introducción 1.1.1 Fases de estudio en la elaboración de un automatismo Para el desarrollo y elección correcta de un automatismo, es necesario conocer previamente los datos siguientes: • • • Las especificaciones técnicas del sistema o proceso a automatizar y su correcta interpretación. La parte económica asignada para evitar la elaboración de una buena opción técnica e inviable económicamente. Los dispositivos existentes en el mercado que se van a utilizar en la elaboración del automatismo. El siguiente organigrama representa el procedimiento general o fases más utilizado para el estudio de los automatismos. Inicio Especificaciones funcionales Estudio previo Resolución de las opciones tecnológicas más eficaces Estudio técnicoeconómico Estudio económico de las opciones Toma de decisiones Decisión final Lógica cableada Lógica programada Fin Figura 1.2 Organigrama general para el estudio de automatismos. 2 www.infoPLC.net Introducción 1.1.2 Opciones tecnológicas El automaticista dispone de numerosas herramientas tecnológicas para realizar el sistema de control de su planta, que se reagrupan habitualmente en dos categorías fundamentales: Las soluciones cableadas y las programadas. El siguiente cuadro muestra éstas opciones: Tipo Familia Tecnológica Lógica Cableada Eléctrica Electrónica Lógica Programada Electrónica Subfamilias específicas Relés electromagnéticos Electroneumática Electrohidráulica Electrónica estática Sistemas Microordenadores Informáticos Miniordenadores Microsistemas (universales específicos) Autómatas Programables Tabla 1.1 Principales soluciones tecnológicas de un problema de automatismo De todas estas opciones nos concentraremos en el estudio de los Autómatas Programables o Controladores Lógicos Programables (PLC’s). 1.2 CONTROLADORES LÓGICOS PROGRAMABLES Se define un Controlador Lógico Programable (PLC) o Autómata Programable Industrial (API) como una computadora especializada, diseñada para controlar máquinas y procesos en ambientes industriales operando en tiempo real. Realiza funciones lógicas, series, paralelos, temporizaciones, contajes y otras más potentes como cálculos, regulaciones, etc. También la National Electrical Manufacturers Association (NEMA) define al PLC como un dispositivo electrónico digital que utiliza una memoria programable para almacenar instrucciones y para implementar funciones especificas tales como funciones lógicas, secuenciales, de temporización, de conteo y aritméticas para controlar máquinas y procesos. En general puede verse como una ‘caja negra’ en la que existen unos terminales de entrada a los que se conectan pulsadores, finales de carrera, fofocélulas, detectores..., unos terminales de salida a los que se conectarán bobinas de contactores, electroválvulas, lámparas, etc., de tal forma que la actuación de éstos últimos está en función de las señales de entrada que estén activas en cada momento según el programa introducido. Por lo tanto, los elementos tradicionales como relés auxiliares, de enclavamiento, temporizadores, contadores, etc., son internos. 3 www.infoPLC.net Introducción Desde el punto de vista de su papel dentro del sistema de control, se ha dicho que el autómata programable es la unidad de control incluyendo las interfaces con las señales de proceso. Por otro lado se trata de un sistema con un hardware estándar, con capacidad de conexión directa a las señales de campo (niveles de tensión y corrientes industriales, transductores y periféricos electrónicos) y programable por el usuario. El concepto de hardware estándar se complementa con el de modularidad, entendiendo como tal el hecho de que éste hardware está fragmentado en partes interconectables que permiten configurar un sistema según las necesidades. Existen autómatas compactos que incluyen una unidad de control y un mínimo de entradas y salidas y luego tienen previstas una serie de unidades de expansión de entradas/salidas o autómatas grandes montados en rack para aplicaciones más complejas. También existe la posibilidad en autómatas grandes, de elección entre varios tipos de CPU, adaptados a la tarea que deba realizarse o incluso de múltiples CPU trabajando en paralelo en tareas distintas. Esta adaptabilidad ha progresado últimamente hacia el concepto de inteligencia distribuida, gracias a las comunicaciones entre autómatas y a las redes autómata-computadora. Esta técnica sustituye el gran autómata con muchas E/S controladas por una única CPU, por varios autómatas con un número menor de E/S, conectados en red y controlando cada punto o sección de una planta bajo el control de una CPU central. 4 www.infoPLC.net Introducción 1.2.1 Campos de aplicación El PLC por sus características especiales de diseño se utiliza en la mayoría de sectores industriales donde existe la necesidad de realizar procesos de maniobra, control, señalización, etc. Un autómata suele emplearse en procesos industriales que tengan una o varias de las siguientes necesidades: • • • • • • Espacio reducido. Procesos de producción periódicamente cambiantes. Procesos secuenciales. Maquinaria de procesos variables. Instalaciones de procesos complejos y amplios. Chequeo de programación centralizada de las partes del proceso. Aplicaciones generales: • • • • • • • • • Robótica. Maniobra de máquinas. Maniobra de instalaciones. Señalización y control. Manejo de materiales. Administración de energía. Máquinas herramientas. Máquinas de moldeo y fundición. Líneas de transferencia automáticas. Esto se refiere a los autómatas programables industriales, dejando de lado los pequeños autómatas para uso más personal (que se pueden emplear, incluso, para automatizar procesos en el hogar, como la puerta de una cochera o las luces de la casa). 1.2.2 Ventajas e inconvenientes del plc Entre las ventajas tenemos: • • • • • • • • Menor tiempo de elaboración de proyectos. Posibilidad de añadir modificaciones sin costo añadido en otros componentes. Mínimo espacio de ocupación. Menor costo de mano de obra. Mantenimiento económico. Posibilidad de gobernar varias máquinas con el mismo autómata. Menor tiempo de puesta en funcionamiento. Si el autómata queda pequeño para el proceso industrial puede seguir siendo de utilidad en otras máquinas o sistemas de producción. 5 www.infoPLC.net Introducción Y entre los inconvenientes: • • Adiestramiento de técnicos. Costo inicial. Esto es relativo, ya que todas la carreras de ingeniería incluyen la automatización como una de sus asignaturas. En cuanto al costo, pueden encontrarse autómatas para todas las necesidades y a precios ajustados. 1.2.3 Historia del PLC Los PLC's se introdujeron por primera vez en la industria en 1960 aproximadamente. La razón principal de tal hecho fue la necesidad de eliminar el gran costo que se producía al reemplazar el complejo sistema de control basado en relés y contactores. En 1968 Ford y General Motors impusieron a sus proveedores de automatismos unas especificaciones para la realización de un sistema de control electrónico para máquinas transfer. Este equipo debía ser fácilmente programable, sin recurrir a las computadoras industriales ya en servicio en la industria. Bedford Associates propuso algo denominado Controlador Digital Modular (MODICON, MOdular DIgital CONtroler). Otras compañías propusieron a la vez esquemas basados en ordenador, uno de los cuales estaba basado en el PDP-8. El MODICON 084 resultó ser el primer PLC del mundo en ser producido comercialmente. El problema de los relés era que cuando los requerimientos de producción cambiaban también lo hacía el sistema de control. Esto comenzó a resultar bastante caro cuando los cambios fueron frecuentes. Dado que los relés son dispositivos mecánicos y poseen una vida limitada se quería una estricta manutención planificada. Por otra parte, a veces se debían realizar conexiones entre cientos o miles de relés, lo que Implicaba un enorme esfuerzo de diseño y mantenimiento. Los nuevos controladores" debían ser fácilmente programables por ingenieros de planta o personal de mantenimiento. El tiempo de vida debía ser largo y los cambios en el programa tenían que realizarse de forma sencilla. Finalmente se imponía que trabajaran sin problemas en entornos industriales adversos. La solución fue el empleo de una técnica de programación familiar y reemplazar los relés mecánicos por relés de estado sólido. A mediados de los 70 las tecnologías dominantes de los PLC eran máquinas de estado secuenciales y CPU basadas en desplazamiento de bit. Los AMD 2901 y 2903 fueron muy populares en el Modicon y PLC's A-B. Los microprocesadores convencionales cedieron la potencia necesaria para resolver de forma rápida y completa la lógica de los pequeños PLC's. Por cada modelo de microprocesador había un modelo de PLC basado en el mismo. No obstante, el 2903 fue de los más utilizados. Las habilidades de comunicación comenzaron a aparecer en 1973 aproximadamente. El primer sistema fue el bus Modicon (Modbus). El PLC podía ahora dialogar con otros PLC's y en conjunto podían estar aislados de las máquinas que controlaban. También podían enviar y recibir señales de tensión variables, entrando en el mundo analógico. 6 www.infoPLC.net Introducción Desafortunadamente, la falta de un estándar acompañado con un continuo cambio tecnológico ha hecho que la comunicación de PLC's sea un maremagnum de sistemas físicos y protocolos incompatibles entre sí. No obstante fue una gran década para los PLC's. En los 80 se produjo un intento de estandarización de las comunicaciones con el protocolo MAP (Manufacturing Automation Protocol) de General Motor's. También fue un tiempo en el que se redujeron las dimensiones del PLC y se pasó a programar con programación simbólica a través de ordenadores personales en vez de los clásicos terminales de programación. Hoy día el PLC más pequeño es del tamaño de un simple relé. Los 90 han mostrado una gradual reducción en el número de nuevos protocolos, y en la modernización de las capas físicas de los protocolos más populares que sobrevivieron a los 80. El último estándar (IEC 1131-3) intenta unificar el sistema de programación de todos los PLC en un único estándar internacional. Ahora disponemos de PLC's que pueden ser programados en diagramas de bloques, lista de instrucciones, C y texto estructurado al mismo tiempo. Los PC están comenzando a reemplazar al PLC en algunas aplicaciones, incluso la compañía que introdujo el Modicon 084 ha cambiado al control basado en PC. Por lo cual, no sería de extrañar que en un futuro no muy lejano el PLC desaparezca frente al cada vez más potente PC, debido a las posibilidades que éste último puede proporcionar. 7 www.infoPLC.net Introducción 8 www.infoPLC.net Estructura de los PLC 2.0 ESTRUCTURA DE LOS PLC En este capítulo conoceremos el hardware tanto en su configuración externa, como interna dada la importancia que implica durante el manejo de un PLC tanto a nivel externo, como interno. 2.1 ESTRUCTURA O ARQUITECTURA EXTERNA El término estructura externa o configuración externa de un PLC se refiere al aspecto físico exterior del mismo, bloque o elementos en que está dividido, etc. Desde su nacimiento hasta nuestros días han sido varias las estructuras que han salido al mercado condicionadas no solo por el fabricante del mismo, sino por la tendencia existente en el área al que perteneciese: europea o norteamericana. Por configuración o arquitectura del PLC se entiende la estructura que adopta su sistema físico, esencialmente la unidad de control, el sistema de entradas y salidas y la memoria de la máquina, a fin de adaptarlo a las particularidades de la aplicación: número de entradas y salidas, ubicación de las mismas, potencia de cálculo, capacidad de almacenamiento, etc. Por lo que la visión externa del PLC es de forma robusta dado que tiene que "aguantar" situaciones industriales extremas. Por otro lado, dada la modularidad intrínseca del PLC, esta adaptación resulta particularmente sencilla utilizando los módulos o ampliaciones previstas a tal efecto por los fabricantes en sus distintos modelos y gamas. Así, existen básicamente dos configuraciones posibles para la unidad de control: • • Estructura compacta o unidad de control compacta (control centralizado). Estructura modular o unidad de control modular (control distribuido). 2.1.1 Estructura compacta Este tipo de PLC se distingue por presentar en un solo bloque sus elementos, esto es, fuente de alimentación, CPU, memorias, entradas/salidas, etc. Puesto que estos módulos no pueden funcionar de forma autónoma, el control queda centralizado en la CPU única, la cual se encarga de controlar toda la planta. Para ello, ejecuta sólo un programa que contiene todas las rutinas de control, y elabora las ordenes de mando de forma secuencial, una detrás de otra. Estos módulos compactos se utilizan generalmente, en instalaciones pequeñas que requieran pocas señales de control. En canto a su unidad de programación, existen tres versiones: unidad fija o enchufable directamente en el autómata, enchufable mediante cable y conector, o la posibilidad de ambas conexiones. Si la unidad de programación es sustituida por una PC, nos encontraremos que la posibilidad de conexión del mismo será mediante cable y conector (este tema se tratará con más detalle en la sección 2.2.6.). 9 www.infoPLC.net Estructura de los PLC Figura 2. 1 Ejemplo de un PLC compacto de la marca Keyence de la serie KV y otro de la marca Siemens de la serie Logo!, los cuales cuentan con una fuente de alimentación, CPU, memorias, entradas y salidas, unidad de programación, etc. El montaje del autómata al armario que ha de contenerlo, se realiza por cualquiera de los sistemas conocidos: carril DIN, placa perforada, etc. Por otro lado, pueden clasificarse, precisamente, por el número de puntos E/S que presente el autómata programable, es decir: • • Microatómatas, con E/S< 24, Miniautómatas, con 24< E/S < 60. Los miniautómatas pueden ampliarse mediante unidades E/S compactas o mediante módulos de extensión E/S, siempre conectados entre sí y al autómata base por medio de cables de expansión. Ver figura 2.2. Es posible conectar varias de esta unidades de expansión sobre el mismo bus interno del autómata, unidas todas ellas a la misma CPU hasta que el límite de direccionamiento que ésta lo permita. Las unidades de E/S compactas incluyen normalmente su propia fuente de alimentación con entrada de 110/220 VCA o 24 VCD, y una fuente de salida a 24 VCC para alimentación de captadores y sensores de entrada (y, si las cargas y la instalación lo permiten, de actuadores de salida). 10 www.infoPLC.net Estructura de los PLC Figura 2. 2 Ejemplo de PLC compacto. Unidad base y dos unidades de expansión, respectivamente, los cuales, cada uno posee su propia fuente de alimentación. 2.1.2 Estructura modular Como su nombre indica, la estructura de este tipo de PLC se divide en módulos o partes del mismo que realizan funciones específicas con sus propias unidades de proceso, y en general, con sus propias interfaces de E/S. Estos módulos se encuentran conectados a la unidad central (CPU principal, maestra, supervisora, etc.) que gestiona de forma general el sistema y permite el intercambio de datos entre los elementos, procesadores o interfaces, del mismo. Aquí cabe hacer dos divisiones para distinguir entre las que denominaremos estructura americana y estructura europea. Estructura americana: Se caracteriza por separar las E/S del resto del PLC, de tal forma que en un bloque compacto están reunidas las CPU, memoria de usuario o de programa y fuente de alimentación, y separadamente las unidades de E/S en los bloques o tarjetas necesarias. Estructura europea: Su característica principal es la de que existe un módulo para cada función: fuente de alimentación, CPU, E/S, etc. La unidad de programación se une mediante cable y conector. La sujeción de los mismos se hace bien sobre carril DIN o placa perforada, bien sobre RACK, en donde va alojado el BUS externo de unión de los distintos módulos que lo componen. Figura 2. 3 Ejemplo de un PLC modular 11 www.infoPLC.net Estructura de los PLC 2.2 ESTRUCTURA O ARQUITECTURA INTERNA Un autómata programable industrial (API) o controlador lógico programable (PLC), es un equipo electrónico de control con un cableado interno (hardware) independiente del proceso a controlar, que se adapta a dicho proceso mediante un programa específico (software) que contiene la secuencia de operaciones a realizar. Esta secuencia de operaciones se define sobre señales de entrada y salida al proceso, cableadas directamente en los bornes de conexión del PLC. Las señales de entrada pueden proceder a elementos digitales, como finales de carrera y detectores de proximidad, o analógicos, como sensores de temperatura y dispositivos de salida en tensión o corrientes continuas. Las señales de salida son órdenes digitales o señales analógicas de corriente o tensión, que se envían a los elementos indicadores y actuadores del proceso, como lámparas, contactores, válvulas, etc. El PLC gobierna las señales de salida según el programa de control previamente almacenado en una memoria, a partir del estado de las señales de entrada. Este programa se introduce en el autómata a través de la unidad de programación, que permite además funciones adicionales como depuración de programas, simulación, monitorización, control del PLC, etc. Una característica notable del PLC frente a otros sistemas de control programables está en la estandarización de su hardware, que permite la configuración de sistemas de control "a medida", según las necesidades estimadas de potencia de cálculo y número y tipo de señales de entrada y salida. El PLC se configura alrededor de una unidad central o de control, que, unida por medio de buses internos a las interfaces de entrada y salida y a las memorias, define lo que se conoce como arquitectura interna del PLC. Los PLC´s se componen esencialmente de los siguientes bloques tal y como se representan en la figura 2.4 • • • • • Unidad central de proceso (CPU). Memorias internas. Interfaces de entrada. Interfaces de salida. Fuente de alimentación. La unidad de control o unidad central de proceso (CPU) consulta el estado de las entradas y recoge de la memoria de programa la secuencia de instrucciones a ejecutar, elaborando a partir de ella las señales de salida u órdenes que se enviarán al proceso. Durante la ejecución del programa, las instrucciones son procesadas en serie, una tras otra. En otras palabras, la unidad de control, es la inteligencia del sistema, ya que mediante la interpretación de las instrucciones del programa de usuario y en función de los valores de entrada, activa las salidas deseadas. 12 www.infoPLC.net Estructura de los PLC Figura 2. 4 Esquema de bloques simplificado de un PLC. La unidad de control también es la responsable de actualizar continuamente los temporizadores y contadores internos que hayan sido programados. La memoria del autómata programable contiene los datos o instrucciones que se necesitan para ejecutar la tarea de control. La fuente de alimentación proporciona, a partir de la tensión exterior, las tensiones necesarias para el buen funcionamiento de los distintos circuitos electrónicos del sistema. En ocasiones el autómata puede disponer de una batería conectada a esta fuente de alimentación, lo que asegura el mantenimiento del programa y algunos datos en la memoria en caso de una interrupción de la tensión exterior. La sección de entradas, mediante el interfaz, adapta y codifica en forma comprensible por la CPU las señales procedentes de los dispositivos de entrada o captadores, esto es, pulsadores, finales de carrera, sensores, etc.; También tiene una misión de protección de los circuitos electrónicos internos del autómata, realizando una separación eléctrica entre éstos y los captadores. La sección de salidas, mediante el interfaz, trabaja en forma inversa a la de entradas, es decir, decodifica las señales procedentes de la CPU, las amplifica y controla con ellas los dispositivos de salida o actuadores, como lámparas, relevadores, contactores, arrancadores, electroválvulas, etc., aquí también existen unos interfaces de adaptación a las salidas y de protección de circuitos internos. Después de haber visto el esquema de bloques simplificado de un autómata programable o PLC, vamos a estudiar de una forma más detallada las partes del autómata ya descritas y las funciones más importantes que realizan, lo que nos permitirá lograr el objetivo de conocer a un nivel aceptable este equipo electrónico. Cabe mencionar que cualquier conocimiento sobre Electrónica Digital y microprocesadores serán de gran ayuda para entender en mayor medida el funcionamiento. 13 www.infoPLC.net Estructura de los PLC La arquitectura de un PLC de la gama baja o media queda representada por la figura 2.5. Esta arquitectura es la básica de los autómatas existiendo poca variación de unos fabricantes a otros. Su representación nos permite entender con mayor profundidad los circuitos que lo componen. Figura 2. 5 Arquitectura interna de un PLC 2.2.1 Unidad central de procesamiento (CPU) La CPU (Central Processing Unit) está constituida por los elementos siguientes: procesador, memoria y circuitos auxiliares asociados. La figura 2.6 muestra los bloques fundamentales de una CPU, donde se reconocen los siguientes: • • • • • • 14 ALU, (Aritmetic Logic Unit), es la encargada de realizar las operaciones aritméticas y lógicas (combinacionales Y, O, sumas, comparaciones, etc.). Acumulador, que almacena el resultado de la última operación realizada por la ALU. Flags, o indicadores de resultado de operación (mayor que, menor que, positivo, negativo, resultado cero, etc.). El estado de los flags puede ser consultado por el programa. PC, (program counter), o contador de programa, es el encargado de la lectura de las instrucciones de usuario y, por tanto, de la secuencia de ejecución. Esta secuencia puede ser modificada con el juego de instrucciones de salto. Decodificador de instrucciones y secuenciador, cableado y/o programado, donde se decodifican las instrucciones leídas en la memoria y se generan las señales de control. programa ROM monitor del sistema, es donde se almacena la secuencia de puesta en marcha, las rutinas de test y de error en la ejecución, etc. www.infoPLC.net Estructura de los PLC • • • Opcionalmente, un cartucho de memoria ROM externa, que contendría una ampliación del intérprete incorporado, a fin de que la CPU pudiera decodificar y ejecutar instrucciones complejas o escritas en lenguajes de programación más potentes. Registros de pila, algunos autómatas lo incluyen, permitiendo con el almacenar resultados parciales del programa (obtenidos mediante instrucciones particulares de paréntesis o bloques) antes de operar con ellos y asignar el resultado a una salida. Buses, no son circuitos en sí, sino zonas conductoras en paralelo que transmiten direcciones, datos e información de control (bus de direcciones, bus de datos y bus de control respectivamente) entre las diferentes partes de la CPU. Por otro lado, se puede hacer una diferencia entre buses internos y externos. Los primeros unen entre sí las diferentes partes del µP, mientras que los segundos son pistas de circuitos impreso que unen chips independientes. Los buses internos (bus de direcciones, bus de datos y bus de control) y externos son continuación unos de otros. Figura 2. 6 Diagrama a bloques de la unidad central de proceso o CPU. La combinación de la CPU con la memoria interna, imagen de entradas/salidas, y de programa de usuario, es conocida también con el nombre de unidad de proceso o tarjeta central, aunque algunos fabricantes denominan por extensión al conjunto simplemente CPU. 2.2.1.1 Configuración de la unidad de control En un sentido amplio, la unidad de control es la encargada de gestionar las informaciones precedentes del proceso para establecer sobre él la secuencia de control que desea el usuario. Para ello, en un sistema programable con autómatas la unidad de control debe: • • • • Ejecutar las instrucciones del programa, Ordenar las transferencias de información en el sistema de entrada/salida, Establecer los lazos de regulación y control necesarios, Comunicarse con el entorno informático y con los operadores humanos. El programa de usuario puede ir desde sencillas combinaciones de variables lógicas (AND, OR, NOT), utilizando temporizadores y contadores, hasta estructuras de programación multitarea, que combinan en la misma aplicación las rutinas de tratamiento y elaboración de 15 www.infoPLC.net Estructura de los PLC señales de mando para distintos subprocesos de control como, por ejemplo, regulación de temperatura, condiciones de alarma, comunicación de periféricos, etc. Estos programas complejos, que no sólo gobiernan diferentes variables, sino también subprocesos distintos, pueden tener tiempos de respuesta prohibitivos, para el control en tiempo real, si se encarga la ejecución del programa a una única CPU por potente que esta sea. La solución consiste en repartir la tarea de control entre varios procesadores, resultando así en dos configuraciones de unidad de control bien diferenciadas: • • Unidad de control compacta, formada por una sola CPU que elabora el programa en monoproceso, es decir, ejecuta un solo programa que contiene todas las rutinas de control, y elabora las ordenes de mando en forma secuencial, una detrás de otra. Unidad de control modular, con ejecución en multiproceso, redunda en un aumento de la potencia global del sistema, al descargar las tareas sobre varios procesadores que las ejecutan de forma más eficiente, y con mayor rapidez, en los lazos respectivos de comunicación y control. Por la ubicación e interconexión de los procesadores que forman la unidad de control de un sistema modular de Autómatas, se tienen las siguientes arquitecturas posibles: Multiprocesadores centrales, Procesador central + procesadores periféricos, Procesadores conectados en red. Multiprocesadores centrales La arquitectura de multiprocesadores se obtiene al conectar, sobre un mismo bastidor, varias unidades centrales gestionadas por una unidad de coordinación o coordinador. Cada una de estas unidades ejecuta una parte del programa de usuario (subprograma) de forma independiente a las demás, definiendo su propio ciclo de ejecución. De esta forma, el máximo tiempo de respuesta para una señal de planta viene dado por el mayor de los tiempos de ciclo, y no por la suma de todos ellos. Todas las unidades centrales tienen acceso al mismo mapa de entradas/salidas del autómata, estableciendo cada una la gestión del bus y el intercambio de datos con la periferia y con las otras unidades cuando lo permite el coordinador superior. En la arquitectura multiprocesador, cada CPU trabaja cíclicamente, con intercambio de información a través de la unidad de coordinación, siguiendo la siguiente secuencia: 1. 2. 3. Actualización de las señales de entrada, y lectura de datos del coordinador, Ejecución del programa de usuario, Actualización de señales de salida, y transmisión de datos al coordinador. Como se observa, la unidad de coordinación es pieza fundamental en el funcionamiento de las unidades centrales conectadas, realizando dos funciones específicas: 16 www.infoPLC.net Estructura de los PLC • • Asigna cíclicamente a cada procesador el bus interno del autómata, para el intercambio de datos de E/S y comunicación con periféricos externos. Actúa como origen/destino de la información transmitida entre procesadores, que tienen acceso a un área de memoria común en el coordinador donde todos ellos pueden leer y escribir datos. Además, esta unidad actúa como procesador principal, incorporando los elementos de mando general del autómata, como son los interruptores de arranque/partada (RUN/STOP), rutina de iniciación tras un “reset”, reloj de vigilancia de tiempo de acceso a cada procesador al bus, etc. En algunos sistemas multiprocesadores las funciones de la unidad de coordinación son asumidas por algún otro procesador, que asume el carácter de procesador principal, encargado no sólo de ejecutar su propio programa, sino también de gestionar el funcionamiento de los demás procesadores auxiliares, encargados de la regulación analógica y otros cálculos y del control de periféricos, respectivamente. La arquitectura de multiprocesadores presenta las tres ventajas particulares siguientes: • • • Permite la estructuración de la tarea de control, obteniéndose programas más fáciles de desarrollar y depurar. En el caso de una ampliación o modificación de la tarea de mando (del programa de usuario), que desborde la capacidad de direccionamiento o proceso de la unidad de control utilizada, no es necesaria la sustitución de todo el sistema, incluyendo las unidades de E/S, sino que basta colocar otro procesador adicional en el bastidor. Pueden reducirse los tiempos de respuesta frente a señales rápidas de la planta utilizando varios procesadores que se reparten las tareas críticas y no críticas en el tiempo. En definitiva, las unidades centrales de un sistema multiprocesador permiten configurar un sistema en cuanto a las necesidades en la potencia de cálculo, ejecutando cada una de ellas programas diferentes pero compartiendo las mismas direcciones de E/S y el mismo bus interno. Procesador central + procesadores periféricos Dada la diversidad de funciones que debe realizar la CPU, algunas de ellas muy complejas, aparece en autómatas de gama media y altas, una subdivisión reparto de tareas, a fin de optimizar su funcionamiento; Esta es la estructura de control distribuido mediante el empleo de módulos inteligentes: en este caso, se conectan al bus procesadores específicos especializados en tareas como la medición y regulación de temperatura, control de posición, conexión con otros procesadores dentro de una red local, etc. lo que permite traspasar ciertas funciones, normalmente críticas en el tiempo, a estos periféricos inteligentes (denominados así porque incluyen sus propios procesadores y memorias), descargando al procesador central de unos procesos a los que no podría atender con la necesaria rapidez. Los procesadores periféricos, son en otras palabras, CPU´s especializadas en ciertas aplicaciones de regulación y control, con entradas y salidas analógicas y digitales incorporadas, 17 www.infoPLC.net Estructura de los PLC que solicitan del programa de usuario únicamente los parámetros y consignas de la aplicación. Conseguidos estos, el funcionamiento posterior es totalmente autónomo a la CPU principal. Un procesador periférico inteligente se define entonces como un procesador auxiliar, con sus propias memorias e interfaces de entrada/salida, que contiene en principio un programa o interprete de programa especializado en la ejecución de una tarea concreta: • • • Procesador, porque incorpora su propio sistema µP, que le permite ejecutar de forma autónoma tareas críticas en el tiempo. Periférico, porque está unido a la unidad central a través del bus interno del autómata, pero no exige la presencia de una unidad de coordinación puesto que incluye sus propias interfaces de E/S. Inteligente, porque incorpora en su memoria el programa de tratamiento específico (regulación, posicionamiento, etc.), al que se le indica, desde el programe de usuario, los parámetros particulares de la aplicación (constantes PID, coordenadas de movimiento, etc.). Ambas soluciones, estructura de multiprocesadores centrales y conexión de módulos inteligentes, pueden coexistir en algunos modelos de PLC´s, proporcionando una potencia superior de cálculo, capacidad y rapidez en la ejecución. Procesadores conectados en red El caso de procesadores conectados en red se tratara a detalle en el capitulo 6. 2.2.1.2 Funciones de la CPU En la memoria ROM del sistema, el fabricante ha grabado una serie de programas ejecutivos fijos, llamados firmware o software del sistema y es a estos programas a los que se accederá el µP para realizar las funciones ejecutivas que correspondan en función del tiempo en que trabaje. El software de sistema de cualquier Autómata consta de una serie de funciones básicas que realiza en determinados tiempos de cada ciclo: en el inicio o conexión , durante el ciclo o ejecución del programa y a la desconexión. Este software o programa del sistema es ligeramente variable para cada autómata, pero en general, contiene las siguientes funciones: • • • • • Supervisión y control de tiempo de ciclo (watchdog), tabla de datos, alimentación, batería, etc. Autotest en la conexión y durante la ejecución del programa. Inicio del ciclo de exploración de programa y de la configuración del conjunto. Generación del ciclo base de tiempo. Comunicación con periféricos y unidad de programación. Hasta que el programa del sistema no ha ejecutado todas las acciones necesarias que le corresponden, no se inicia el ciclo de programa de usuario. 18 www.infoPLC.net Estructura de los PLC 2.2.1.3 CPU sin µP No todos los Autómatas programables o PLC utilizan el µP como elemento base de la CPU, algunos fabricantes emplean como tal los dispositivos lógicos programables (DPL), o red de puertas lógicas (gate array), también llamados circuitos integrados de aplicación específica, en inglés, application specific integrated circuit, ASIC. El ASIC utilizado, por ejemplo, en los SEPTEC serie 90 de sprecher+Shuh contiene 15,000 puertas lógicas. 2.2.1.4 Ciclo básico de trabajo de la CPU La operación del PLC se basa en la exploración continua de un programa. Podemos pensar que dicha exploración consiste de tres pasos de progresión importantes (aunque típicamente hay más de tres, nos enfocaremos de esta manera a los pasos más importantes). Son estos tres pasos los que típicamente controlan al sistema y que actualizan los valores de los contadores y temporizadorers internos. Paso1. Primero el autómata programable o PLC examina el estado 0 ó 1 de cada una de sus entradas y las almacena en los registros de la memoria de entradas, esto es, en la zona de entradas de la memoria de la tabla de datos. Esta situación se mantiene durante todo el ciclo de programa para poder ser empleada en su siguiente paso de la progresión. Paso2. Segundo, el PLC ejecuta una por una las instrucciones del programa de acuerdo a los datos recavados en el paso1, salvando posteriormente los resultados obtenidos durante la ejecución del programa asignando el estado de la señal a los registros de las salidas poder usarlos en el paso de progresión siguiente. Paso3. Tercero, el PLC pone al día o actualiza , el estado de sus salidas basado en la información computada dado el estado de cada una de sus entradas. Posteriormente, el PLC regresa de nuevo al paso de progresión 1 y repite continuamente cada uno de sus pasos. El ciclo de operación del PLC se muestra en la figura 2.7. Por otro lado, dada la velocidad con que se realiza cada ciclo, del orden de 5 a 10 ms/1K instrucciones, se puede decir que las salidas se ejecutan en función de las variables de entrada prácticamente en tiempo real. Figura 2. 7 Ciclo de operación de un PLC 19 www.infoPLC.net Estructura de los PLC 2.2.2 Memorias del PLC La memoria de trabajo es el almacén donde el PLC guarda todo cuanto necesita para ejecutar la tarea de control. La memoria ideal para el autómata o PLC debería ser simultáneamente rápida, pequeña, barata y de bajo consumo de energía. Como ninguna de las memorias del mercado reúne todas estas condiciones, los PLC combinan distintos tipos de ellas. Algunos de tipos de memoria empleadas por un PLC podrían ser las mostradas en la tabla 2.1. TIPO DE MEMORIA RAM o memoria de lectura escritura ROM o memoria de solo escritura PROM o memoria programable EPROM o memoria modificable EEPROM o memoria modificable SISTEMA DE PROGRAMACIÓN SISTEMA DE BORRADO Eléctrica Eléctrico Durante su proceso de fabricación Es imposible su borrado Es imposible su borrado Por rayos UV Eléctrica Eléctrica Eléctrica ANTE EL CORTE DE TENSIÓN LA MEMORIA Se pierde es volátil Eléctrico Se mantiene Se mantiene Se mantiene Se mantiene Tabla 2. 1 Tipos de memorias semiconductoras Dependiendo de la función asignada se utilizará un tipo de memoria u otra. De esta forma, los tipos de memoria presentes en un PLC son: • • • 20 Memoria de usuario: El programa de usuario normalmente se graba en memoria RAM, ya que no sólo ha de ser leído por el microprocesador, sino que ha de poder ser variado cuando el usuario lo desee, utilizando la unidad de programación. En algunos PLC´s, la memoria RAM se auxilia de una memoria de sombra del tipo EEPROM. La desconexión de la alimentación o un fallo en la misma borraría esta memoria, ya que al ser la RAM una memoria volátil necesita estar constantemente alimentada y es por ello que los Autómatas que la utilizan llevan incorporada una batería tampón (o de respaldo) que impide su borrado. Memoria de la tabla de datos: La memoria de esta área también es de tipo RAM, y en ella se encuentra, por un lado, la imagen de los estados de las entradas y salidas, y por otro, los datos numéricos y variables internas, como temporizadores, contadores, marcas, etc. Memoria y programa del sistema: Esta memoria, que junto con el procesador componen la CPU, se encuentra dividida en dos áreas: la llamada memoria del sistema, que www.infoPLC.net Estructura de los PLC • utiliza memoria RAM, y la que corresponde al programa del sistema o firmware, que lógicamente es un programa, fijo grabado por el fabricante, y por tanto, el tipo de memoria utilizado es ROM. En algunos Autómatas se utiliza únicamente la EPROM, de tal forma que se puede modificar el programa memoria del sistema previo borrado del anterior con rayos UV. Memorias EPROM y EEPROM: Independientemente de otras aplicaciones, algunas ya mencionadas en los párrafos anteriores, este tipo de memorias tiene gran aplicación como memorias copia para grabación y archivo de programas de usuario. Figura 2. 8 Tipos de memorias de un PLC 2.2.2.1 Organización de la memoria. Principios de direccionamiento Direccionamiento de puntos de E/S Todos los PLC emplean un número para identificar un punto de E/S (Entrada/Salida), el cual es denominado direcció. Cada dispositivo del mundo real es reconocido en el programna del PLC por su dirección. Las direcciones hacen referencia a dos partes: el canal y el bit. El canal es una celda o grupo de bits que pueden ser manipulados como una unidad. La longitud del tamaño del canal (tamaño de palabra) puede varia de un tipo de PLC a otro. La dirección de un punto de E/S es un número de 5 dígitos (los cuales pueden variar nuevamente, dependiendo del PLC en cuestión). Los tres primero dígitos identifican al canal y los dos siguientes identifican al bit. Así, por ejemplo, un punto de entrada con la dirección 00011 está asignado al canal 000 y bit 11. De igual forma un punto de salida con la dirección 00104 está asignado al canal 001 y bit 04. 21 www.infoPLC.net Estructura de los PLC Figura 2. 9 Ejemplo de direccionamiento de puntos de E/S Organización de la memoria y direcciones La CPU requiere de instrucciones para procesar todos los datos que están siendo introducidos, y requiere, además, un área para almacenar estos datos. La Memoria proporciona esta área y es en ella que el programa de usuario es almacenado. La memoria de los PLC está organizada por áreas de funciones bien diferenciadas y claramente definidas. La estructura de la memoria de los PLC es conocida como matriz de memoria, mapa de memoria o mapa de E/S. La matriz se divide en secciones o áreas con el fin de que sea más manejable por el usuario. La mayor}a de las áreas tienen un prefijo tal como HR, T, DM y un número de 3 o 4 dígitos para definir su localización específica en la memoria. Por ejemplo, el Temporizador 0 (Timer 0) será referenciado como T000, el relevador de mantenimiento 0 (Holding Relay 0) como HR0000 y la memoria de datos 0 (Data Memory 0) como DM0000. Todos los PLC cuentan como mínimo con las siguientes áreas dentro de su matriz de memoria: Area IR (Relevadores Internos) Las funciones de los bits de ésta área son: • • Area de entradas y salidas: Son bits del área IR designados a los módulos de entrada y salida conectados al PLC. Ellos reflejan el estado ON/OFF de las señales de entrada y salida del mundo real. Area de trabajo: Son los bits que pueden ser usados libremente en el programa del PLC para almacenar un estado. Los bits de trabajos son resetados (es decir, llevados a OFF) cuando la fuente de alimentación del PLC es apagada o cuando la operación del PLC comienza o se detiene. Los bits restantes del área IR tiene funciones específicas. La mayoría de estos, pero no todos, pueden ser empleados como bits de trabajo cuando la función específica no está siendo empleada. 22 www.infoPLC.net Estructura de los PLC Los bits del área IR tienen direcciones con prefijo IR seguido de un número de 5 dígitos; los tres primeros dígitos indican el canal y los dos siguientes el bit, así, la dirección IR00205 hacen referencia al bit 5 canal 2 (direccionamiento por bit). Si la dirección se señala con sólo tres dígitos, se estará haciendo referencia a un canal completo, por ejemplo, IR300 hace referencia a todos los bits del canal 300 (direccionamiento por canal). Area SR (Relevadores especiales) Los bits de esta área funcionan esencialmente como banderas (flags) relacionadas con la operación del PLC, algunas de ellas son: • • • • Pulsos de reloj Bandera de escaneo Bandera de error Bandera de alarma de batería Esta área de memoria es direccionada en forma similar al área IR. Nota: Las áreas de memoria IR y SR pueden prescindir de los prefijos IR y SR respectivamente al ser direccionadas. Area TR (Relevadores Temporales) Estos bits son empleados para almacenar temporalmente condiciones ON/OFF de ejecución en las ramificaciones de un programa de escalera complejo. Son útiles sólo cuando se requiere programar un diagrama de escalera con código mnemónico. Todos los PLC tienen 8 relevadores temporales (aunque esto puede variar de un tipo de PLC a otro) identificados como TR0 hasta TR7 (TR es el prefijo para acceder al área). Area HR (Relevadores de mantenimiento) El área HR es empleada para el almacenamiento y manipulación de datos internos. Esta área de memoria es retentiva, es decir, retiene el estado ON/OFF de los bits aún luego de que la fuente de alimentación del PLC se haya apagado o cuando la operación del mismo comienza o se detiene. Ella es empleada en la misma forma que el área de trabajo. El área de memoria HR puede ser accesada por canal (HR00) o por bit (HR0012). Area AR (Relevadores Auxiliares) Similarmente al área SR, los bits del área AR funcionan principalmente como banderas relacionadas con la operación del PLC, algunas de ellas son: • • • Tiempos de ciclo largo Contador de potencia OFF Banderas de diagnósticos 23 www.infoPLC.net Estructura de los PLC Con pocas excepciones, el estado de los bits y words AR son refrescados cada ciclo. Esta área de memoria es retentiva. El área AR puede ser accesada por canal (AR11) o por bit (AR1100). Area LR (Relevadores de Enlace) El área RL es empleada para el almacenamiento interno de datos enlazados o compartidos entre dos o más PLCs. Los bits LR pueden ser empleados como bits de trabajo cuando no están siendo empleados para enlaces de datos. Esta área de memoria no es retentiva, y al igual que el área HR y AR puede ser direccionada por canal (LR00) o por bit (LR0010). Area TC (Temporizadores /Contadores) Esta área está dedicada para el empleo de los temporizadores (TIM), temporizadores de alta velocidad (TIMH), contadores (CNT) y contadores reversibles (CNTR). Ya que temporizadores y contadores ocupan la misma área, un contador no puede ser especificado con el mismo número que un temporizador. Por ejemplo, CNT010 y TIM010 no pueden ser empleados al mismo tiempo. Los registros de temporizadores/contadores son memoria de tipo retentiva. Los valores fijados SV (descrito con detalle más adelante) para temporizadores y contadores son retenidos aún si la fuente de alimentación falla. El valor presente PV de los contadores es conservado en caso de que la potencia falle, no así los temporizadores. Area DM (Memoria de Datos) Es empleada para la manipulación y almacenamiento de datos. Esta área no puede ser accesada por bit, sino en unidades de palabra. Cierta zona del área DM es destinada a la configuración del PLC. El área de memoria DM es retentiva. Area UM (Memoria de Usuario) Es empleada para almacenar el programa de usuario. Las direcciones en la memoria del programa son ligeramente diferentes que aquellas en las otras áreas de memoria, ya que cada dirección no necesariamente contiene la misma cantidad de datos. Cada dirección mantiene una instrucción (descrito con detalle más adelante). Ya que algunas instrucciones no requieren operandos, mientras que otras requieren hasta tres operandos, una dirección de la memoria del programa puede ser de una o cuatro palabras de largo. Esta área de memoria es retentiva. 24 www.infoPLC.net Estructura de los PLC 2.2.3 Fuente de alimentación La fuente de alimentación proporciona las tensiones necesarias para el funcionamiento de los distintos circuitos del sistema. Un PLC está formado por bloques que requieren niveles de tensión y de potencia diferentes y que, además, están sometidos a condiciones ambientales de ruido electromagnético también distintas. Por todo ello, es frecuente que la alimentación se obtenga de varias fuentes separadas, procurando independizar las diferentes partes del circuito: • • • Unidad central e interfaces E/S (alimentación Autómata). Alimentación de entradas. Alimentación de salidas (cargas) de tipo electromagnético. Esta división, salvo en pequeños compactos, suele mantenerse en todos los PLC´s, que necesitan al menos de dos fuentes de alimentación independientes: • • Alimentación del Autómata (CPU, Memoria e interfaces). Alimentación de los emisores de señal y de los actuadores de salida. La alimentación de la CPU puede ser continua a 24 Vcc, tensión muy frecuente en cuadros de distribución , o en alterna a 110/220 Vca. En cualquier caso, la propia CPU alimenta las interfaces conectadas a través del bus interno. La alimentación a los circuitos E/S puede realizarse, según los tipos, en alterna a 48/110/220 Vca, o en continua a 12/24/48 Vcc. La fuente de alimentación del Autómata puede incorporar una batería tampón (o de respaldo), que se emplea para el mantenimiento de algunas posiciones internas (relevadores o registros) y del programa de usuario en memoria RAM, cuando falla la alimentación o se desconecta el PLC. La capacidad de esta batería normalmente a 3.5 V, oscila entre los 1500 mAh y 1 año de vida para las más pequeñas utilizadas en los Autómatas compactos, y los 5000 mAh y 10 años de vida en las necesarias en Autómatas modulares de gama alta. Los fabricantes proporcionan, sobre todo en sistemas modulares tipo rack, módulos de alimentación con diferentes tensiones de salida y niveles de potencia suficientes, en general, para cubrir cualquier necesidad de alimentación. La elección de uno u otro esquema de alimentación para un sistema de PLC depende fundamentalmente de las características de sus entradas y salidas: • • • • Niveles de potencia necesarios para la aplicación. Compatibilidad entre la tensión auxiliar suministrada por el PLC y las necesidades en el sistema de E/S. Funcionamiento o no de sensores y cargas a igual tensión de alimentación. Necesidad de aislamiento galvánico en el sistema de E/S. 25 www.infoPLC.net Estructura de los PLC En la tabla 2.2 se muestran algunas de las característica nominales de fuentes de alimentación. TENSION DE ENTRADA (V) TENSION DE SALIDA (V) CORRIENTE NOMINAL DE SALIDA (A) FRECUENCIA PROTECCION SOBRECORRIENTE APLICACIONES 100/ 240 ca 12 cd 100/120 ca 200/240 ca 12 cd 24 cd 12 cd 100/120 ca 200/240 ca 24 cd 1.25 2.00 1.70 1.00 50/60 Hz 50/60 Hz --- 50/60 Hz SI CPU + E/S SI CPU + E/S SI CPU + E/S SI E/S Tabla 2. 2 Características nominales de fuentes de alimentación. 2.2.4 Unidades de entrada-salida Las interfaces de entrada y salida establecen la comunicación entre la unidad central y el proceso, filtrando, adaptando y codificando de forma comprensible para dicha unidad las señales procedentes de los elementos de entrada, y decodificando y amplificando las señales generadas durante la ejecución del programa antes de enviarlas a los elementos de salida. En los PLC´s compactos, las E/S están situadas en un solo bloque junto con el resto del Autómata. En los Autómatas modulares o PLC´s modulares, las E/S son módulos o tarjetas independientes con varias E/S, y que se acoplan al bus de datos por medio de su conductor o conector correspondiente, o bien a un bastidor o rack, que le proporciona dicha conexión al bus y su soporte mecánico. Las funciones principales d las unidades de E/S son el adaptar las tensiones e intensidades de trabajo de los captadores y actuadores a las de trabajo de los circuitos electrónicos del PLC; realizar una separación eléctricamente los circuitos lógicos de los de potencia, generalmente a través de opto acopladores, y proporcionan el medio de identificación de los captadores y actuadores ante el procesador. 2.2.4.1 Entradas Las entradas son fácilmente identificables, ya que se caracterizan físicamente por sus bornes para acoplar los dispositivos de entrada o captadores, por su numeración y más que nada por su identificación INPUT o ENTRADA; llevan además una indicación luminosa de activado por medio de un LED. En cuanto a su tensión, las entradas pueden ser de tres tipos: 26 www.infoPLC.net Estructura de los PLC • • • Libres de tensión. A corriente continua. A corriente alterna. En cuanto al tipo de señal que reciben, éstas pueden ser: analógicas y digitales. a) Analógicas: Cuando la magnitud de la señal que se acopla a la entrada corresponde a una medida de, por ejemplo presión, temperatura, velocidad, etc. esto es, una señal analógica, es necesario disponer de este tipo de módulo de entrada. Las E/S analógicas pueden poseer cualquier valor dentro de un rango determinado especificado por el fabricante. Se basan en conversores A/D y D/A aislados de la CPU (ópticamente o por etapa de potencia). Estas señales se manejan a nivel de byte o palabra (8/16 bits) dentro del programa de usuario. Véase la tabla 2.3. CAMPO O RANGO DE INTENSIDAD O TENSIÓN 0…10 V 4…20 mA 0…±10 V 4…20 mA RESOLUCIÓN 8 bits 8 bits 12 bits 12 bits TIEMPO DE CONVERSIÓN 1mS 1mS 1mS 1mS PRECISIÓN ±(1 % + 1 bit) en entradas y ±1 % en salidas Tabla 2. 3 Parámetros más significativos de estos módulos. b) Digitales Son las mismas utilizadas y corresponden a una señal de entrada de todo o nada, esto es, a un nivel de tensión o a la ausencia de la misma. Ejemplo de elementos de este tipo son los finales de carrera, interruptores, pulsadores, etc. Estas E/S se manejan a nivel de bit dentro del programa de usuario. 2.2.4.2 Salidas La identificación de las salidas se realiza igual que en las entradas, figurando en este caso, la indicación de OUTPUT o SALIDA. Es en las salidas donde se conectan o acoplan los dispositivos de salida o actuadores, e incluye un indicador, por medio de un LED, de activado. Los tipos de salida que se pueden tener en un PLC son: • • • Con relevadores. Con triac´s. Con transistores. Mientras que la salida con transistores se utiliza cuando los actuadores son a corriente continua, las salidas con relevadores y triac´s suelen utilizarse para actuadores a corriente alterna 27 www.infoPLC.net Estructura de los PLC En cuanto a las intensidades que soportan cada una de las salidas, esta es variable, pero suele oscilar entre 0.5 y 2 A. Al igual que las entradas, pueden ser analógicas y digitales, si bien esta última es la más utilizada. En las analógicas es necesario un convertidor digital analógico (DAC) que nos realice la función inversa a la entrada. Las E/S son leídas y escritas dependiendo del modelo y del fabricante, es decir pueden estar incluidas sus imágenes dentro del área de memoria o ser manejadas a través de instrucciones específicas de E/S. 2.2.5 Áreas de interfaces Son los circuitos que permiten la comunicación de la CPU con el exterior llevando la información acerca del estado de las entradas y transmitiendo las ordenes de activación a las salidas. Constan de enlaces del tipo RS-232 o RS-422, y efectúan la comunicación mediante el código ASCII. Asimismo, permiten la introducción, verificación y depuración del programa mediante la consola de programación, así como la grabación del programa a casete, en memoria EPROM, comunicación con el TRC (monitor), impresora, etc. Por último, y para efecto de apreciar de una forma globalizada el conjunto formado por un Autómata programable o PLC y su entorno se presenta, a continuación, la figura 2.7, en la cual se muestran mediante la identificación (a), (b), (c) y (d) las distintas posibilidades de conexión de equipos de programación y sus posibilidades en cuanto al almacenamiento de programas y lenguajes de programación. 2.2.6 Tipos y unidades de programación La unidad de programación es el medio material o físico del que se auxilia el programador para grabar o introducir en la memoria de usuario las instrucciones del programa. Pero esta unidad realiza, además, otras tareas fundamentales. 2.2.6.1 Funciones principales de los equipos de programación La gama de funciones que son capaces de ejecutar los equipos de programación son múltiples y variadas, aumentando el tipo de éstas en razón directa a la complejidad del equipo. Entre dichas funciones principales podemos encontrar: a) Programación • • • 28 Introducción de instrucciones (programa). Búsqueda de instrucciones o posiciones de memoria. Modificación del programa: Borrado de instrucciones. Inserción de instrucciones. Modificación de instrucciones. www.infoPLC.net Estructura de los PLC • • • c) Grabación de programas • • • • c) En cinta casete. En chip de memoria EPROM o EEPROM. En papel mediante impresora. En disquete mediante PC. Visualización y verificación dinámica del programa • • • d) Detección de errores de sintaxis o formato. Visualización del programa de usuario o parte del mismo, contenido en la memoria de usuario. Forzamiento del estado de marcas, registros, contadores, temporizadores, etc. Del programa o parte de él. De entradas y salidas. De temporizadores, contadores, registros, etc. Modos de servicio • • • STOP (off-line), o salidas en reposo. RUN (on-line), o ejecutando el programa. Otros modos intermedios como MONITOR, etc. 29 www.infoPLC.net Estructura de los PLC Figura 2. 10 Estructura completa del PLC 30 www.infoPLC.net Estructura de los PLC 2.2.6.2 Tipos de unidades de programación Desde el punto de vista constructivo, podemos distinguir tres tipos principales: a) Unidades tipo calculadora Son las más comúnmente utilizadas en los PLC de gama baja; consta del correspondiente teclado, conmutador de modos, display de cristal líquido o siete segmentos de dos o más líneas, así como de las entradas para la grabación del programa de usuario. Puede ser totalmente independiente, ser enchufada directamente en la CPU, o con ambas posibilidades. En las de pocas líneas (2 o 4), sólo es posible escribir mnemónicos, pero en las de pantallas llamadas de programación gráfica pueden visualizarse algunas líneas de programa de lenguajes gráficos, datos del programa, etc. Figura 2. 11 Ejemplo de una unidad de programación tipo calculadora. b) Consola de programación Esta en una posición intermedia entre la unidad de programación tipo calculadora y el tipo PC. Consta de pantalla de plasma o tipo similar y tamaño suficiente para 20, 30 o más líneas y 60, 80 o más caracteres por línea, así como teclado. Al igual que el PC que se describe a continuación, utiliza el software de programación preciso para los lenguajes utilizados en el PLC, almacenando los programas en disquete (ver la figura2.12). c) Unidad con PC Esta unidad que se adapta al PLC mediante el interfaz correspondiente, lleva incorporado un monitor de tubo de rayos catódicos (TRC) y realiza la misma función que la unidad de programación normal, pero con mayores prestaciones permitiendo visualizar los esquemas o diagramas completos o partes importantes de los mismos. Este equipo incorpora el software 31 www.infoPLC.net Estructura de los PLC necesario para poder trabajar en más de un lenguaje de programación, incluso realiza la transformación de lenguajes (véase la figura 2.12). Figura 2. 12 Ejemplo de una unidad de programación tipo consola. Por otro lado, las instrucciones que se introducen en la unidad de programación, no son directamente interpretables por el procesador, que se ha de auxiliar de un circuito intermedio llamado Compiler o Compilador. Dicho Compilador representa el elemento intermedio o unión entre el PLC y la unidad de programación. Su misión, es la de traducir la información textual de la unidad de programación al lenguaje máquina y viceversa mediante unos códigos intermedios que son interpretados por un programa residente en el firmware. Cabe mencionar que, algunos fabricantes en sus modelos de gama baja incluyen en los mismos PLC´s una unidad fija de programación (véase la figura 2.1), o bien, un tipo de miniconsola de programación, la cual se adapta al PLC por medio de un conector RJ45. Véase la figura 2.13. Figura 2. 13 Unidad de programación con una PC 32 www.infoPLC.net Estructura de los PLC Figura 2. 14 PLC de gama baja de la marca Keyence, el cual emplea una unidad de programación enchufable tipo miniconsola 2.2.7 Periféricos Como elementos auxiliares y físicamente independientes de los PLC´s, los periféricos realizan funciones concretas de gran importancia. Algunos de los equipos periféricos empleados por los Autómatas o PLC´s de la gama baja son: • • Impresora, que permite obtener en papel el listado de instrucciones o programa de usuario, el de temporizadores, contadores, etc., utilizados, así como los esquemas correspondientes. Unidades de cinta o memoria, por medio de las cuales grabamos los programas en cinta casete o chips de memoria EPROM o EEPROM, respectivamente. Algunos otros de los equipos que se utilizan en la gama media o en algún caso en la gama baja serían: • • • • • Monitores de tipo TRC. Lectores de código de barras. Displays y teclados alfanuméricos. Unidad de teclado y tests Etc. 2.2.8 Tamaño de los PLC La clasificación de los PLC´s en cuanto a su tamaño se realiza en función del número de sus entradas-salidas; de esta manera, son tres los grupos de PLC´s que podemos encontar: 1. 2. 3. Gama baja. Hasta un máximo de 128 entradas-salidas. La memoria de usuario de que disponen suele alcanzar un valor máximo de 4 K-instrucciones. Gama media. De 128 a 512 entradas-salidas. La memoria de usuario de que disponen suele alcanzar un valor máximo de hasta 16 K-instrucciones. Gama alta. Más de 512 entradas-salidas. Su memoria de usuario supera en algunos casos los 100 K-instrucciones. 33 www.infoPLC.net Estructura de los PLC 2.3 CONFIGURACIÓN DE E/S El sistema de entradas/salidas de un PLC está formado por las interfaces E/S y los bastidores de soporte de los mismos que en conjunto: • • Permiten el intercambio de información entre el autómata y la planta, y Proporcionan un soporte físico para la identificación o direccionamiento de los dispositivos E/S conectados a los bornes. Para dimensionar correctamente el autómata y reducir los costes del hardware, parece conveniente adaptar el número de entradas/salidas conectadas a una misma CPU a las necesidades reales del usuario, por lo que los fabricantes proveen de modularidad a sus equipos. Esta modularidad se hace más necesaria en autómatas de gamas medias y altas y montaje en “rack” o bastidor, donde se dispone de CPU con potencia de cálculo elevada que necesitan controlar un número variable, menor o mayor según la aplicación, de puntos de entrada y salida, incluso situados a gran distancia de la unidad de control. Los PLC´s disponen entonces de módulos o tarjetas E/S independientes, con sus circuitos de interfaz, conexión al bus interno y borneo exterior. Los módulos que se suministran por separado de la CPU, permiten configurar al sistema de entradas/salidas a la medida del usuario. Aunque la existencia de interfaces E/S conectables a bastidor es característica de autómatas modulares, las ventajas que aportan en adaptabilidad y flexibilidad del sistema E/S han llevado a su desarrollo incluso para autómatas compactos o miniautómatas. Estas máquinas permiten ampliar sus entradas/salidas no por conexión de tarjetas en un bastidor, que no existe para ellos, sino utilizando unidades de expansión compactas, conectadas por cable con una distribución rígida de los bornes sobre la que el usuario no puede actuar (ver la figura 2.2) Se tiene así que en los desarrollos con autómatas programables existe una gran variedad de configuraciones y posibilidades constructivas en los sistemas de entrada/salida, utilizando los módulos y unidades de expansión disponibles. En la siguiente gráfica aparecen los diferentes tipos de configuraciones del sistema de entrada/salida. 34 www.infoPLC.net Estructura de los PLC Figura 2. 15 Configuración del sistema de E/S Las entradas/salidas centralizadas se conectan directamente a la CPU del autómata, con transmisión de datos en paralelo, mientras que las entradas/salidas distribuidas se unen con el autómata base a través de un módulo de interconexión o procesador de enlace E/S (I/O Master Unit), con transmisión serie de datos sobre cable o fibra. El sistema de entradas /salidas distribuidas puede, a su vez, estar compartido por varios procesadores o autómatas, en sistemas de control distribuido que implementan estructuras sofisticadas y complejas. 2.3.1 Entradas/Salidas centralizadas Las entradas/salidas centralizadas se disponen en las inmediaciones de la CPU, o autómata base, a fin de aumentar el número de puntos E/S disponibles, dentro de la capacidad de direccionamiento del procesador. Estas entradas/salidas responden a las siguientes características: • • • • • Se conectan a la CPU a través del bus interno del autómata, sin intervención de algún tipo de adaptador o procesador de comunicaciones. Las transferencias de datos se realizan en paralelo. Están colocadas a distancias menores a 5 mts. del autómata base. Según modelos, pueden no usar fuente de alimentación propia, recogiendo las tensiones de trabajo sobre las líneas del bus interno o de la interfaz amplificadora. La expansión se limita normalmente a interfaces E/S digitales e interfaces analógicas sin tratamiento de señal. En las configuraciones de estas unidades E/S centralizadas hay que distinguir entre las correspondientes a: 35 www.infoPLC.net Estructura de los PLC • • Autómatas de entradas/salidas compactas, y Autómatas de entradas/salidas modulares que presentan diferentes características de conexión. Ambos casos tratados en la sección 2.1 Estructura o arquitectura externa. 2.3.2 Entradas/Salidas distribuidas Es frecuente que las máquinas o procesos bajo control no se encuentren localizados en un mismo punto, sino distribuidos en una amplia superficie, una nave industrial, por ejemplo. También puede ocurrir, que una vez decidido colocar una CPU de cierta potencia de cálculo para cubrir las necesidades en un punto de la instalación, se decida aprovechar la misma CPU para controlar otros puntos o zonas de la planta. En ambos casos se plantea la necesidad de conectar el autómata con sensores y actuadores alejados de él. Normalmente, estas conexiones no se realizan por cableado directo entre los elementos de la planta y los bornes de E/S del autómata centralizado: los costes del cableado y los riesgos de error o avería aumentan proporcionalmente con el número de elementos conectados. La solución pasa por colocar las interfaces allí donde se necesitan y conectarlas después con la CPU a través de un módulo de interconexión o procesador de enlace E/S, que agrupa las señales en tramas o paquetes binarios y las envía después por transmisión serie sobre únicamente un canal de conexión, resultando entonces una configuración de entradas/salidas distribuidas o descentralizadas (ver la figura 2.15). Si el número de puntos E/S a conectar es pequeño, pueden utilizarse módulos o tarjetas especiales que contienen en un mismo cuerpo el procesador de enlace y algunas interfaces, 4 u 8, por ejemplo, de entradas/salidas. En cualquier caso, como siempre, el número total de entradas/salidas resulta limitado por el tipo de CPU utilizada. Figura 2. 16 Reducción de cableado utilizando entradas/salidas distribuidas Las ventajas del modelo de conexión distribuida son las siguientes: 36 www.infoPLC.net Estructura de los PLC • • • Permite control a distancia de equipos y sistemas manipulando las variables locales desde un único programa en la CPU principal. Disminuyen los costes de instalación, al sustituir el cableado necesario entre los elementos de la planta y la CPU por una conexión única de hilo eléctrico o fibra óptica, a través de procesadores de comunicaciones maestro-esclavo. Permite ahorro de costes de montaje y material, suprimiéndose incluso los bornes intermedios de conexión. Por otro lado, según la conexión con el autómata base que contiene la CPU, las expansiones de entradas/salidas distribuidas pueden adoptar las siguientes configuraciones: • • • Bus: Un solo procesador de enlace en la unidad base se conecta en bus con cada uno de los procesadores locales (Ver figura 2.16). Estrella: La unidad base contiene tantos procesadores de enlace como unidades de expansión se necesiten, de forma que es posible la desconexión total de cualquiera de ellos sin afectar el funcionamiento del conjunto (Ver figura 2.17). Mixta: La unidad base contiene procesadores independientes para cada expansión, pero, a su vez, cada una de estas expansiones puede estar formada por varias unidades conectadas en bus entre sí (Ver figura 2.18). Dependiendo de las distancias de interconexión, es posible una clasificación adicional de estas entradas/salidas distribuidas. Así, se distingue entre entradas/salidas locales o remotas. Esencialmente, una unidad de entradas/salidas distribuidas es local cuando las unidades de expansión se colocan a distancias entre 50 y 100 metros, lo que impide la conexión directa al bus interno característica de los sistemas centralizados. Por esta razón deben existir procesadores de enlace E/S en la unidad base y en la unidad de expansión, que se encargan de efectuar las conversiones serie/paralelo y paralelo/serie entre el bus interno del autómata y las líneas de comunicación serie, y de supervisar la integridad de las comunicaciones. Al igual que las expansiones centralizadas de entradas/salidas, las distribuidas locales se limitan normalmente a interfaces E/S digitales e interfaces analógicas sin tratamiento de señal. Sin embargo, a diferencia de aquellas, las unidades incluyen su propia fuente de alimentación y la comunicación con la CPU se realiza a través del un canal serie. Las E/S distribuidas se denominan remotas cuando la distancia de conexión con la unidad base es superior a 100 metros, alcanzando en algunos modelos hasta algunas decenas de kilómetros. La comunicación, siempre vía serie, entre el procesador maestro en la unidad base y los procesadores esclavos en las unidades de expansión, se realiza mediante interfaces estándar RS 232/422/485, utilizando protocolos específicos del fabricante (protocolos propietarios), o buses de campo normalizados (PROFIBUS, MODBUS, etc.), sobre soporte eléctrico u óptico. Precisamente la distancia máxima entre estaciones, y la longitud total del bus de expansión dependen del soporte o medio físico empleado, cable eléctrico o fibra óptica, aunque los valores finales son muy variables dependiendo del fabricante. 37 www.infoPLC.net Estructura de los PLC Figura 2. 17 Expanciones de E/S con estructura de bus En la tabla siguiente se muestra una comparación aproximada entre estos diferentes medios. Medio de transmisión Distancia máxima Par trenzado, con malla 2000 m Cable coaxial 4000 m Fibra óptica 20 Km (*) Depende de la distancia Tabla 2. 4 Medios de transmisión. 38 Velocidad (*) 375 KBd 1.5 MBd 1.5 MBd www.infoPLC.net Estructura de los PLC Figura 2. 18 Expanción de E/S con estructura de estrella. Figura 2. 19 Expanciones de E/S con estructura mixta estrella-bus. 39 www.infoPLC.net Estructura de los PLC 40 www.infoPLC.net Interfaces de Entrada / Salida 3.0 3.1 INTERFACES DE ENTRADA / SALIDA INTRODUCCIÓN Las interfaces de Entrada/Salida proveen al control del proceso un diálogo operadormáquina y comunicación entre la máquina y sistema de control. Para un sistema de control, las entradas son el conjunto de señales externas que recibe, unas de mando y otras de realimentación; éstas van desde un simple pulsador o final de carrera hasta la medición de cualquier magnitud física que intervenga en el proceso. Las salidas dan al operador datos sobre el estado del proceso y a los accionamientos las órdenes oportunas para controlarlo. Las salidas pueden consistir en señales de todo-nada actuando sobre relés, electroválvulas u otros elementos electromecánicos o señales analógicas o digitales para señalización en instrumentos de medida, visualizadores, impresión de mensajes, mostrar el estado de los sensores, accionamientos, etc. El PLC se diferencia de otros sistemas programables esencialmente por que dispone de un bloque de circuitos de interfaz de E/S muy potente, que le permite comunicarse con un entorno exterior en el que se manejan señales de potencia, con tensiones y corrientes de nivel industrial, también suelen disponer de buses de comunicación digital similares a los que normalmente incorporan los sistemas informáticos. Un factor muy importante en la elección del autómata es seleccionar adecuadamente las interfaces de E/S en cada caso para conseguir una alta fiabilidad y disponibilidad del sistema debido a que estos circuitos son los más directamente ligados a señales de campo con cableados largos y por tanto, sujetos a ruidos y perturbaciones eléctricas e incluso a fuertes sobrecargas en caso de cortocircuitos u otros accidentes imprevistos. 3.2 TIPOS DE INTERFACES DE E/S Se entiende por interfaz cualquier bloque que sirve de enlace entre otros dos. Los bloques a enlazar podrán trabajar, en general, con niveles distintos de voltaje e incluso con códigos distintos. Tenemos entonces dos funciones básicas de la interfaz: • • Enlace a nivel de hardware (niveles y tipo de voltaje) Enlace a nivel de código (estados lógicos, conversión A/D o D/A, tipo de código de señal, etc. La interfaz puede variar en complejidad dependiendo del tipo de señales que empleen los sistemas a enlazar. Podemos clasificar a las señales se mando y a las de proceso en entornos industriales en dos grandes grupos: 41 www.infoPLC.net Interfaces de Entrada / Salida • • Señales de todo-nada: Codificación digital binaria (un bit). Señales continuas, con dos tipos posibles de codificación: - Analógica - Digital en palabras de determinada longitud (8, 16 bits, etc.). Dependiendo del sentido o sentidos de enlace, las interfaces podrán ser: • • Unidireccionales, un solo sentido. Bidireccionales, en ambos sentidos, ya sea conmutado de un sentido a otro (halfduplex) o simultáneamente en ambos sentidos (full-duplex). El enlace entre sistemas digitales que intercambian información en forma de palabras, requiere una interfaz que maneja dos tipos de señales: • • Datos: contienen la información útil. Señales de control o de Protocolo: controlan el flujo de información. Para sistemas digitales programables, puede establecerse una división entre dos partes de la interfaz: • • Interfaz de hardware: enlace del nivel de voltaje y estados lógicos. Interfaz de software: interpretación de códigos y de las señales de control. La siguiente tabla resume los tipos de interfaces de E/S más comunes en los autómatas programables y las funciones básicas que debe realizar en cada caso la interfaz. TIPOS CODIFICACIÓN SENTIDO FUNCIONES DE LA INTERFAZ Adaptación de niveles de tensión ENTRADAS Filtrado de perturbaciones TODO O Aislamiento eléctrico BINARIA NADA 1 bit Adaptación de niveles de tensión SALIDAS Amplificación de corriente Aislamiento eléctrico ANALÓGICAS ENTRADAS Adaptación y filtrado de señal (0, ±10V) Conversión A/D (4, 20mA) SALIDAS Conversión D/A Adaptación a 0, ±10 V o 4, 20mA ENTRADAS Selección de canal y multiplexado CONTINUAS Conversión de códigos DIGITALES SALIDAS Conversión de códigos (Bin <-> ASCII <-> 7segmentos) (8, 16, 32... bits) Amplificación de corriente BIDIRECCIONES Conversión de código (serie <-> paralelo) Protocolo de diálogo (hardware +software) Tabla 3.1 Tipos y funciones de las interfaces de entrada/salida. 42 www.infoPLC.net Interfaces de Entrada / Salida 3.3 ENTRADAS/SALIDAS DIGITALES Las interfaces de entrada digitales son aquellas que conectan el autómata con señales de proceso de tipo binario o con grupos de señales binarias formando palabras. Siendo el PLC sucesor de muchos sistemas antiguos basados en relés, está especialmente adaptado a las señales binarias, ésta es una característica que le distingue de otros sistemas de control industrial como robótica, máquinas-herramienta e incluso sistemas informáticos. Un criterio importante de clasificación de los autómatas estriba precisamente el número de E/S y su CPU suele estar especialmente adaptada al tratamiento de bits. Las señales de entrada lógicas (todo-nada) proceden generalmente de contactos electromecánicos (interruptores, finales de carrera, etc.) y las salidas suelen activar bobinas de electroimanes (relés, electroválvulas, etc.). Ambas tienen en común que suelen estar alimentados con tensiones alternas de 24 a 220VCA o tensiones de 24 a 110VCC. La interfaz para estas señales suele ser una interfaz de hardware unidireccional. Las entradas captan los niveles de tensión de entrada y se convierten a niveles lógicos TTL; en el caso de las salidas se hace la conversión inversa. Una característica muy importante en estas interfaces es el aislamiento eléctrico entre los circuitos internos del autómata que operan con niveles TTL y los circuitos externos. Este aislamiento presenta enormes ventajas como protección ante sobrevoltaje, inmunidad al ruido eléctrico y otras perturbaciones a las que suelen estar sometidas las señales externas. Este aislamiento exige tener fuentes de alimentación separadas para la lógica interna del autómata y para las E/S, estas fuentes pueden estar contenidas dentro del mismo autómata o ser externas para alimentar las E/S o incluso independientes para entradas y salidas. La siguiente figura resume los tipos de interfaces de E/S digitales: Corriente Continua PNP NPN Entradas Corriente Alterna ENTRADAS/ SALIDAS DIGITALES Corriente Continua Salidas PNP NPN Corriente Alterna Relé Figura 3.1 Interfaces de E/S digitales 43 www.infoPLC.net Interfaces de Entrada / Salida 3.3.1 Entradas lógicas Las interfaces de entrada para señales binarias pueden clasificarse en distintos tipos según sus características. Por el tipo de voltaje de alimentación: • • De corriente alterna (CA). Los valores de tensión más frecuentes son 24, 48, 110 y 220250 VCA. De corriente continua (CC). Con voltajes de 12, 24, 48 y 110 VCC. Y según la polaridad de la fuente conectada al común: - PNP: Común de alimentación a negativo. - NPN: Común de alimentación a positivo. Según el aislamiento de la interfaz: • • Eléctricamente aislado: Alimentaciones completamente separadas de las E/S y de la lógica interna. Este aislamiento se consigue con opto acopladores y es el más empleado por su seguridad. Acoplamiento directo: Señales sin aislamiento eléctrico que por tanto, requieren unir el común de alimentación de E/S al cero de la lógica interna. En desuso. Un punto importante a considerar en las interfaces de entradas binarias es el margen de ruido, que es el rango de valores que puede tomar dicha señal siendo interpretada inequívocamente como nivel lógico 0 o 1. Este parámetro permite determinar el máximo nivel de perturbación que puede superponerse a una señal de entrada sin que el sistema lógico interprete erróneamente su nivel lógico. Se distinguen dos márgenes de ruido: • • 44 Estático. Se aplica a señales que permanecen durante un tiempo significativamente mayor que la constante de tiempo de respuesta de dicha interfaz. El margen de ruido estático de nivel 0 es el rango de valores para un voltaje de entrada permanente que la interfaz interpretará como nivel 0. De igual manera para el nivel 1, es el rango de valores de voltaje de entrada permanente que la interfaz interpretará como 1. Para voltajes de entrada entre ambos márgenes de ruido, la interfaz dará un estado lógico indeterminado y la señal de entrada sería erróneamente interpretada por el PLC. Dinámico. Aplicable a señales transitorias cuya duración es inferior a la constante de tiempo de respuesta de la interfaz. Los márgenes de ruido dinámico para los niveles 0 y 1 son la máxima amplitud de perturbación de cierta duración que no producen cambio de estado lógico a la entrada. www.infoPLC.net Interfaces de Entrada / Salida 3.3.1.1 Entradas de corriente directa PNP La diferencia entre las entradas PNP y NPN es, si la carga (en ése caso el PLC es la carga) va a tierra o al polo positivo de la fuente de alimentación. Un dispositivo PNP tiene la carga conectada a un voltaje positivo: Figura 3.2 Dispositivo PNP Las entradas PNP trabajan con lógica positiva y se conectan de la siguiente manera: • • • Se unen por un extremo todos los interruptores y se conectan al común de entradas o de interruptores del PLC, que en el caso de la interfaz PNP será al positivo de la fuente de alimentación. El otro extremo de cada uno de los interruptores se conectan a las distintas terminales de entrada del PLC. Opcionalmente, si se utiliza una fuente de alimentación separada del autómata para las E/S, el común de la interfaz deberá conectarse al negativo de la fuente de alimentación de E/S. De la figura 3.3 se observa que cada entrada dispone de un filtro RC para aumentarla inmunidad a perturbaciones, ya que aumenta el margen dinámico de ruido. Para cualquier sensor o interruptor estático en la entrada deben analizarse dos parámetros fundamentales: La corriente de fuga del detector o sensor y la impedancia de entrada a la interfaz. El producto de ambos no debe exceder el margen superior de ruido de entrada a nivel 0, de lo contrario la interfaz interpretará erróneamente el nivel 1. Las señales de entrada, ya adaptadas a los niveles de voltaje internos del PLC, se conectan al bus interno mediante un multiplexor, que será explorado durante la fase de lectura de las entradas para su registro en la memoria de E/S. 45 www.infoPLC.net Interfaces de Entrada / Salida Figura 3.3 Conexión de interruptores a entradas tipo PNP 3.3.1.2 Entradas de corriente directa NPN La interfaz NPN tiene características muy semejantes a las PNP, la diferencia radica en que éstas emplean lógica negativa en vez de positiva. Un sensor NPN tiene la carga conectada a tierra: Figura 3.4 Dispositivo NPN La conexión es inversa a la PNP: • 46 Se unen por un extremo todos los interruptores y se conectan al común de interruptores, en este caso, al polo negativo de la fuente E/S. www.infoPLC.net Interfaces de Entrada / Salida • • El otro extremo de cada uno de los interruptores se conecta a los distintos terminales de entrada del autómata. Igualmente, si se utiliza una fuente de alimentación separada del autómata para las E/S, el común de la interfaz deberá conectarse al positivo de la fuente de alimentación de E/S. Figura 3.5 Conexión a entradas tipo NPN Los voltajes de trabajo de las entradas NPN y PNP son iguales así como su funcionamiento. 3.3.1.3 Entradas de corriente alterna Los módulos de entrada CA son menos usados que los de corriente directa debido a que los sensores tienen comúnmente salidas de tipo transistor. La siguiente figura muestra la conexión típica de un dispositivo CA al módulo de entrada. Por lo general el cable "vivo" de CA está conectado al interruptor, mientras que el "neutro" va al común del PLC. La tierra de CA debe ser conectada a la terminal de tierra del chasis del PLC. 47 www.infoPLC.net Interfaces de Entrada / Salida Figura 3.6 Entradas de CA Como en DC, Las conexiones de AC tienen un código de color, esta codificación varía según el país, en los Estados Unidos son comunes el blanco ("neutro"), negro("vivo") y verde ("tierra"). Fuera de los Estados Unidos el código comúnmente es, azul ("neutro"), café ("vivo"), y verde con una franja amarilla ("tierra"). La figura 3.7 muestra la configuración interna de una interfaz de CA. Estas interfaces incorporan casi siempre aislamiento eléctrico por optoacoplador. Puede observarse que la tensión de entrada es rectificada en la interfaz y que ésta dispone de un filtro RC. La fuente de alimentación será, en este caso, una tensión alterna obtenida de un transformador. Cabe resaltar en este tipo de interfaces, los grandes márgenes de tensión de entrada que admiten tanto en el nivel 0 como en el nivel 1. Por ejemplo, una interfaz para tensión nominal de 220V admite como nivel 0 cualquier voltaje entre 0 y 70V y como nivel 1 a voltajes entre 180 y 260V. Fig. 3.7 Conexión de interruptores a entradas tipo CA 48 www.infoPLC.net Interfaces de Entrada / Salida 3.3.2 Salidas lógicas Son las interfaces que conectan el autómata con los accionamientos del proceso tales como relés, electroválvulas, etc. Una característica común a todos ellos suele ser que disponen de un buffer o registro donde el procesador escribe una sola vez por ciclo el valor 1 o 0 según corresponda; este registro constituye el bloque lógico de enlace entre la lógica interna y la interfaz. Según sus características, se pueden clasificar las interfaces de salida en diferentes grupos. Por los componentes utilizados como salida, podemos distinguir en dos grandes grupos: • • Interfaces de salida estáticas. Éstas emplean algún tipo de semiconductor para conmutar la salida, y se derivan dos grupos según el tipo de voltaje: - De corriente directa. El conmutador de salida es un transistor de colector abierto pudiendo ser NPN o PNP según la polaridad. - De corriente alterna. El conmutador de salida suele ser un triac o un par de transistores en antiparalelo. Interfaces de salida por relé. Este tipo es válido tanto para CD como para CA y proporciona siempre aislamiento eléctrico entre la salida y la lógica interna. Por el aislamiento entre el circuito de salida y la lógica interna podemos clasificar las interfaces en: • • Salidas acopladas directamente Salidas aisladas eléctricamente Las salidas de tipo transistor sólo pueden trabajar con cargas en CD. En este tipo de salidas, el PLC aplica una pequeña corriente a la base del transistor y por lo tanto se activará el dispositivo conectado a la salida del PLC. Normalmente un PLC tendrá las salidas de tipo NPN o PNP. El tipo físico del transistor también varía según el fabricante. Algunos de los tipos disponibles son el BJT y el MOSFET. Ambos tienen características particulares: el de tipo MOSFET tiene más capacidad de conmutación, mientras que el BJT es más rápido. En cualquier caso nunca debe excederse la corriente máxima de conmutación del fabricante. 3.3.2.1 Salidas de CD PNP La característica esencial de estas interfaces es que trabajan con lógica positiva, por lo tanto cada salida suministra en estado 1 un voltaje positivo respecto al común de las cargas. La configuración típica de cada salida es la de un transistor PNP a colector abierto con protección de inversión de polaridad y diodo de inversa para cargas inductivas. Por lo tanto admiten como carga: bobinas de relés, solenoides, contadores de impulsos de tipo electromagnético o electrónico, etc. 49 www.infoPLC.net Interfaces de Entrada / Salida Figura 3.8 Interfaz de salidas tipo PNP La conexión de las cargas y la fuente se efectúa de la siguiente manera: • • Se unen por un extremo todas las cargas y se conectan al común de cargas o polo positivo de la fuente E/S. El otro extremo de cada una de las cargas se conecta a los distintos terminales de salida de la interfaz. Las características más destacables de las salidas estáticas a colector abierto, comparadas con las de relé (estudiadas más adelante) son: • • • • • • • 50 Velocidad de respuesta superior. Larga vida útil al no existir desgastes mecánicos. Menor volumen ocupado. Permiten protección de cortocircuito a base de bloquear el transistor de salida. Menor capacidad de carga de la salida. Caída de tensión en el transistor de salida, mayor que la que produce el contacto de un relé. Presentan una pequeña corriente de fuga cuando la salida está en 0. www.infoPLC.net Interfaces de Entrada / Salida 3.3.2.2 Salidas de CD NPN Estas interfaces presentan características muy similares a las PNP, siendo la diferencia que la lógica es negativa, es decir, cada salida suministra en estado 1 un voltaje negativo respecto al extremo común de las cargas. La salida consiste en un transistor NPN a colector abierto y las mismas características que para PNP. Figura 3.9 Interfaz de salida NPN La conexión de las cargas y la fuente de alimentación se efectúa de la siguiente manera: • • Se unen por un extremo todas las cargas y se conectan al polo positivo de la fuente de E/S. El otro extremo de cada una de las cargas se conecta a los distintos terminales de salida de la interfaz. Las ventajas e inconvenientes de este tipo de salidas con respecto alas de relé son las mismas que las expuestas anteriormente. 51 www.infoPLC.net Interfaces de Entrada / Salida 3.3.2.3 Salidas de relé Uno de los tipos más comunes de salidas disponibles son las salidas de relé. Un relé puede usarse con cargas de CA y CD. Tipos comunes de cargas son solenoides, motores, lámparas, etc. Es importante revisar las especificaciones de la carga antes de conectarla a la salida del PLC, debe verificarse también que la corriente máxima que consumirá esté dentro de lo especificado de la salida del PLC. Algunas cargas son aparentes. Son las llamadas cargas inductivas. Estas tienden a liberar una "corriente de retorno" cuando se activan. La corriente de retorno es como picos de voltaje que pasan a través del sistema. Esto puede ser dañino para el PLC; puede estimarse que estos picos son 30 veces la corriente nominal de la carga. Por lo general un diodo, varistor, u otro circuito "snubber" debe usarse para ayudar a evitar cualquier daño al relé. Figura 3.10 Interfaz de salidas de relé Este tipo de interfaz contiene un relé por cada salida, la bobina de dicho relé está controlada por el sistema lógico del AP y sus contactos se encuentran disponibles en bornes externos. Por lo general, cada salida consta de un contacto normalmente abierto, y es frecuente que varios contactos compartan un terminal común tal como se puede ver en la figura anterior. En algunos casos el contacto está protegido mediante un circuito RC o un varistor a fin de evitar las perturbaciones antes mencionadas. 52 www.infoPLC.net Interfaces de Entrada / Salida 3.3.2.4 Salidas estáticas de CA Estas interfaces utilizan un triac como conmutador de salida, un par de tiristores en antiparalelo, varistor o un puente rectificador cortocircuitado por un tiristor y disponen de aislamiento eléctrico mediante optoacoplador. En algunos casos disponen también de algún circuito de protección que bloquea la salida en caso que la carga demande más carga que la permitida. Fig. 3.11 Interfaz de salida estática de CA. Las ventajas de esta interface con respecto a la de relé son las siguientes: • • • • Mayor rapidez de conmutación Ausencia de desgaste mecánico Eliminación al máximo de perturbaciones en la línea debido al cierre al paso por cero de tensión y apertura al paso por cero de la corriente. Menor tamaño Los inconvenientes: • • • • • • • Sensibles a sobrecargas. Sensibles a perturbaciones en la alimentación. Caída de voltaje en estado de paso del orden de 2V. Ligera corriente de fuga en estado de bloqueo. Mayor disipación de potencia y, por tanto, calentamiento. Menor flexibilidad para mezclar varias tensiones de mando Aptas sólo para ciertos márgenes de voltaje. 53 www.infoPLC.net Interfaces de Entrada / Salida 3.4 ENTRADAS Y SALIDAS ANALÓGICAS No todos los Autómatas programables o PLC’s son capaces de manipular señales analógicas, pero es frecuente que existan módulos de ampliación para los tipos compactos o tarjetas analógicas en los tipos de rack, que si son capaces de tratar dichas señales. Paralelamente dichos Autómatas incorporan ciertas funciones de software específicas para tratar este tipo de señales y que permiten controlar valores máximos y mínimos de ciertas variables del proceso, realizar cálculos aritméticos o incluso funciones más complejas para control PID, aplicables a servoválvulas, servomotores, control de temperatura, etc. El procesamiento de datos dentro del Autómata programable es enteramente digital, como corresponde a todo sistema basado en un microprocesador y, por tanto, las señales de tipo analógico deben ser previamente digitalizadas para que puedan ser procesadas. Así pues, para el tratamiento de señales analógicas será preciso ante todo convertir dichas señales a la forma digital. Dicha forma digital consistirá en representar la magnitud de la variable analógica por un número codificado en forma binaria o en forma BCD (Decimal Codificado en Binario). Recíprocamente, si el Autómata programable debe suministrar al proceso variables o señales de regulación continuas, deberá previamente convertir los datos internos en forma binaria o BCD a magnitudes de tipo analógico. El proceso de adaptación que sufren las señales analógicas, tanto en la entrada como en la salida, se muestra en la figura 3.12. Debe tenerse en cuenta que, en general, no se trata de las mismas señales, sino que el Autómata procesará las señales de entrada y elaborará otras de salida, combinando entradas y variables internas y procesándolas con los algoritmos adecuados. D/A D/A MULTIPLEXOR ANALOGICO CONVERTIDOR A/D Analog. CPU AUTOMATA BUS MULTIPLEXOR DIGITAL BUS Dig. D/A ENTRADAS ANALÓGICAS SALIDAS ANALÓGICAS SELECCIÓN DE CANAL Figura 3.12 Proceso de adaptación de las señales de E/S analógicas. 54 www.infoPLC.net Interfaces de Entrada / Salida Las funciones de multiplexado, conversión A/D y D/A indicadas en la figura son precisamente unas de las funciones especiales que realizan las interfaces de E/S analógicas. 3.4.1 Conversión A/D La conversión A/D tiene por objeto la transformación de señales analógicas de tensión o corriente en datos numéricos que, por lo general, se obtendrán en código binario. El proceso de conversión requiere, en general, que la señal analógica haya sido previamente tratada para conseguir dos objetivos: • • Adaptación al fondo de escala, con objeto de aprovechar al máximo la resolución del convertidor. Mantener el valor de la señal constante durante la conversión. Esto es especialmente necesario para las señales de variación rápida, pero que no puede serlo para otras más lentas o incluso, para ciertos tipos de convertidores. Para realizar estas funciones, las interfaces de entrada analógicas suelen disponer de un amplificador de ganancia programable y de un circuito de muestreo y retención (Sample & Hold). El amplificador de ganancia programable consiste esencialmente de un amplificador operacional con varias resistencias de retroalimentación conectadas a través de un multiplexor analógico, cuya función consiste básicamente en adaptar la escala de la señal de entrada de tal forma que los convertidores A/D puedan realizar un muestreo de la señal analógica como paso previo a la conversión. Como consecuencia de ello se obtienen sólo valores puntuales de la magnitud continua (en realidad la señal continua queda aproximada por una señal escalonada). Posteriormente, el circuito de muestreo y retención denominado abreviadamente S&H, adquiere el valor puntual de la señal analógica y posteriormente, lo mantiene mientras dura la conversión. Dicho circuito está basado en la carga de un condensador durante la fase de muestreo y el mantenimiento de su tensión mientras dure la conversión. Los tipos básicos de convertidores A/D que se pueden encontrar en un PLC o Autómata programable son: • • • Convertidores basados en contadores binarios. Convertidores de aproximaciones sucesivas. Convertidores de doble rampa de integración. 55 www.infoPLC.net Interfaces de Entrada / Salida 3.4.1.1 Convertidores basados en contadores binarios Como veremos a continuación, podemos tener dos tipos de convertidores basados en contadores binarios, los cuales son convertidores basados en un contador unidireccional y los convertidor es basados en un contador bidireccional. a) Convertidores a base de un contador unidireccional. Este tipo de convertidores constan básicamente de un contador binario, un convertidor D/A como retroalimentación y un amplificador operacional que compara la magnitud de la entrada analógica con el contenido del contador a través del convertidor D/A. El funcionamiento de este sistema es el siguiente: se da una señal de inicio de conversión, que pone al contador a cero y lo habilita para que entren los impulsos de reloj. A partir de esto, el contador va incrementando su valor a cada impulso de reloj y el comparador comprueba si el valor del contador es mayor o menor que la señal analógica de entrada. Mientras sea menor se permitirá la entrada de nuevos impulsos de reloj, pero cuando el contador llegue a superar el valor de la entrada se inhiben los impulsos de reloj y se genera una señal de fin de conversión. El contenido del contador en este instante será la palabra binaria que representa a la magnitud analógica de la entrada. b) convertidores basados en un contador binario bidireccional. Este tipo de convertidores se basan en el mismo principio que los anteriores, con la salvedad de que no hay propiamente un inicio y un final de conversión, sino que el contador incrementa o decrementa su conteo dependiendo de que si su salida es menor o mayor al valor de la señal de entrada respectivamente. 3.4.1.2 Convertidores de aproximaciones sucesivas El método de conversión de aproximaciones sucesivas se basa en ir tanteando el valor digital de salida d forma que el primer valor de tanteo es el que corresponde a mitad de escala, es decir, se coloca un 1 en el MSB. Se comprueba entonces si este valor es mayor o menor que el valor analógico de entrada. Si es mayor, se pone un 0 en el MSB y si es menor se pone un 1 en dicho bit. Se sigue el tanteo con el siguiente bit por el lado de más peso, lo cual supone dividir otra vez la escala por dos, y se actúa de forma análoga al caso anterior. El proceso finaliza cuando se han tanteado todos los bits, es decir, después de n ciclos de reloj, siendo n el número de bits de la palabra digital. Este tipo de convertidor, es mucho más rápido que los vistos anteriormente, sobre todo para palabras de gran número de bits. En cuanto a su resolución, ésta sólo depende del número de bits y del valor máximo de la señal de entrada respecto a la tensión de referencia del convertidor D/A. Así, el convertidor de aproximaciones sucesivas tiene la misma resolución que los basados en contadores. 56 www.infoPLC.net Interfaces de Entrada / Salida 3.4.1.3 Convertidores de doble rampa de integración Este tipo de convertidor difiere radicalmente de los vistos anteriormente en los siguientes aspectos: • • • No utilizan un convertidor D/A en la retroalimentación. No requiere un circuito previo de muestreo, aun en casos de señales de variación rápida. No obtiene un valor puntual de la señal de entrada, sino un valor promedio de la misma durante un cierto intervalo de la conversión. Este tipo de convertidor, es muy utilizado en las interfaces de entrada de los Autómatas programables, puesto que en muchos casos se trata con señales lentas y, además, al obtener un valor promedio durante el intervalo, es idóneo para la eliminación de ruidos aleatorios que puedan estar superpuestos a la señal. 3.4.2 Conversion D/A La conversión D/A consiste en la transformación de información digital, un byte o una variable numérica expresada en forma binaria con n bits, en una señal analógica cuyo valor sea proporcional al valor numérico de una tensión o una corriente. 3.4.2.1 Convertidores D/A unipolares Se denomina convertidor D/A unipolar aquel cuya entrada es una palabra digital sin bit de signo, por lo tanto la salida será una tensión analógica que va de cero a un valor máximo, pero siempre con el mismo signo. Una posible configuración de un convertidor D/A unipolar consiste simplemente de un sumador analógico donde cada bit controla la entrada de tensión en una rama de suma, conectándola a Vref o a 0 mediante un conmutador digital, según sea el bit 1 o 0 respectivamente. Otra posible configuración de un convertidor D/A unipolar es la basada en una red R, 2R, la cual se basa en la propiedad de dicha red de dividir la corriente por dos en cada uno de los nodos, dando a cada bit, por tanto, un peso ½ del anterior, empezando por el MSB que tiene un peso de ½ . 3.4.2.2 Convertidores D/A dipolares o con signo Los convertidores D/A con signo son aquellos que aceptan como entrada una palabra digital cuyo bit de más peso (MSB) indica el signo y entregan como salida una tensión analógica que va de -Vmáx a +Vmáx. El bloque básico consiste de un convertidor de código binario en complemento a dos a una tensión de salida. Este bloque es análogo al unipolar, pero con la diferencia de que ahora el bit MSB es ahora el bit de signo y controla el conmutador de más peso (½), pero después de sufrir una inversión. Además se suma a ala entrada una polarización igual a Vref/2, que después de la inversión del amplificador operacional se traducirá en una salida - Vref/2. 57 www.infoPLC.net Interfaces de Entrada / Salida Cuando el MSB es 0 (números positivos), las salidas debidas a éste y la polarización se cancelan y los (n-1) bits restantes actúan como en un convertidor D/A unipolar, dando valores de salida analógica entre 0 y +Vref(1-2-n)/2. Cuando el MSB es 1 (números negativos), la salida debida a éste se anula y la debida a la polarización sitúa el origen a una tensión de salida -Vref/2. Los (n-1) bits restantes actúan como un convertidor D/A unipolar. 3.4.3 Interfaces para entradas analógicas Las interfaces de entrada de tipo analógico para Autómatas programables suelen disponer de varios canales de entrada agrupados, pero, casos especiales, no se utiliza un convertidor para cada canal, sino que se utiliza un solo convertidor para un conjunto de entradas analógicas. Para ello es preciso que en cada momento sólo una de ellas esté conectada al convertidor, realizándose la conversión en forma cíclica, una tras otra. El esquema de bloques de una interfaz de entradas analógicas completa para n canales puede verse en la figura 3.13, donde se ha supuesto la existencia de una serie de transductores analógicos cuyos datos deben ser procesados por la unidad central, pudiendo ésta seleccionar en cada momento el canal que desea leer y, en algunos casos, incluso el factor de escala a aplicar. Figura 3.13 Interfaz de entradas analógicas. La función de conectar varios canales de entrada a un solo convertidor se realiza mediante un multiplexor analógico, que consiste básicamente de un conjunto de interruptores estáticos de tipo MOS gobernados por un decodificador que selecciona en cada momento el cierre de uno de ellos. Además, dicho multiplexor sirve además como adaptador de impedancias . Las interfaces de entrada analógicas más comunes trabajan con señales normalizadas de 0 a 10V o de 4 a 20mA, pero algunas familias de Autómatas de gama alta disponen también de tarjetas específicas para tipos concretos de transductores (termopares, codificadores, etc.) . Este tipo de interfaces son también llamadas interfaces dedicadas. 58 www.infoPLC.net Interfaces de Entrada / Salida Como criterio general, los parámetros más relevantes a comprobar en cada aplicación son los siguientes: • • • • • • • • • • Márgenes de tensión o corriente de entrada. Impedancia de entrada. Nivel de aislamiento entre entradas y unidad de control y entre entradas entre sí. Resolución, que dependerá del número de bits del convertidor. Tipo de conversión A/D. Polaridad de la señal de entrada (conversión con signo o sólo valor absoluto). Tiempo de adquisición del dato (velocidad de muestreo).. Precisión o margen de error. Precauciones de instalación (longitud y tipo de cables). Exigencias de fuente de alimentación. 3.4.4 Interfaces para salidas analógicas Las interfaces de salida analógicas permiten enviar al proceso señales de regulación o para instrumentación, empleando, por lo general, señales normalizadas de uno de los siguientes tipos: • • • • Señales de 0 a 10V. Señales de 0 a 5V. Señales de 0 a 20mA. Señales de 4 a 20mA. La figura 3.14 muestra un diagrama de bloques elemental de un canal de salida analógica. El CPU del PLC enviará los datos en forma numérica a la salida correspondiente y es la interfaz la que dispone de un convertidor D/A por canal. Aunque no es en general, la interfaz puede disponer de un amplificador de salida con aislamiento galvánico y, a veces, de una salida que puede seleccionarse entre 0-10 V, 0-20mA o 4-20mA. En algunos PLC de gama alta, el registro de entrada de datos puede ser un contador bidireccional con autonomía propia, de forma que la salida puede gobernarse de forma automática, cargando datos del bus del PLC, o en forma manual mediante las señales INCR y DECR, que permiten variar la salida analógica a efecto de prueba o para control manual del proceso. 59 www.infoPLC.net Interfaces de Entrada / Salida Figura 3.14 Interfaz de salidas analógicas. Como criterio general, los parámetros más relevantes de las interfaces de salida analógicas a comprobar en cada aplicación son los siguientes: • • • • • • • • • • 60 Posibilidad de salidas multivalentes 0-10 V, 0-20 mA 0 4-20 mA. Márgenes de tensión y/o corriente de salida. Impedancia de salida. Protección contra cortocircuitos. Nivel de aislamiento entre salidas y unidad de control y entre salidas entre sí. Resolución (que dependerá del número de bits del convertidor D/A). Límites de error. Posibilidad de doble paridad de salida (conversión con signo o sólo valor absoluto). Posibilidad de control manual/automático. Exigencias de instalación: fuente de alimentación, longitud de cables, etc. www.infoPLC.net Programación del PLC 4.0 PROGRAMACION DEL PLC 4.1 INTRODUCCION Hasta el momento se ha descrito al PLC como una máquina formada por elementos de hardware capaces de comunicarse físicamente con el proceso para: • • Recoger el conjunto de variables (digitales y/o analógicas) que definen el estado del mismo (señales de entrada), Enviar otro conjunto de variables que modifiquen dicho estado en un sentido predeterminado (señales de salida). Pero para esto, el PLC necesita para su completa adaptación al proceso de un operador humano que defina como se quiere la evolución del mismo. Este operador intercambia entonces información con el hardware del PLC para: • • Fijar, mediante una secuencia de ordenes, la ley general de mando, de la que se obtienen las variables de salida o de control, Intervenir, continuamente o no, sobre el proceso para modificar la evolución o, simplemente, para leer su estado. El primero de los puntos, establecimiento de la secuencia de ordenes, se denomina programación de PLC, y la secuencia establecida, programa de aplicación. Al segundo punto, intervención del operador sobre el proceso, se le conoce comúnmente como explotación de la aplicación, y durante ella se permiten modificar algunos parámetros (tiempo, consignas, módulos de cuenta, etc.), pero no modificar el programa. Se ha descrito pues, a la programación como la codificación al lenguaje del PLC del conjunto de órdenes que forman la ley de mando o control deseada. Codificar, a su vez, significa transformar una información en otra equivalente de distinto formato. Por lo que un programa es una sucesión o lista en un determinado orden de distintas órdenes de trabajo también llamadas instrucciones y capaz de hacer ejecutar al autómata la secuencia de trabajo pretendida. Por lo tanto, se define, de esta manera, al lenguaje de programación como un conjunto de símbolos y textos inteligibles por la unidad de programación que le sirven al usuario para codificar sobre un cierto Autómata las leyes de control deseadas, mientras que lenguaje de explotación será el conjunto de ordenes y comandos que el usuario puede enviar, desde la misma unidad o desde un terminal adecuado, para recoger estados o modificar variables de proceso. La programación del PLC pasa, pues, por los siguientes pasos: 1. 2. 3. Determinar qué debe hacer el sistema de control y en que orden (por ejemplo, mediante un diagrama de flujo, una descripción literal, etc.). Identificar los componentes (señales) de entrada y salida al PLC. Representar mediante un modelo el sistema de control, indicando todas las funciones que intervienen, las relaciones entre ellas, y la secuencia que deben de seguir. Esta representación puede ser: 61 www.infoPLC.net Programación del PLC • • 4. 5. 6. 7. Algebraica: Instrucciones literales. Gráfica: Símbolos gráficos. Asignar direcciones de entrada/salida o internas a cada uno de los componentes que aparecen en el modelo. Codificar la representación anterior en instrucciones o símbolos inteligibles por la unidad de programación. Esto, dado que, el código de salida a obtener son los códigos binarios que entiende la CPU; El código de entrada no es más que el control que se quiere implementar, representado en alguna forma. Transferir las instrucciones obtenidas a la memoria del Autómata desde la unidad de programación. Depurar el programa y obtener una copia de seguridad. En pocas palabras, al conjunto total de instrucciones, ordenes y símbolos que están disponibles para escribir un programa se le denomina lenguaje de programación. Ahora bien, por otro lado, la descripción del proceso y su control puede hacerse con la enumeración literal de las acciones a desarrollar por el mismo, expuestas secuencialmente y con la indicación de las condiciones de habilitación o validación de cada caso. La ventaja de estas descripciones, que es a la vez su principal inconveniente, es la ausencia de rigor en la exposición. Con esto se quiere decir que, una persona, aun poco calificada desde el punto de vista de la automática, es capaz de explicar lo que debe de hacer el proceso en cuestión. Esta descripción, si bien posiblemente estará libre de errores, adolecerá casi con seguridad de falta de especificaciones en los procesos, en las variables o en las relaciones entre ellos. Por mencionar un ejemplo, supóngase que se quiere controlar un taladro para la perforación de un pedazo de madera. El personal encargado del proceso podría describir la secuencia de pasos de la siguiente manera (ver figura 4.1): Figura 4. 1 Perforación de un pedazo de madera En efecto, observando la figura y la descripción podrían plantearse algunas preguntas: 62 www.infoPLC.net Programación del PLC 1. 2. 3. 4. ¿Qué ocurre si la presión detectada por el nanómetro no es la precisa? ¿Cuándo debe empezar a girar la broca, antes, durante o después de la bajada del taladro? ¿Cuándo debe detenerse el giro de la broca R, al llegar al tope b1 en la bajada del taladro, durante la subida, o después de haber llegar al tope b0 en la subida del taladro? ¿Cómo se afloja la pieza, por retroceso del cilindro A, por extracción manual, o por movimiento del soporte? Parece que con una descripción como la dada, que en principio resultaba suficientemente clara, el diseñador necesita de una serie de preguntas adicionales antes de empezar a trabajar en el control. La conclusión que se obtiene es que la descripción literal o se hace exhaustiva, con lo cual es de difícil comprensión en su conjunto, o no es totalmente unívoca con el proceso que se quiere controlar. Afortunadamente existen otras formas de representación, de sintaxis más definida, que permiten descripciones más concisas y claras de la tarea de control. Como se vio anteriormente, puede emplearse el lenguaje vulgar (descripciones literales) para describir lo que el automatismo hace en cada momento, junto con las condiciones que debe satisfacer, y probablemente en las etapas previas del diseño, sin embargo, la creciente complejidad de los automatismos a desarrollar y la necesidad de dejar perfectamente especificadas las condiciones de trabajo, obligan a emplear útiles simbólicos de representación que permitan, interpretados adecuadamente, obtener toda la información posible acerca del sistema de control. Para ello, estos útiles de representación deben cumplir dos condiciones: • • Ser comunes para el emisor y receptor de la información, por cuanto sean comprensibles simultáneamente para ambos. Ser de empleo coherente, por cuanto utilicen unas reglas de combinación entre ellos (sintaxis) perfectamente establecidas. Además de lo anterior, sería deseable que la misma simbología utilizada para representar el sistema de control pudiera emplearse para programar el PLC: el ahorro de tiempo y documentación y la seguridad en el programa obtenido serían considerables. Sin embargo, esta solución no es siempre posible: el lenguaje de programación depende del PLC empleado y de su fabricante, que decide el tipo de unidad de programación (literal, gráfica) y del intérprete (firmware) que utiliza su máquina, mientras que el modelo de representación depende del usuario, que lo elige según sus necesidades o conocimientos. Por lo anterior, dado el incremento en la complejidad de la programación de los autómatas programables, se requiere más que nunca de la estandarización de la misma. Bajo la dirección del IEC el estándar IEC 1131-3 (IEC 65) para la programación de PLC's ha sido definida tal la simbología (en el siguiente capitulo se tratara sobre el estándar IEC 11313). El IEC 1131-3 alcanzó el estado de Estándar Internacional en Agosto de 1992. Los lenguajes gráficos y textuales definidos en el estándar son una fuerte base para entornos de programación potentes en PLC's. Según los símbolos utilizados en el modelo, la representación puede ser: 63 www.infoPLC.net Programación del PLC • • • Proposicional: Por medio de descripciones literales, tal como se llevo a cabo la descripción del proceso en el perforado de un pedazo de madera en el tema anterior. Algebraica: Por medio de Mnemónicos (o también conocido como lista de instrucciones IL, booleano, abreviaturas mnemotécnicas o bien AWL) o lenguajes de alto nivel. Gráfica: Por medio de esquemas de relevadores (o también conocido como diagrama de contactos LD Ladder Diagram, plano de contactos, esquema de contactos, o bien KOP), diagramas lógicos, ordinogramas o diagramas de flujo, así como también por medio de las técnicas GRAFCET. Ahora bien, si la representación elegida para el sistema de control es comprensible por la unidad de programación, no será necesaria ninguna codificación, al aceptar ésta los símbolos utilizados. En caso contrario, habrá que traducirla al lenguaje de programación empleado por la unidad de programación. Finalmente, el programa obtenido está formado por un conjunto de instrucciones, sentencias, bloques funcionales y grafismos que indican las operaciones a realizar sucesivamente por el PLC. 4.2 MNEMONICOS (LENGUAJE BOLÉANO Y LISTAS DE INSTRUCCIONES) El lenguaje booleano está constituido por un conjunto de instrucciones que son una trascripción literal de las funciones del álgebra de Boole, a saber: • • • OR Función de la suma lógica AND Función del producto lógico NOT Función de negación complementadas con instrucciones de inicio de sentencia y asignación de resultados: • • LOAD Leer la variable inicial OUT Enviar un resultado a la salida Y de operaciones de bloques (paréntesis): • • OR LOAD coloca bloque en paralelo AND LOAD coloca bloque en serie En operación normal, el PLC necesita de otras instrucciones como ampliación del lenguaje booleano, que le permitan manejar elementos de uso común en automatización. Son estas las instrucciones secuenciales predefinidas: • • • • 64 TIM definir un temporizador CNT definir un contador SET activa una variable binaria (unidad de memoria) RST desactivar una variable binaria www.infoPLC.net Programación del PLC Además, la mayor parte de los autómatas incluyen extensiones al lenguaje booleano básico descrito, que le permiten la manipulación de datos y variables digitales y la gestión del programa. Estas extensiones, pueden clasificarse en: 1. Instrucciones aritméticas • • • • 2. Instrucciones de manipulación de datos • • • • • 3. CMP comparar variables digitales SFR rotaciones de bits (variables binarias) SHIFT rotaciones de palabras (variables digitales) MOV transferencias de datos BDC/BIN conversiones de códigos numéricos, etc. Instrucciones de gestión de programa • • • • 4. ADD sumar SBB restar MUL multiplicar DIV dividir END fin de programa JMP salto de bloque de programa MCS habilitación de bloque de programa JMPSUB salto a subrutina, etc. Las instrucciones aritméticas y de manipulación de datos admiten múltiples variaciones: • • • • • • Aritmética binaria o BCD Instrucciones lógicas sobre palabras (8 o 16 bits) Transferencias entre bloques de palabras Codificación a salida en 7 segmentos Instrucciones de direccionamiento indirecto Instrucciones trigonométricas, etc. Al lenguaje resultante, que no puede llamarse ya booleano después de ampliarlo con estas extensiones, se le denomina lista de instrucciones IL (Istruction List). Ya de forma más extendida se acepta con el término de mnemónicos. Un lenguaje en mnemónico o lista de instrucciones consiste en un conjunto de códigos simbólicos, cada uno de los cuales corresponde a una instrucción. Cada fabricante utiliza sus propios códigos, y una nomenclatura distinta para nombrar las variables del sistema. Por lo anterior, podemos decir que este lenguaje tiene las siguientes características: • El lenguaje en mnemónico es similar al lenguaje ensamblador del micro. 65 www.infoPLC.net Programación del PLC • • Las funciones de control vienen representadas con expresiones abreviadas. La fase de programación es más rápida que en el lenguaje de esquemas de contactos. Por otro lado, cabe señalar que algunos fabricantes amplían las capacidades de programación de sus autómatas de gama baja con instrucciones avanzadas, que serían de más lógica aplicación en autómatas de superiores prestaciones. El tiempo de ejecución resultante sobre CPU desaconseja su empleo en la mayoría de ocasiones. Sin embargo, disponible ya en el firmware capaz de interpretarlas, desarrollando para otros autómatas de la familia, cuesta muy poco introducirlo en las versiones básicas aunque no sea más que por motivos comerciales de competencia. Con el propósito de complementar el tema de mnemónicos, tomaremos como ilustración la programación del PLC Simatic S7 de la marca Siemens a lo largo de lo que resta del tema. En este caso dependiendo del tipo de operando que empleemos, se hará uso de uno o varios de los siguientes registros (los cuales son propios del Simatic S7): • • Bit de resultado lógico (RLO): aquí se almacena el resultado de operaciones lógicas a nivel de bit y primera consulta. Acumuladores (ACU 1 y ACU 2): aquí se almacenan los operandos y resultados de operaciones lógicas a nivel de byte, palabra, y doble palabra. Además de que: • • Un operando del tipo bit sería una entrada o salida digital. Un operando del tipo byte o superior sería la lectura de una entrada analógica. 4.2.1 Primera consulta Cuando efectuamos una asignación, o se comienza un nuevo ciclo de programa, se está en estado de primera consulta. Es decir, la primera instrucción lógica que se efectúe servirá para situar su operando en el RLO. Las operaciones S y R (Set y Reset respectivamente) también producen que el bit de primera consulta se ponga a 0. Da igual si se trata de una operación AND, OR, o XOR, en los tres casos se introduce el operando en el RLO de forma directa. Si tratamos con instrucciones NAND, NOR, o XOR se introducirá el operando de forma negada (si es un 0 el bit RLO será 1). 4.2.2 Asignación La instrucción "=" copia el contenido del RLO al operando especificado, sin perder el contenido del RLO. Los posibles operandos son: E, A, M, DBX, DIX y L y los registros afectados en este caso son: ER y STA. Como ejemplo veamos la siguiente instrucción: 66 www.infoPLC.net Programación del PLC INSTRUCCION = E 2.0 DESCRIPCIÓN Copia el RLO a la entrada E 2.0 Tabla 4-1 Ejemplo del empleo de la instrucción de asignación 4.2.3 And La instrucción "U" realiza la función lógica AND entre el RLO y el operando especificado, almacenando el resultado en RLO (se pierde el valor anterior). Se puede operar con el negado del operando si se adjunta "N" (UN). Los posibles operandos son: E, A, M, DBX, DIX, L, T y Z y los registros afectados son: RLO, STA Por ejemplo, veamos las siguientes instrucciones: INSTRUCCION U E 0.0 UN A 1.2 DESCRIPCIÓN Realiza un AND entre el RLO y la entrada E 0.0 Realiza un NAND entre el RLO y la salida A 1.2 Tabla 4-2 Ejemplo del empleo de la instrucción AND 4.2.4 Or La instrucción "O" realiza la función lógica OR entre el RLO y el operando especificado, almacenando el resultado en RLO (se pierde el valor anterior). Se puede operar con el negado del operando si se adjunta "N" (ON). Los posibles operandos son: E, A, M, DBX, DIX, L, T y Z y los registros afectados son: RLO y STA. Veamos en este caso los siguientes ejemplos: INSTRUCCION O T 0 ON M 5.0 DESCRIPCIÓN Realiza un OR entre el RLO y el estado del temporizador T0 Realiza un NOR entre el RLO y la marca M 5.0 Tabla 4-3 Ejemplo del empleo de la instrucción OR 4.2.5 XOR (O exclusiva) La instrucción "X" realiza la función lógica XOR entre el RLO y el operando especificado, almacenando el resultado en RLO (se pierde el valor anterior). Se puede operar con el negado del operando si se adjunta "N" (XN). Los posibles operandos son: E, A, M, DBX, DIX, L, T y Z y los registros afectados son: RLO y STA En este caso tenemos los siguientes ejemplos: INSTRUCCION X Z 0 XN A 1.0 DESCRIPCIÓN Realiza un XOR entre el RLO y el estado del contador Z 0 Realiza un XNOR entre el RLO y la salida A 1.0 Tabla 4-4 Ejemplo del empleo de la instrucción XOR 67 www.infoPLC.net Programación del PLC 4.2.6 Expresiones entre paréntesis Instrucciones "U(", "UN(", "O(", "ON(", "X(", "XN(", ")" sin operandos Las operaciones U, O, X, y sus negaciones UN, ON, y XN permiten ejecutar operaciones lógicas con fracciones de una cadena lógica encerradas entre paréntesis (expresiones entre paréntesis). Los paréntesis que encierran una fracción de una cadena lógica indican que el programa va a ejecutar las operaciones entre paréntesis antes de ejecutar la operación lógica que precede a la expresión entre paréntesis. La operación que abre una expresión entre paréntesis almacena el RLO de la operación precedente en la pila de paréntesis. A continuación, el programa combina el RLO almacenado con el resultado de las combinaciones lógicas ejecutadas dentro del paréntesis (siendo la primera operación dentro de los paréntesis de primera consulta). Ahora bien, hay que tomar en cuenta que como en todo hay límites, por lo que el límite de anidamientos de paréntesis depende del PLC empleado. Los registros afectados son: RLO, STA, RB, pila de paréntesis Ejemplo: U(O E 0.0 U E 0.1) = A 2.0 Veamos los pasos que sigue el programa en este ejemplo: Efectúa un AND en primera consulta, con lo que el resultado de las operaciones dentro del paréntesis se introducirá directamente en RLO. Efectuamos un OR con la entrada 0.0, al ser en primera consulta (primera operación dentro del paréntesis) lo que sucede es que el contenido de E 0.0 pasa a ser el nuevo valor del RLO. Se efectúa un AND entre el RLO obtenido anteriormente y la entrada 0.1, almacenándose el resultado en el RLO. Se cierra el paréntesis, con lo que el RLO de las operaciones efectuadas dentro se opera según la instrucción que inicia el paréntesis (en este caso la instrucción U). Tal y como comentamos, al estar la instrucción de inicio al principio del programa se ejecuta como primera consulta, con lo que el RLO pasará a valer lo que el resultado dentro del paréntesis. Copiamos el contenido del RLO en la salida 2.0. En pocas palabras, si ejecutáramos este programa la salida 2.0 valdría 0 a menos que E 0.0 y E 0.1 valiesen 1, con lo que pasaría a valer 0. Un programa equivalente sería (en este caso): INSTRUCCION O E 0.0 U E 0.1 = A 2.0 DESCRIPCION Copiamos la E 0.0 en el RLO (primera c.) Efectuamos un AND entre el RLO y la E 0.1 Copiamos el resultado a la salida 2.0 Tabla 4-5 Programa equievalente sin emplear paréntesis 68 www.infoPLC.net Programación del PLC 4.2.7 Y antes de O Instrucción "O" sin operando. Si introducimos una instrucción "O" sin operando seguida de una o varias instrucciones AND se evalúa en primer lugar las instrucciones AND y el resultado se combina con el RLO según un OR. Esta operación equivale a emplear "O(" con instrucciones del tipo AND dentro del paréntesis. En este caso los registros que se verán afectados son: RLO, STA, OR y la pila de paréntesis. Veamos el siguiente ejemplo: INSTRUCCION U E 0.0 O U E 0.1 U M 0.3 = A 4.0 DESCRIPCIÓN Se introduce en el RLO el valor de la entrada 0.0 (primera c.) Comenzamos una operación Y antes de O Introducimos el valor de la entrada 0.1 en el RLO (primera c.) Efectuamos un AND entre el RLO y la marca 0.3 Se finaliza Y antes de O. Se efectúa un OR entre el primer RLO y el RLO resultado de las operaciones AND. Luego se copia el contenido del RLO en la salida 4.0 Tabla 4-6 Ejemplo del empleo de la instrucción Y antes de O 4.2.8 Operaciones de flancos Instrucciones "FP" y "FN". Las operaciones de flanco positivo (FP) y flanco negativo (FN) pueden utilizarse para detectar cambios de flanco en el RLO. El cambio de 0 a 1 se denomina flanco positivo, mientras que el cambio de 1 a 0 se denomina flanco negativo. Cada instrucción FP o FN emplea un operando para poder comparar el RLO actual con el que había en el ciclo anterior, se recomienda emplear marcas de memoria. Si se realiza un cambio de flanco en el sentido de la instrucción empleada, ésta produce un impulso positivo (1) en el RLO durante el ciclo actual. Los posibles operandos son: E, A, M, DBX, DIX y L, mientras que los registros afectados son en este caso RLO y STA. Se emplea una operando para almacenar el RLO. Veamos el siguiente ejemplo: INSTRUCCION DESCRIPCIÓN U E 1.0 Empleamos la entrada 1.0 para detectar un cambio de flanco FP M 1.0 Empleamos la marca 1.0 para detectar el cambio de flanco = A 4.0 Asignamos el resultado de la operación FP a la salida 4.0 Tabla 4-7 Ejemplo del empleo de la instrucción FP En este ejemplo cada vez que ingresemos un flanco positivo en la entrada 1.0 se producirá un impulso de longitud un ciclo en la salida 4.0, tal y como se muestra a continuación: CICLO E 1.0: M 1.0: A 4.0: 1 0 0 0 2 0 0 0 3 1 1 1 4 1 1 0 5 1 1 0 6 0 0 0 7 0 0 0 8 0 0 0 9 1 1 1 10 1 1 0 11 0 0 0 Tabla 4-8 Efectos de la instrucción FP en cada ciclo 69 www.infoPLC.net Programación del PLC Para el caso de sustituir en el ejemplo FP por FN, se obtendría: CICLO E 1.0: M 1.0: A 4.0: 1 0 0 0 2 0 0 0 3 1 1 0 4 1 1 0 5 1 1 0 6 0 0 1 7 0 0 0 8 0 0 0 9 1 1 0 10 1 1 0 11 0 0 1 Tabla 4-9 Efectos de la instrucción FN en cada ciclo NOTA: Es obligatorio no emplear los operandos ocupados por FP y FN para otros fines, ya que entonces se falsifica el RLO almacenado en ellos y por lo tanto se produce un funcionamiento incorrecto del programa. 4.2.9 Set y Reset Instrucciones "S" y "R". La operación set (S) fuerza a uno el operando especificado si el RLO es 1. La operación reset (R) fuerza a cero el operando especificado si el RLO es 1. En ambos casos el bit de primera consulta se hace 0. Los posibles operandos son: E, A, M, D, DBX, DIX y L y el registro afectado es: ER. Veamos el siguiente ejemplo: INSTRUCCIÓN U E 1.0 S A 4.0 U E 1.1 R A 4.0 DESCRIPCIÓN Copiamos al RLO el valor de la entrada 1.0 (primera c.) Si RLO=1 se fuerza la salida 4.0 a 1 Copiamos al RLO el valor de la entrada 1.1 (primera c.) Si RLO=1 se fuerza la salida 4.0 a 0 Tabla 4-10 Ejemplo del empleo de las instrucciones Set y Reset En este ejemplo (báscula S-R) tiene preferencia el reset sobre el set, ya que esta última instrucción se ejecuta después, es decir si las entradas 1.0 y 1.1 fuesen 1 la salida 4.0 sería 0. 4.2.10 Negar, activar, desactivar y salvar el RLO Instrucciones "NOT", "SET", "CLR" y "SAVE" sin operando. NOT Niega (invierte) el RLO actual al no haberse activado el bit OR. Los registros afectados son: RLO el cual se invierte y STA=1. SET Fuerza el RLO de forma incondicional a 1. Los registros afectados son: RLO=1, STA=1, ER=0 y OR=0. 70 www.infoPLC.net Programación del PLC CLR Fuerza el RLO de forma incondicional a 0. Los registros afectados son: RLO=0, STA=0, ER=0 y OR=0. SAVE Almacena el RLO en el registro de estado (en el bit RB). El RLO almacenado puede ser consultado de nuevo con la instrucción "U BR". Los registros afectados son: RB el cual almacena el valor de RLO. 4.2.11 Operaciones con contadores Los contadores permiten distintas operaciones, que debemos emplear en su manejo, entre estas podemos mencionar las siguientes: • • • • • Cargar un valor de preselección. Borrar el contador. Contar hacia adelante y hacia atrás. Consultar su estado como un operando más en operaciones lógicas de bit. Consultar su valor en ACU 1. Todas estas operaciones serán explicadas con profundidad en los siguientes puntos. 4.2.11.1 Cargar un valor preseleccionado Instrucciones: "L C#" y "S Z". Un contador se pone a un determinado valor cargando dicho valor en la palabra baja del ACU 1, mediante una operación de carga, y luego en el contador, mediante una instrucción set. LC# "L C#" introduce un valor de conteo en la palabra baja del ACU 1. Dicho valor inicial del contador puede ser un valor comprendido entre 0 y 999. En este caso, los registros afectados son: ACU 1 y ACU 2 . SZ "S Z" introduce el valor de conteo en ACU 1 en el contador si RLO vale 1. En este caso el registro afectado es: ER. Veamos el siguiente ejemplo: INSTRUCCIÓN L C# 3 U E 1.0 S Z 1 DESCRIPCION Introduce el valor de conteo 3 en el ACU 1 Carga en el RLO el valor de la entrada 1.0 Introduce el valor 3 (dentro de ACU 1) en el contador 1 si la entrada 1.0 es 1 Tabla 4-11 Ejemplo del empleo de la instrucción SZ 71 www.infoPLC.net Programación del PLC 4.2.11.2 Borrar un contador Instrucción: "R Z". Borra el contador especificado (puesta a cero) si el RLO vale 1. El registro afectado en este caso es ER. Ejemplo: INSTRUCCION U E 1.0 R Z 1 DESCRIPCION Carga en el RLO el valor de la entrada 1.0 Borra el contador 1 (a cero) si la entrada 1.0 es 1 (RLO=1) Tabla 4-12 Ejemplo del empleo de la instrucción R Z 4.2.11.3 Contadores ascendentes y descendentes Instrucciones: "ZV" y "ZR" ZV "ZV" incrementa el contador especificado si hay un cambio de flanco ascendente (0 a 1) en el RLO. El incremento se produce en una unidad. Cuando el contador alcanza el límite superior de 999, se detiene y no sigue incrementando. ZR "ZR" decrementa el contador especificado si hay un cambio de flanco ascendente (0 a 1) en el RLO. El decremento se produce en una unidad. Cuando el contador alcanza el límite inferior de 0, se detiene y no sigue decrementando. En este caso el registro afectado es: ER Ejemplos: INSTRUCCION U E 0.0 ZV Z 1 U E 1.0 ZR Z 1 DESCRIPCIÓN Carga en el RLO el valor de la entrada 0.0 Incrementa el contador 1 si la entrada 0.0 presenta un cambio de flanco ascendente Carga en el RLO el valor de la entrada 1.0 Decrementa el contador 1 si la entrada 1.0 presenta un cambio de flanco ascendente Tabla 4-13 Ejemplo del empleo de la instrucción ZR 4.2.11.4 Consulta del saldo de contadores El programa puede consultar el estado de un contador de la misma manera que consulta el estado de señal de una entrada o salida, pudiendo combinar el resultado de la consulta. Cuando se consulta el estado del contador con las operaciones U, O, o X el resultado es 1 si el valor del contador en ese momento es mayor que 0. 72 www.infoPLC.net Programación del PLC Ejemplo: INSTRUCCION L C# 5 U E 2.0 S Z 1 U E 1.0 ZR Z 1 U Z 1 = A 0.0 DESCRIPCIÓN Introduce el valor de contaje 5 en el ACU 1 Carga en el RLO el valor de la entrada 2.0 Introduce el valor 5 (dentro de ACU 1) en el contador 1 si la entrada 2.0 es 1 Carga en el RLO el valor de la entrada 1.0 Decrementa el contador 1 si la entrada 1.0 presenta un cambio de flanco ascendente Introduce en el RLO el estado del contador 1 Introduce el estado del contador 1 en la salida 0.0 Tabla 4-14 Ejemplo de una consulta en un contador 4.2.11.5 Lectura del valor de un contador Instrucciones: "L Z" y "LC Z" Con la instrucción "L Z" introducimos en el ACU 1 (parte baja) el valor del contador especificado en binario. El valor en ACU 1 puede ser introducido en otro contador. Con la instrucción "LC Z" introducimos en el ACU 1 (parte baja) el valor del contador especificado en BCD. En esta codificación no es posible pasar el valor de ACU 1 a otro contador. En este caso los registros afectados son: ACU 1 y ACU 2 . Ejemplos: INSTRUCCION L Z 1 LC Z 2 DESCRIPCIÓN Introduce el valor del contador 1 en el ACU 1 Introduce el valor del contador 2 en el ACU 1 en BCD Tabla 4-15 Ejemplo de la lectura del valor de un contador 4.2.12 Operaciones con temporizadores Los temporizadores permiten distintas operaciones que debemos emplear en su manejo. Entre estas operaciones podemos mencionar las siguientes: • • • • • Funcionamiento en un modo determinado. Borrar la temporización. Re-arrancar un temporizador (FR). Consultar su estado como un operando más en operaciones lógicas de bit. Consultar su valor en ACU 1. Cada temporizador lo podemos hacer funcionar en uno de los siguientes modos: 73 www.infoPLC.net Programación del PLC • • • • • Impulso (SI). Impulso prolongado (SV). Retardo a la conexión (SE). Retardo a la conexión con memoria (SS). Retardo a la desconexión (SA). Todas estas operaciones serán explicadas con profundidad en los siguientes puntos. 4.2.12.1 Cargar un valor de temporizador El valor de temporización se debe cargar en la parte baja del ACU 1, para desde allí transferirlo al temporizador mediante el set que determine el modo de temporización adecuado. El tiempo va decrementando hasta ser igual a 0. El valor de temporización puede cargarse en la palabra baja del ACU 1 en formato binario, hexadecimal o BCD. Para ello debemos elegir una base de tiempos y un valor dentro de dicha base, con lo que podemos realizar temporizaciones desde 0 a 9990 segundos (0H_00M_00S_00MS a 2H_46M_30S_00MS). La siguiente sintaxis permite cargar un valor de temporización predefinido: L W#16#abcd Donde: a = base de tiempos bcd = valor de temporización en formato BCD Base de tiempos Código respectivo 10 ms 0 100 ms 1 1s 2 10 s 3 Tabla 4-16 En este caso los registros afectados son: ACU 1 y ACU 2 Ejemplo: INSTRUCCION DESCRIPCIÓN L W#16#210 Esto introduce un valor de 10 segundos en ACU 1 (2 base de 1s, 10 los segundos que deseamos) Tabla 4-17 Ejemplo de carga de un temporizador L S5T#aH_bbM_ccS_ddMS a = horas, bb= minutos, cc = segundos, dd = milisegundos 74 www.infoPLC.net Programación del PLC En este caso la base de tiempos se selecciona de forma automática, tomándose la de valor más bajo posible. Debido a esto los valores de resolución demasiado alta se redondean por defecto, alcanzando el rango pero no la resolución deseada. Así, las posibles resoluciones y rangos son: Resoluciones 0,01 s 0,1 s 1s 10 s Rangos 10MS a 9S_990MS 100MS a 1M_39S_900MS 1S a 16M_39S 10S a 2H_46M_30S Tabla 4-18 En este caso los registros afectados son: ACU 1 y ACU 2 . Ejemplo: INSTRUCCIÓN DESCRIPCIÓN L S5T#00H02M23S00MS Esto introduce un valor de temporización de 2 minutos y 23 segundos en el ACU 1 Tabla 4-19 4.2.12.2 Consulta del estado de temporizadores El programa puede consultar el estado de un temporizador de la misma manera que consulta el estado de señal de una entrada o salida, pudiendo combinar el resultado de la consulta. Cuando se consulta el estado del temporizador con las operaciones U, O, o X el resultado es 1 si el valor de la salida del temporizador es 1. 4.2.12.3 Temporizador como impulso Instrucción: "SI" Si el RLO (al ejecutar esta instrucción) cambia de 0 a 1, el temporizador arranca. El temporizador marcha con el valor de tiempo indicado en ACU1. Si el RLO cambia de 1 a 0 antes de terminar el tiempo, el temporizador se detiene. La salida del temporizador entrega 1 mientras el temporizador corre. En este caso, el registro afectado en este caso es: ER. Veamos el siguiente ejemplo: INSTRUCCION U E 0.0 L S5T#45s SI T 2 U T 2 = A 0.1 DESCRIPCIÓN Empleamos la entrada 0.0 como entrada del temporizador Introducimos un valor de temporización de 45 segundos Empleamos el temporizador 2 como impulso Leemos la salida del temporizador Asignamos la salida del temporizador a la salida 0.1 Tabla 4-20 Ejemplo de empleo de un temporizador como impulso 75 www.infoPLC.net Programación del PLC 4.2.12.4 Temporizador como impulso prolongado Instrucción: "SV" Si el RLO (al ejecutar esta instrucción) cambia de 0 a 1, el temporizador arranca y continua en marcha incluso si el RLO cambia a 0 antes de que el temporizador termine. Mientras el tiempo está corriendo, la salida vale 1. En este caso, el registro afectado es ER. Veamos el siguiente ejemplo: INSTRUCCION U E 0.7 L S5T#65s SE T 4 U T 4 = A 8.1 DESCRIPCIÓN Empleamos la entrada 0.7 como entrada del temporizador Introducimos un valor de temporización de 65 segundos Empleamos el temporizador 4 como retardo a la conexión Leemos la salida del temporizador Asignamos la salida del temporizador a la salida 8.1 Tabla 4-21 Ejemplo de l empleo de un temporizador como impulso prolongado 4.2.12.5 Temporizador como retardo a la conexión con memoria Instrucción: "SS" Si la entrada (RLO en la ejecución de la instrucción) cambia de 0 a 1, el temporizador arranca y continua corriendo incluso si la entrada (RLO) cambia a 0, antes que el temporizador termine de contar. Si el tiempo ha concluido la salida continua a 1 independientemente del estado de la entrada (RLO). Solo se puede poner a 0 la salida mediante un Reset. El temporizador vuelve a arrancar con el valor de temporización indicado en el ACU 1 si el estado de la señal en la entrada (RLO) cambia de 0 a 1 mientras el temporizador está en marcha. Nuevamente, el registros afectado es: ER. Veamos el ejemplo de la tabla 4.22. INSTRUCCION U E 1.2 L S5T#32s SS T 2 U T 2 = A 3.1 DESCRIPCIÓN Empleamos la entrada 1.2 como entrada del temporizador Introducimos un valor de temporización de 32 segundos Empleamos el temporizador 2 como retardo a la c. con memoria Leemos la salida del temporizador Asignamos la salida del temporizador a la salida 3.1 Tabla 4-22 Ejemplo del empleo de un temporizador como retardo a la conexión con memoria 4.2.12.6 Temporizador como retardo a la desconexión Instrucción: "SA" Si la entrada (RLO en la ejecución de la instrucción) cambia de 1 a 0, el temporizador arranca y continua corriendo. Si la entrada (RLO) cambia a 1 antes que el temporizador termine de contar, se resetea el temporizador. Mientras el tiempo está corriendo, la salida vale 1. En este caso, el registro afectado en este caso es: ER. Veamos el siguiente ejemplo se la tabla 4.23. 76 www.infoPLC.net Programación del PLC INSTRUCCION DESCRIPCIÓN U E 4.2 Empleamos la entrada 4.2 como entrada del temporizador L S5T#32s Introducimos un valor de temporización de 32 segundos SA T 7 Empleamos el temporizador 7 como retardo a la desconexión U T 7 Leemos la salida del temporizador = A 1.1 Asignamos la salida del temporizador a la salida 1.1 Tabla 4-23 Ejemplo del empleo de un temporizador como retardo a la desconexión 4.2.12.7 Borrar un temporizador Instrucción: "R T". Esta instrucción borra (resetea) el temporizador indicado. El temporizador vuelve al estado de reposo, es decir parado y con la salida igual a 0. El registro afectado en este caso es: ER. En la tabla 4.24 se muestra un ejemplo. INSTRUCCION DESCRIPCIÓN U E 0.0 Empleamos la entrada 0.0 como entrada del temporizador L S5T#2s Introducimos un valor de temporización de 2 segundos SS T 2 Empleamos el temporizador 2 como retardo a la conexión con memoria U E 0.1 Empleamos la entrada 0.1 como entrada de borrado R T 2 Si la entrada 0.1 cambia de 0 a 1 el temporizador 2 se borra U T 2 Leemos la salida del temporizador = A 3.1 Asignamos la salida del temporizador a la salida 3.1 Tabla 4-24 Ejemplo de cómo borrar un temporizador mediante la instrucción R T 4.2.12.8 Re-arranque de un temporizador Instrucción: "FR T". Cuando el RLO cambia de 0 a 1 (flanco de subida) delante de una operación FR se habilita el temporizador. Este cambio del estado de señal siempre es necesario para habilitar un temporizador. Para arrancar un temporizador y ejecutar una operación normal de temporizador no hace falta habilitarlo. Esta función se emplea únicamente para redisparar un temporizador que está en marcha, es decir, para rearrancarlo. Este rearranque sólo puede efectuarse cuando la operación de arranque continúa procesándose con un RLO de 1. El registro afectado en este caso es: ER. Veamos el ejemplo de la tabla 4.25. INSTRUCCIÓN U E 2.0 FR T 1 U E 2.1 L S5T#5s SI T 1 U T 1 = A 4.0 DESCRIPCIÓN Empleamos la entrada 2.0 como re-arranque Re-arrancamos el temporizador 1 si la E 2.0 pasa a 1 Empleamos la entrada 2.1 como entrada del temporizador Introducimos un valor de temporización de 5 segundos Empleamos el temporizador 1 como impulso Leemos la salida del temporizador Copiamos la salida del temporizador a la salida 4.0 Tabla 4-25 Ejemplo de un re-arranque de un temporizador 77 www.infoPLC.net Programación del PLC Si el RLO cambia de 0 a 1 en la entrada de re-arranque mientras está en marcha el temporizador, el temporizador vuelve a arrancar. El tiempo programado se emplea como tiempo actual para el re-arranque. Un cambio del RLO de 1 a 0 en la entrada de re-arranque no produce ningún efecto. Un cambio del RLO de 0 a 1 en la entrada de habilitación no afecta al temporizador si todavía hay un RLO 0 en la entrada del temporizador. 4.2.12.9 Lectura de un valor de temporizador Instrucciones: "L T" y "LC T" Con la instrucción "L T" introducimos en el ACU 1 (parte baja) el valor del temporizador especificado en binario. El valor en ACU 1 puede ser introducido en otro temporizador. Con la instrucción "LC T" introducimos en el ACU 1 (parte baja) el valor del temporizador especificado en BCD. En esta codificación no es posible pasar el valor de ACU 1 a otro temporizador. En este caso los registros afectados son: ACU 1 y ACU 2. Véase el siguiente ejemplo: INSTRUCCIÓN L T 1 LC T 2 DESCRIPCIÓN Introduce el valor del temporizador 1 en el ACU 1 Introduce el valor del temporizador 2 en el ACU 1 en BCD Tabla 4-26 Ejemplo de lectura del valor de un temporizador 4.2.13 Operaciones con salto incondicional Instrucciones: "SPA" y "SPL" Las operaciones de salto incondicional (SPA) interrumpen el desarrollo normal del programa, haciendo que el mismo salte a una meta determinada (operando de la operación SPA). La meta define el punto en que deberá continuar el programa. El salto se efectúa independientemente de condiciones. La operación Salto a meta (SPL) es un distribuidor de saltos seguido de una serie de saltos incondicionales a metas determinadas (lista de saltos). El salto de la lista se escoge según el valor contenido en el ACU1, es decir si el ACU1 vale 0 se escogerá el primer salto incondicional (SPA), si vale 1 se saltará al segundo salto... Si el valor se encuentra fuera de la lista se salta a la meta especificada en SPL. Una meta se compone de 4 caracteres como máximo. El primer carácter debe ser siempre una letra, no importando si el resto son números o letras. La meta se especifica normalmente en el operando de la instrucción de salto, y seguida de dos puntos frente a la línea que posee la meta (ver ejemplos). Con ambas instrucciones SPA y SPL ninguno de los registros es afectado. 78 www.infoPLC.net Programación del PLC Ejemplo de salto SPA: INSTRUCCION DESCRIPCIÓN U E 1.0 Cargamos en el RLO el valor de la entrada 1.0 SPA AQUI Saltamos de forma incondicional a la línea con meta "AQUI" NOP 0 Esta línea no se ejecuta (es saltada) AQUI: U E 2.0 Aquí continua la ejecución del programa = A 3.0 Introducimos el resultado en la salida 3.0 Tabla 4-27 Ejemplo de un salto incondicional Ejemplo de salto SPL: INSTRUCCION L MB100 SPL NORM SPA UNO SPA CONT SPA DOS NORM: SPA CONT UNO: U E 0.0 SPA CONT DOS: U E 1.0 SPA CONT CONT: = A 2.0 DESCRIPCIÓN Cargamos en el ACU1 un valor de un módulo de datos Se salta a NORM si el valor de ACU1 no está en lista Se salta a UNO si ACU1 vale 0 Se salta a CONT si ACU1 vale 1 Se salta a DOS si ACU1 vale 2 Se salta a CONT de forma incondicional Instrucción meta del salto UNO Se salta a CONT de forma incondicional Instrucción meta del salto DOS Se salta a CONT de forma incondicional Aquí saltamos finalmente, continuando el programa Tabla 4-28 Ejemplo de un salto con la instrucción SPL 4.2.14 Operaciones de salto condicional en bifurcación del RLO Instrucciones: "SPB", "SPBN", "SPBB", "SPBNB" Estas instrucciones efectúan un salto en el programa hacia una meta determinada, para el caso de cumplir la condición que necesitan: • • • • • SPB: salto si RLO=1 SPBN: salto si RLO=0 SPBB: salto si RLO=1 y RB=1 SPBB: salto si RLO=1 y RB=1 SPBNB: salto si RLO=0 y RB=1 En todas estas instrucciones, si la condición no es cumplida y no se realiza el salto, se modifican los siguientes registros: RO=0, STA=1, RLO=1 y ER=0 En SPBB y SPBNB se almacena el RLO en el bit RB de la palabra de estado antes de efectuar el salto. En este caso, los registros afectados son: RB, OR, STA, RLO, ER 79 www.infoPLC.net Programación del PLC Ejemplo de salto SPB: INSTRUCCION U E 2.0 SPB AQUI U E 1.0 AQUI: U E 3.0 = A 0.0 DESCRIPCIÓN Cargamos en el RLO el valor de la entrada 2.0 Saltamos a la línea con meta "AQUI" si el RLO=1 Esta línea no se ejecuta si se salta Aquí continua la ejecución del programa Introducimos el resultado en la salida 0.0 Tabla 4-29 Ejemplo de un salto mediante la instrucción SPB Como podemos observar en el ejemplo, el resultado de la salida 0.0 depende primeramente del valor de la entrada 2.0, ya que ella decide si se tiene en cuenta también la entrada 1.0 en el resultado final. 4.2.15 Operaciones de salto condicional en función de RB u OV/OS Instrucciones: "SPBI", "SPBIN", "SPO", "SPS" Estas instrucciones efectúan un salto en el programa hacia una meta determinada, para el caso de cumplir la condición que necesitan: • • • • SPBI: salto si RB=1 SPBIN: salto si RB=0 SPO: salto si OV=1 SPS: salto si OS=1 Las operaciones SPBI y SPBIN ponen los bits OR y ER de la palabra de estado a 0 y el bit STA a 1. La operación SPS pone el bit OS a 0. Con el empleo de estas instrucciones, los registros que se ven afectados son: OR, ER, STA, y OS . Veamos el siguiente ejemplo de salto SPS: INSTRUCCION SPS AQUI SPA SEGU AQUI: SET = A 1.0 SEGU: U E 3.0 = A 0.0 DESCRIPCIÓN Saltamos a la línea con meta "AQUI" si OV=1 Esta línea no se ejecuta si OV=1 Forzamos el RLO a 1 Con la salida 1.0 indicamos si hubo un error previo en la anterior ejecución del programa Aquí continua la ejecución del programa normalmente Introducimos el resultado en la salida 0.0 Tabla 4-30 Ejemplo de un salto condicional mediante la instrucción SPS 4.2.16 Operaciones de salto condicional en función de A1 y A0 Instrucciones: "SPZ", "SPN", "SPP", "SPM", "SPMZ", "SPPZ", "SPU" Estas instrucciones efectúan un salto en el programa hacia una meta determinada, para el caso de cumplir la condición que necesitan: 80 www.infoPLC.net Programación del PLC • • • • • • • SPZ: salto si resultado=0 (ACU 1) SPN: salto si resultado no es 0 SPP: salto si resultado es mayor que cero SPM: salto si resultado es menor que cero SPMZ: salto si resultado es menor o igual que cero SPPZ: salto si resultado es mayor o igual que cero SPU: salto si el resultado no es válido (uno de los operandos en una operación de coma flotante no es un número en coma flotante) A continuación se muestra el estado de A1 y A0 tras una operación con los acumuladores: A1 A0 Resultado del cálculo Operación de salto posible 0 0 Igual a 0 SPZ 1 o 0 0 o 1 Distinto de 0 SPN 1 0 Mayor que 0 SPP 0 1 Menor que 0 SPM 0 o 1 0 o 0 Mayor o igual que 0 SPPZ 0 o 0 0 o 1 menor o igual que 0 SPMZ 1 1 UO (no admisible) SPU Tabla 4-31 4.2.17 Loop Esta operación sirve para llamar varias veces un segmento del programa. Esta operación decrementa la palabra baja del ACU 1 en 1. Después se comprueba el valor depositado en la palabra baja del ACU 1. Si no es igual a 0, se ejecuta un salto a la meta indicada en la operación LOOP. En caso contrario, se ejecuta la siguiente operación normalmente. Mediante el empleo de esta instrucción se ve afectado el registro ACU 1. Véase el siguiente ejemplo: INSTRUCCIÓN L +5 PROX: T MB 10 L MB 10 LOOP PROX DESCRIPCIÓN Hacemos el ACU 1 igual a 5 Transferimos el valor del ACU 1 a la memoria de datos En estos guiones estaría el segmento del programa que se va a ejecutar 5 veces Leemos el valor de la memoria de datos en ACU 1 Decrementamos ACU 1 y saltamos a PROX si no es cero Tabla 4-32 Ejemplo del empleo de la instrucción LOOP 81 www.infoPLC.net Programación del PLC Hay que tener precaución con el valor que haya en el ACU 1, ya que si ejecutamos LOOP con un valor de ACU 1 igual a 0 el bucle se ejecutará 65535 veces. Tampoco se recomienda introducir valores enteros negativos en el ACU 1. 4.2.18 Llamar funciones y módulos de función con CALL La operación CALL se emplea para llamar funciones (FC's) y módulos de función (FB's) creados para el usuario para el programa en cuestión o adquiridos en Siemens como módulos de función estándar. La operación CALL llama la función FC o módulo FB indicado como operando, independientemente del resultado lógico o cualquier otra condición. Si se desea llamar un módulo de función con la operación CALL, se deberá asignar un módulo de datos de instancia (DB de instancia). La llamada de una función (FC) o de un módulo de función (FB) puede programarse, es decir, es posible asignar operandos a la llamada. El programa ejecutará con estos operandos la función (FC) o el módulo de función (FB). Para ello hay que indicar los operandos que se desean usar para ejecutar la función o el módulo de función. Estos parámetros se denominan parámetros actuales (entradas, salidas, marcas de memoria...). El programa que contiene la función o el módulo de función tiene que poder acceder a estos parámetros actuales, por lo que se deberá indicar en el programa el parámetro formal que corresponda al parámetro actual . Si no se especifica la correspondencia en módulos de función el programa accederá a través del módulo de datos de instancia a los datos del parámetro formal. En la llamada a funciones todos los parámetros formales tienen que ser asignados a parámetros actuales. La lista de parámetros formales es parte integrante de la operación CALL. El parámetro actual que se indica al llamar un módulo de función tiene que ser del mismo tipo de datos que el parámetro formal. Los parámetros actuales empleados al llamar una función o un módulo de función se suelen indicar con nombres simbólicos. El direccionamiento absoluto de parámetros actuales sólo es posible con operandos cuyo tamaño máximo no supere una palabra doble. En este caso no se afecta ninguno de los registros. Veamos a continuación un ejemplo (siguiente tabla) de llamada a un FB con un DB de instancia y parámetros de módulo: INSTRUCCION CALL FB40,DB41 ON1: ON2: OFF1: L = E1.0 = MW2 = MD20 DB20 DESCRIPCIÓN Llamamos al módulo FB40 con el módulo de instancia DB41 ON1 (parámetro formal) es asignado a E1.0 (p. actual ON2 (parámetro formal) es asignado a MW2 (p. actual) OFF1 (parámetro formal) es asignado a MD20 (p. actual) El programa accede al parámetro formal OFF1. Tabla 4-33 Ejemplo del empleo de la instrucción CALL 82 www.infoPLC.net Programación del PLC En el ejemplo anterior se ha supuesto que los parámetros formales pertenecen a los siguientes tipos de datos: • • • ON1: BOOL (binario) ON2: WORD (palabra) OFF1: DWORD (palabra doble) Ejemplo de llamada a un FC con parámetros de módulo: INSTRUCCION CALL FC80 INK1: = M1.0 INK2: = EW2 OFF: = AW4 DESCRIPCIÓN llamamos la función FC80 INK1 (p. formal) es asignado a M 1.0 (p. actual) INK2 (p. formal) es asignado a EW2 (p. actual) OFF (p. formal) es asignado a AW4 (p. actual) Tabla 4-34 Ejemplo de una llamada a un FC mediante la instrucción CALL En el ejemplo anterior se ha supuesto que los parámetros formales pertenecen a los siguientes tipos de datos: • • • INK1: BOOL (binario) INK2: INT (entero) OFF: WORD (palabra) Es posible crear una función que dé un valor de retorno. Si se desea crear por ejemplo una operación aritmética con números de coma flotante, entonces puede utilizar este valor de retorno como salida para el resultado de la función. Como nombre de la variable puede introducirse "RE_VAL" y como tipo de datos REAL. Al llamar después esta función en el programa se ha de proveer la salida RET_VAL de una dirección de palabra doble de forma que pueda acoger el resultado de 32 bits de la operación aritmética. 4.2.19 Llamar funciones y módulos con CC y UC Instrucciones: "CC" y "UC" Estas operaciones se emplean para llamar funciones (FC) creadas para el programa del mismo modo como se utiliza la operación CALL. Sin embargo, no es posible transferir parámetros. • • CC llama la función indicada como operando si el RLO=1. UC llama la función indicada como operando, independientemente de cualquier condición. Las operaciones CC y UC pueden llamar una función con direccionamiento directo o indirecto de la memoria, o a través de una FC transferida como parámetro. El área de memoria es FC más el número del FC. 83 www.infoPLC.net Programación del PLC Máx. área de direccionamiento directo Máx. área de direccionamiento indirecto [DBW] [DIW] [LW] [MW] 0 a 65535 0 a 65534 Tabla 4-35 El nombre del parámetro formal o nombre simbólico para el caso de llamar una FC a través de una FC transferida como parámetro es BLOCK_FC (los parámetros de tipo BLOCK_FC no pueden utilizarse con la operación CC en módulos FC). En este caso no se ve afectado ninguno de los registros. Véase el siguiente ejemplo: INSTRUCCION CC FB12 UC FB12 DESCRIPCIÓN Llamar a FB12 si RLO=1 Llamar a FB12 independientemente del RLO Tabla 4-36 Ejemplo del empleo de las instrucciones CC y UC 4.2.20 Llamar funciones de sistema integradas La operación CALL puede emplearse también para llamar funciones del sistema (SFC) y módulos de función del sistema (SFB) integrados en el sistema operativo S7. Cada SFB o SFC ejecuta una función estándar determinada. Por ejemplo, si se desea averiguar al hora actual del sistema se utiliza la operación CALL SFC64. La operación de llamada CALL solamente puede llamar una SFC o un SFB con direccionamiento directo. 4.2.21 Funciones Master Control Relay Instrucciones: "MCRA", "MCRD", "MCR(:", ")MCR:" El Master Control Relay (MCR) se emplea para inhibir el funcionamiento de una determinada parte del programa (secuencia de instrucciones que escribe un cero en lugar del valor calculado, o bien no modifican el valor de memoria existente). Las siguientes operaciones dependen del MCR: • • • • = S R T (con bytes, palabras o palabras dobles) Estado de señal del MCR = SoR T 0 Escribe 0 No escribe Escribe 0 1 Ejecución normal Ejecución normal Ejecución normal Tabla 4-37 84 www.infoPLC.net Programación del PLC • • MCRA activa el área MCR. MCRD desactiva el área MCR. Las operaciones programadas entre las operaciones MCRA y MCRD dependen del estado de señal del bit MCR. Si falta la operación MCRD las operaciones entre MCRA y una operación BEA dependerán del bit MCR. Cuando se llama a una función (FC) o a un módulo de función (FB) desde un área MCR las instrucciones ejecutadas no dependerán del MCR, a menos que volvamos a especificarlo con MCRA en el módulo llamado. Una vez se finalice el módulo y se retorne se continuará en área MCR. Hay que recalcar que las instrucciones dentro del área MCR dependen del bit MCR, pero dicho bit no es 0 (MCR activo) mediante las instrucciones MCRA y MCRD. Mediante el empleo de estas instrucciones no se ve afectado ninguno de los registros. MCR( salva el RLO en la pila MCR si es el primer nivel de anidamiento. Para un anidamiento mayor se multiplica (AND lógico) el MCR actual con el RLO, siendo el resultado el nuevo bit MCR (ver ejemplo). El máximo anidamiento es 8. )MCR finaliza un nivel de anidamiento, tomando como nuevo MCR el que hubiera en la pila MCR almacenado. Hay que destacar que las instrucciones )MCR deben ser en igual cantidad que las MCR( (deben ir por pares para no perder datos). Cuando hablamos de anidamiento nos referimos al proceso mediante el cual una pila sube de nivel, almacenando ciertos datos en ella referidos al nivel anterior para luego recuperarlos. En este caso, los registros afectados son: la pila MCR y el bit MCR. Ejemplo: INSTRUCCION DESCRIPCIÓN MCRA Comenzamos área MCR, suponemos 1 el bit MCR U E 2.0 Introducimos en el RLO el valor de la entrada 2.0 MCR( Comenzamos anidamiento en pila MCR, si E2.0=0 el MCR=0 O E 1.0 Copiamos el valor de la entrada 1.0 en el RLO = A 4.0 Si el bit MCR=0 la salida 4.0 se hace 0 sin depender del RLO )MCR Finalizamos anidamiento, el bit MCR vuelve a ser 1 MCRD Fin del área MCR Tabla 4-38 Ejemplo del empleo de las instrcciones Master Control Relay Como podemos ver, el área MCR comienza siempre con MCRA (para activar el área MCR, pero no el bit MCR). En este ejemplo, según el valor de la entrada 2.0 se activará el bit MCR o no, ya que MCR( multiplica el RLO con el MCR actual y el resultado lo toma como nuevo bit MCR. 85 www.infoPLC.net Programación del PLC Veamos otro ejemplo más complejo: INSTRUCCION DESCRIPCIÓN MCRA Comenzamos área MCR, suponemos 1 el bit MCR U E 1.0 Introducimos en el RLO el valor de la entrada 1.0 MCR( Comenzamos anidamiento en pila MCR, si E1.0=0 el MCR=0 U E 2.0 Copiamos el valor de la entrada 2.0 en el RLO MCR( Nuevo anidamiento en pila MCR, si E2.0=0 el MCR=0, en caso contrario no varia el bit MCR O E 3.0 Copiamos el valor de la entrada 3.0 en el RLO = A 4.0 Si el bit MCR=0 la salida 4.0 se hace 0 sin depender del RLO, en caso contrario depende del valor de la entrada 3.0 )MCR Finalizamos primer anidamiento, el bit MCR se recupera de la pila )MCR Finalizamos anidamiento, el bit MCR vuelve a ser 1 MCRD Fin del área MCR Tabla 4-39 Ejemplo del empleo de las instrucciones Master Control Relay 4.2.22 Finalizar módulos Instrucciones: "BEA" y "BEB" Durante el ciclo del autómata programable, el sistema operativo ejecuta un programa estructurado módulo a módulo. La operación fin de módulo es la que finaliza el módulo en ejecución. BEA finaliza la ejecución del módulo actual y devuelve el control al módulo que llamó al módulo finalizado. Esta instrucción se ejecuta sin depender del RLO ni de cualquier otra condición. BEB finaliza la ejecución del módulo actual y devuelve el control al módulo que llamó al módulo finalizado. Esta acción se realiza si el RLO es 1. Si no es así se continua la ejecución del actual módulo, pero con el RLO a 1. Ejemplo: INSTRUCCION U E 1.0 BEB U E 2.0 = A 3.0 BEA DESCRIPCIÓN Introducimos en el RLO el valor de la entrada 1.0 Si la entrada 1.0 vale 1 el módulo acaba aquí Aquí finaliza el módulo de forma incondicional Tabla 4-40 Ejemplo del empleo de las instrucciones BEB y BEA Si el módulo que finaliza es el OB1 se finaliza el ciclo de ejecución del programa, volviendo a comenzar uno nuevo. 86 www.infoPLC.net Programación del PLC 4.2.23 Operaciones de comparación Las operaciones de comparación sirven para comparar los siguientes pares de valores numéricos: • • • Dos enteros (16 bits) Dos enteros dobles (32 bits) Dos números reales (de coma flotante, 32 bits, IEEE-FP) Los valores numéricos se cargan en los ACU's 1 y 2. Las operaciones de comparación comparan el valor del ACU2 con el valor depositado en el ACU1. El resultado de la comparación es un dígito binario. Un 1 significa que el resultado de la comparación es verdadero, mientras que un 0 significa que el resultado de la comparación es faso. Este resultado se encuentra almacenado en el bit de resultado lógico (RLO). Este resultado puede emplearse para su posterior procesamiento. Cuando se ejecuta una comparación también se activan los bits de estado A1 y A0. 4.2.23.1 Comparar dos números enteros Instrucciones y descripción: Operación Comparación efectuada ==I El entero (16 bits) de la palabra baja del ACU2 es igual al entero (16 bits) de la palabra baja del ACU 1. ==D El entero doble (32 bits) del ACU2 es igual al entero doble (32 bits) del ACU1. <>I El entero (16 bits) de la palabra baja del ACU2 no es igual al entero (16 bits) de la palabra baja del ACU 1. <>D El entero doble (32 bits) del ACU2 no es igual al entero doble (32 bits) del ACU1. >I El entero (16 bits) de la palabra baja del ACU2 es mayor que el entero (16 bits) de la palabra baja del ACU 1. >D El entero doble (32 bits) del ACU2 es mayor que el entero doble (32 bits) del ACU1. <I El entero (16 bits) de la palabra baja del ACU2 es menor que el entero (16 bits) de la palabra baja del ACU 1. <D El entero doble (32 bits) del ACU2 es menor que el entero doble (32 bits) del ACU1. >=I El entero (16 bits) de la palabra baja del ACU2 es mayor o igual al entero (16 bits) de la palabra baja del ACU 1. >=D El entero doble (32 bits) del ACU2 es mayor o igual al entero doble 87 www.infoPLC.net Programación del PLC (32 bits) del ACU1. <=I El entero (16 bits) de la palabra baja del ACU2 es menor o igual al entero (16 bits) de la palabra baja del ACU 1. <=D El entero doble (32 bits) del ACU2 es menor o igual al entero doble (32 bits) del ACU1. Tabla 4-41 Instrucciones para la comparación de dos números enteros Estas operaciones afectan al estado de los bits A1 y A0, en función de la condición que se haya cumplido, tal y como se muestra en la tabla siguiente: Condición A1 A0 ACU2 > ACU1 1 0 ACU2 < ACU1 0 1 ACU2 = ACU1 0 0 ACU2 <> ACU1 0 o 1 1 o 0 ACU2 >= ACU1 1 o 0 0 o 0 ACU2 <= ACU1 0 o 0 1 o 0 Tabla 4-42 Estados de los bits A0 y A1 en función de las instrucciones de comparación. En este caso, los registros afectados son: RLO, A1 y A0. Ejemplo: INSTRUCCION L MW10 L EW0 ==I = A 1.0 >I = A 2.0 DESCRIPCIÓN Introducimos en el ACU1 la palabra de marcas MW10 Introducimos en el ACU1 la palabra de entradas EW0, el antiguo contenido del ACU1 (MW10) pasa al ACU2 Comparamos la igualdad de la palabra baja del ACU1 y ACU2 La salida 1.0 se excitará si MW10 y EW0 son iguales Comparamos el valor de la palabra baja del ACU2 para ver si es mayor que el valor de la palabra baja del ACU1 La salida 2.0 se excitará si MW10 es mayor que EW0 Tabla 4-43 Ejemplo del empleo de las instrucciones de comparación 88 www.infoPLC.net Programación del PLC 4.2.23.2 Comparar dos números reales Instrucciones y descripción: INSTRUCCION COMPARACIÓN EFECTUADA ==R El número de coma flotante de 32 bits IEEE-FP del ACU2 es igual al número de coma flotante de 32 bits IEEE-FP del ACU1 <>R El número de coma flotante de 32 bits IEEE-FP del ACU2 no es igual al número de coma flotante de 32 bits IEEE-FP del ACU1 >R El número de coma flotante de 32 bits IEEE-FP del ACU2 es mayor que el número de coma flotante de 32 bits IEEE-FP del ACU1 <R El número de coma flotante de 32 bits IEEE-FP del ACU2 es menor que el número de coma flotante de 32 bits IEEE-FP del ACU1 >=R El número de coma flotante de 32 bits IEEE-FP del ACU2 es mayor o igual que el número de coma flotante de 32 bits IEEE-FP del ACU1 <=R El número de coma flotante de 32 bits IEEE-FP del ACU2 es menor o igual que el número de coma flotante de 32 bits IEEE-FP del ACU1 Tabla 4-44 Lista de instrucciones para la comparación de dos números reales Estas operaciones activan determinadas combinaciones de los estados de los códigos de condición A1, A0, OV y OS de la palabra de estado para indicar qué condición se ha cumplido, tal y como se muestra en la siguiente tabla: Condición A1 A0 OV OS == 0 0 0 no aplicable <> 0 o 1 1 o 0 0 no aplicable > 1 0 0 no aplicable < 0 1 0 no aplicable >= 1 o 0 0 o 0 0 no aplicable <= 0 o 0 1 o 0 0 no aplicable UO 1 1 1 1 Tabla 4-45 Estados de los códigos de condición tras una instrucción de comparación 89 www.infoPLC.net Programación del PLC En este caso, los registros afectados son: RLO, A1, A0, OV y OS . Ejemplo: INSTRUCCIÓN L MD24 L +1.00E+00 >R = A 1.0 DESCRIPCIÓN Introducimos en el ACU1 la palabra doble de marcas MD24 Introducimos en el ACU1 un valor en coma flotante de 32 bits, el antiguo contenido del ACU1 (MD24) pasa al ACU2 Comparamos el ACU2 para ver si es mayor que el ACU1 La salida 1.0 se excitará si la condición es cierta Tabla 4-46 Ejemplo de comparación entre dos números reales 4.3 LENGUAJES DE ALTO NIVEL Con CPU cada vez más rápidas, más potentes y de mayor capacidad de tratamiento, los PLC de gamas altas invaden aplicaciones que hasta hace poco tiempo estaban reservadas a los miniordenadores industriales. Para estas aplicaciones, los lenguajes tradicionales como los mnemónicos resultaban ya insuficientes, aun mejorados con las expansiones comentadas en el apartado anterior. Por esta razón, los fabricantes han desarrollado lenguajes de programación próximos a la informática tradicional, con sentencias literales que equivalen a secuencias completas de programación: son los lenguajes de alto nivel. En ellos, las instrucciones son líneas de texto que utilizan palabras o símbolos reservados (SET, AND, FOR, etc.), las operaciones se definen por los símbolos matemáticos habituales (+, *, <, etc.), y se dispone de funciones trigonométricas, logarítmicas y de manipulación de variables complejas (COS, PI, REAL, IMG, etc.). Sin embargo, lo que distingue realmente estos lenguajes avanzados de las listas de instrucciones ampliadas son las siguientes tres características: 1. 2. Son lenguajes estructurados, donde es posible la programación por bloques o “procedimientos”, con definición de las variables locales o globales. Incluyen estructuras de cálculo repetitivo y condicional, tales como: • • • • 3. FOR ... TO REPEAT ... UNTIL X WHILE X ... IF ... THEN ... ELSE Disponen de instrucciones de manipulación de cadenas Podemos encontrar interpretes o compiladores de lenguajes de alto nivel como son: BASIC, C, PASCAL, FORTRAN, etc. lo que nos permite resolver tareas de cálculo científico de alta resolución, clasificaciones de datos, estadísticas, etc., con tal facilidad, y con acceso además a módulos y subrutinas específicos ya escritos en estos lenguajes y de uso general en aplicaciones informáticas. 90 www.infoPLC.net Programación del PLC Dado lo específico de su aplicación, un programa escrito en un lenguaje de alto nivel, necesita para su edición de una unidad de programación avanzada, o de un software de desarrollo de programas que corra sobre una PC. Adicionalmente, es frecuente que el empleo de estos lenguajes estructurados obligue además a utilizar no sólo una unidad de programación del tipo PC, sino incluso una CPU especial en el PLC denominada coprocesadora, capaz de interpretar y ejecutar las nuevas instrucciones. En cualquier caso, los lenguajes de alto nivel son posibilidades adicionales al alcance del programador, que puede, si así lo desea utilizar sólo las formas básicas de contactos/bloques o listas de instrucciones para escribir sus aplicaciones: en otras palabras, los lenguajes avanzados nunca constituyen el lenguaje básico de un autómata o familia de autómatas, papel que queda reservado a la lista de instrucciones o al diagrama de contactos Finalmente, debe indicarse que algunas de las sentencias literales de lato nivel están disponibles en lenguaje de contactos como bloques de función extendidos, y viceversa: de esta forma, el fabricante asegura la compatibilidad entre ambos lenguajes, y aprovecha mejor el lenguaje de máquina (llamado firmware) desarrollado. 4.4 LADDER (DIAGRAMA DE ESCALERA) El esquema de relevadores es la representación gráfica de las tareas de automatización mediante símbolos de contactos abierto-cerrado, así, la función de control obtenida dependerá de las conexiones entre los distintos contactos de los relevadores que intervienen. Este modelo gráfico tiene su origen en las tecnologías electromecánicas de ejecución de sistemas de mando. Presenta además deficiencias en cuanto a la representación de funciones secuenciales complejas, como son los secuenciadores, registros de memoria, etc., y, sobre todo, en la manipulación de señales digitales de varios bits (por ejemplo, obtenidas de una conversión A/D). A pesar de lo anterior, la mayoría de los fabricantes incorporan este lenguaje, ello es debido a la semejanza con los esquemas de relevadores empleados en los automatismos eléctricos de lógica cableada, lo que facilita la labor a los técnicos habituados a trabajar con dichos automatismos. Adoptado por mochos fabricantes (norteamericanos y japoneses, principalmente) como lenguaje base de programación, el diagrama de contactos (LD: Ladder Diagram) puede ser introducido directamente en la unidad de programación mediante un editor de símbolos gráficos. Normalmente este editor incluye restricciones en cuanto al número de contactos o bobinas a representar en cada línea, la ubicación de los mismos, la forma de las conexiones, etc. Siendo los contactos de relevadores componentes de dos estados, asignados a los valores lógicos 1 (contacto cerrado) y 0 (contacto abierto), se permiten definir sobre ellos un álgebra de Boole, denominada usualmente álgebra de contactos. Esto significa que cualquier función lógica puede ser transcrita directamente e inmediatamente a diagrama de contactos y viceversa, transcripciones de utilidad cuando se trata de visualizar gráficamente un programa escrito en un lenguaje booleano. Sin embargo, el diagrama de contactos , de origen norteamericano, no nació como una posible herramienta de visualización de programas ya escritos en lista de instrucciones, sino 91 www.infoPLC.net Programación del PLC como transcripción directa de los esquemas eléctricos de relevadores (circuitos de mando) de uso común en la automatización previa a la aparición de los sistemas programables. Por esta razón, los diagramas de contactos o diagramas de escalera incluyen desde sus orígenes bloques funcionales que ya aparecían como elementos propios en aquellos esquemas, los temporizadores y los contadores. Ahora bien, como hemos visto a lo largo del presente trabajo, el propósito de un PLC es reemplazar los circuitos lógicos representados por relevadores mecánicos, razón por la cual es necesario saber como funcionan. Un relevador es básicamente un switch electromagnético. Aplicando un voltaje determinado a la bobina del relevador, se genera un campo magnético que atrae al elemento de contacto a su posición de cerrado. Esto permite cerrar un circuito, el que tiene una potencia determinada por la capacidad de los contactos del relevador, que puede ser mucho más alta que las potencias utilizadas para accionar el circuito de la bobina. Por lo general, los voltajes y corrientes utilizados para accionar el circuito de la bobina del relevador se denominan señales, y permiten manejar las lógicas del control en rangos de voltaje que no involucran peligro, y son los adecuados para ser generados por circuitos electrónicos de control. (véase la siguiente figura de ejemplo). Figura 4. 2 Esquema de una aplicación básica de un relevador En otras palabras, a través de un relevador se pueden separar los circuitos de alta potencia, que entregan la energía casi sin restricciones, de los circuitos de baja potencia, generalmente orientados a control. Ahora veremos un pequeño ejemplo, en el cual se verá la forma en que podemos emplear a un PLC para reemplazar el relevador de la figura anterior, lo que no es algo económicamente viable, y que sólo es útil para la explicación siguiente. Lo primero que se debe realizar es la creación de un diagrama de escalera. Esto se debe hacer debido a que el PLC no entiende un diagrama esquemático. Este sólo reconoce código. Afortunadamente la mayoría de los PLC tienen un software que es capaz de convertir el diagrama de escalera a código. Estos nos evitan la tediosa tarea de aprender el código de los PLC´s, que además pueden cambiar de un fabricante a otro. Antes de continuar con el ejemplo, cabe mencionar que el nombre de este método de programación (LADDER que en inglés significa ESCALERA) proviene de su semejanza con el 92 www.infoPLC.net Programación del PLC diagrama del mismo nombre que se utiliza para la documentación de circuitos eléctricos de máquinas. • Primer paso: Lo primero es trasladar todas las partes del esquema empleando símbolos que el PLC pueda entender. Un PLC no entiende términos como interruptor, relevador o motor. Algo más cómodo para el PLC es el empleo de términos como entrada, salida, bobina y contacto. No es necesario determinar en este momento cual es el tipo de dispositivo que se encuentra conectado a la entrada y/o salida del PLC, sólo hay que ser cuidadoso en definir cuales son las entradas y cuales las salidas. Primero reemplazaremos la batería con un símbolo. Este símbolo es común a todos los diagramas de escalera. El símbolo se denomina barras de alambre y se visualiza como dos líneas verticales. Las líneas se ubican a ambos lados del diagrama. La barra izquierda se asume como el voltaje positivo (+) y la derecha como la referencia o tierra. La corriente se tomará como fluyendo de izquierda a derecha, al igual que el flujo lógico. Ahora se define el símbolo de una entrada. En este ejemplo básico se tiene una entrada desde el mundo real (es decir, el switch), la que será reemplazada por el símbolo mostrado en la siguiente figura. Este símbolo también es utilizado como contacto de un relevador. Figura 4. 3 Símbolo que reemplazará al switch en nuestro ejemplo Ahora presentamos el símbolo de salida. En este ejemplo se tiene una salida (el motor). Se dará el símbolo de salida al elemento al cual el motor esta físicamente conectado y será como se muestra en la siguiente figura. Este símbolo es usado como la bobina del relevador. Figura 4. 4 Símbolo que reemplazará a la bobina del relevador al cual está conectado el motor de nuestro ejemplo La fuente de corriente alterna no es parte del diagrama de escalera. El PLC sólo tiene injerencia en si sus salidas están o no conectadas y no en lo que está conectado físicamente al equipo. • Segundo paso: Debemos decir al PLC donde está la localización de cada uno de los elementos del diagrama. En otras palabras, debemos entregar todas las 93 www.infoPLC.net Programación del PLC • direcciones de dispositivos. Las direcciones son asignadas previamente según procedimientos establecidos por el fabricante. Más adelante se entrará en mayor detalle, por ahora se supondrá que la entrada se encuentra en la dirección “0000” y la salida en la dirección “”500”. Tercer paso: Ahora resta convertir el esquema en una secuencia lógica de eventos. Esto es mucho más fácil de lo que suena. El programa debe decir que se debe hacer cuando se lleve a efecto algún evento, por ejemplo, el cambio de estado de la entrada. En el ejemplo presentado hay que indicar al PLC que debe hacer cuando el operador encienda el interruptor. Obviamente queremos que el motor se encienda, pero el PLC debe recibir la instrucción para que accione al relevador de salida. Sin estas instrucciones el PLC no es un dispositivo de utilidad. Como resultado se tendrá un esquema como el de la figura siguiente. Hay que notar que se han eliminado todos los relevadores del “mundo real”. Figura 4. 5 Diagrama de escalera correspondiente al ejemplo de la figura 5.2 En este momento se debe entender ya que un diagrama de escalera es una representación gráfica de un programa para un PLC, el cual consiste de dos líneas verticales espaciadas, las cuales simbolizan los soportes de una escalera y que representan los cables de potencia o buses. Todos los circuitos conmutadores (contactos de relevadores) con los que se construyen CONDICIONES DE EJECUCIÓN parten del bus izquierdo que es la línea viva de potencia (en otras palabras el positivo de la fuente de alimentación). Todas las instrucciones a ejecutar se encuentran del lado derecho terminando en el bus derecho que es la línea de tierra o neutro. Los peldaños de la escalera (en inglés rungs) son circuitos horizontales llamadas LINEAS DE INSTRUCCIÓN que se inician desde el bus izquierdo con contactos de relevadores pasando a través de varios de éstos y finalizando en el bus derecho con la instrucción. El diagrama de escalera se encuentra estructurado secuencialmente en el orden en que las acciones deban ocurrir (ver la figura 5.6). Figura 4. 6 Ejemplo de un diagrama de escalera 94 www.infoPLC.net Programación del PLC Con este tipo de diagramas se describe normalmente la operación eléctrica de distinto tipo de máquinas, y puede utilizarse para sintetizar un sistema de control y, con las herramientas de software adecuadas, realizar la programación del PLC. Se debe recordar que mientras que en el diagrama eléctrico todas las acciones ocurren simultáneamente, en el programa se realiza en forma secuencial, siguiendo el orden en que los peldaños o escalones (rungs) fueron escritos, y que a diferencia de los relevadores y contactos reales (cuyo número está determinado por la implementación física de estos elementos), en el PLC podemos considerar que existen infinitos contactos auxiliares para cada entrada, salida, relevador auxiliar o interno, etc. Además, todo PLC cumple con un determinado ciclo de operaciones que consiste en leer las entradas, ejecutar todo el programa una vez, y actualizar las salidas tal como hayan resultado de la ejecución del programa (como se definió en el capitulo 2). Como consecuencia, si una determinada salida toma dos valores diferentes durante una pasada por el programa, sólo aparecerá a la salida el último de los valores calculados. Ahora examinaremos algunas de las instrucciones básicas en detalle para saber cual es la función de cada una de ellas. 4.4.1 Load y Load not La primera condición que inicia una línea de instrucción (rung) en un diagrama de escalera corresponde a una instrucción LOAD o LOAD NOT (esta ultima se verá a continuación). La instrucción LOAD (LD) representa a un contacto normalmente abierto. Esta es llamada en algunas ocasiones “examine if on” (XIO). Esta instrucción requiere una línea de código mnemónico (código que entiende el PLC). El símbolo de la instrucción LOAD y su mnemónico se muestran a continuación. Figura 4. 7 PASO INSTRUCCION OPERANDO 0000 LD 0000 Tabla 4-47 Mnemónico de la instrucción LD El símbolo se utiliza cuando se necesita la existencia de una señal de entrada para que el símbolo se active. Cuando una entrada física se enciende podemos decir que esta instrucción es “verdadera”. Entonces se examina una entrada esperando una señal. Si la entrada está físicamente encendida el símbolo también lo estará. La condición de encendido se puede referir como estado lógico 1. Este símbolo es usado frecuentemente en entradas internas, entradas externas y salidas externas. Hay que recordar que los relevadores internos no existen físicamente, sino que corresponden a relevadores simulados por software. 95 www.infoPLC.net Programación del PLC Load not Como se mencionó anteriormente, una de las primeras condiciones que inicia una línea de instrucción (rung) en un diagrama de escalera es la instrucción LOAD NOT. Esta instrucción representa a un contacto normalmente cerrado. También se le llama algunas veces “examine if closed” (XIC). Esta instrucción también requiere de una línea de código mnemónico. El símbolo de la instrucción LOAD NOT y su mnemónico se muestran a continuación. Figura 4. 8 PASO INSTRUCCION OPERANDO 0000 LD NOT 0000 Tabla 4-48 Mnemónico de la instrucción LOAD NOT Este símbolo se utiliza cuando no se necesita la existencia de una señal de entrada para que el símbolo se active. Cuando la entrada física se apaga, podemos decir que esta instrucción es verdadera. En resumen, desde un punto de vista lógico, la instrucción LOAD NOT corresponde a la negación lógica de la instrucción LOAD. 4.4.2 Out y Out not La forma más sencilla de presentar en una salida el resultado de la combinación de condiciones de ejecución es programarla directamente con las instrucciones OUTPUT y OUTPUT NOT (esta última será explicada a continuación). La instrucción OUTPUT (se abrevia OUT) también se llama OUTPUT ENERGIZE. Cuando este símbolo está en la trayectoria de un peldaño en que todas sus instrucciones previas son verdaderas, su estado también será verdadero. Que la instrucción sea verdadera, quiere decir que la salida asociada está físicamente encendida. Al igual que las instrucciones anteriores, esta se puede usar en relevadores internos o salidas físicas. El símbolo de esta instrucción OUT y su mnemónico se muestra abajo. Figura 4. 9 PASO INSTRUCCION OPERANDO 0000 OUT 0000 Tabla 4-49 Mnemónico de la instrucción OUT 96 www.infoPLC.net Programación del PLC Debido a la forma en que el CPU del PLC ejecuta el programa y actualiza las salidas, NO SE RECOMIENDA DUPLICAR SALIDAS. El PLC almacena la información de entrada en una tabla de bit’s de entrada y trabaja desde la tabla durante la ejecución del programa. Cada vez que una línea de instrucción (peldaño en el diagrama de escalera) es efectuada, el resultado se almacena en la tabla de bit’s de salida. Por esto, si una salida (bobina) es duplicada, su última ocurrencia en el programa es la única válida con respecto al “mundo real”. Las salidas son actualizadas después que todo el programa ha sido ejecutado (ver el tema 5.4.8 Actualización de entradas y salidas). Out not La instrucción OUTPUT NOT (se abrevia OUT NOT) es el opuesto de la instrucción OUT. OUT NOT es el equivalente a un relevador cuyo estado por defecto es cerrado. Cuando este símbolo se encuentra en una trayectoria de un peldaño cuyas instrucciones previas están en estado falso, el valor que tomará la instrucción será verdadero. Cabe mencionar que algunas marcas de PLC no cuentan con esta instrucción. El símbolo de la instrucción OUT NOT y su mnemónico se muestra a continuación. Figura 4. 10 PASO INSTRUCCION OPERANDO 0000 OUT NOT 0000 Tabla 4-50 Mnemónico de la instrucción OUT NOT 4.4.3 4.4.4 And y And not Cuando dos o más condiciones se encuentran en serie en un mismo peldaño (rung) en un diagrama de escalera, la primera corresponde a una instrucción LOAD o LOAD NOT, y el resto de las condiciones a instrucciones AND y AND NOT. El ejemplo siguiente muestra tres condiciones las cuales corresponden en orden de izquierda a derecha a una instrucción LOAD, una AND NOT y una AND. Nuevamente, cada una de las tres instrucciones requiere de una línea de código de mnemónico. Figura 4. 11 Ejemplo de instrucciones AND y AND NOT 97 www.infoPLC.net Programación del PLC PASO INSTRUCCION OPERANDO 00000 LD 00000 00001 AND NOT 00004 00002 AND HR0000 00003 INSTRUCCION Tabla 4-51 Listado de mnemónicos del ejemplo anterior La condición de ejecución de la instrucción estará en ON sólo cuando las tres condiciones sean ON, es decir, cuando IR00000 esté en ON, IR00004 esté en OFF y HR0000 esté en ON. 4.4.5 Or y Or not Cuando dos o más condiciones peldaños (rungs) paralelos se juntan, la primera condición corresponde a una instrucción LOAD o LOAD NOT; el resto de las condiciones a instrucciones OR y OR NOT. El siguiente ejemplo muestra tres condiciones correspondientes a las siguientes instrucciones: LOAD NOT, OR NOT y OR. Cada una de estas instrucciones necesita una línea de código mnemónico. A continuación se muestra el diagrama de escalera y su correspondiente listado de mnemónicos. Figura 4. 12 Ejemplo de instrucciones OR y OR NOT PASO INSTRUCCION OPERANDO 00000 LOAD NOT 00000 00001 OR NOT 00001 00002 OR HR0000 00003 INSTRUCCION Tabla 4-52 Listado de mnemónicos del ejemplo anterior La condición de ejecución de la instrucción será ON cuando al menos una de las condiciones anteriores sean ON, es decir, cuando el bit IR0000 esté OFF, o el bit IR00001 esté en OFF, o bien, cuando el bit HR0000 esté en ON. 4.4.6 Combinación de instrucciones AND y OR Para poder entender como se pueden combinar instrucciones AND y OR veamos directamente el siguiente ejemplo (véase la siguiente figura). Figura 4. 13 Ejemplo de combinación de las instrucciones AND y OR 98 www.infoPLC.net Programación del PLC PASO INSTRUCCION OPERANDO 00000 LOAD NOT 00000 00001 AND 00001 00002 OR 00004 00003 AND 00002 00004 AND NOT 00003 00005 INSTRUCCION Tabla 4-53 Listado de mnemónicos del ejemplo anterior En este ejemplo, se ejecuta una instrucción AND entre el estado del bit 00000 con el bit 00001 y el resultado se hace OR con el estado del bit 00004. El resultado de esta operación es la condición de ejecución para la AND con el estado del bit 00002, que a su vez será la condición de ejecución para la AND con el estado negado del bit 00003. 4.4.7 Instrucciones de bloque lógico AND LOAD/OR LOAD Todo grupo de condiciones unidas para crear un resultado lógico, se denomina bloque lógico. La comprensión de éstos es necesaria para programar eficientemente un PLC, por lo que es esencial cuando los programas se escriben en código mnemónico. Las instrucciones de bloque describen la interrelación de bloques lógicos. La instrucción AND LOAD realiza la operación lógica AND de los resultados de dos bloque lógicos. La OR LOAD ejecuta la operación lógica OR de dos bloques. Veamos un ejemplo de una instrucción AND LOAD con el siguiente diagrama de escalera: Figura 4. 14 Ejemplo de una instrucción AND LOAD PASO INSTRUCCION OPERANDO 00000 LOAD 00000 00001 OR 00001 00002 LOAD 00002 00003 OR NOT 00003 00004 AND LOAD 00005 INSTRUCCION Tabla 4-54 Listado de mnemónicos del ejemplo de una instrucción AND LOAD Los dos bloques lógicos son los bloques marcados por las líneas discontinuas. Ya que los bloques están en serie se debe realizar una operación lógica AND entre ellas. La forma de hacerla es realizar las OR (NOT’s) implícitas en cada una de ellos independiente y luego cambiar los resultados con la instrucción AND LOAD. 99 www.infoPLC.net Programación del PLC En este ejemplo, la condición de ejecución de la instrucción será ON cuando al menos una de las condiciones del bloque de la izquierda sea ON y al menos una de las condiciones del bloque de la derecha sea verdadera. Ahora veamos un ejemplo de una instrucción OR LOAD empleando para esto el siguiente diagrama de escalera. Figura 4. 15 Ejemplo de una instrucción OR LOAD PASO INSTRUCCIÓN OPERANDO 00000 LOAD 00000 00001 AND NOT 00001 00002 LOAD 00002 00003 AND 00003 00004 OR LOAD 00005 INSTRUCCIÓN Tabla 4-55 Listado de mnemónicos del ejemplo de una instrucción OR LOAD La condición de ejecución de la instrucción será ON cuando el bit 00000 sea ON y el bit 00001 sea OFF o cuando el bit 00002 y el bit 00003 sea ON. 4.4.8 End La ultima instrucción básica y a la vez necesaria para completar un programa es la instrucción END (01). El CPU ejecuta las líneas de programa en forma cíclica, es decir, comienza por la primera instrucción y ejecuta secuencialmente las siguientes hasta encontrar la instrucción END (01), momento en que vuelve a ejecutar la primera instrucción y repite el ciclo. Las instrucciones de un programa situadas a continuación de la instrucción END (01) no se ejecutan. Esta instrucción no necesita operando alguno, y no debe haber ninguna condición en su peldaño en el diagrama de escalera. Veamos a continuación un ejemplo en el que se hace uso de la instrucción END (01). Figura 4. 16 Ejemplo de un diagrama de escalera en el que se emplea la instrucción END 100 www.infoPLC.net Programación del PLC PASO INSTRUCCIÓN OPERANDO 00000 LOAD 00000 00001 AND NOT 00001 00002 INSTRUCCION 00003 END (01) Tabla 4-56 Listado de mnemónicos del ejemplo de una instrucción OR LOAD Nota: El número entre paréntesis después de una instrucción (01 para la instrucción END) representa su código de función y será utilizado para insertar el programa en el PLC vía consola de programación. 4.4.9 Actualización de entradas y salidas Antes de continuar con instrucciones más avanzadas, es necesario conocer y entender como es que se actualizan tanto las entradas como las salidas en un PLC. Una vez que se han visto algunos ejemplos de programación con diagrama de escalera empleando para ello algunas de las instrucciones básicas, se tomará en consideración cómo el PLC ejecuta el programa y maneja la información de entrada y salida. El PLC realiza tres pasos básicos: 1. Lee todas las condiciones de entrada desde los dispositivos del mundo real y las almacena en una tabla que es usada durante la ejecución del programa. Por ejemplo, LOAD 00000 está preguntando al CPU del PLC acerca de la condición de la entrada 00000 almacenada en la tabla (un “1” o un”0”). 2. Ejecuta el programa usando los datos almacenados en la tabla. LOAD, AND y OR son instrucciones de lectura de la tabla, mientras que OUT es una instrucción de escritura. Figura 4. 17 Actualización de entradas y salidas 3. Después que la instrucción END es encontrada, las salidas del “mundo real” son actualizadas. 101 www.infoPLC.net Programación del PLC 4.4.10 Instrucciones avanzadas Una vez que hemos visto las funciones básicas de un diagrama de escalera, podemos continuar examinando algunas de las instrucciones avanzadas en detalle para saber cual es la función de cada una de ellas. 4.4.10.1 Relevadores temporales Cuando una línea de instrucción (peldaño o rung) se divide en más de una línea, en ciertas ocasiones será necesario utilizar bits TR’s (Relevadores Temporales) para almacenar la condición de ejecución existente en el punto de ramificación. Como en el diagrama A (véase la figura 5.18), si después del punto en el que se divide la línea, no existe(n) más condición(es) de ejecución para las instrucciones, o existe(n) únicamente en la última instrucción; entonces la programación en mnemónicos se desarrolla tal como se ha visto hasta ahora. Figura 4. 18 Diagrama A PASO 00000 00001 00002 00003 00004 00005 INSTRUCCIÓN OPERANDO LOAD 00000 AND 00001 INSTRUCCION 1 INSTRUCCIÓN 2 AND 00002 INSTRUCCIÓN 3 Tabla 4-57 Listado de mnemónicos del Diagrama A Como en el diagrama B (véase la figura 4.19), si después del punto en que se divide la línea existe(n) otra(s) condición(es) de ejecución para las instrucciones, es necesario identificar el punto de ramificación usando un bit TR (dependiendo de la marca y modelo del PLC, se tendrá un número determinado de relevadores temporales). La programación se muestra a continuación. Figura 4. 19 Diagrama B 102 www.infoPLC.net Programación del PLC PASO 00000 00001 00002 00003 00004 00005 00006 00007 00008 00009 00010 INSTRUCCIÓN OPERANDO LOAD 00000 AND 00001 OUT TR0 AND 00002 INSTRUCCIÓN 1 LOAD TR0 AND 00003 INSTRUCCIÓN 2 LOAD TR0 AND 00004 INSTRUCCION 3 Tabla 4-58 Listado de mnemónicos del Diagrama B Nota: La instrucción OUT TR identifica el punto de ramificación y la instrucción LOAD TR hace un llamado al punto de ramificación. Observe que prescindir de los bits TR’s implica el uso de mayor número de contactos, dado que, es necesario repetir la condición de ejecución en cada línea de instrucción (peldaño). Para ver esto, el mismo diagrama de escalera del diagrama B se muestra a continuación, con la diferencia de que en este caso no hace uso de los bit’s TR’s. Figura 4. 20 Diagrama de escalera sin uso de TR´s PASO 00000 00001 00002 00003 00004 00005 00006 00007 00008 00009 00010 00011 INSTRUCCIÓN OPERANDO LOAD 00000 AND 00001 AND 00002 INSTRUCCION 1 LOAD 00000 AND 00001 AND 00003 INSTRUCCION 2 LOAD 00000 AND 00001 AND 00004 INSTRUCCIÓN 3 Tabla 4-59 Listado de mnemónicos sin uso de los TR´s 103 www.infoPLC.net Programación del PLC Para terminar de entender el funcionamiento y empleo de los distintos tipos de relevadores, véase la sección 2.2.2.1 Organización de la memoria principios de direccionamiento. 4.4.10.2 Temporizadores En términos muy simples, un temporizador es una instrucción que espera una cantidad de tiempo determinado antes de realizar una acción específica. En otras palabras, se requiere el uso de temporizadores, cuando se necesita activar una salida que dependa de un tiempo programado, por ejemplo: 1. 2. 3. Activar una sirena durante 5 segundos. Retardar por 10 minutos la apertura de una válvula. Activar el mezclador de un tanque durante ½ hora. Hay tres valores asociados a un temporizador, estos son: • • • N: Es el número que identifica al temporizador. SV: (valor fijado) es el valor para el cual se programa el temporizador. PV: (valor presente) es el valor actual de operación del temporizador. Cabe mencionar, que los temporizadores pueden ser usados como instrucciones y como operandos de otras instrucciones. Por otro lado, una gran dificultad aparece al considerar que no existe una estandarización para su implementación por parte de los fabricantes de PLC’s. Sin embargo, la mayoría se puede clasificar en los siguientes grupos. Como una forma de reconocerlos en los catálogos se conserva sus nombres en inglés. 4.4.10.3 On-delay timer Este tipo de temporizador simplemente retrasa el encendido de una salida. En otras palabras, después de que un sensor se ha encendido debido a la detección de su objetivo, el temporizador espera una cantidad determinada de segundos antes de activar un selenoide. Este es el más común de los temporizadores. Se denomina generalmente como TON (timer on-delay), TIM (timer) o TMR (timer). Para analizar la operación de un temporizador TIM en la siguiente figura se presenta el símbolo de un temporizador en un diagrama de escalera. Figura 4. 21 Ejemplo del empleo de un temporizador TIM 104 www.infoPLC.net Programación del PLC En el diagrama anterior se debe esperar el encendido de la entrada 0001. Cuando esto ocurre, el temporizador T000 (definido en tic’s de 100 mseg.) comienza su conteo hasta que el temporizador llegue a 10000 mseg (es decir, 10 segundos) lo que se maneja definiendo el número de tic’s (más adelante se definirá el término de tic) en 100. Cuando se alcanza los 10 segundos se cierran los contactos del temporizador y la salida o registro 500 cambia a encendido. Cuando la entrada 0001 se apaga, el temporizador T000 es regresado a OFF, causando que sus contactos se abran, haciendo que la salida 500 también se encuentre en la condición de OFF. 4.4.10.4 Off-delay timer Este tipo de temporizador es el caso opuesto del anterior. Este temporizador retrasa el apagar una salida. Después de que un sensor ha detectado su objetivo este enciende un selenoide. Cuando el objetivo ya no esta frente al sensor, esta instrucción demora el apagar el selenoide al que esta conectado el sensor. Este temporizador se denomina como TOF (time offdelay) y es menos común que el temporizador On delay. 4.4.10.5 Retentive o temporizadores acumulativos Este tipo de temporizador necesita dos entradas. Una entrada inicia la medición con el cronómetro y la otra entrada lo regresa a su valor inicial. Los temporizadores ON-OFF DELAY vistos en los párrafos anteriores deben ser reiniciados si el sensor de entrada no alcanza un estado de encendido o apagado en un ciclo completo de duración del temporizador. Este temporizador sin embargo, retiene el tiempo actualmente transcurrido cuando el sensor se apaga a medio tiempo. Por ejemplo, si se desea conocer por cuanto tiempo un sensor ha estado encendido durante el transcurso de una hora. Si se usa uno de los temporizadores de los párrafos anteriores, se debe reiniciar el contador cuando el sensor es encendido o apagado. Este temporizador sin embargo, nos permite mantener el tiempo total o acumulado. Este temporizador se denomina usualmente RTO (retentive timer) o TMRA (acumulating timer). Para utilizar este temporizador es necesario conocer dos cosas: 1. 2. ¿Qué evento encenderá el temporizador?. Típicamente esto se realiza con una de las entradas (Un sensor conectado a la entrada 00000 por ejemplo). ¿Cuánto tiempo se ha de esperar antes de reaccionar?. Supongamos que esperamos 5 segundos antes de encender un selenoide. Cuando las instrucciones antes del símbolo del temporizador son verdaderas, este comenzará el conteo. Cuando el valor configurado transcurra, el temporizador cerrará sus contactos. Cuando el programa está corriendo en el PLC, es habitual que el temporizador despliegue el tiempo acumulado para que podamos observarlo. Típicamente los temporizadores pueden realizar un conteo de 0 a 999 o de 0 a 65535 unidades, donde a cada unidad se le llama tic. El porqué de estos números se debe a que la mayoría de los PLC tienen contadores de 16 bits. Por ahora es suficiente mencionar que 0 a 9999 es un número de 16 bits del tipo binario codificado, y 0 a 65535 es un número de 16 bits de tipo binario. Cada tic del reloj es equivalente a X segundos. 105 www.infoPLC.net Programación del PLC Usualmente cada fabricante de PLC ofrece diferentes tic’s. La mayoría de los fabricantes ponen a disposición incrementos de 10 a 100 mseg (tic’s del reloj). Varios fabricantes también ofrecen incrementos de 1 mseg hasta 1 seg. Estos temporizadores de diferentes incrementos trabajan de la misma forma que los estudiados anteriormente, pero a veces tienen diferentes nombres para destacar las diferencias de sus incrementos. Algunos son contadores de alta velocidad (TMH), temporizadores de súper alta velocidad (TMS) o temporizadores acumulativos rápidos (TMRAF). Hay que recordar que aunque los temporizadores parezcan diferentes, son utilizados de forma similar. Si se sabe utilizar uno, se sabe utilizar todos. A continuación se muestra el uso de un temporizador acumulativo (véase la siguiente figura). Figura 4. 22 Ejemplo de un temporizador acumulativo Este temporizador es llamado Txxx. Cuando la entrada disponible se enciende, el temporizador comienza su conteo. Cuando el conteo alcanza el valor yyyy (un valor predefinido), este enciende los contactos que inician las acciones que están programadas cuando esto ocurre. Sin embargo, cuando la entrada disponible vuelve a su estado apagado antes que el valor predefinido se alcance, el valor actual será retenido. Cuando la entrada vuelva a un estado encendido, el temporizador continuará su cuenta desde donde quedó antes de entrar al estado apagado. La única forma de forzar al temporizador a su estado inicial y así comenzar un nuevo conteo, es encender la entrada RESET para iniciarlo. Este temporizador, en el contexto de diagrama de escalera, luce como se muestra en la figura 5.23. En este diagrama se esperan los cambios en la entrada 0002 para encenderlo. Cuando esto ocurra (el encendido) el temporizador T000 comenzará el conteo. Este contará 100 veces (con incrementos de 10 mseg.), hasta completar 1 seg=1000mseg. Cuando transcurra 1 seg, los contactos del T000 se cerrarán encendiendo 500. Si la entrada 0002 se apaga, el tiempo transcurrido es retenido. Cuando la entrada 0002 vuelve a encenderse, el temporizador continuará su cuenta desde el punto donde se quedo antes de que se apagara la entrada. Cuando la entrada 0001 se enciende, el temporizador ha vuelto a cero, haciendo que la salida 500 se apague. Figura 4. 23 Ejemplo del empleo de un temporizador acumulativo 106 www.infoPLC.net Programación del PLC 4.4.10.6 Temporizador de alta velocidad El temporizador TIMH opera de la misma forma que TIM excepto que la unidad de medida es 0.01 segundo. Veamos un ejemplo del empleo de un temporizador TIMH, el cual se muestra en la siguiente figura. Figura 4. 24 Ejemplo del empleo de un temporizador de alta velocidad TIMH PASO 00000 00001 00002 00003 00004 INSTRUCCIÓN OPERANDO LOAD 00000 TIMH (15) 000 #150 LOAD TIMH000 OUT 31000 Tabla 4-60 Listado de mnemónicos del diagrama de escalera del ejemplo anterior 4.4.10.7 Exactitud del tiempo Ahora que sabemos como crear y manejar un temporizador, aprenderemos sobre las implicaciones que tiene el manejo de su precisión. Cuando definimos un temporizador para unos pocos segundos, o más, no tomamos atención a las características de su precisión debido a que en estos casos es prácticamente insignificante. Sin embargo, cuando se crean temporizadores que tienen una duración del orden de milisegundos (1 mseg= 1/1000 segundos) se debe de tomar en cuanta la precisión. Hay en general dos tipos de error cuando se emplean temporizadores. El primero es llamado error de entrada y el otro es llamado error de salida. El error total es la suma de los errores de entrada y salida. Error de entrada Este error ocurre dependiendo de cuándo el temporizador se enciende durante un ciclo de barrido. Cuando el temporizador se enciende inmediatamente después de que el PLC revisa el estado de sus entradas durante un ciclo de barrido, el error de entrada tomará su mayor valor posible, es decir, más de un ciclo de barrido completo. Esto es consecuencia de que el PLC revisa el estado de sus entradas durante la primera parte de su ciclo de barrido. Si el encendido ocurre a la siguiente etapa de revisión, en el barrido posterior, se está incurriendo en un error obvio. Aparte de lo expuesto, el ciclo de barrido incluye el tiempo utilizado en la ejecución de las instrucciones incluidas en ese barrido. Si la instrucción que maneja el temporizador es el último peldaño de la escalera, se estará incurriendo en un gran error. 107 www.infoPLC.net Programación del PLC En la figura 4.25 se muestra un diagrama que ilustra el peor caso de un error de entrada. Se puede ver aquí que el peor error podría llegar a ser de un ciclo de barrido completo mas el tiempo de ejecución del programa de instrucciones. Hay que recordar que el tiempo de ejecución de un programa varía de un programa a otro, debido a que depende del tipo y cantidad de instrucciones que contenga. Figura 4. 25 Ejemplo del peor caso de un error de entrada Error de salida Otro error ocurre basado en condiciones similares al del error anterior, pero en el instante en el cual se deben actualizar las salidas. Esto sucede porque el temporizador alcanza el valor determinado, pero el PLC debe terminar de ejecutar la secuencia de instrucciones del ciclo de barrido antes de actualizar el estado de las salidas, según el valor que tomó el temporizador un instante antes. En el peor de los casos el error de salida puede llegar a ser del tiempo de un ciclo de barrido completo. En la siguiente figura se muestra el peor caso de un error de salida. Aquí se aprecia que el peor posible error puede ser un ciclo de barrido completo. Figura 4. 26 Ejemplo del peor caso de un error de salida Basados en lo presentado anteriormente, se puede apreciar que el peor error total (la suma de los errores de entrada y salida) en la medición de tiempos puede llegar a ser igual a: 1 tiempo de barrido+1 tiempo de ejecución de programa+1 tiempo de barrido= 2 ciclo de barrido+1 tiempo de ejecución de programa. En la práctica esto significa que aunque la mayoría de los fabricantes incluyen temporizadores con incrementos de 1mseg, estos no deben ser utilizados para duraciones 108 www.infoPLC.net Programación del PLC menores a unos pocos milisegundos. Si el tiempo de barrido de su PLC es de 5 mseg sería recomendable no usar el temporizador con la intención de medir duraciones de menos de 15 mseg. Esta afirmación es válida siempre que el error que se pueda acumular es de importancia para nuestra aplicación. En la mayoría de las aplicaciones errores de este tipo son despreciables pero en algunas aplicaciones de alta velocidad, o muy precisas en el tiempo, este error puede ser muy significativo. Hay que destacar que los errores mencionados corresponden a errores por software. También existe un error para temporizadores por hardware del tipo de error de entrada y error de salida. El error de entrada en temporizadores por hardware es causado por el tiempo que toma el PLC en activar la entrada del temporizador cuando son revisadas las entradas del PLC. Esta duración es típicamente de 10 mseg. Esto se debe a que muchos PLC requieren que la entrada deba estar físicamente encendida durante algunos barridos antes de ser actualizada como encendida (con el fin de eliminar ruidos). El error de salida en temporizadores por hardware es causado por el tiempo que transcurre entre el instante cuando el PLC indica que una salida debe estar encendida, hasta el momento en que esta realmente lo está. Típicamente un transistor toma unos 0.5 mseg en hacer esto, mientras que a un relevador mecánico le toma cerca de 10 mseg. Si estos tiempos son considerables para la aplicación a diseñar, considere la utilización de temporizadores por hardware externos al PLC. 4.4.10.8 Contadores Todos los PLC’s incorporan funciones que reemplazan a la aplicación de contadores en el sistema de control. Además del obvio uso de los contadores para contar, por ejemplo piezas o ciclos de trabajo, la combinación de varios de ellos, quizás con el uso de algunas funciones del tipo aritmético, permite reemplazar programadores a leva y realizar funciones que de otra forma resultarían complicadas. En otras palabras, un contador es un dispositivo que pretende hacer una cosa muy simple, contar. Así mismo, se requiere el uso de contadores, cuando se necesita indicar que ha sucedido un evento un número determinado de veces, por ejemplo: 1. 2. 3. Producir una señal sonora cada 20 productos determinados. Contar el número de piezas que se han producido en una línea de producción. Contar el número de personas que han atravesado una puerta. Su uso, sin embargo, puede ser algunas veces un desafío debido a que cada fabricante hace uso de ellos de una forma diferente. Se pretende que la información que se muestra sirva para ser aplicada a cualquier tipo de contador. Existen varias clases de contadores, en particular los contadores hacia arriba (es decir, sólo cuentan 1, 2, 3,...) los cuales son llamados CTU (count up), CNT, C, o CTR. También están los contadores hacia abajo (es decir, sólo cuentan 9, 8, ...) los cuales son llamados CTD (count down) 109 www.infoPLC.net Programación del PLC cuando son denominados como una instrucción separada. Finalmente está la combinación de los contadores presentados anteriormente, contadores hacia arriba y abajo (es decir, pueden realizar cosas como 1, 2, 3, 4, 3, 2, 3, 4, 5,...). Estos se denominan típicamente UDC (up-down counters) cuando vienen como una instrucción separada. Varios fabricantes de PLC’s incorporan en sus equipos uno o dos tipos de contadores, pero ellos pueden ser utilizados para realizar cualquiera de los tipos de conteo. No importa demasiado como el fabricante denomine a un contador en particular, los principios de operación son similares. De esta forma, todos los contadores tienen una entrada de pulso a contar, una entrada de reset, que cuando es activada lleva al contador a su estado inicial y una salida que se activa cuando la cuenta llega a su valor final. El tipo más común de contador es el ascendente, en el que el estado inicial es cero con la salida desactivada y que al ir recibiendo pulsos en la entrada de conteo la cuenta aumenta siempre manteniendo la salida desactivada hasta el momento en que la cuenta llega al valor predeterminado por el programador, por lo que el contador dejará de contar. Por otro lado, podemos encontrar también contadores descendentes, en los que se programa un valor inicial distinto de cero y la salida se activa luego de realizar un conteo descendente y llegar por consecuencia a cero. Ambos tipos de contadores serán tratados con mayor detalle a continuación. 4.4.10.9 Contadores ascendentes En la siguiente figura se muestra un símbolo de un contador que puede variar dependiendo del fabricante. Hay que recordar que aunque parezcan diferentes, estos se utilizan de la misma forma. Figura 4. 27 Ejemplo de un contador ascendenter En este contador (ver la figura anterior) se requiere de dos entradas. Una sería la entrada de reinicio (Reset). Cuando esta entrada se active el valor actual o acumulado volverá a cero. La segunda entrada (Pulse) corresponde a la dirección del registro desde donde provienen los pulsos que serán contados. Por ejemplo, si se quiere contar cuantas cajas pasan frente a un sensor en una línea de producción, el cual está físicamente conectado a la entrada 00001, entonces pondremos un contacto normalmente abierto con la dirección 00001 frente a la línea de pulso. Cxxx es el nombre del contador. Así como yyyy es el número de pulsos que se requiere contar antes de realizar una acción. Cuando el contador a llegado a su definición de yyyy pulsos, este activará un grupo de contactos separados que también están etiquetados por Cxxx. Hay que recordar que el valor acumulado del contador cambiará sólo después de una transición de apagado a encendido (transición positiva) del pulso de entrada. 110 www.infoPLC.net Programación del PLC A continuación se tiene el símbolo de un contador en un diagrama de escalera mostrando como definir un contador (llamado contador C000) para contar 100 cosas desde la entrada 0001 antes de activar la salida 0500. El sensor 0002 reinicia el contador (ver la siguiente figura). Figura 4. 28 Ejemplo del empleo de un contador Cuando el programa está corriendo en el PLC, éste es capaz de mostrarnos el valor actual o acumulado que tiene el contador. Usualmente los contadores operan en rangos de 0 a 9999, -32768 a +32767, o de 0 a 65535. Estos números tan especiales provienen del hecho de que la mayoría de los contadores de PLC son de 16 bits. 4.4.10.10 Contadores descendentes Como se vio anteriormente, en un contador descendente (DC o CTD) se inicia el conteo desde cierto valor predeterminado realizando de esta forma un conteo hacia abajo hasta llegar a #0000. Los contadores descendentes también pueden ser usados como instrucciones y como operandos de otras instrucciones. Como instrucción, DC tiene como entradas de control: • • Entrada de cuenta hacia abajo (PULSE): Decrementa el conteo Entrada de reset (RESET): Reinicia la cuenta al valor predeterminado yyyy Figura 4. 29 Símbolo de un contador ascendente DCxxx es el nombre del contador. Así como yyyy es el número de pulsos que se requiere decrementar antes de realizar una acción. Cuando el contador a llegado a cero, este activará un grupo de contactos separados que también están etiquetados por DCxxx. A continuación se tiene el símbolo de un contador descendente en un diagrama de escalera mostrando como definir un contador descendente (llamado contador DC000) para contar 100 cosas desde la entrada 0001 antes de activar la salida 0500. El sensor 0002 reinicia el contador (ver la siguiente figura). 111 www.infoPLC.net Programación del PLC Figura 4. 30 Ejemplo del empleo de un contador descendente Nuevamente, cuando el programa está corriendo en el PLC, éste es capaz de mostrarnos el valor actual o acumulado que tiene el contador. Como podemos ver, el empleo de un contador descendente es similar al de un ascendente, con la única diferencia que en el descendente la salida será activada sólo en el momento en que la cuenta llegue a ser cero. 4.4.10.11 Contadores ascendente-descendente En la siguiente figura se muestra el símbolo que puede representar un contador ascendente-descendente (contador arriba-abajo). Se ha utilizado la misma abreviación presentada en el ejemplo anterior. Figura 4. 31 Símbolo de un contador ascendente-descendente En este contador ascendente-descendente es necesario asignar tres entradas. La entrada de reinicio tiene la misma función mencionada anteriormente para el caso del contador ascendente. Una de las entradas restantes se utiliza para realizar el conteo hacia arriba y la otra para realizar el conteo hacia abajo. En el siguiente ejemplo se muestra un contador, el cual se denomina UDC000 y se le dará el valor de configuración 1000, es decir, la intención es contar 1000 pulsos. Cuando el sensor conectado a la entrada 0001 detecte un objetivo se aumentará el valor acumulado, cuando suceda lo mismo al sensor conectado a la entrada 0003 se disminuirá el valor acumulado. Cuando el valor acumulado alcance 1000 se activará la salida 0500. El diagrama de escalera de este ejemplo se muestra en la siguiente figura. 112 www.infoPLC.net Programación del PLC Figura 4. 32 Ejemplo del empleo de un contador ascendente-descendente 4.4.10.12 Contadores de alta velocidad Para agregar más complejidad al tema, algunos fabricantes incorporan contadores de alta velocidad, denominados comúnmente HSC (High Speed Counter) o de forma similar. Típicamente un contador de alta velocidad es un componente de hardware, es decir, es un chip adicional en el PLC, no así su contraparte normal, que corresponde a instrucciones que son realizadas por el mismo PLC, es decir, son contadores manejados por software. Los contadores de alta velocidad, al no estar soportados por el CPU del PLC, tienen la ventaja de no estar relacionados con el tiempo de barrido del CPU. Una buena regla para recordar es la de utilizar siempre los contadores por software a menos que el tiempo que transcurre entre dos puntos sea inferior a dos veces el tiempo que tarda en hacer un barrido el CPU, es decir, si el tiempo de barrido es de 2 mseg y los pulsos llegan a intervalos de 4 mseg o superiores, entonces utilice un contador por software. Si los pulsos llegan a intervalos de 3 mseg o inferiores, utilice un contador de alta velocidad. Para utilizar un contador de alta velocidad se deben conocer tres cosas: 1. 2. 3. ¿Desde dónde provienen los pulsos que se desean contar?. Típicamente el pulso proviene de una de las entradas (un sensor conectado a la entrada 00000 por ejemplo). ¿Cuántos pulsos son necesarios contar antes de reaccionar?. Por ejemplo, contar 5 elementos antes de empaquetarlos en un envase. ¿Cuándo y/o cómo se restaurará el contador para iniciar un nuevo conteo?. Por ejemplo, reiniciar el conteo una vez que se han contado los 5 elementos que se van a envasar. Finalmente, cabe señalar que así como el número de temporizadores depende del fabricante y modelo del PLC, el número de contadores está sujeto a las mismas condiciones. Nota: El número que identifica a un temporizador no puede ser usado por un contador y viceversa. Esto es, TIM 010 y CNT 010 no pueden ser ambos usados, dado que tanto los temporizadores como los contadores utilizan los mismos registros. 113 www.infoPLC.net Programación del PLC 4.4.10.13 Instrucción KEEP La instrucción KEEP se utiliza para simular un relevador de enclavamiento. Esta instrucción tiene dos entradas de control: SET y RESET. (En circuitos lógicos esta instrucción equivale a biestable set-reset). Set: Cuando la condición de esta entrada se pone en ON, el bit especificando (la salida) en el KEEP es llevado a la condición ON (encendido). Reset: Cuando la condición de esta entrada se pone en ON, el bit especificado (la salida) en el KEEP es llevado a la condición OFF (apagado), esto independientemente del estado de la entrada SET. A continuación tenemos un ejemplo de aplicación de una instrucción KEEP. Suponga que queremos detectar cuando una puerta es abierta (podría ser el caso de un circuito de una alarma antirrobo) y una vez abierta, no se debe desactivar así la cierren nuevamente. Cuando se ha enterado el personal de vigilancia que se activo una alarma y que ha pasado el peligro, sólo el personal de vigilancia podrá desactivar la alarma con un switch. En este caso, podemos hacer uso de una instrucción KEEP, empleando un sensor conectado a la entrada 0000 (el cual detectará el momento en que se abra la puerta) y un push-button (el cual podrá desactivar la alarma y que estará conectado a la entrada 00001). El diagrama de escalera resultante para este ejemplo se muestra a continuación junto con el listado de mnemónicos correspondiente. Figura 4. 33 Ejemplo del empleo de la instrucción KEEP PASO 00000 00001 00002 00003 INSTRUCCIÓN OPERANDO LOAD 00000 LOAD 00001 KEEP 00100 END Tabla 4-61 Listado de mnemónicos del ejemplo de la instrucción KEEP La siguiente figura muestra el funcionamiento de la instrucción KEEP. Figura 4. 34 Funcionamiento de la instrucción KEEP 114 www.infoPLC.net Programación del PLC 4.4.10.14 Instrucción DIFERÉNCIATE UP-DIFU Cuando la condición de ejecución DIFU presenta un flanco de subida, el bit especificado por ésta (la salida de la instrucción DIFU) se establece en la condición de ON (encendido) durante un ciclo de programa (o como se ha venido definiendo, ciclo de scan). A continuación tenemos un ejemplo de empleo de la instrucción DIFU. Figura 4. 35 Ejemplo del empleo de una función DIFU PASO 00000 00001 INSTRUCCIÓN OPERANDO LOAD 00000 DIFU 23300 Tabla 4-62 Listado de mnemónicos del ejemplo de la instrucción DIFU En este caso, cuando la entrada 00001 es cerrada (es decir, pasa de la condición OFF a ON), el bit de trabajo 23300 irá a ON durante un ciclo de programa solamente. Esta instrucción no es usada para conmutar a la condición de encendido (ON) dispositivos de salida, ya que un ciclo de programa tiene una duración típica de 20 a 50 mseg. Por lo que esto no sería suficiente para activar ninguna salida real. El siguiente diagrama muestra el funcionamiento de la instrucción DIFU. Figura 4. 36 Funcionamiento de la instrucción DIFU 4.4.10.15 Instrucción DIFFERENTIATE DOWN-DIFD Funcionalmente, la instrucción DIFD es la misma que DIFU excepto que es activada con el flanco de bajada de su condición de ejecución, colocando en ON el bit especificado durante el ciclo de programa. En la siguiente figura se muestra un ejemplo de un diagrama de escalera, así como su listado de mnemónicos, el cual hace uso de la instrucción DIFD. Figura 4. 37 Ejemplo del empleo de la instrucción DIFD 115 www.infoPLC.net Programación del PLC PASO 00000 00001 INSTRUCCIÓN OPERANDO LOAD 00000 DIFD 23300 Tabla 4-63 Listado de mnemónicos del ejemplo de la instrucción DIFD En este ejemplo, cuando la entrada 00001 pasa de la condición de encendido (ON) a la condición de apagado (OFF), el bit especificado 23301 irá a ON durante un ciclo de programa. En la siguiente figura se muestra el diagrama de tiempos del funcionamiento de la instrucción DIFD. Figura 4. 38 Funcionamiento de la instrucción DIFD 4.4.10.16 Instrucción INTERLOCK e INTERLOCK CLEAR – IL e ILC Las instrucciones IL e ILC se emplean en pareja. Cuando la condición de ejecución para IL es ON, el programa se ejecuta como está escrito, con una condición de ejecución ON utilizada para iniciar cada línea de instrucción desde el punto en que se encuentra IL hasta el siguiente ILC (ver la figura 5.39). Si la condición de ejecución para IL es OFF, la sección de programa enclavada entre IL e ILC se tratará como se indica en la siguiente tabla. INSTRUCCIÓN OUT Y OUT NOT TIM y TIMH CNT y CNTR SEP DIFU y DIFD Resto de instrucciones TRATAMIENTO Bit designado puesto a OFF Reset Se mantiene el PV Se mantiene el estado del bit No ejecutada No se ejecutan las instrucciones y todos los bits y canales IR, AR, LR, HR, y SR escritos como operandos en las instrucciones se ponen a OFF Tabla 4-64 Forma en que será tratada la sección del programa enclavada entre IL e ILC 116 www.infoPLC.net Programación del PLC Figura 4. 39 Ejemplo de empleo de la instrucción IL e ILC. En este ejemplo, las líneas punteadas muestran el efecto de emplear la función INTERLOCK. Todas las líneas de instrucción entre IL e ILC pueden considerarse que tienen un contacto imaginario controlado por la entrada 00000 Anidamiento de INTERLOCK´S En este caso, las instrucciones IL e ILC no han de emplearse exactamente en parejas. La instrucción IL se puede utilizar varias veces en una columna, con cada IL creando una sección de programa enclavada hasta la siguiente ILC. En este caso, se deben de tener las siguientes precauciones: • • 4.4.10.17 Después de una o más instrucciones IL debe seguir una ILC Aunque con una instrucción ILC se pueden utilizar tantas instrucciones IL como sean necesarias, la instrucción ILC no se puede utilizar consecutivamente si al menos hay una instrucción IL entre ellas y cualquier instrucción ILC anterior. Instrucciones JUMP y JUMP END (JMP y JME) JUMP y JUMP END son instrucciones que operan en forma similar a las instrucciones INTERLOCK e INTERLOCK CLEAR. JUMP se emplea siempre junto con JUMP END para crear saltos, es decir, para saltar de un punto a otro en el diagrama de escalera. JMP define el punto desde el que se salta. JME define el punto destino del salto. Los saltos están numerados desde 00 a 99. El símbolo empleado en el diagrama de escalera de las instrucciones JMP y JME se muestran a continuación en el siguiente diagrama. Figura 4. 40 Simbolo empleado para representar las instrucciones JMP y JME respectivamente en LADDER. Cuando la condición de ejecución para JMP es ON, no se ejecuta ningún salto. Cuando la condición de ejecución para JMP es OFF, se realiza un salto a la JME con el mismo número de 117 www.infoPLC.net Programación del PLC salto, no ejecutándose las instrucciones entra ambas JMP y JME, y se ejecuta la instrucción que sigue a JME. Para el empleo correcto de las instrucciones JMP y JME se debe de tener en cuenta que: El número de salto 00 se puede usar tantas veces como se desee, no así los saltos numerados de 01 a 99 los cuales se utilizan en pareja y pueden ser usados una sola vez en el programa. Se pueden realizar anidamientos utilizando saltos con número 00, es decir, es posible utilizar la instrucción JMP (04) 00 consecutivamente y concluir todas ellas en la misma JME (05). Los temporizadores en secciones enclavadas no se reinician cuando la condición de ejecución para JMP sea OFF, pero si se utiliza el número de salto 00 el temporizador parará su operación. Si se utilizan números de salto de 01 a 99, los temporizadores seguirán su operación. Dado que todas las instrucciones entre JMP (04) y JME (05) se saltan, los números de salto de 01 a 99 se pueden utilizar para reducir el tiempo de ciclo. Para el salto con número 00, el CPU del PLC realiza una búsqueda de la siguiente JME con número 00, por lo tanto, provoca un tiempo de ciclo más largo (cuando la condición es OFF) que para los otros saltos. 4.4.10.18 Registros de corrimiento En muchas aplicaciones es necesario guardar el estado de un evento que ha ocurrido con anterioridad. Como se ha visto antes, esto es sencillo de realizar. ¿Pero qué se puede hacer si se debe guardar una cantidad considerable de eventos para ser utilizados en decisiones posteriores?. En este contexto, se emplean las instrucciones de cambio de registro. Podemos utilizar registros o grupos de registros para formar una lista enlazada de bits para guardar estados previos de encendido o apagado de una entrada o salida de nuestro PLC. Cada cambio en el estado de la entrada o salida registrada origina un nuevo elemento que se enlaza a nuestra lista. Si esta situación supera el largo definido para nuestra lista, la adición de un nuevo suceso se añadirá en el primer bit o elemento, y el contenido del primer bit se cambiará al elemento siguiente de la lista, y así sucesivamente, hasta que el último elemento de nuestra lista sea reemplazado por el valor del bit penúltimo, lo que origina que el valor del último elemento se pierda. El cambio de registro recibe varios nombres. SFT (Shift), BSL (Bit Shift Left), SFR (Shift Forward Register) son los nombres más comunes utilizados por los fabricantes de PLC’s. Estos comandos mueven los registros hacia la izquierda, como se describió en el párrafo anterior. BSR (Bit Shift Right) y SFRN (Shift Forward Register Not) son algunos ejemplos de comandos que realizan el cambio hacia la derecha. Hay que destacar que la mayoría de los fabricantes de PLC’s agregan el comando para el cambio de registros hacia la izquierda, sin embargo, no todos cuentan con el comando para cambiar los registros hacia la derecha. El símbolo usualmente empleado para denotar este comando se muestra en la siguiente figura. Hay que notar que este comando necesita tres entradas y tiene necesariamente algún dato dentro del símbolo. 118 www.infoPLC.net Programación del PLC Figura 4. 41 Símbolo de la instrucción SFT (Registro de corrimiento) Donde las entradas son definidas de la siguiente manera: • • • DATOS: La entrada de datos recopila los datos ON – OFF (Encendido o apagado) que serán cambiados en la lista enlazada. Cuando la entrada de datos es verdadera, el primer bit de la lista o registro tomará el valor lógico “1”. Este dato ingresado a la lista o registro únicamente en la transición positiva de los pulsos de reloj del PLC. RELOJ: El reloj de entrada habilita a la instrucción SFT para que realice su operación sobre el registro. En la transición de subida (o también llamada transición positiva) de la entrada, el comando cambia los datos o bits en una posición dentro del registro, es decir los desplaza una posición e ingresa el estado de la entrada en el primer lugar del registro. En cada transición positiva de la señal de reloj el proceso se repite. RESET o REINICIO: Esta entrada hace exactamente lo que su nombre indica. Borra el contenido completo del registro, llevando todos los bits del registro al estado o valor lógico “0”. El valor 1000 dentro del símbolo SFT determina la localización del primer bit del registro sobre el cual se quiere ejecutar la función de corrimiento. Si pensamos en los registros como una lista de bits enlazados como una cadena, este elemento es el primer eslabón. El valor 1003 dentro del símbolo SFT mostrado en la figura anterior es el último bit del registro sobre el cual estamos operando, es decir, corresponde al último eslabón de la cadena. En este ejemplo hay bits intermedios, en consecuencia nuestro registro consta de cuatro bits (1000,1001, 1002 y 1003). 4.5 GRAFCET Comenzaremos mencionando que el acrónimo Grafcet significa Gráfico Funcional de Control de Etapas y Transiciones. • • • • Es un sistema de representación de control (secuencial) mediante la sucesión alternada de etapas y transiciones definidas por elementos gráficos y reglas de evolución que reflejan la dinámica del comportamiento del sistema. Es una variante del Diagrama de Transiciones de Estados. Es una simplificación sistematizada de las Redes de Petri. Está normalizado a nivel europeo IEC 848. El Grafcet surge en Francia a mediados de los años 70´s, debido a la colaboración de algunos fabricantes de autómatas, como Telemecanique y Aper en colaboración con dos organismos oficiales AFCET (Asociación Francesa para la Cibernética, Economía y Técnica) y la ADEPA (Agencia nacional para el desarrollo de la producción automatizada). Homologado en 119 www.infoPLC.net Programación del PLC Francia, Alemania y posteriormente por la comisión Electrónica Internacional (IEC 848, año 1988). En la actualidad, la constante revolución tecnológica ha obligado a adoptar nuevas técnicas en la automatización de máquinas y procesos. Las actividades realizables y los dispositivos utilizados pueden ser muy diversos, entre otras, se pueden utilizar señales analógicas, realizar cálculos y operaciones complejas, etc. Por lo anterior, el especialista en automatismos, debe realiza un análisis del problema y, mediante unos símbolos gráficos propios de su trabajo y experiencia, diseñar los esquemas correspondientes a la tecnología utilizada. De esta forma, el Grafcet pretende ser una herramienta útil y eficaz para facilitar la representación y dar solución al automatismo en forma sistematizada Una vez planteado el problema y diseñado ya el Grafcet de nivel 1, la adaptación a la solución tecnológica concreta deseada, se realiza mecánicamente (hay programas que lo hacen de forma directa). Aunque podemos implementar el Grafcet sobre cualquier tecnología, es un método muy indicado para circuitos integrados programables o en los autómatas programables. El Grafcet describe los procesos a automatizar, remarcando las acciones y los eventos que las provocan. Es una representación directamente relacionada a la evolución del proceso, facilitando el dialogo entre personas de especialidades distintas y de diferentes niveles de formación, a partir ya del momento de la concepción del automatismo, y después en las fases de mantenimiento. En la reparación de averías, una vez que ya están en funcionamiento los problemas quedan delimitados sobre una etapa y entre unas transiciones. El Grafcet por otro lado ayuda en las diferentes fases de desarrollo del automatismo: • • • • 120 Planteamiento El Grafcet es un método gráfico de representación independiente de la tecnología empleada en la resolución final. Esto permite plantear el problema, discutirlo y resolverlo entre todos (en la pizarra), por lo menos en su componente funcional Resolución tecnológica En esta fase, la discusión sobre la tecnología a emplear, se hace valorando las ventajas y los inconvenientes de cada tecnología o sistema. Podemos también plantear el mismo problema sobre diferentes tecnologías y una vez realizados los proyectos, discutir y valorar los costes y ventajas. Realización del automatismo La metodología del Grafcet ayuda a hacer la implementación de forma mecánica. Es importante documentar el proyecto de forma completa. Comprobación del funcionamiento En esta fase, el Grafcet permite hacer el seguimiento, etapa a etapa del automatismo. Si aparece alguna disfunción, estará localizada en una etapa o bien en una transición www.infoPLC.net Programación del PLC • concreta, facilitando así la solución. Con el Grafcet la localización de averías se hace de forma sistematizada. Ampliación y mejora Una vez que el sistema se ha comprobado y esta en funcionamiento, una revisión en grupo a partir del Grafcet de nivel I, permitirá añadir especificaciones para la mejora del sistema tales como: Elementos de seguridad. Sistemas de detección de averías. Ampliación y mejora de los tipos de sistemas de marcha y de parada. Añadir programa de control o visualización (Scada) Figura 4. 42 Elementos del Grafcet Finalmente, podemos mencionar que los elementos que forman al Grafcet y que fueron mostrados en la figura anterior, serán descritos a continuación. 4.5.1 Etapas Las etapas representan cada uno de los estados del sistema. El símbolo empleado para representar una etapa es un cuadro con un número o símbolo en su interior que la identifica. 4.5.1.1 Etapas iniciales Las etapas iniciales del sistema se representan por un cuadro con doble línea y se activan al iniciar el Grafcet. Una vez que se ha iniciado, las etapas iniciales tienen el mismo tratamiento que las otras etapas. Se tienen diferentes tipos de etapas iniciales, entre las que podemos mencionar: 121 www.infoPLC.net Programación del PLC Figura 4. 43 Etapa inicial sin retorno Figura 4. 44 Etapa inicial con retorno Figura 4. 45 Etapa inicial con retorno y activación forzada Cabe aclarar que todo sistema debe tener como mínimo una etapa inicial. 4.5.1.2 Etapas normales Estas etapas representan los estados estables del sistema. Las etapas deben estar numeradas; aunque de forma no necesariamente de forma correlativa (No puede haber dos etapas con el mismo número). Este tipo de etapas pueden estar activas o inactivas. Al representar el estado del Grafcet en un momento dado, se puede indicar que una etapa está activa, con un punto de color (ver la en la siguiente gráfica la etapa 4). Figura 4. 46 Etapa normal Figura 4. 47 Etapa normal activa En las etapas, puede o no haber acciones asociadas. 4.5.2 Acciones asociadas Una etapa sin ninguna acción asociada (ver en la gráfica 4.48) puede servir para hacer detener una acción monoestable que se realizaba en la etapa anterior, o bien, puede servir como una etapa de espera. Una acción asociada (ver la gráfica 4.49) nos indica que al estar activa la etapa, el motor girará a la derecha. En una etapa puede haber múltiples acciones asociadas (ver la gráfica 4.50). Al estar la etapa 4 activa, el motor girará a la derecha y al mismo tiempo el ventilador estará funcionando. Si en un sistema en un momento dado sólo hay una etapa activa, entonces, sólo estarán funcionando los elementos activados por las acciones asociadas en esa etapa (a no ser que en otra etapa se haya activado de forma biestable otra acción). 122 www.infoPLC.net Programación del PLC Figura 4. 48 Etapa sin ninguna acción asociada Figura 4. 49 Etapa con una acción asociada. Hace girar el motor a la derecha Figura 4. 50 Etapa con dos acciones asociadas. Hace girar el motor a la derecha y hace funcionar el ventilador. La acción a realizar en una o más de las acciones asociadas a una etapa, puede estar condicionada a una función booleana adicional. Por ejemplo, veamos el caso de la etapa 3 del gráfico anterior, en donde el motor giraba a la derecha; suponga que ahora deseamos que mientras la etapa 3 se encuentre activa, el motor debe girar a la derecha pero siempre y cuando la puerta no haya llegado ya a la derecha. El Grafcet asociado a la acción por consecuencia es el siguiente: Figura 4. 51 Etapa con una acción asociada condicionada. Hace girar el motor a la derecha siempre y cuando la puerta no halla llegado a la derecha. En el rectángulo donde se representa la acción asociada, hay una entrada para las condiciones. La norma IEC 848 propone las representaciones siguientes para las acciones asociadas condicionadas. C Acción condicionada D Acción retardada L Acción limitada al tiempo P Impulso S Acción memorizada Tabla 4-65 Tipo de acciones asociadas 4.5.2.1 Acción condicionada Supongamos un sistema en que tenemos un cuadro electrónico para la regulación de unas máquinas. Si estando activa la etapa de espera 2 y el termostato indica un sobre calentamiento, el ventilador se pondrá en marcha. Su Grafcet correspondiente será como el mostrado en la siguiente figura. Cabe señalar que esta condición la podemos representar dentro del recuadro de la acción, o bien fuera del recuadro (ver figuras 4.52 y 4.53 respectivamente). 123 www.infoPLC.net Programación del PLC Figura 4. 52 La condición del termostato se puede representar dentro del recuadro 4.5.2.2 Figura 4. 53 O bien, la condición del termostato se puede representar fuera del recuadro. Acción retardada Supongamos que tenemos un motor A que se pondrá en marcha 5 segundos después de activarse la etapa 10; si la transición r se activa antes de ese tiempo el motor no llegará a ponerse en marcha. El Grafcet correspondiente en este caso será el mostrado en la figura 4.54: Figura 4. 54 Grafcet correspondiente a una acción retardada, en donde un motor A se pondrá en marcha 5 segundos después de activarse la etapa 10, siempre y cuando no se ha activado aún la transición r. 4.5.2.3 Acción limitada Supóngase que se quiere poner en funcionamiento una bomba de agua durante 10 segundos después de haberse activado la etapa 11, pasado este tiempo aún que no se active la transición s, la bomba de agua dejará de funcionar. La acción estará representada por el siguiente Grafcet mostrado en la figura 4.55: Figura 4. 55 Grafcet correspondiente a una acción limitada que representa la puesta en marcha durante 10 segundos de una bomba de agua después de activarse la etapa 11, aún se active la transición s. 4.5.2.4 Acción de impulso Se quiere activar una electroválvula K con un impulso de señal al activarse la etapa 12, el Grafcet correspondiente será el siguiente: Figura 4. 56 Grafcet correspondiente a una acción de impulso que representa la activación de una electroválvula con un impulso de señal al activarse la etapa 12 124 www.infoPLC.net Programación del PLC 4.5.2.5 Acción memorizada Supóngase que se tiene un proceso en el cual, cuando se active la etapa 13, el motor A se podrá en marcha de forma biestable (set), y al salir de la etapa, continuará funcionando hasta que se dé un reset a la acción. Posteriormente al activarse la etapa 20, el motor A se detendrá, ya que esa etapa, la acción hace un reset al funcionamiento del moto, de forma tal que el Grafcet para este caso viene dado por la siguiente figura: Figura 4. 57 Grafcet correspondiente a una acción memorizada, en la cual se representa la puesta en marcha de un motor A en el momento en que se activa la etapa 13 y el paro del motor en el momento en que se activa la etapa. 4.5.3 Transacciones Las transiciones representan las condiciones que el sistema debe superar para poder pasar de una etapa a la siguiente. Al pasar una transición, el sistema deja de estar en una etapa e inmediatamente va a la siguiente. Validar la transición implica un cambio en las etapas activas del Grafcet. Las transiciones se representan por un pequeño segmento horizontal de recta que corta la línea de enlace entre dos etapas. • • Son etapas de entrada a una transición, todas las etapas que conducen a una transición. Son etapas de salida a una transición, las etapas que salen de una transición. Figura 4. 58 Las transiciones entre etapas son representadas en Grafcet por medio de pequeñas líneas que atraviesan las líneas de enlace.En este caso se muestran las transiciones K y L. 125 www.infoPLC.net Programación del PLC 4.5.3.1 Receptividades asociadas a las transiciones La condición o condiciones que se deben superar para poder pasar una transición reciben el nombre de receptividades. En una transición podemos tener: • • • • Una condición simple [Pm] Una función booleana [(Pm + Pk)*Pp´] La señal de un temporizador o contador [T03]. En este caso, es habitual que el temporizador se haya activado para contar en la acción asociada de la etapa de entrada. La activación de otra etapa de Grafcet [X12]. Donde X nos indica que la receptividad esta condicionada al hecho de que la etapa (en este caso la 12) está activa. 4.5.4 Líneas de evolución o líneas de enlace Las líneas de enlace o evolución son líneas verticales u horizontales que unen con una dirección significativa (a no ser que se indique lo contrario de arriba hacia abajo), las distintas etapas con las transiciones y las transiciones con las etapas. • • Las líneas de enlace unen entre sí las etapas que representan actividades consecutivas. Dos líneas de evolución que se crucen debe de interpretarse, en principio que no están unidas. Figura 4. 59 Líneas de evolución 4.5.5 Diseño y estructuras del Grafcet Existen procesos que requieren estructuras más complejas que las vistas en el tema anterior, en las que se representan bucles, toma de decisiones o tareas simultáneas que deben sincronizarse. Para estos casos el Grafcet dispone de otras estructuras básicas a partir de las cuales pueden generarse los diagramas de dichos procesos, entre las que podemos mencionar: • • • • • • • • 126 Secuencia única Bifurcación en “O”, también llamada selección de secuencia Bifurcación en “Y”, también llamada trabajos en paralelo Saltos de etapas Bucles Subrutinas Macro etapas Diagramas paralelos www.infoPLC.net Programación del PLC Figura 4. 60 Ejemplo de una estructura con Grafcet Antes de entrar en materia con las estructuras básicas con que cuenta Grafcet, veamos el desarrollo del sistema y la evolución del sistema. 4.5.5.1 Desarrollo del sistema En Grafcet, los diagramas se dibujan como una sucesión alternada de etapas y transiciones. Así mismo, no puede haber dos etapas seguidas, ni tampoco dos transiciones seguidas. Véase los siguientes dos casos. Figura 4. 61 Caso I. Entre las etapas 200 y 201 o entre las etapas 200 y 2002 hay dos condiciones para la transición (00 y 001 o 000 y 002). Figura 4. 62 Sol. Caso I. Este caso se puede resolver haciendo que la receptividad de la transición se cumpla si es válida la función And (000 * 001) o la (000*002). 127 www.infoPLC.net Programación del PLC Figura 4. 63 Caso II. Al superar la condición 003 de la transición, el motor debe girar a la derecha y también se debe accionar el ventilador. 4.5.5.2 Figura 4. 64 Sol. Caso II. Este caso se puede resolver colocando todas las acciones asociadas en una misma etapa. Evolución del sistema Para que el sistema pueda evolucionar es necesario: • • Validar la transición. Todas las etapas de entrada a la transición deben estar activas. Que sea cierta la receptividad asociada. Deben ser ciertas las condiciones de la transición. Véanse las siguientes dos gráficas. Figura 4. 65 La primera transición se podrá validar, si la etapa 123 esta activa y además se cumple con la condición 000. En este momento deja de estar activa la etapa 123 y le toma el relevo la 124. El Grafcet evolucionará a la etapa 125 si estando activa la etapa 124 se cumple la condición 002 y también la 005. 4.5.5.3 Figura 4. 66 Las etapas 200 y 210 son etapas de entrada a la transición. Para validar ;a transición, deben estar activas las dos etapas. Para poder entrar a la etapa 220, la transición tiene que estar validada y se debe cumplir la receptividad asociada (003 a la transición). Secuencia única La secuencia única o lineal es la estructura más simple posible y consiste de una sucesión de etapas unidas consecutivamente por las líneas de evolución y condiciones de transición. 128 www.infoPLC.net Programación del PLC • • • • Dentro de un tramo de la secuencia única o secuencia lineal, solamente una etapa debe estar activada en un instante determinado. Se activa una etapa cuando se encuentra activada la anterior y se cumplan las condiciones de transición entre ambas. La activación de una etapa implica automáticamente la desactivación de la etapa anterior. Una secuencia única o lineal puede formar parte de una estructura más compleja. Véase la siguiente gráfica. Figura 4. 67 Ejemplo de un Grafcet de secuencia única. 4.5.5.4 Bifurcación en “O”. También llamada selección de secuencia La divergencia y la convergencia en “O”, a las que llamaremos conjuntamente bifurcación en “o”, forman una estructura en la que existen los siguientes elementos: • • • Una divergencia en “O”, en la que se inician varios caminos o subprocesos alternativos posibles. Una serie de caminos alternativos con una macroestructura lineal, aunque puede tener otras estructuras más complejas. Una o más confluencias en “O” de dichos caminos alternativos, de tal forma que la macroestructura debe ser globalmente cerrada. Las propiedades básicas que cumple la estructura de bifurcación en “O” son las siguientes: • • A partir del punto de divergencia el proceso podrá evolucionar por distintos caminos alternativos, cada uno de ellos debe de tener su propia condición de transición. Las condiciones de transición de los diversos caminos de divergencia han de ser excluyentes entre sí. Deforma que el proceso sólo podrá progresar en cada lado por uno de ellos. 129 www.infoPLC.net Programación del PLC • A nivel de gráfico global, los distintos caminos iniciados como divergencia en “O” deben confluir en uno o más puntos de convergencia en “O”. Dicho de otra forma, la estructura debe ser totalmente cerrada y no pueden existir caminos abiertos, ya que esto denotaría situaciones sin posible salida. Véanse las siguientes figuras. Figura 4. 68 Habrá una selección de secuencias cuando al llegar a un punto encontremos una bifuración en “O”. En el será necesario escoger cual de las distintas sucesiones de etapas y transiciones se debe seguir. No es necesario que los diferentes caminos tengan el mismo número de etapas; pero si es conveniente que las receptividades asociadas a las transiciones sean excluyentes entre sí. Veamos el siguiente ejemplo. Suponga que necesitamos seleccionar el sentido de giro de un motor, por lo que necesitaremos hacer uso de la bifurcación en “O”. De forma tal que, el gráfico nos queda de la siguiente forma: Figura 4. 69 Ejemplo del empleo de la bifurcación en “O”, para la selección del sentido de giro de un motor. 130 www.infoPLC.net Programación del PLC 4.5.5.5 Bifurcación en “Y”. También llamada trabajos en paralelo La divergencia y convergencia en “Y”, a las que llamaremos conjuntamente bifurcación en “Y”, forman una estructura en la que existen los siguientes elementos: • • • Una divergencia en “Y” en la que se inician varios caminos o subprocesos que deben iniciarse simultáneamente cuando se cumpla una determinada condición de transición común. Una serie de caminos simultáneos con una macroestructura lineal, aunque pueden contener otras estructuras más complejas. Una o más confluencias en “Y” de dichos caminos, de manera que la macroestructura debe ser globalmente cerrada. Las propiedades que cumplen las convergencias y divergencias en “Y” son las siguientes: • • A partir del punto de divergencia el proceso evolucionará por varios caminos a la vez, ejecutando varias tareas simultáneamente. La condición de transición para iniciar las tareas simultáneas es única y común para todas ellas. Véanse la siguiente figura. Figura 4. 70 En este automatismo habrá una bifurcación en “Y” o trabajos paralelos, cuando a partir de un punto debe evolucionar de forma simultáneapor todas las ramas. Al final de estas, encontraremos unas etapas de espera (108, 132 y 155). El sistema continuará con su evolución cuando cada una de las ramas haya llegodo a su etapa de espera. El nombre de etapas de las diferentes ramas puede ser distinto unas de otras. 131 www.infoPLC.net Programación del PLC Veamos el siguiente ejemplo. Suponga que tenemos dos motores MA y MB colocados en una banda transportadora, de forma tal que desplazan las cajas 1 y 2 como se ve en la siguiente figura. Figura 4. 71 Problema del ejemplo, cuya solución se obtiene al emplear bifurcaciones en “Y”. El problema consiste en que primero, el motor MA debe desplazar la caja 1 desde FcAe hasta FcAd, para que posteriormente motor MB desplace la caja 2 desde FcBe hasta FcBd y una vez que los dos motores hayan desplazado sus cajas a las posiciones finales (FcAd y FcBd en el caso de la caja 1 y la caja 2 respectivamente) estos regresen a sus respectivas cajas a las posiciones iniciales FcAe y FcBe. El ciclo se reinicia cuando las dos cajas están de nuevo en las posiciones iniciales. La solución a nuestro problema se muestra por medio del siguiente Grafcet. Figura 4. 72 Grafcet obtenido para derle solución al problema planteado en la figura anterior empleando para ello bufurcación en “Y”. 132 www.infoPLC.net Programación del PLC 4.5.5.6 Saltos de etapas En cierto punto de un Grafcet puede haber una bifurcación que provoque un salto sobre un conjunto de etapas, que sigua o no la secuencia completa o bien el salto, el cual esta determinado por el estado de la condición a la transición. Véase la figura 4.73. En el caso de presentarse la necesidad de un salto de etapa debe tenerse en cuenta que las condiciones de entrada deben de ser excluyentes para evitar ambigüedades. También puede realizarse el salto en sentido ascendente (en este caso lo indicaremos en las líneas de enlace) como pasa con los bucles. Ahora veamos un ejemplo en el que apliquemos un salto de etapas. Supóngase que en un tren de lavado de autos, si no esta activa la selección Rbajos (Lavado presión de los bajos y las ruedas del automóvil), al llegar a la etapa 5 el automatismo debe hacer un salto hasta la etapa 7. Por el contrario, si esta activa esta selección, entrará en la etapa 6 y la bomba de presión y las pistolas dirigibles, así como el temporizador T04 actuaran. La solución se muestra en el gráfico de la figura 4.74. Figura 4. 73 Ejemplo de un Grafcet en el cual se presenta un salto de etapas. Aquí se puede observar que las condiciones de entrada son excluyentes (H y H´). 133 www.infoPLC.net Programación del PLC Figura 4. 74 Grafcet obtenido para darle solución al problema planteado de un tren de lavado de autos. 4.5.5.7 Bucles Habrá un “bucle” o estructura repetitiva (mientras), cuando una, o un conjunto de etapas se repitan varias veces. Dichas etapas se repetirán hasta que lo decida un temporizador, un contador o hasta que se cumpla una condición determinada. Como ejemplo de aplicación de un “bucle” tenemos al ciclo de lavado de una lavadora, en el cual su estructura se repite varias veces (gira a la derecha, espera, giro a la izquierda, espera, etc.). La solución a nuestro problema se ve reflejada en el siguiente gráfico. Figura 4. 75 Grafcet obtenido para darle solución al problema planteado de una lavadora en donde se aplica el concepto de bucle. 134 www.infoPLC.net Programación del PLC 4.5.5.8 Subrutinas Una subrutina es una parte de un programa que realiza una tarea concreta, a la que se puede invocar una o varias veces por parte del programa principal. Una vez realizadas las acciones de la subrutina el programa continua en el punto donde estaba. Para entender como se emplean las subrutinas en un diagrama de Grafcet, veamos el siguiente proceso (véase la figura 4.76).. Los a trabajos a desarrollar en un automatismo se pueden dividir entre diferentes diagramas. Puede haber un diagrama principal (etapas 0-5) y otros diagramas secundarios (etapas 10–14) que ejecutan determinadas funciones que una vez realizadas devuelven el control al diagrama principal. Al llegar a la etapa 2 o 4 del primer diagrama se valida la transición X2 + X4 y empieza la subrutina. Al llegar a la etapa 14 s valida la transición X14 y continua la evolución del diagrama principal a la etapa 3 o a la etapa 5 respectivamente. Figura 4. 76 Grafcet de un proceso que emplea el concepto de subrutina, en donde el programa principal está comprendido de la etapa 0 a la etapa 5 y la subrutina de la etapa 10 a la etapa 14. 135 www.infoPLC.net Programación del PLC 4.5.5.9 Macro-etapas Al hacer la descripción del automatismo, el Grafcet permite empezar desde un punto de vista muy general y a partir de él, hacer descripciones cada vez más concretas del proceso de control. Una macro-etapa es la representación mediante una única etapa, de un conjunto de etapas, transiciones y acciones asociadas, a las que llamamos expansión de la macro-etapa. La expansión de la macro-etapa, es en realidad una parte del diagrama de Grafcet, con sus etapas, transiciones y normas de evolución, pero que en un diseño descendiente hemos englobado en una macro-etapa, por lo que, podríamos decir que al hacer la expansión de la macro-etapa, en realidad lo que hacemos es una especie de zoom, que nos enseña en detalle, etapas, transiciones y acciones concretas, a las que antes nos hemos referido de forma general. Véase el siguiente gráfico de un ejemplo de una macro-etapa, en el cual, el diagrama principal evoluciona a partir de la etapa 0 a la transición “a”. Una vez que está activa la etapa 1, la transición “b” estará receptiva y al validarse entraremos a la macro-etapa M2, en donde la etapa 2 estará activa y según el estado de la transición “d”, evolucionará hacia la etapa 10 o a la 12, y al llegar a la etapa S2 volverá al programa principal. La etapa E2 es la etapa de entrada a la macro M2, la etapa S2 es la etapa de salida de la macro-etapa M2. Figura 4. 77 Grafceet de ejemplo en el cual se empea el concepto de macro-etapas. 4.5.5.10 Diagramas paralelos Para resolver un automatismo, se pueden describir diferentes diagramas paralelos, que evolucionan cada uno de ellos por separado y a su ritmo. Estos, pueden tener varios puntos de relación entre sí. Véase la siguiente gráfica. 136 www.infoPLC.net Programación del PLC Figura 4. 78 Ejemplo de diagramas paralelos en Grafcet. 4.6 DIAGRAMAS LÓGICOS La representación del sistema de control por diagramas lógicos se basa en el empleo de símbolos normalizados (compuertas) que representan funciones lógicas directas del álgebra de Boole (And, Or, etc.), o sistemas lógicos más complejos (biestables, registros, contadores, etc.). En la siguiente figura se muestra el modelo de diagrama lógico. Figura 4. 79 Ejemplo de un diagrama lógico El conjunto de todos los símbolos con sus interrelaciones forman el logigrama del sistema de control, representación compacta e independiente de la tecnología de construcción del mismo (eléctrica, neumática, etc.). El diagrama lógico o plano de funciones es la representación de las tareas de automatización utilizando los símbolos contenidos en las normas DIN 40700 y DIN 40719, cuya forma general se presenta en la figura siguiente. 137 www.infoPLC.net Programación del PLC Figura 4. 80 Símbolo lógico normalizado. Los símbolos X son relativos a las entradas y salidas. 4.6.1 Funciones básicas Las operaciones combinacionales más comunes se realizan con los bloques de funciones básicas (ver la figura 4.81), conexión serie, paralelo, negación, etc. Como podemos ver en la figura 4.81, todas las funciones AND, OR, XOR, NAND, y NOR tienen tres entradas y una salida. Si deseamos realizar operaciones con más de tres entradas, se conectan varios bloques en cascada (ver la figura 4.82). Además, cabe mencionar que la función inversora NOT, tiene una entrada y una salida y que la función OR exclusiva (XOR) posee sólo dos entradas y una salida. Figura 4. 81 Funciones básicas empleadas en un diagrama lógico o plano de funciones Figura 4. 82 NAND de 5 entradas formada por dos NAND de 3 entradas conectadas en cascada. 138 www.infoPLC.net Programación del PLC La programación por diagramas lógicos, que deriva de la representación por logigrama habitual entre los técnicos en electrónica digital, incluye como bloques normalizados algunas funciones secuenciales típicas en automatización, como temporizadores y contadores, e incluso algunos bloques combinacionales y de tratamientos numéricos, como multiplexores, demultiplexores, sumadores, multiplicadores, etc., pero no alcanza la multitud de funciones que han ido añadiéndose a las listas de instrucciones y diagramas de contactos, como extensiones a estos lenguajes. Por esta razón, y en el sentido estricto, la programación por diagramas lógicos queda reservada a aplicaciones en que sólo intervengan variables booleanas todo-nada, y algunos bloques secuenciales elementales como son los temporizadores, contadores, registros de desplazamiento, etc. Esta circunstancia, unida al desconocimiento del diagrama lógico por parte del usuario habitual del autómata, explica la baja difusión de estos lenguajes de programación para la programación del los PLC’s. 4.6.2 Funciones especiales A continuación se mostrarán algunas de las funciones especiales que pueden emplearse durante la programación de un PLC usando para ello diagramas lógicos o planos de funciones. 4.6.2.1 Temporizador con retardo a conexión Activa la salida Q una vez que ha transcurrido el tiempo programado. Figura 4. 83 Símbolo empleado en diagramas lógicos para representar a un temporizador con retardo a conexión. 4.6.2.2 Temporizador con retardo a desconexión Desactiva la salida Q una vez que ha transcurrido el tiempo programado. El temporizador se pone en marcha cuando se presenta un flanco descendente (transición negativa). Figura 4. 84 Símbolo empleado en diagramas lógicos para representar a un temporizador con retardo a la desconexión. 4.6.2.3 Relevador de impulsos Tiene el mismo funcionamiento que un telerruptor. La salida cambia de estado de 0 a 1 cada vez que cambia la seña en la entrada TRG. 139 www.infoPLC.net Programación del PLC Figura 4. 85 Símbolo empleado en diagramas lógicos para representar a un relevador de impulsos, tambien conocido como telerruptor. 4.6.2.4 Reloj Permite controlar los instantes de activación y desactivación de la salida en un instante determinado, por ejemplo en un día de la semana y a una hora determinada. Figura 4. 86 Símbolo empleado en diagramas lógicos para representar a un reloj horario. 4.6.2.5 Biestable Set-Reset Permite realizar la función para-marcha típica de los automatismos a contactores. La situación no permitida R=1 y S=1 se soluciona dando preferencia a R. Figura 4. 87 Símbolo empleado en diagramas lógicos para representar a un relevador de enclavamiento o tambien conocido como biestable Set-Reset. 4.6.2.6 Generador de pulsos Genera pulsos de reloj a intervalos iguales. Figura 4. 88 Símbolo empleado en diagramas lógicos para representar a un generador de pulsos de reloj. 4.6.2.7 Temporizador a la conexión con memoria Su funcionamiento es similar a un temporizador a la conexión, pero con la característica que no es necesario mantener la señal en TRG. 140 www.infoPLC.net Programación del PLC Figura 4. 89 Símbolo empleado en diagramas lógicos para representar a un temporizador a la conexión con memoria. 4.6.2.8 Contador progresivo/regresivo Permite contar en forma ascendente y descendente los pulsos aplicados a su entrada CNT. Figura 4. 90 Símbolo empleado en diagramas lógicos para representar a un contador progresivo/regresivo. 4.6.2.9 Contador de horas de servicio Permite medir el tiempo que está activada la entrada EN. Esta función solamente se puede utilizar como bloque inicial. Figura 4. 91 Símbolo empleado en diagramas lógicos para representar a un contador de horas de servicio. 4.6.2.10 Relevador de supresión Activa la salida hasta que haya transcurrido el tiempo de T. Si este no ha terminado y TRG se pone a 0 la salida también lo hace. Esta función solamente se puede utilizar como bloque inicial. Figura 4. 92 Símbolo empleado en diagramas lógicos para representar a un relevador de supresión. 4.6.2.11 Conmutador de valor de umbral para frecuencias Permite contar los impulsos aplicados a su entrada y dependiendo de éstos conmutar la salida. Esta función solamente se puede utilizar como bloque inicial. 141 www.infoPLC.net Programación del PLC Figura 4. 93 Símbolo empleado en diagramas lógicos para representar a un conmutador de valor umbral para frecuencias. 4.6.3 Comparación del plano de funciones con LADDER La siguiente figura muestra un ejemplo de programación con plano de funciones, comparado con el mismo programa en diagrama de contactos. Figura 4. 94 Ejemplo de un programa empleando diagramas de funciones. Figura 4. 95 Mismo ejemplo del programa anterior pero empleando para ello diagramas de contactos. Dada la inexistencia, antes comentada, de bloques normalizados para todas las posibles operaciones del autómata, los fabricantes de PLC’s han optado por permitir el uso, en sus consolas gráficas, de los bloques de extensión definidos en el diagrama de contactos, aun trabajando bajo el entorno de diagrama lógico: el lenguaje resultante es un híbrido que recoge toda la potencia de programación del autómata, y en el que cada usuario puede elegir la forma de representación que prefiera para las funciones básicas (AND, OR, NOT, NAND, NOR y XOR). La siguiente figura muestra un ejemplo de programa escrito con estos lenguajes híbridos, desarrollado con un software específico de programación de autómatas que corre sobre PC. 142 www.infoPLC.net Programación del PLC Figura 4. 96 Programación combinada de diagramas lógicos con Ladder. 143 www.infoPLC.net Programación del PLC 144 www.infoPLC.net Comunicaciones y Redes 5.0 COMUNICACIONES Y REDES La comunicación industrial digital comprende un amplio rango de productos de hardware, software y protocolos para comunicación entre plataformas estándar de computación y dispositivos de automatización. La multiplicación de los PLC existentes en una estación, la extensión de los trabajos realizados por estos y la necesaria coordinación del seguimiento y de las decisiones que tienden a la integración de la gestión de producción son algunas razones que conducen a la necesidad de acoplar los PLC entre sí y con computadoras. Los problemas ocasionados por la diversidad de lenguajes y formas de operar de distintos automatismos basados en microprocesadores, se hacen evidentes cuando su número empieza a ser relativamente grande en una empresa. La programación y el diálogo hombre-máquina con PLC’s, controles numéricos, robots, sistemas de CAD y otros sistemas involucrados, requiere el aprendizaje de diversos lenguajes y métodos de operación específicos para cada uno. Además la imposibilidad de intercambiar información entre ellos limita enormemente las posibilidades del conjunto. En este capítulo mostraremos los tipos más comunes de comunicación de los PLC incluidas las redes industriales. Asumimos que el lector conoce los conceptos básicos de redes de comunicaciones digitales, temas que podemos encontrar con detalle en cualquier libro de redes. 5.1 INTERCONEXIONES ESTÁNDAR Las redes industriales hacen uso, en su nivel físico, principalmente de dos técnicas de comunicación, estas son: las comunicaciones serie y ethernet. En este apartado describiremos brevemente estas técnicas (también denominados buses), que en muchos casos son objeto de alguna norma que da una descripción mucho más amplia. 5.1.1 Comunicaciones serie En los medios clásicos de comunicación, las conexiones serie están entre las más empleadas para las aplicaciones industriales. También se utilizan para las conexiones de consolas de programación, otros periféricos y para conectar los PLC entre sí. De hecho, casi todos los buses de campo utilizan comunicación serie con velocidades diferentes. La conexión física se realiza a través de interfaces series normalizadas por la EIA, tal como RS-232, RS-422 o RS-485. Estas normas especifican solamente las características eléctricas del soporte físico de comunicación (Nivel Físico de OSI), por lo tanto, no tratan el software necesario para manipular la información que circula sobre el soporte. 145 www.infoPLC.net Comunicaciones y Redes La RS-232 es el método más popular de comunicación con dispositivos externos al PLC. Esta limitada por la distancia de conexión y velocidad. También esta limitada a la conexión punto a punto entre PC y dispositivos informáticos como módem, ratón, etc. La RS-422 trabaja en forma diferencial con las líneas que transmite y recibe, el circuito tiene solo dos hilos sin que exista una línea de masa común. Los unos y ceros lógicos se establecen en función de la diferencia de tensión de ambos conductores del circuito de modo que resulta una interfase serie con una gran inmunidad al ruido y una mayor distancia de conexión a los dispositivos, preferible a las interfaces serie RS-232 para operar en las condiciones difíciles que siempre se presentan en los entornos industriales. La RS-485 es una leve modificación de la RS-422, redefiniendo características eléctricas para asegurar un nivel de tensión adecuado a la máxima carga, incrementándose él numero de dispositivos de 10 a 32, los que se conectan en paralelo a los dos conductores, sin necesidad de módem. Con esta capacidad y una alta inmunidad al ruido se pueden crear redes de dispositivos de adquisición de datos y control, conectados a una simple puerta serie RS-485 de un PC. La tabla 5.1 resume las características de estas interfaces. Tipo de línea Número máximo de dispositivos Número, máximo de receptores Longitud máxima (m) Velocidad máxima RS-232 Desbalanceada 1 1 15 20 Kb/s RS-422 Balanceada 1 10 1200 10 Mb/s RS-485 Balanceada 32 32 1200 10 Mb/s Tabla 5.1 Comunicaciones serie En una red de dispositivos sobre un una simple línea, es necesario direccionar uno en particular. Esto se puede realizar simplemente utilizando caracteres ASCII, constituyendo comandos de identificación del dispositivo y que este a su vez responde con los datos. Esto es un esquema básico de protocolo de comunicación denominado comúnmente maestro / esclavo (Master/Slave). Aquí el Maestro es el que inicia la comunicación. Los Esclavos solo envían mensajes cuando el Maestro lo solicita Hay muchos otros protocolos industriales más complejos que el ASCII orientados a dispositivos más complejos conectados en una red. Para el caso de redes con PLC son representativos los protocolos ModBus y Optomux, por citar algunos. 5.1.2 Ethernet Ethernet es a la vez el nombre de una técnica de comunicación diseñada por Xerox Corporation y registrada posteriormente junto con Digital e Intel. Es compatible con el modelo OSI en los niveles 1, 2 y 3 (el último a través de puentes). Permite topología en Bus o árbol con comunicación semidúplex. Las velocidades van desde los 10 Mbits/s a los 100 Mbits/s de Fast146 www.infoPLC.net Comunicaciones y Redes Ethernet. Es uno de los estándares de red que más rápidamente evolucionan, debido a su uso masivo en redes ofimáticas. La tabla 5.2 muestra las características estándar de la red Ethernet: Medio físico estándar Cable coaxial de 50 Topología de la red En bus o árbol Modo de transmisión Semidúplex, banda base Codificación Manchester Velocidad estándar 10 Mbps Método de acceso CSMA/CD Número máximo de nodos 1024 Distancia máxima entre nodos 500 m Tabla 5.2 Características básicas de Ethernet En el aspecto físico, existen las siguientes variantes: • • 5.2 ETHERNET DE CABLE DELGADO: Se emplea para transmisiones a distancias más cortas (200 m), con menos número de nodos y utiliza un cable tipo RG58 y conectores más económicos. ETHERNET DE BANDA ANCHA: Utiliza como conexión a la red un módem denominado DECOM y se emplea esencialmente para grandes distancias o incluso para conexión a redes WAN. REDES INDUSTRIALES En un ambiente industrial coexisten un aserie de equipos y dispositivos dedicados al control de un cierto proceso. Entre estos dispositivos están los PLC, computadoras de diseño, sensores, actuadores, etc. El desarrollo de las redes industriales ha establecido una forma de unir todos estos dispositivos, aumentando el rendimiento y proporcionando nuevas posibilidades. Las ventajas que se aportan con una red industrial son, entre otras, las siguientes: • • • • • Visualización y supervisión de todo el proceso productivo. Toma de datos del proceso más rápida o instantánea. Mejora del rendimiento general de todo el proceso. Posibilidad de intercambio de datos entre sectores del proceso y entre departamentos. Programación a distancia, sin necesidad de estar a pie de fábrica. 147 www.infoPLC.net Comunicaciones y Redes 5.2.1 Niveles en una red industrial En una red industrial coexistirán equipos y dispositivos de todo tipo, los cuales suelen agruparse jerárquicamente para establecer conexiones lo más adecuadas a cada área. De esta forma se definen cuatro niveles dentro de una red industrial: Nivel de gestión: es el nivel más elevado y se encarga de integrar los niveles siguientes en una estructura de fábrica, e incluso de múltiples factorías. Las máquinas aquí conectadas suelen ser estaciones de trabajo que hacen de puente entre el proceso productivo y el área de gestión, en el cual se supervisan las ventas, stocks, etc. Se emplea una red de tipo LAN (Local Area Network) o WAN (Wide Area Network). Nivel de control: se encarga de enlazar y dirigir las distintas zonas de trabajo. A este nivel se sitúan los autómatas de gama alta y los ordenadores dedicados a diseño, control de calidad, programación, etc. Se suele emplear una red de tipo LAN. Nivel de campo y proceso: se encarga de la integración de pequeños automatismos (autómatas compactos, multiplexores de E/ S, controladores PID, etc.) dentro de sub-redes o "islas". En el nivel más alto de estas redes se suelen encontrar uno o varios autómatas modulares, actuando como maestros de la red o maestros flotantes. En este nivel se emplean los buses de campo. Nivel de E/S: es el nivel más próximo al proceso. Aquí están los sensores y actuadores, encargados de manejar el proceso productivo y tomar las medidas necesarias para la correcta automatización y supervisión. Figura 5.1 Niveles de automatización de una red industrial Esta estructura no es universal, dependiendo del tamaño del proceso y de la propia empresa podemos encontrar redes con grado de complejidad muy diverso, desde el simple bus de campo hasta la que contiene todos los elementos citados. 148 www.infoPLC.net Comunicaciones y Redes 5.3 REDES LAN INDUSTRIALES Son las redes más elevadas jerárquicamente. Los estándares más conocidos y extendidos son dos: MAP y ETHERNET 5.3.1 MAP MAP (Manufacturing Automation Protocol) nació como un producto especialmente diseñado para el entorno industrial, lo que hace que sea de mayor éxito en LAN industriales. Fue impulsado por General Motors y normalizado por el IEEE. No actúa a nivel de bus de campo, pero establece pasarelas hacia estos buses mediante terminales. También permite integración en redes WAN. MAP no actúa a nivel de bus de campo, lo considera un nivel inferior que se integra a la red mediante autómatas o terminales que actúan aisladamente, pero que disponen de una pasarela entre el bus de campo y la red MAP. En general, MAP es un protocolo pensado para redes tipo WAN, de modo que incluye los niveles de red, transporte, sesión y presentación, que le permiten el encaminamiento de los mismos a través incluso de redes conmutadas públicas o privadas. Así mismo resulta excesivamente caro y complejo para aplicaciones de dimensiones medianas y pequeñas y sobre todo para la interconexión de pequeños controladores a nivel industrial. Para redes LAN se creo un subconjunto de este protocolo denominado MINIMAP, que es un protocolo simplificado totalmente compatible con MAP. Las características básicas de la red MAP se resumen en la tabla 5.3 Niveles implementados Conexión física Topología Codificación Ancho de banda por canal Velocidad Protocolo de acceso Modelo OSI completo (1 a 7) Cable coaxial Bus Modulación Banda Ancha FDM (división de canales por frecuencia): 5.75 a 450 MHz 6 MHz 10 Mb/s Paso de testigo en anillo IEEE 802.4 Tabla 5.3 Características básicas de MAP 149 www.infoPLC.net Comunicaciones y Redes 5.3.2 Ethernet industrial Ethernet Industrial ofrece una red de alto desempeño cumpliendo con el estándar IEEE 802.3. Ha sido considerada virtualmente como el estándar en redes industriales debido a sus excelentes características, como su velocidad (10Mbit/s), fácil crecimiento, alto nivel de disponibilidad y su amplia difusión mundial. Existen diferentes versiones de Ethernet Industrial, brindando flexibilidad a los requerimientos. Cuando se usa como una red eléctrica, está equipada con un cable coaxial blindado adicional (cable triaxial) para la mayor fiabilidad en ambientes industriales hostiles. También existen conexiones de par trenzado industrial para configuraciones de red de bajo costo. La red de fibra óptica usa ondas de luz como medio de transmisión. Debido a que estas ondas tienen propiedades de transmisión especiales y a que son inmunes a la interferencia electromagnética, son ideales para interconectar largas distancias y áreas expuestas a altos niveles de ruido electromagnético. De acuerdo a la aplicación, la red óptica puede instalarse en topología de estrella, bus o anillo. También puede instalarse una red híbrida, combinando tecnologías eléctrica y óptica. Figura 5.2 Ethernet industrial (SIEMENS) Figura 5.3 Ethernet como parte de una red industrial (SIEMENS) 150 www.infoPLC.net Comunicaciones y Redes 5.4 PROTOCOLOS Y BUSES DE CAMPO La estandarización de protocolos en la industria es un tema en permanente discusión, donde intervienen problemas técnicos y comerciales. Cada protocolo está optimizado para diferentes niveles de automatización y en consecuencia responden al interés de diferentes proveedores. Estos protocolos o BUSES han sido desarrollados por los fabricantes para permitir la comunicación entre sus propios productos. Están adaptados a una gama de PLC’s y a una concepción funcional particular. Cada protocolo tiene un rango de aplicación, fuera del mismo disminuye el rendimiento y aumenta la relación costo / prestación. En muchos casos no se trata de protocolos que compitan entre sí, sino que se complementan, cuando se trata de una arquitectura de un sistema de comunicación de varios niveles. El bus de campo constituye el nivel más simple y próximo al proceso dentro de la estructura de comunicaciones industriales. Está basada en procesadores simples y utiliza un protocolo mínimo para gestionar el enlace entre ellos. Los buses de campo más recientes permiten la comunicación con buses jerárquicamente superiores y más potentes. En un bus de campo se engloban las siguientes partes: • • • • Estándares de comunicación: cubren los niveles físico, de enlace y de comunicación establecidos en el modelo OSI (Open Systems Interconnection). Conexiones físicas: en general, las especificaciones de un determinado bus admiten más de un tipo de conexión física. Las más comunes son semidúplex (comunicación en banda base tipo RS-485), RS-422 y conexiones en bucle de corriente. Protocolo de acceso al medio (MAC) y de enlace (LLC): consiste en la definición de una serie de funciones y servicios de la red mediante códigos de operación estándar. Nivel de aplicación: es el dirigido al usuario, apoyándose en las funciones estándar antes mencionadas para crear programas de gestión y presentación. La aplicación suele ser propia de cada fabricante, permitiendo a lo sumo la programación en un lenguaje estándar. Existe una norma para los buses de campo (TC65C-WG6 de IEC) la cual define una serie de reglas genéricas muy detalladas para el nivel físico, pero dejan muy abiertos los niveles de enlace y aplicación. De modo que hay varios posibles candidatos a bus de campo estándar, con la consiguiente falta de compatibilidad entre productos a este nivel. Por tanto hay que asegurarse que todos los componentes de la red siguen un mismo bus de campo para que la comunicación no presente problemas o haya que realizar pasarelas entre buses. En los siguientes apartados se muestran algunos de los buses más comunes. Para más detalle consultar la bibliografía. 151 www.infoPLC.net Comunicaciones y Redes 5.4.1 MODBUS La red MODBUS desarrollada por Gould Modicon, forma parte de las primeras ofertas de redes industriales . Está perfectamente adaptada al ambiente del PLC. Como en otros casos, la designación no corresponde propiamente a un estándar de red, sino a un protocolo de enlace (nivel OSI 2). Por lo tanto puede implementarse con diversos tipos de conexión física y cada fabricante suele suministrar un software de aplicación propio, que permite parametrizar sus productos. Su principal inconveniente es que no está reconocido por ninguna norma internacional. No obstante, se suele hablar de MODBUS como un estándar de bus de campo, cuyas características son: • • Nivel físico. El medio físico de conexión puede ser un bus semidúplex (RS-485 o fibra óptica) o duplex (RS-422, BC 0-20 mA o fibra óptica). La comunicación es asíncrona y las velocidades de transmisión previstas van desde los 75 a 19200 baudios. La máxima distancia entre estaciones depende del medio físico, pudiendo alcanzar unos 1200 m sin repetidores. Estructura lógica. La estructura lógica es del tipo maestro-esclavo, con acceso al medio controlado por el maestro. El número máximo de estaciones previsto es de 63 esclavos más una estación maestra. 5.4.2 AS-i El protocolo AS-i (Actuador Sensor-interfase) conecta al nivel más bajo del sistema de automatización. Es un bus de sensores y actuadores binario y puede conectarse a distintos tipos de PLC, controladores numéricos o computadoras (PC). El sistema de comunicación es bididireccional entre un maestro y nodos esclavos. Está limitado hasta 100 metros (300 metros con un repetidor) y pueden conectarse de 1 a 31 esclavos por segmentos. El maestro AS-i interroga un esclavo por vez y para el máximo numero tarda en total 5 ms. Es un protocolo abierto y hay varios proveedores que suministran todos los elementos para la instalación. Constituye un bus de muy bajo costo para reemplazar el tradicional árbol de cables en paralelo. Figura 5.4 Comunicación con AS-Interface (SIEMENS) 152 www.infoPLC.net Comunicaciones y Redes 5.4.3 BITBUS Marca registrada por Intel. De bajo coste y altas prestaciones. Intel cedió a dominio público el estándar, por lo que se considera un estándar abierto. Está reconocido por la normativa IEE 1118. Se trata de un bus síncrono, cuyo protocolo se gestiona completamente mediante el microcontrolador 8044. Está basado en una línea compartida RS-485 (varias estaciones de comunicación en un mismo par de cables) y está optimizado para la transmisión de pequeños mensajes en tiempo real. En instalaciones más actuales se emplea también fibra óptica para su implementación. Una red de comunicación BITBUS siempre posee un maestro y uno o varios esclavos. Cada esclavo posee su propia dirección de red que le hace diferenciable e identificable dentro de la red. El maestro maneja la red seleccionando los esclavos. Los esclavos deben responder exclusivamente cuando son requeridos por el maestro. Este simple método de control permite una alta seguridad en la comunicación, optimizada para la mayoría de las aplicaciones de automatización. La estructura de una red BITBUS siempre se compone de un maestro, un número de esclavos y, si es necesario, uno o varios repetidores. Los repetidores deben ser empleados si hay presentes más de 28 estaciones de trabajo a lo largo del segmento de cable que se va a emplear. Cuando se emplea en ambientes con ruido industrial, es recomendable una separación galvánica de la interfase BITBUS: el RS-485 está ópticamente aislado del controlador. La utilización de un cable de fibra óptica también es posible, pero no obligatoria. La experiencia muestra que un buen cable blindado, con una referencia a tierra, combinado con la señal diferencial del RS-485 es un medio físico excelente, incluso en ambientes ruidosos. Y además es barato. Una característica importante de BITBUS es que está aceptado internacionalmente como un estándar industrial: enlaza equipos de diferentes fabricantes, siendo el hardware y el software totalmente estandarizados y compatibles. En 1991 el BITBUS fue oficialmente estandarizado como un estándar internacional IEEE-1118. El estándar IEEE-1118 contiene la funcionalidad del clásico BITBUS de Intel como base e incorpora nuevas funciones. Características generales de BITBUS. • • • • • • • • • Tipo: Red maestro-esclavo mediante tramas de mensaje. 248 bytes máx. de longitud por mensaje. Estructura: Bus, terminado en ambos extremos. Prolongación posible mediante el empleo de repetidores. Soporte: Par de cables trenzados (un par, impedancia característica de 120) con toma de tierra y apantallado. Segundo par necesario para operar con repetidor. Niveles eléctricos: Par diferencial 0/5V según está definido en RS-485. Protocolo: SDLC con NRZI sincronizado de reloj propio (autoreloj) con flags de apertura y cierre, testeo de direccionamiento y comprobación de palabra por CRC de 16 bits. Tasa de transferencia: 375k Bit/s o 62,5k Bit/s. Esclavos: 28 por segmento con repetidores después de cada segmento, 250 máximo. Tasa de trasferencia con más de un repetidor: 62,5K Bit/s exclusivamente. Longitud: 300m por segmento a 375k Bit/s, 1200m a 62,5kBit/s. Conector: Conector Sub-D de 9 pines. 153 www.infoPLC.net Comunicaciones y Redes 5.4.4 COMPOBUS Este sistema, introducido ene l mercado en 1998, fue desarrollado bajo el estándar Device Net que a su vez se originó a partir del nivel físico CAN, sistema altamente contrastado en ambientes industriales agresivos. Es precisamente su fiabilidad y flexibilidad lo que ha llevado a Omron a apostar por él, naciendo así Compobus D. Omron ha desarrollado una gran variedad de interfaces y dispositivos para Compobus D con el fin de satisfacer las necesidades de las empresas y contribuir a hacer Device Net más popular y extendido. La implantación de Compobus D en una instalación asegura la total apertura del sistema hacia otros dispositivos sin renunciar a factores como la velocidad, la seguridad y la facilidad de instalación. 5.4.5 PROFIBUS PROFIBUS es el sistema abierto principal de fieldbus en Europa y goza de la aceptación mundial. Sus áreas de aplicación incluyen la fabricación, el proceso y la automatización del edificio. PROFIBUS es un estándar internacional abierto independiente del fabricante. Su área de aplicación abarca manufacturación, procesos y automatización de edificios. La independencia del fabricante y el ser un sistema abierto está garantizado por el estándar Profibus EN 50 170. La tecnología PROFIBUS es desarrollada y administrada por la PROFIBUS User Organization (PNO). Entre sus miembros podemos encontrar a fabricantes, usuarios e instituciones de investigación. Grupos regionales de usuarios ofrecen soporte en lengua nativa alrededor del mundo. Soporta una gran variedad de equipos que van desde PC´s y PLC´s hasta robots, pasando por todo tipo de elementos de campo, la mayoría de las aplicaciones industriales gracias a las tres posibilidades que ofrece Profibus (FMS, DP y PA). Desde máquinas sencillas, pasando por aplicaciones a nivel de célula hasta nivel de proceso con Profibus-PA. Figura 5.5 Comunicación con PROFIBUS-DP (SIEMENS) 154 www.infoPLC.net Comunicaciones y Redes La familia Profibus consiste en tres versiones compatibles PROFIBUS-DP, DA y FMS: 5.4.5.1 PROFIBUS-DP Optimizado para alta velocidad y enganche económico. Esta versión de Profibus está diseñada especialmente para comunicación entre sistemas automáticos de control y E/S distribuidos a nivel de campo. Puede ser empleado para remplazar transmisiones paralelas de señales con 24V o 0 a 20mA. Figura 5.6 Comunicación con PROFIBUS-DP (SIEMENS) 5.4.5.2 PROFIBUS-PA Está especialmente diseñado para automatización de procesos. Permite que sensores y actuadores puedan ser conectados a un bus común en áreas intrínsecas de seguridad. Permite comunicación de datos y transporte de energía sobre el mismo bus empleando tecnología de dos cables, acorde con el estándar internacional IEC 1158-2. 5.4.5.3 PROFIBUS-FMS Es la solución de propósito general para tareas de comunicación a nivel de control. Los potentes servicios FMS abren un amplio rango de aplicaciones y proveen gran flexibilidad. También puede ser empleado para tareas de comunicación extensas y complejas. Figura 5.7 Comunicación con PROFIBUS-FMS (SIEMENS) 155 www.infoPLC.net Comunicaciones y Redes 5.5 COMPARACIÓN DE LOS BUSES DE CAMPO En las siguientes tablas comparativas podemos apreciar diferentes aspectos de los buses de campo: generalidades, características físicas, mecanismo de transporte y desempeño. (Reproducción de “THE http://www.synergetic.com) SYNERGETIC FIELDBUS COMPARISON CHART”, 5.5.1 Información general Fieldbus Name Technology Developer Year Introduced Governing Standard Openness PROFIBUS DP/PA Siemens DP-1994, PA-1995 EN 50170 / DIN 19245 ASICs from Siemens and Profichip, part 3(DP) /4 (PA), IEC Products from over 300 vendors 1158-2 (PA) INTERBUS-S Phoenix Contact, Interbus Club 1984 DIN 19258 EN 50.254 Products from over 400 manufacturers DeviceNet Allen-Bradley March 1994 ISO 11898 &11519 17 chip vendors, 300+ product vendors, Open specification ARCNET Datapoint 1977 ANSI/ATA 878.1 Chips, boards, ANSI docs AS-I AS-I Consortium Fall 1993 Submitted to IEC AS-II.C. Market item Foundation Fieldbus H1 Fieldbus Foundation 1995 ISA SP50/IEC 61158 Chips/software/products from multiple vendors Foundation Fieldbus High Speed Ethernet (HSE) Fieldbus Foundation In development - lab IEEE 802.3u test phase, Prelim spec RFC for IP, TCP & available to members UDP IEC/ISA SP50 Fieldbus ISA & Fieldbus F. 1992 - 1996 IEC 1158/ANSI 850 Multiple chip vendors Seriplex APC, Inc. 1990 Seriplex spec Chips available multiple interfaces WorldFIP WorldFIP 1988 IEC 1158-2 Multiple chip vendors LonWorks Echelon Corp. March 1991 Multitude of suppliers for Ethernet components, Extremely low cost Public documentation on protocol SDS Honeywell Jan., 1994 Honeywell Specification, Submitted to IEC, ISO11989 ControlNet Allen-Bradley 1996 ControlNet International Open Specification, 2 Chip Vendors CANopen CAN In Automation 1995 CiA 17 chip vendors, 300 product vendors, Open specification Ethernet DEC, Intel, Xerox 1976 IEEE 802.3, DIX v. 2.0 Multitudes of Chips and Products Modbus Plus Modicon Proprietary, requires license/ASICs EN 1434-3 (layer 7) IEC 870-5 (layer 2) Modbus RTU/ASCII Modicon Remote I/O Allen-Bradley Data Highway Plus Allen-Bradley (DH+) 156 17 chip vendors, 100+ products 1980 Open specification, no special hardware required Proprietary Proprietary www.infoPLC.net Comunicaciones y Redes 5.5.2 Características físicas Fieldbus Name Physical Media Max. Devices (nodes) Max. Distance PROFIBUS DP/PA Line, star & ring Twisted-pair or fiber 127 nodes 100m between segments @ (124 slaves - 4 seg, 3 12Mbaud; 24 Km (fiber) (baudrate rptrs) + 3 masters and media dependent) INTERBUS-S Segmented with "T" drops Twisted-pair, fiber, and slip-ring 256 nodes DeviceNet Trunkline/dropline with Twisted-pair for signal & 64 nodes branching power 500m (baudrate dependent) 6Km w/ repeaters ARCNET Star, bus, distributed star 255 nodes Coax 2000 feet; Twisted pair 400 feet; Fiber 6000 Feet AS-I Bus, ring, tree star, of Two wire cable al 31 slaves 100 meters, 300 with repeater Foundation Fieldbus H1 Star or bus Twisted-pair, fiber 240/segment, 65,000 1900m @ 31.25K wire segments Star Twisted-pair, fiber IP addressing essentially unlimited 100m @ 100Mbaud twisted-pair 2000m @ 100Mbaud fiber full duplex IEC/ISA SP50 Fieldbus Star or bus Twisted-pair fiber, and radio IS 3-7 non IS 128 1700m @ 31.25K 500M @ 5Mbps Seriplex Tree, loop, ring, multi- 4-wire shielded cable drop, star 500+ devices 500+ ft WorldFIP Bus Twisted-pair, fiber 256 nodes up to 40 Km LonWorks Bus, ring, loop, star Twisted-pair, fiber, power line 32,000/domain 2000m @ 78 kbps SDS Trunkline/Dropline Twisted-pair for signal & 64 nodes, power 126 addresses ControlNet Linear, Tree, Star, or Combination Thereof Coax, fiber 99 nodes 1000m (coax) 2 nodes 250m with 48 nodes 3km fiber; 30km fiber w/ repeaters CANopen Trunkline/Dropline Twisted Pair + optional Signal & Power 127 Nodes 25-1000m (baudrate dependent) Foundation Fieldbus HSE Network Topology Coax, Twisted-pair, Fiber 400 m/segment, 12.8 Km total 500m (baudrate dependent) Thin: 185m 10 Base T (Twisted Pair): Max 100m long (90 metres horizontal cable, 5m drops, 1m patch) Max 4 hubs/repeaters between nodes 4Km distancs w/o routers Fiber: 100 Base FX 400m 2.5 Km multi mode w/o Switches; 50 Km mono mode w/ Switches Industrial Ethernet Bus, Star, Daisy-Chain 1024 nodes, Thin Coax, Twisted Pair, expandable to more Fiber; Thick Coax (rare) via Routers Modbus Plus Linear Twisted Pair Modbus RTU/ASCII Line, star, tree Twisted Pair Network w/ segments 250 nodes per segment 350m Remote I/O Linear Trunk Twinaxial 32 nodes/segment 6 km DH+ Linear Trunk Twinaxial 64 nodes/segment 3 km 32 nodes per segment, 500m per segment 64 max 157 www.infoPLC.net Comunicaciones y Redes 5.5.3 Mecanismo de transporte Fieldbus Name Communication Methods Transmission Properties Data Transfer Arbitration Size Method PROFIBUS DP/PA Master/slave peer to peer DP: 9.6, 19.2, 0-244 bytes 93.75, 187.5, 500 Kbps, 1.5, 3, 6, 12 Mbps PA: 31.25 kbps Error Checking Token passing HD4 CRC 16-bit CRC Diagnostics Station, module & channel diagnostics Segment location of CRC error and cable break INTERBUS-S Master/slave with total frame transfer 500kBits/s, full duplex 1-64 Bytes data None 246 Bytes Parameter 512 bytes h.s., unlimited block DeviceNet Master/slave, multimaster, peer to peer 500 kbps, 250 kbps, 125 kbps 8-byte variable message with fragmentation for larger packets Carrier-Sense CRC check Multiple Access w/ NonDestructive Bitwise Arbitration Bus monitoring ARCNET Peer to peer 19.53K to 10M 0 to 507 bytes Token passing 16-bit CRC Built in Acknowledgements at Datalink layer AS-I Master/slave with cyclic Data and power, 31 slaves with 4 Master/slave in and 4 out with cyclic polling EMI resistant polling Foundation Client/server publisher/ 31.25 kbps Fieldbus H1 subscriber, Event notification 128 octets Client/Server, Foundation Publisher/Subscriber, Fieldbus HSE Event Notification Varies, Uses Standard TCP/IP 100Mbps Manchester Code, hamming-2 Slave fault, device fault Scheduler, multiple backup 16-bit CRC Remote diagnostics, network monitors, parameter status CSMA/CD CRC IEC/ISA SP50 Client/server Publisher/ 31.25 kbps IS+1, 64 octets high & Scheduler, subscriber 2.6, 5 Mbps 256 low priority tokens, or Fieldbus master 16-bit CRC Seriplex Master/slave peer to peer 200 Mbps Sonal multiplexing End of frame Cabling problems & echo check WorldFIP Peer to peer 31.25 kbps, 1 & No limit, 2.5 Mbps, 6 variables 128 Mbps fiber bytes Central arbitration 16-bit CRC, data "freshness" indicator LonWorks Master/slave peer to peer 1.25 Mbs full duplex 228 bytes Carrier Sense, 16-bit CRC Multiple Access SDS Master/slave, peer to peer, multi-cast, multi-master 1Mbps, 500 kbps, 250 kbps, 125 kbps 8-byte variable Carrier-Sense CRC check message Multiple Access w/ NonDestructive Bitwise Arbitration 158 7680/transfer Configurable on network management Device message timeout, redundant cabling Database of CRC errors and device errors Bus monitoring www.infoPLC.net Comunicaciones y Redes Modified CTDMA Time CCITT with Slice Multiple 16-bit Access Polynomial 5 Mbps 0-510 bytes variable CANopen Master/slave, peer to peer, multi-cast, multimaster 10K, 20K, 50K, 125K, 250K, 500K, 800K, 1Mbps Carrier-Sense Multiple Access w/ 8-byte variable 15 Bit CRC Nonmessage Destructive Bitwise Arbitration Industrial Ethernet Peer to Peer 10, 100Mbps 46-1500 Bytes CSMA/CD Modbus Plus Peer to Peer 1Mbps variable Modbus RTU/ASCII Master/Slave 300 bps 38.4Kbps 0-254 Bytes Remote I/O Master/Slave 57.6 - 230 kbps 128 Bytes DH+ Multi-Master, Peer<>Peer 57.6 kbps ControlNet Producer/Consumer, Device Object Model Duplicate Node ID, Device, Slave Faults Error Control & Emergency Messages CRC 32 CRC 16 none 180 Bytes none 5.5.4 Desempeño Fieldbus Name Cycle Time: 256 Discrete 16 nodes with 16 I/Os Cycle Time: 128 Analog 16 nodes with 8 I/Os Block transfer of 128 bytes 1 node PROFIBUS DP/PA Configuration dependent typ <2ms Configuration dependent typ <2ms not available INTERBUS-S 1.8 ms 7.4 ms 140 ms DeviceNet 2.0 ms Master-slave polling 10 ms Master-slave polling 4.2 ms ARCNET Application Layer Dependent Application Layer Dependent Application Layer Dependent AS-I 4.7 ms not possible not possible Foundation Fieldbus H1 <100 ms typical <600 ms typical 36 ms @ 31.25k Foundation Fieldbus HSE Not Applicable; Latency <5ms Not Applicable; Latency <5ms <1ms IEC/ISA SP50 Configuration dependent Configuration dependent 0.2 ms @ 5 Mbps 1.0 ms @ 1 Mbps Seriplex 1.32 ms @ 200 kbps, m/s 10.4 ms 10.4 ms WorldFIP 2 ms @ 1 Mbps 5 ms @ 1 Mbps 5 ms @ 1 Mbps LonWorks 20 ms 5 ms @ 1 Mbps 5 ms @ 1 Mbps SDS <1 ms, event driven 5 ms polling @ 1 Mbps 2 ms @ 1 Mbps ControlNet <0.5 ms <0.5 ms <0.5 ms CANopen <1 ms 5 ms polling @ 1 Mbps <2.5 ms Industrial Ethernet Application Layer Dependent Application Layer Dependent Application Layer Dependent Modbus Plus Modbus RTU/ASCII Remote I/O 12msec @230, 40 msec @57.6 bus cycle time DH+ 159 www.infoPLC.net Comunicaciones y Redes 160 www.infoPLC.net Aplicaciones 6.0 APLICACIONES En este capítulo se mostrarán algunas aplicaciones y ejemplos reales de realización de sistemas digitales con controladores lógicos programables. 6.1 CONTROL DE UNA PUERTA CORREDIZA Este circuito controla una puerta corrediza accionada mediante un motor. El movimiento de apertura de la puerta se controla por medio del contactor K1, y el de cierre por el contactor K3. El interruptor S3 de fin de carrera se acciona cuando la puerta está abierta e igualmente S2 cuando está cerrada. La puerta se abre al presionar S1 (estera o alfombra frente a la puerta). Si ya no se acciona S1, la puerta se cerrará automáticamente después de 3 segundos. Si se acciona S1, se activa el contactor K3 y se mantiene activado hasta que se alcance la posición “PUERTA ABIERTA” y el interruptor S3 de final de carrera desconecte el contactor K3. En la posición “PUERTA ABIERTA”, S3 también cierra el circuito del temporizador K2 siempre y cuando no se haya operado S1. Después de transcurrido el tiempo de retardo, la puerta se cierra al ser accionado K1 por K2. K1 se mantiene activado hasta que se alcance la posición “PUERTA CERRADA”, y se desconecte K1 mediante el interruptor S2 de final de carrera. Si S1 se acciona de nuevo mientras la puerta se está cerrando, se interrumpe inmediatamente la operación de cierre y la puerta corrediza se abre de nuevo por medio del contactor K3. Las lámparas H1 y H2 de señalización son para indicar cuándo se está abriendo o cerrando la puerta. A continuación se muestran el cuadro de asignaciones y componentes, el diagrama de escalera y el programa. Tipo Asignación 1 Entradas (I) 2 3 1 Salidas (Q) 2 11 12 Temporizador (T) 1 Descripción S1 = Pulsador, estera o alfombra S2 = Interruptor de límite (puerta abierta) S3 = Interruptor de límite (puerta cerrada) K1 = Contactor (cierra la puerta corrediza) K3 = Contactor (abre la puerta corrediza) H1 = Lámpara indicadora (apertura de puerta) H2 = Lámpara indicadora (cierre de puerta) K2 = Relé de tiempo (retardo para el cierre) Cuadro de asignaciones 161 www.infoPLC.net Aplicaciones S2 puerta cerrada STR NOT STR OR AND STR AND NOT AND NOT OUT K1 cerrar K2 retardo para el cierre S1 I1 T1 Q1 Q2 I2 Q1 STR NOT I1 AND I3 OUT TMR T1 03 S3 puerta abierta K3 abrir H1 cierre H2 apertura STR OR AND NOT AND NOT OUT I1 Q2 Q1 I3 Q2 STR OUT Q1 Q11 STR OUT Q2 Q12 END Figura 6.1 Diagrama de escalera Programa S2 S1 M1 S3 1 2 3 n PLC 1 L A1 K1 U1 = 220 V~ 2 A2 H1 Figura 6.2 Conexiones al autómata 162 L 12 A1 K3 A2 11 H2 n www.infoPLC.net Aplicaciones 6.2 DETECCIÓN DE ETIQUETAS EN UNA EMBOTELLADORA En este ejemplo se controla un sistema en el cual las botellas se mueven por una cinta transportadora y unas fotocélulas verifican que las botellas llevan etiquetas. Descripción: Si se detecta un producto defectuoso (botella sin etiqueta), el PLC dirige el brazo de un robot para quitarla y colocarla en otra cinta transportadora. También se cuenta el número de botellas defectuosas. Si el número de botellas defectuosas alcanza un valor seleccionado, el PLC enciende una lámpara de aviso. Fig. 6.3 Gráfico del proceso Instrucción Dato STR NOT STR STR SFT 0000 0001 0002 1000 1010 1001 0500 0003 0500 1001 0501 T0 0501 TMR T0 0015 0000 C0 0010 C0 502 STR OR AND NOT OUT STR OR AND NOT OUT OUT STR CNT STR OUT Programa Figura 6.4 Diagrama de escalera 163 www.infoPLC.net Aplicaciones Entrada Detección de botella sin etiqueta Detección de botella Reset Detección de la posición original del brazo del robot Relé 0000 0001 0002 0003 Salida Brazo de robot Motor de la cinta transportadora B Lámpara de alarma 0500 0501 0502 Cuadro de asignaciones Operación: Cuando se detecta un producto defectuoso (botella sin etiqueta), la entrada 0000 se activa y su estado se almacena en el punto 1000 del registro de corrimiento. Al siguiente pulso de reloj (entrada 0001), el estado del punto 1000 del registro de desplaza al 1001 indicando la detección de un producto defectuoso. En respuesta a esto, la salida 0500 se activa a menos que la entrada 0003 esté activada. Cuando la salida 0500 se activa, el brazo del robot retira el producto defectuoso y lo coloca en la cinta transportadora B. La entrada 0003 se activa cuando el brazo del robot vuelve a su posición original después de retirar el producto defectuoso. Cuando el relé 1001 se activa, la salida 0501 se utiliza para poner en marcha la cinta transportadora B. Las entrada 0000 es la entrada de contaje y la 0002 es el reset . Cuando el contador cuanta cinco impulsos (cinco botellas defectuosas), el contador activa la salida 0502 que es la lámpara de alarma. 6.3 ELEVADOR CLASIFICADOR DE PAQUETES (FESTO) Este circuito clasifica paquetes de dos tamaños diferentes encaminándolos a una banda transportadora según su tamaño. Descripción: Primero se mide la longitud de los paquetes transportados por una cadena de rodillos. Hay paquetes largos y cortos. El medidor emite señal 0 si el paquete es pequeño y 1 si es grande, el medidor es simulado por el pulsador S2. A continuación los paquetes se colocan en un elevador. La secuencia se inicia con el pulsador “marcha” (S1). El cilindro A eleva los paquetes, en seguida se clasifican como sigue: los paquetes cortos se colocan en otra banda por el cilindro B, y los paquetes largos pasan a una tercera cadena C. El cilindro elevador A recupera sólo cuando el cilindro B o C llega a su posición final. Los finales de carrera B0 a B5 detectan la posición de los cilindros. Los cilindros A y B avanzan y recuperan por acción de las electroválvulas Y1 y Y2 respectivamente. El cilindro C se acciona por una electroválvula de dos bobinas (Y3=avanzar, Y4=recuperar). 164 www.infoPLC.net Aplicaciones TIPO Asignación S1 B0 B1 Entradas S2 (E) B2 B3 B4 B5 Y1 Salidas Y2 (S) Y3 Y4 SM0 SM1 Marcas SM2 (M) SM3 SM4 SM5 Descripción Pulsador de marcha Final de carrera posición retraída del cilindro A Final de carrera posición extendida del cilindro A Pulsador medidor de paquetes F. de C. posición retraída del cilindro B F. de C. posición extendida del cilindro B F. de C. posición retraída del cilindro C F. de C. posición extendida del cilindro C Electroválvula cilindro A (avanza) Electroválvula cilindro B (avanza) Electroválvula cilindro C (avanza) Electroválvula cilindro C (recupera) Activa Y1 Activa Y3 Activa Y2 Activa Y4 Auxiliar del circuito Auxiliar del circuito Cuadro de asignaciones PASO CUANDO ENTONCES PASO CUANDO ENTONCES CUANDO ENTONCES PASO CUANDO ENTONCES Figura 6.5 Gráfico del proceso CUANDO ENTONCES PASO CUANDO ENTONCES ELEVAR Y Y Y ACTIVAR S1 B0 B2 B4 Y1 DESPLAZAR Y DESACTIVAR ACTIVAR SALTAR S2 B1 Y4 Y3 RETIRAR NO Y ACTIVAR S2 B1 Y2 RETIRAR DESACTIVAR ACTIVAR SALTAR B5 Y3 Y4 BAJAR DESACTIVAR B3 Y2 BAJAR Y DESACTIVAR SALTAR B2 B4 Y1 ELEVAR FIN Programa en lenguaje de alto nivel 165 www.infoPLC.net Aplicaciones Instrucción Dato STR NOT AND AND AND OR AND NOT OUT SM0 B0 B2 B4 SM0 SM5 SM0 STR AND OR AND AND NOT OUT B1 S2 SM1 SM0 SM2 SM1 STR AND NOT OR AND AND NOT OUT B1 S2 SM2 SM0 SM1 SM2 STR OR AND AND NOT OUT B5 SM3 SM1 SM4 SM3 STR OR AND AND NOT OUT B3 SM4 SM2 SM3 SM4 STR AND STR OR AND STR OUT B2 B4 SM4 SM3 SM5 STR AND NOT OUT SM0 SM5 Y1 STR AND NOT OUT SM2 SM4 Y2 STR AND NOT OUT SM1 SM3 Y3 STR OUT SM3 Y4 END Programa Figura 6.6 Diagrama de escalera 166 www.infoPLC.net Aplicaciones Figura 6.7 Conexiones al autómata 6.4 CONTROL AUTOMÁTICO DEL TREN DE LAVADO DE AUTOS Descripción: Este circuito controla el tren de lavado de coches de la figura que consta de los siguientes elementos: • • • • Tres motores realizando las siguientes tareas: - Un motor principal MP que mueve la máquina a lo largo del carril y posee dos variables de control MP1 y MP2. MP1 desplaza la máquina de derecha a izquierda y MP2 en sentido contrario. - Motor de los cepillos MC. - Motor del ventilador MV. Una electroválvula XV que permite la salida del líquido de lavado hacia el vehículo. Un sensor S3 que detecta la presencia del vehículo. Dos finales de carrera S1 (izquierda) y S2 (derecha) que detectan la llegada de la máquina a los extremos del riel. Inicialmente la máquina se encuentra en el extremo de la derecha (S2 activado) y debe ponerse en marcha al ser accionado un pulsador de marcha M y encontrarse un vehículo dentro de ella (S3 activado). Una vez accionado M, la máquina debe hacer un recorrido de ida y vuelta con la salida de líquido abierta y los cepillos funcionando. Cuando la máquina alcanza el extremo derecho (S2) debe realizar otro recorrido completo de ida y vuelta en el que sólo debe estar el ventilador de secado en marcha. Finalizando este recorrido la máquina debe pararse y quedar en la posición inicial. 167 www.infoPLC.net Aplicaciones En cualquier momento puede interrumpirse el proceso accionando el pulsador de paro P, volviendo la máquina a la posición inicial. Figura 6.8 Gráfico del proceso TIPO Entradas Salidas Marcas Asignación S1 S2 S3 M P MP1 MP2 MV MC XV IR0 - IR5 Descripción Final de carrera (izquierda) F. de C. (derecha) Detector de presencia de vehículo Pulsador de marcha Pulsador de paro Desplazamiento de la máquina de derecha a Izq. Desplazamiento de la máquina de Izquierda a der. Motor del ventilador Motor de los cepillos Electroválvula - salida de líquido Relés Auxiliares del circuito Cuadro de asignación de variables 168 www.infoPLC.net Aplicaciones Figura 6.9 Diagrama de escalera Instrucción Dato STR AND OR AND AND NOT AND NOT OUT M S2 IR0 S3 P IR4 IR0 STR AND NOT OR AND OUT S1 S2 IR1 IR0 IR1 STR AND NOT AND OR AND OUT OUT IR1 S1 S2 IR2 IR0 IR2 MV STR AND NOT AND OR AND OUT IR2 S2 S1 IR3 IR0 IR3 STR AND NOT AND OUT IR3 S1 S2 IR4 STR OR AND NOT AND NOT OUT P IR5 S2 IR0 IR5 STR NOT OR AND AND NOT OUT IR1 IR2 IR0 IR3 MP1 STR AND NOT STR AND NOT OR STR STR OR STR OUT IR1 IR2 IR3 IR4 STR AND NOT OUT OUT IR0 IR2 MC VX IR5 MP2 Programa END 169 www.infoPLC.net Aplicaciones M & S3 P IR4 1 IR0 & S2 S1 = & 1 IR1 & IR0 S2 = IR1 S1 S2 & IR2 S2 S1 & IR3 S1 S2 & P 1 1 IR2 = = 1 IR3 = = 1 = MP1 La salida MP1 se activa si lo están el inverso de IR1 o IR2 y simultáneamente IR0 e IR3 inactivo. La salida MP2 se activa si están activos: IR1 y no IR2, o IR3 y no IR4, o IR5. & IR2 1 IR5 IR3 El biestable IR3 se activa al cerrarse el final de carrera S1 si está activada IR2 IR3 (se ha realizado el primer recorrido de izquierda a derecha). IR5 & IR0 IR3 IR2, otro biestable R-S, se activa al cerrarse el final de carrera S2 si está IR2 activada IR1 (se ha realizado el primer MV recorrido de derecha a izquierda). IR5 es un biestable que memoriza la activación de P y provoca que la máquina vaya automáticamente al extremo derecho. & S2 IR0 IR1 es un biestable R-S que se activa cuando la máquina alcanza el final de IR1 desplazamiento hacia la izquierda (S1). IR4 se activa al cerrarse S1 si está activada IR3 (se ha realizado el segundo recorrido de derecha a izquierda). IR4 = IR2 IR1 & IR0 IR5 IR1 & IR0 IR0 Operación: IR0 constituye un biestable R-S que se activa al presionar el pulsador de marcha M si en ese instante la máquina se encuentra en el extremo derecho (S2). = & MP2 MV sólo debe activarse en el segundo recorrido de ida y vuelta. Por ello coincide con IR2. IR4 IR0 IR2 & = = MC XV Figura 6.10 Diagrama de funciones 170 MC y XV deben activarse únicamente en el primer recorrido de ida y vuelta si IR0 está activa y no IR2. www.infoPLC.net Aplicaciones 6.5 CONTROL AUTOMÁTICO DE UN GARAGE Descripción: El garaje dispone de un acceso de entrada y tro de salida controlados por sendas barreras que se accionan mediante los motores eléctricos M1 y M2 respectivamente. A ambos lados de las dos barreras se instalan sensores de presencia de vehículo: S1 y S2 en la entrada y S3 y S4 en la salida. Dichos sensores permanecen activados mientras hay un vehículo ante ellos y por su situación física nunca se activan simultáneamente S1 y S2 ni S3 y S4. Se utiliza un sensor S5 para detectar la presencia de ficha en el control de salida. Figura 6.11 Gráfico del proceso La capacidad del garaje es de 10 vehículos y el sistema electrónico debe controlar la ejecución de las siguientes acciones: • Apertura y cierre de las barreras. La barrera de entrada debe abrirse si en el interior del garaje hay menos de 10 vehículos y se produce un flanco de subida (paso de desactivado a avtivado del sensor S1). Dicha barrera debe cerrarse si se produce un flanco de bajada (S2 desactivado). La barrera de salida debe abrirse si se activa S5 (presencia de la ficha) y se produce un flanco de subida en S3 y debe cerrarse al producirse un flanco de bajada en S4. 171 www.infoPLC.net Aplicaciones • • Señalización a la entrada, mediante una luz verde LV, de que existen plazas libres en el garaje. Señalización a la entrada, mediante una luz roja LR, de que el garaje está completo y no pueden entrar más coches. El sistema de control debe poseer además los siguientes elementos de entrada: • • • Un pulsador M para ponerlo en marcha. A partir del instante de dar tensión al PLC no se permite la entrada o salida de vehículos hasta que no se accione este pulsador. Un pulsador de paro P para dejarlo fuera de servicio. Si se acciona este pulsador queda impedida la entrada y salida de vehículos hasta que se accione el pulsador M. En caso de que P y M se accionen simultáneamente, el primero debe predominar sobre el segundo. Un pulsador R para poner a cero el contador de vehículos en el instante de dar tensión al autómata. Variable externa S1 S2 S3 S4 S5 M P R M1 M2 LV LR Denominación X0 X1 X2 X3 X4 X5 X6 X7 Y0 Y1 Y2 Y3 Cuadro de asignación de variables En la figura 6.12 tenemos el diagrama de escalera acompañado del programa en lista de instrucciones y finalmente puede deducirse rápidamente el diagrama de funciones de la figura 6.13. 172 www.infoPLC.net Aplicaciones Figura 6.12 Diagrama de escalera Instrucción Dato STR OR AND NOT OUT X5 IR0 X6 IR0 STR OR AND NOT AND AND NOT OUT X0 Y0 IR2 IR0 Y3 Y0 STR OR AND NOT AND OUT STR NOT AND OUT X1 IR1 IR2 Y0 IR1 X1 IR1 IR2 STR OR AND NOT AND OUT X4 IR3 IR5 IR0 IR3 STR AND OR AND NOT OUT IR3 X2 Y1 IR5 Y1 STR AND OR AND NOT AND OUT STR NOT AND OUT X3 Y1 IR4 IR5 IR0 IR4 X3 IR4 IR5 STR AND STR STR OR CTR OUT X7 IR0 IR5 IR2 IR5 45 10 Y3 STR AND NOT OUT IR0 Y3 Y2 END Programa 173 www.infoPLC.net Aplicaciones X5 1 X6 & IR0 X0 1 Y0 X1 1 IR2 IR0 Y3 & IR2 & Y0 IR1 X1 IR0 = Y0 = IR1 = IR3 1 = IR1 X4 1 IR5 IR2 & IR0 IR3 IR3 = Y1 & 1 IR5 & X2 X3 & IR4 1 & = IR4 X7 & IR5 CTR 45 10 IR0 IR5 = IR2 1 IR5 IR0 Y3 & = Y2 Figura 6.13 Diagrama de funciones 174 Y1 = IR4 & IR0 Y1 X3 IR5 = Y3 www.infoPLC.net Aplicaciones 6.6 CONTEO DEL NÚMERO TOTAL DE PRODUCTOS EN LÍNEAS MÚLTIPLES DE PRODUCCIÓN (KEYENCE) En este ejemplo se cuenta simultáneamente el número de productos que pasan a través de cada una de cinco líneas. Cuando el número total de productos alcanza un valor preestablecido (100en este ejemplo), el PLC activa. Un sensor de fibra óptica cuenta el número de productos de cada línea. Figura 6.15 Diagrama de tiempos Figura 6.14 Gráfico del proceso TIPO Asignación 0000 0001 0002 Entradas 0003 0004 0005 Salida 0500 Marcas 2002 2009 Descripción Conteo de productos de la línea 1 Conteo de productos de la línea 2 Conteo de productos de la línea 3 Conteo de productos de la línea 4 Conteo de productos de la línea 5 Reset salida comparadora Auxiliar del circuito Auxiliar del circuito Cuadro de asignaciones Operación: Para realizar el conteo de una manera más simple, en lugar de contadores se utiliza la instrucción de incremento de memoria INC, la cual suma ‘1’ al dato contenido en la dirección de memoria especificado por un operando. 175 www.infoPLC.net Aplicaciones Cuando la entrada 0000 (línea 1) se activa, DM000 se incrementa en 1. Cuando la entrada 0001 (línea 2) se activa, DM000 se incrementa en 1. Cuando la entrada 0002 (línea 3) se activa, DM000 se incrementa en 1. Cuando la entrada 0003 (línea 4) se activa, DM000 se incrementa en 1. Cuando la entrada 0004 (línea 5) se activa, DM000 se incrementa en 1. Cuando la entrada 0005 (reset) se activa, DM0000 se reinicia a 0 y la salida 0500 se desactiva. Cuando DM0000 es igual o mayor que 100, el relé de salida 0500 se activa. Figura 6.16 Diagrama de escalera El programa podría realizarse de dos diferentes maneras: 1) 2) En el programa (1) el conteo se efectúa en cada entrada aún si los relés 0000 al 0004 se activan simultáneamente; y en el programa (2) entradas simultaneas se ignoran cuando los relés 0000 a 0004 se activan simultáneamente. 176 www.infoPLC.net Aplicaciones 6.7 CONTEO DEL NÚMERO DE ROTACIONES - CONTADOR DE FRECUENCIA (KEYENCE) Descripción: Usando la función de contador de frecuencia (Visual KV series), se mide el tiempo de los pulsos de salida de un objeto en rotación a través de la entrada 0004 con un contador de alta velocidad y convirtiéndolos en frecuencia (Hz). La frecuencia medida se usa para el cálculo del número de rotaciones (rpm). Este circuito puede emplearse para detectar la reducción en el número de rotaciones de un objeto como un agitador, o para medir su frecuencia. Pulsos Figura 6.17 Gráfico del proceso TIPO Entrada Memorias de datos Asignación 0004 1404 1405 Y3 Y4 2305 Marcas 2008 2002 Descripción Entrada de conteo Ciclo de medición del contador de frecuencia (1-9999 [ms]) Resultado de la cuenta (Hz) Electroválvula cilindro C (avanza) Electroválvula cilindro C (recupera) Relé auxiliar especial: habilita/deshabilita la función contador de frecuencia ON: habilitado, OFF: deshabilitado Relé auxiliar Relé auxiliar Cuadro de asignaciones Operación: De la entrada 0004 se miden los pulsos para la medición de frecuencia. Activando el relé auxiliar especial 2305 comienza el contador de frecuencia. La medición resultante (Hz) se guarda en DM1405. Para establecer el intervalo de medición de frecuencia (ms), se especifica el valor mayor que el tiempo de escaneo en DM1404 en unidades de ms. El número de rotaciones puede obtenerse de la medición de frecuencia mediante el siguiente cálculo: No. de rotaciones (rpm) = ( Frecuencia ( HZ ) )(60 ( seg.) ) No. de pulsos por una rotación La cuenta del número de rotaciones de la rueda dentada requiere 10 pulsos por una rotación. El conteo de la frecuencia de los pulsos recibidos a través de la entrada 0004 cada segundo (1000 ms) se pasa a DM0000, y el número de rotaciones calculado se guarda en DM0001. La instrucción HSP reduce la constante de tiempo del relé de entrada especificado para incrementar la respuesta de la entrada. 177 www.infoPLC.net Aplicaciones El ciclo de medición de los pulsos se fija en 1000 ms (1 seg.). La activación del relé 305 habilita el contador de frecuencia. La constante de tiempo de la entrada se fija en 10 µs. La frecuencia medida (Hz) se transfiere a DM0000. El número de rotaciones (rpm) se calcula con la frecuencia medida y se guarda en DM0001. Figura 6.18 Diagrama de escalera 178 www.infoPLC.net Apéndice PLCopen Estandarización en Programación de Control Industrial PO Box 2015, NL - 5300 CA Zaltbommel, Netherlands, Tel: *.31.418.541139, Fax: *.31.418.516336 IEC 61131-3: una fuente de programación estandarizada La norma IEC 61131-3 es el primer intento real para estandarizar los lenguajes de programación para automatización industrial. Cuenta con soporte mundial y es independiente de cualquier compañía. The IEC 1131-3 Standard Common Elements La IEC 61131-3 es la tercera parte de la familia IEC 61131.Consiste de: • • • • • Parte 1: Parte 2: Parte 3: Parte 4: Parte 5: Visión general Hardware Lenguajes de Programación Reglas de usuario Comunicación Esta tercera parte de la norma contiene muchos aspectos como los siguientes: • • • • Los resultados de la Fuerza de Trabajo 3, Lenguajes de programación, dentro de la norma IEC TC65 SC65B El resultado de un firme trabajo por 7 compañías internacionales añadiendo decenas de años de experiencia en el campo de la automatización industrial Aproximadamente 200 páginas de texto, con 60 tablas incluyendo tablas de características La especificación de la sintaxis y semántica de una suite unificada de lenguajes de programación, incluyendo el modelo de software global y un lenguaje estructurado. Otra vista elegante es dividiendo el estándar en dos partes (ver figura 1): 1. Elementos comunes 2. Lenguajes de Programación Programming Languages Veamos con detalle estas partes: Elementos comunes Tipos de Datos Los tipos de dados están definidos dentro de los elementos comunes. La clasificación de los datos previene errores en primeras etapas. Se usa para definir el tipo de cualquier parámetro usado. Esto evita por ejemplo, dividir una Fecha por un entero. Tipos de datos comunes son Boléanos, Enteros, Reales, Bytes y Palabras, pero también Fecha, Hora_del_Día y Cadenas. De acuerdo con esto, uno puede definir sus propios tipos de datos personales, conocidos como tipos de datos derivados. De esta manera uno puede definir un canal de entrada analógica como tipo de dato y reutilizado una y otra vez. Variables Las variables se asignan únicamente a direcciones explícitas de hardware (p. Ej. entradas y salidas) 179 www.infoPLC.net Apéndice en configuraciones, recursos y programas. De esta manera se crea un alto nivel de independiente al hardware, soportando la reutilización del software. Cualquiera de éstos puede ejecutarse periódicamente o bajo la ocurrencia de un disparador especificado, como el cambio de una variable. El alcance de las variables normalmente está limitado a la unidad de organización en la cual se declaran, p. Ej. local. Los Programas están basados en un número de elementos de software diferentes escritos en cualquiera de los lenguajes IEC definidos. Típicamente, un programa consiste de una red de Funciones y Bloques de Funciones, los cuales pueden intercambiar datos. Las funciones y bloques de funciones son los bloques básicos de construcción, conteniendo una estructura de datos y un algoritmo. Esto significa que sus nombres pueden ser reutilizados en otras partes sin ningún conflicto, eliminando otra fuente de errores. Si las variables deben tener alcance global, deben declararse como (VAR_GLOBAL). Pueden asignarse valores iniciales a los parámetros al inicio y reinicio, a fin de tener el entorno correcto. Configuración, Recursos y Tareas Para entender mejor esto, veamos l modelo de software, como se define en la norma (ver abajo). Configuration Resource Task Resource Task Task Task FB Function Block Program Program FB Program FB Comparemos esto con un PLC convencional: esto contiene un recurso, corriendo una tarea, controlando un programa, ejecutando un ciclo cerrado. IEC 61131-3 aporta mucho más a esto, considerando aspectos a futuro. Un futuro que incluye multiprocesamiento y programas controlados por eventos.Y este futuro no está lejos: sólo veamos los sistemas distribuidos o los sistemas de control en tiempo real. La IEC 61131-3 es adecuada para un amplio margen de aplicaciones, sin tener que aprender lenguajes de programación adicionales. Program FB FB Execution control path Access path En el nivel más alto, el software es requerido para resolver un problema particular de control, puede ser formulado como una Configuración. Una Configuración es específica a un tipo particular de sistema de control, incluida la distribución del hardware, p. Ej. recursos en proceso, direcciones de memoria para canales de E/S y capacidades del sistema. Unidades de Organización del Programa Dentro de la IEC 61131-3, los programas, funciones, y los bloques de funciones reciben el nombre de Unidades de Organización de Programa, POUs. Funciones IEC ha definido funciones estándar y funciones definidas por el usuario. Son funciones estándar: ADD(adición), ABS(absoluto), SQRT(raíz cuadrada), SIN(seno) y COS(coseno). Dentro de una misma configuración pueden definirse uno o más recursos. Un recurso puede verse como un área en proceso, que es capaz de ejecutar programas IEC. Las funciones definidas por el usuario pueden ser usadas una y otra vez una vez definidas. Pueden definirse una o más Tareas dentro de un recurso. Las Tareas controlan la ejecución de un conjunto de programas y/o bloques de funciones. Los bloques de funciones son el equivalente a los circuitos integrados, ICs, representando una función de control especializada. Contienen tanto 180 Bloques de Funciones, FBs www.infoPLC.net Apéndice datos como el algoritmo, de modo que mantienen pista de loa anterior. cualquiera de los lenguajes de programación definidos. Tienen una interfase bien definida e interiores ocultos, como un IC o una caja negra. De este modo brindan una clara separación entre diferentes niveles de programadores o programadores de mantenimiento. Diagrama de Función Secuencial, SFC Un ciclo de control de temperatura o PID, es un excelente ejemplo de un Bloque de Función. Una vez definido, puede utilizarse una y otra vez en el mismo programa, diferentes programas o incluso en diferentes proyectos. Esto los hace altamente reutilizables. Los Bloques de Función pueden escribirse en cualquiera de los lenguajes IEC, y en muchos casos hasta en “C”. De esta manera puede ser definido por el usuario. Los Bloques de Funciones Derivados están basados en los FBs estándar definidos, pero también son posibles FBs completamente nuevos y personalizados con el estándar: este sólo proporciona el esqueleto. Las interfaces de funciones y bloques de funciones se describen del mismo modo: FUNCTION_BLOCK Example VAR_INPUT: X : BOOL; Y : BOOL; END_VAR VAR_OUTPUT Z : BOOL; END_VAR (* expresiones del bloque de función *) END_FUNCTION_BLOCK Las declaraciones de arriba describen la interfase a un bloque de función con dos parámetros de entradas Boléanos y otro parámetro de salida Boleano . Programas Con los bloques de construcción básicos mencionados arriba, uno puede decir que un programa es una red de Funciones y Bloques de Funciones. Un programa puede escribirse en Step 1 N FILL Transition 1 Step 2 S Empty Transition 2 Step 3 El SFC describe gráficamente el comportamiento de un programa de control. Se deriva de Petri Nets y del Grafcet IEC 848, con los cambios necesarios para convertir la representación desde una documentación estándar a un conjunto de elementos de control de ejecución. El SFC estructura la organización interna del programa y ayuda a descomponer un problema de control en partes manejables, al mismo tiempo que conserva la visión global. SFC consiste de pasos, ligados con Bloques de Acción y Transiciones. Cada paso representa un estado particular de los sistemas controlados. Una transición está asociada a una condición la cual, cuando sea verdadera, causa el paso antes de la transición a desactivado, y el siguiente paso a activado. Los pasos están asociados con bloques de acción, realizando una determinada acción de control. Cada elemento puede programarse en cualquiera de los lenguajes IEC, incluyendo el mismo SFC. Uno puede usar secuencias alternativas e incluso secuencias paralelas, como las comúnmente requeridas en aplicaciones secuenciales. Por ejemplo, una secuencia se usa para el proceso principal, y el segundo para el monitoreo global de operación. Debido a su estructura general, SFC también provee de una herramienta de comunicación, ligando personas de diferentes entornos, departamentos o países. 181 www.infoPLC.net Apéndice comunicación, combinando gente de diferentes entornos o áreas. Lenguajes de Programación Dentro de la norma se definen cuatro lenguajes de programación. Esto significa que su sintaxis y semántica han sido definidas, no dejando lugar a “dialectos”. Una vez que se han aprendido, pueden usarse en una amplia variedad de sistemas basados en esta norma. Los lenguajes consisten en dos versiones: gráfica y de texto: Textuales: • Lista de Instrucciones, IL • Texto estructurado, ST Gráficos: • Diagrama de Escalera, LD • Diagrama de Bloques de Funciones, FBD Instruction List (IL) LD ANDN B ST C:=A AND NOT B C Function Block Diagram (FBD) AND A Structured Text (ST) A Ladder Diagram(LD) A B C C -| |--|/|----------------( ) B En la figura de arriba, los cuatro lenguajes describen la misma parte simple de un programa. La elección por un lenguaje determinado depende de: • • • • • El entorno del programador El problema en particular El nivel de descripción del problema La estructura del sistema de control La interfase con otras entidades Los cuatro lenguajes están interrelacionados: proporcionan un mismo escenario de acuerdo a la experiencia previa del programador. De esta manera también proporcionan una herramienta de 182 El Diagrama de Escalera tiene sus raíces en los Estados Unidos. Se basa en la representación gráfica de la Lógica de escalera de relees. La Lista de Instrucciones es la contraparte europea. Como lenguaje textual, recuerda al ensamblador. El Diagrama de Bloques de Funciones es muy común en la industria de procesos. Expresa el comportamiento de las funciones, bloques de funciones y programas como un conjunto de bloques gráficos interconectados, como los diagramas de circuitos en electrónica. Se asemeja a un sistema en términos de los flujos de señales entre elementos en proceso. El Texto Estructurado es un lenguaje de alto nivel muy potente con raíces en Ada. Pascal y “C”. Contiene todos los elementos esenciales de un moderno lenguaje de programación, incluyendo sentencias condicionales (IF-THEN-ELSE y CASE OF) y ciclos iterativos (FOR, WHILE y REPEAT). Además estos elementos pueden anidarse.Puede usarse excelentemente para la definición de bloques de funciones complejos, los cuales pueden usarse en cualquiera de los otros lenguajes. Ejemplo en texto estructurado (ST): I:=25; WHILE J<5 DO Z:= F(I+J); END_WHILE IF B_1 THEN %QW100:= INT_TO_BCD(Display) ENDIF CASE TW OF 1,5: TEMP := TEMP_1; 2: TEMP := 40; 4: TEMP := FTMP(TEMP_2); ELSE TEMP := 0; B_ERROR :=1; END_CASE www.infoPLC.net Apéndice Top-down vs. bottom-up Conclusión Top Down Common Elements Programming Languages Bottom Up Además la norma permite dos maneras de desarrollar el programa: top down y bottom up. En cualquiera podemos dividir la aplicación en dos subpartes, declarar las variables y así sucesivamente. O también podemos empezar programando la aplicación desde le final, por ejemplo deduciendo funciones y bloques de funciones. Cualquiera que se elijamos, el ambiente de desarrollo nos ayudará a través del proceso entero. Implementaciones No es fácil satisfacer los requerimientos globales de IEC 61131-3. Por tal razón, la norma permite implementaciones parciales en varios aspectos. Esto cubre el número de lenguajes soportados, funciones y bloques de funciones. Esto da libertad del lado del provisor, pero un usuario debe estar bien conciente de esto durante su proceso de selección. También, una nueva versión puede tener un más alto nivel de implementación. Las implicaciones técnicas del estándar IEC 61131-3 son elevadas, dejando suficiente campo al desarrollo y distinción.Esto hace a ésta norma adecuada para desarrollarse bien en el siglo venidero. La IEC 61131-3 tendrá un gran impacto en toda la industria de control. Por supuesto que no restringirá el mercado convencional de PLC’s por sí misma. Hoy en día, se ve adoptando la propuesta comercial, sistemas distribuidos y sistemas de control basados en PC / softlogic, incluyendo paquetes SCADA. Y las áreas siguen en crecimiento. El tener una norma sobre una amplia área de aplicación, brinda numerosos beneficios a los usuarios / programadores. Los beneficios de adoptar esta norma son varios, dependiendo de las áreas de aplicación. Sólo por nombrar algunas: • • • • • Gasto reducido de recursos humanos, en entrenamiento, depuración, mantenimiento y consultorías. Enfoque a un problema para solución vía alto nivel o reutilización de software. Errores y mal interpretaciones reducidas. Técnicas de programación utilizables en un amplio entorno: control industrial general. Combinación de diferentes componentes desde diferentes programas, proyectos, ubicaciones, compañías o países. Muchos entornos de programación IEC actuales ofrecen todo lo que podamos esperar de los modernos ambientes: operación por ratón, menús desplegables, pantallas de programación gráficas, soporte para múltiples ventanas, funciones hipertexto integradas, verificación durante el diseño. Por favor esté consciente de que esto no está especificado dentro del mismo estándar: esto es una de las partes donde los proveedores pueden distinguirse. 183 www.infoPLC.net Apéndice Mejoras de PLCopen a la Norma PLCopen es un proveedor de producto independiente mundial respaldando IEC 61131-3. Implementando esta norma en diversos ambientes de desarrollo de programas, los usuarios pueden cambiar entre diferentes marcas y tipos de control con muy poco de entrenamiento e intercambio de aplicaciones con un mínimo esfuerzo. La organización PLCopen trabaja en la promoción del uso y/o provisión del estándar, también mejora el estándar en el sentido técnico. Esto incluye posteriormente certificación e intercambio. Los comités trabajan dentro de PLCopen y sus resultados se describen brevemente más abajo. Resultados técnicos Los Comités Técnicos, TCs, con miembros representativos de PLCopen, trabajan en asuntos específicos. Dentro de las Normas TC1, PLCopen recoge propuestas de sus miembros para el grupo de trabajo IEC 65B WG7, desarrolla una posición común, y distribuye la información relacionada. Esto estuvo específicamente enfocado a la segunda versión del estándar, la cual fue liberada a principios de 2001. El TC2 - Funciones definen bibliotecas comunes de funciones (Bloques) para áreas específicas de aplicación. Un ejemplo es la definición de bibliotecas de Bloques de Funciones para Control de Movimiento. Esta estandarización asocia el control de movimiento de una manera lógica al control industrial. De este modo, suministra una vista y sentido común a los usuarios: tanto programadores como gente de mantenimiento. Con múltiples implementaciones de esta biblioteca, el asenso del sistema de control es mucho más sencillo, aún si hay diferentes arquitecturas y / o marcas de controladores en uso. El intercambio de parte de los programas mediante el Nivel de Reutilización PLCopen (ver 184 abajo para más información) también juega un papel esencial aquí. Certificación y pruebas de conformidad El TC3 - Certificación define un sistema de certificación para Ambientes de soporte de programas PSEs, (entornos de desarrollo). Cada PSE puede ser probado para demostrar que cumple con un subconjunto de la norma IEC 61131-3 especificado por PLCopen Esta norma contiene un gran numero de las llamadas tablas de características y PLCopen ha definido cuales de esas tablas deben ser soportadas para satisfacer los requerimientos. Adicionalmente, PLCopen extiende la norma para soportar la reutilización de Bloques de Funciones derivados de usuario entre PSEs. Nivel de Conformidad, CL Con la amplia gama de áreas de aplicación para IEC 61131-3 no todas las implementaciones usan exactamente los mismos tipos de datos. Respecto a esto, la certificación según el Nivel de Conformidad, CL, implica que el proveedor de un PSE seleccione los tipos de datos soportados por su producto coincidiendo con su declaración de conformidad. Todas las características IEC soportadas son puestas a prueba. Esto significa que independientemente del resultado de la prueba, puede haber diferencias entre dos productos certificados. Estas diferencias pueden influir en la reusabilidad de los bloques de funciones definidos por el usuario. El número total de tipos de datos especificados en la norma llega a 26 (tabla 10 y 12 de la norma). Esto pone orden de un simple Si/No digital (BOOL) a estructuras potencialmente complejas. Por consiguiente, CL tiene 26 opciones: tipos de datos soportados o no soportados. Sólo los tipos de datos soportados son usados para pruebas. www.infoPLC.net Apéndice Adicionalmente, el Nivel de Reusabilidad, RL, se dedica a hacer las funciones unitarias de programación reutilizables en diferentes PSE. Esto se hace mediante el intercambio a texto simple del lenguaje de Texto Estructurado, ST. Para la representación en otros lenguajes, puede incluirse una herramienta de conversión a o desde ST. Esta es una principal pero sencilla contribución de PLCopen a la norma IEC 611313 Históricamente existe una clase menor llamada Nivel Base, definiendo un kérnel central por lenguaje del estándar. El Nivel Base proporciona un nivel de acceso para los proveedores, mostrándoles su compromiso con el estándar. Para el usuario proporciona una interpretación normalizada del estándar, especialmente importante si ellos tienen que trabajar con sistemas de diferentes proveedores. Las especificaciones detalladas de la mayor parte de los lenguajes IEC 6113-1 ya se han terminado. Se trabaja para los lenguajes restantes. El procedimiento de pruebas de conformidad y el procedimiento de acreditación para los laboratorios de pruebas han sido establecidos. Se han acreditado laboratorios independientes de pruebas y se ha certificado un número creciente de productos. Para una lista completa favor de dirigirse al sitio web www.plcopen.org. El TC4 – Comunicaciones trabaja en la relación entre comunicaciones y lenguajes de programación, como el mapeo de Profibus y CANopen vía IEC 61131-5 sobre IEC 61131-3. El TC5 – Software Seguro prepara recomendaciones para la aplicación y adaptación de la norma IEC 61131-3 para aplicaciones relacionadas con la seguridad, especialmente enfocado a los nuevos estándares de seguridad IEC 61408 y 61411. 185 www.infoPLC.net Apéndice 186 www.infoPLC.net Conclusiones CONCLUSIONES Durante la realización del presente trabajo, se pudo observar la importancia que actualmente tiene el PLC en la industria, ya que la mayoría de las líneas de producción, así como los procesos de monitoreo y control, requieren de dispositivos confiables, robustos y al mismo tiempo que su puesta en marcha sea económica, además de que no se limiten a un solo proceso, es decir, que sean fáciles de programar; Lo que antes resultaba casi imposible con los sistemas neumáticos o mecánicos. Por otro lado, se trató el tema de lenguajes de programación, en el cual se observo que a pesar de la relativa facilidad de programación de los PLC, todavía se tiene el problema de que no existe un lenguaje universal que permita analizar un problema dado para su resolución sin pensar de alguna manera en el tipo de PLC a emplear, pero sobre todo de su fabricante, ya que actualmente cada fabricante a pesar de que por ejemplo emplee mnemónicos para la programación de su producto, este no sea la misma representación para cualquier PLC de otra marca que también emplee mnemónicos para su programación. Sin embargo se han realizado grandes esfuerzos por homologar dichos lenguajes, de forma tal que esto sea lo más transparente, además de que se han diseñado técnicas para la interpretación de comandos entre lenguajes, de tal forma que por ejemplo si en un momento dado se conoce mejor la programación por medio de Grafcet, fácilmente se pueda trasladar a otro lenguaje de programación como puede ser mnemónicos o LADDER mediante interpretes de comandos. Además de que algunos fabricantes de PLCs ya han comenzado a emplear lenguajes de alto nivel, de tal forma que hasta un programador de computadoras común que conozca la programación por ejemplo en lenguaje C pueda programar un PLC sin problema alguno. Además, por otro lado, no nos podemos olvidar de que organismos internacionales se están preocupando por la estandarización de dichos lenguajes de programación de PLCs. Finalmente se han visto algunas de las muchas aplicaciones que puede tener el empleo de los PLC no sólo en la industria, sino en el hogar, como son su empleo en las casas inteligentes, sistemas de seguridad, etc. lo cual implica que su campo de aplicación de los PLCs pueden ser muy diversos. Armando Taboada Balderas 187 www.infoPLC.net Conclusiones 188 www.infoPLC.net Conclusiones La automatización industrial es uno de los campos más interesantes dentro del amplio mundo de la electrónica. A pesar que no es una rama nueva, se encuentra en constante desarrollo. Esto implica la gran ventaja de la innovación y avance de la tecnología, producto de la enorme competencia entre los fabricantes y desarrolladores. Pero al mismo tiempo, esto puede significar un problema para la persona que se inicia en el estudio de estos sistemas, debido a que la información es tan abundante como dispersa, de modo que no es fácil obtener una visión general de estos sistemas. El presente trabajo se realizó teniendo en cuenta estos problemas, fue resultado de una extensa investigación que nos permitiera, en lo posible, concentrar los conceptos más importantes de los PLC, que faciliten la familiarización de la tecnología que rodea a estos dispositivos al lector. Sin duda, uno de los aspectos más importantes en los autómatas programables es la programación. Es interesante observar las diversas opciones en lenguajes de programación que tenemos disponibles, que si bien es una gran ventaja, también implica el conocer el lenguaje que emplea un determinado modelo de PLC. Por esta razón dedicamos una parte importante del trabajo e incluimos una norma, que es un intento de normalizar este aspecto. Hemos visto también que estos dispositivos alcanzan su máximo aprovechamiento cuando se integran a un proceso industrial complejo coexistiendo con otros dispositivos diversos. Por tal motivo consideramos que el trabajo estaría incompleto sin hablar de las redes industriales y las diferentes opciones en que el PLC se integra a un sistema a gran escala como ocurre en muchas industrias. Erick Zozoaga Gómez 189 www.infoPLC.net Conclusiones 190 www.infoPLC.net Bibliografia y Enlaces de interes BIBLIOGRAFÍA Y REFERENCIAS Libros y documentos Balcells, Josep. Romeral, José L. Autómatas Programables, México, Alfaomega-Marcombo, 1997. Mandado Pérez, Enrique. Acevedo, Jorge M. Pérez López Serafín A. Controladores Lógicos y Autómatas Programables, España, Marcombo, 1992, 2ª edición. Michel, Gilles. Autómatas Programables Industriales. Arquitectura y sus aplcaciones, España, Marcombo, 1990. Porras Criado, Alejandro. Montanero Molina, Antonio P. Autómatas Programables, México, McGraw-Hill, 1990. Keyence, Visual KV Series Advanced Programming Course, 1999. Siemens, Open networks for industrial communication. Siemens AG, Microsystems Software & Solutions, 1999 189 www.infoPLC.net Bibliografia y Enlaces de interes Sitios de Internet Autómatas industriales http://www.automatas.org/redes/redes.htm PLCopen http://www.plcopen.org/ EYA http://eya.swin.net SIEMENS Industrial Comunication http://www.ad.siemens.de/net/ AS Interface (ASI) http://www.as-interface.com/ Modbus.ORG http://www.modbus.org/ BitBus European Users Group http://www.bitbus.org/ Profibus http://www.profibus.com/ Ethernet Industrial http://ethernet.industrial-networking.com Your Personal PLC Tutor http://www.plcs.net/links.htm Siemens Energy & Automation http://www.sea.siemens.com/automat/product/plc/auplcov.html Siemens – Dowloads http://www.sea.siemens.com/step/downloads.html Proyectos PIC http://inicia.es/de/juanmarod/portada.htm DAP S.A. distribuidor Siemens http://www.grupdap.com/EjProgramacion.htm Downloads & manuales http://www.grupdap.com/manuales.html Autómatas Programables – PLC’s http://www.geocities.com/SiliconValley/Bay/8507/index.html REEA http://olmo.pntic.mec.es/~jmarti50/portada/index.htm Software !Automatismes Morvedre http://www.siamred.com/Esp/Index.asp Simulador de PLC y regulacion PID http://www.geocities.com/indracontrol/ Curso Básico Autómatas Programables http://www.femz.es/cursos/automatas/ Autómatas programables http://usuarios.iponet.es/jsl/index.html 190