Automatismos Industriales

Automatismos Industriales Álvaro Ángel Orozco Gutiérrez Universidad Tecnológica de Pereira Cristian Guarnizo Lemus Uni

Views 140 Downloads 20 File size 1MB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

  • Author / Uploaded
  • OG
Citation preview

Automatismos Industriales

Álvaro Ángel Orozco Gutiérrez Universidad Tecnológica de Pereira

Cristian Guarnizo Lemus Universidad Tecnológica de Pereira

Mauricio Holguín Londoño Universidad Tecnológica de Pereira

2008

Taller de Publicaciones- Universidad Tecnológica de Pereira [email protected]

*Realizado bajo el auspicio de COLCIENCIAS, Proyectos: 1110-14-17905: Sistema automatizado efectivo y apropiado de caracterización y clasificación de señales electromiográficas para el control de prótesis y brazos robóticos

1110-405-20247: Identificación en línea de modos tempranos de fallas dinámicas en máquinas rotativas

ISBN: 978-958-8272-99-3

Este libro está hecho con la ayuda de LYX 1.4.5

PREFACIO

La industrialización rápida y continua que vive la sociedad ha llevado a un nuevo nivel la automatización de sistemas productivos. Se emplea cada vez más los Controladores de Lógica Programable, o PLCs, y existe una tendencia hacia la incursión en sistemas de automatización basados enteramente en PC. Nuevos desafíos relacionados con la automatización tratan cada vez con sistemas más difíciles de simular, implementar y validar por lo que además se hace necesario emplear técnicas de mayor generalidad y poder que permitan una posterior implementación en los sistemas tradicionales o actuales. El objetivo de este libro es presentar las principales técnicas de análisis e implementación de sistemas para su automatización y ahondar en los estándares actuales que permiten portabilidad y flexibilidad en los sistemas diseñados. El material encontrado en este libro presenta una breve introducción a la evolución de los automatismos, pasando por los fundamentos básicos sobre los cuales se desarrolla como lo son la lógica de predicados, el álgebra de Boole, las funciones de conmutación y los sistemas secuenciales; también se encuentra las metodologías clásicas y modernas de diseño que permiten su mutua integración a la hora de implementar un sistema global. Se hace énfasis final en las técnicas de programación enmarcadas dentro del Estándar IEC 61131-3 con el objeto de facilitar la integración de varios sistemas de diferente procedencia o de permitir la implementación de sistemas complejos. El Capítulo 1 presenta una breve introducción al origen y motivación de los automatismos, mientras en el Capítulo 2 se hace énfasis en la evolución de los mismos y se centra en la descripción de los componentes generales de un automatismo así como en las metodologías de lógica cableada y programada. El fundamento básico de los automatismos está en la lógica de predicados y el álgebra de Boole, los cuales se presentan en el Capítulo 3, donde además se encuentra contenido todo lo relacionado con la síntesis de sistemas combinacionales y la presentación de los sistemas secuenciales y dispositivos de memoria, los cuales complementan la base general para el diseño de todo automatismo. La lógica cableada, como método clásico de diseño, se presenta en III

el Capítulo 4, mientras otra técnica con mayor alcance se presenta en el Capítulo 5, donde está todo lo relacionado con las redes de Petri y su orientación al modelamiento, diseño y validación de automatismos. Finalmente, en el Capítulo 6, se trata el Estándar IEC 61131-3 el cual presenta las diversas técnicas de programación más usadas para la implementación de automatismos con la motivación de brindar una metodología que permita la portabilidad e interoperabilidad de los diversos sistemas existentes.

IV

Notaciones

Notación Texto en cursiva a, b, c, di w, x, y, z, xi , αi , ε, ζ J, K, L f , g, h | {e1, e2, · · · , en} ∪ ∩ ∅ H ∧ ∨ ¬ ⊕  → ↔ L L  

∈ F F d m M d Q(t) Q(t + 1)

Significado Resalta palabras claves Constantes Variables Relatores Denotan una función Descriptor Conjunto en notación por extensión Unión de conjuntos Intersección de conjuntos Conjunto vacío Función Booleana Conectiva lógica AND Conectiva lógica OR Conectiva lógica NOT Conectiva lógica XOR Conectiva lógica NXOR Conectiva lógica de implicación Conectiva lógica de coimplicación Lenguaje formal de primer orden Lenguaje formal sin descriptor Cuantificador existencial Cuantificador universal Pertenencia Expresión Booleana Expresión Booleana Dual Sumatoria de mintérminos Productoria de maxtérminos Términos Don’t Care o no importa Estado presente en una memoria Estado siguiente en una memoria V

Notación NA NC A, B, M, N CR, CR, CRB TR TR ON TR OFF TA TC CRc CRsc RdP P pi T tj F ⊆ (P x T ) ∪ (T x P ) W : F → {1, 2, 3, ...} M0 Mn M (pi ) N = {P, T, F, W } P N = {N, M0 } α (pi , tj ) = w (pi , tj ) β (tj , pi ) = w (tj , pi ) σ N G = {P, T, α, β}  G = {V, E} PN∗ C+ C− C c+ ij c− ij cij • tj t•j • pi p•i ME GM LE µk MT

Significado Contacto normalmente abierto Contacto normalmente cerrado Contactor Relé Relé de temporización Relé de temporización al trabajo Relé de temporización al reposo Contacto temporizado a la apertura Contacto temporizado al cierre Relé de campo Relé de sobrecarga Red de Petri Conjunto de lugares de una RdP i-ésimo lugar de una RdP Conjunto de Transiciones de una RdP j-ésima transición de una RdP Conjunto de arcos de una RdP Función de peso en los arcos de una RdP Marcado inicial de una RdP n-ésimo marcado alcanzable de una RdP Valor del marcado en el i-ésimo lugar RdP sin marcado inicial RdP con marcado inicial Función de incidencia previa Función de incidencia posterior Vector secuencia de disparo RdP generalizada Número arbitrariamente grande de marcas Gráfico de cobertura Subred de Petri Matriz de incidencia posterior Matriz de incidencia previa Matriz de incidencia Elemento ij de C+ Elemento ij de C− Elemento ij de C Lugares de entrada de la transición t j Lugares de salida de la transición tj Transiciones de entrada del lugar pi Transiciones de salida del lugar pi Máquina de estados Gráfico marcado Red de libre elección Vector de disparo Matriz transpuesta de M VI

Notación Γ ∆ γi δi N Gd Cd

Γ

∆ CONSTRUCTOR IF · · · THEN Texto a ingresar

Significado Vector anulador derecho de C Vector anulador izquierdo de C i-ésimo elemento de Γ i-ésimo elemento de ∆ RdP dual de N G Matriz de incidencia de una RdP dual Soporte del T-invariante Soporte del P-invariante Palabra reservada IEC 61131-3 Palabra reservada resaltada Texto código IEC 61131-3

VII

VIII

Índice General 1. INTRODUCCIÓN

1

2. FUNDAMENTOS DE LOS AUTOMATISMOS 2.1. Reseña Histórica . . . . . . . . . . . . . . . . 2.2. Evolución de los Automatismos . . . . . . . 2.3. Componentes de los Automatismos . . . . 2.4. Lógica Cableada . . . . . . . . . . . . . . . . 2.5. Lógica Programada . . . . . . . . . . . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

5 5 8 9 10 11

3. ANÁLISIS Y SÍNTESIS DE AUTOMATISMOS 3.1. Lógica de Predicados . . . . . . . . . . . . . . . . . . . 3.1.1. Presentación del Lenguaje Formal . . . . . . . 3.1.2. Tablas de Verdad . . . . . . . . . . . . . . . . . 3.1.3. Definición del Lenguaje Formal . . . . . . . . . 3.1.4. Expresiones, Términos y Fórmulas . . . . . . . 3.2. Álgebra de Boole . . . . . . . . . . . . . . . . . . . . . 3.2.1. Principio de Dualidad . . . . . . . . . . . . . . 3.2.2. Teoremas Fundamentales . . . . . . . . . . . . 3.2.3. Funciones de Conmutación . . . . . . . . . . . 3.2.4. Funciones Lógicas . . . . . . . . . . . . . . . . 3.2.4.1. Universalidad de la NAND y la NOR 3.2.5. Formas Algebraicas Estándar . . . . . . . . . . 3.2.5.1. Formas SOP y POS . . . . . . . . . . 3.2.5.2. Formas Canónicas . . . . . . . . . . . 3.2.5.3. Formas Canónicas Equivalentes . . . 3.2.6. Términos “Don’t Care” . . . . . . . . . . . . . . 3.3. Simplificación de Funciones de Conmutación . . . . . 3.3.1. Mapas de Karnaugh . . . . . . . . . . . . . . . 3.3.2. Simplificación por Mapas de Karnaugh . . . . 3.3.3. Simplificación por Quine-McCluskey . . . . . 3.4. Automatismos Secuenciales . . . . . . . . . . . . . . . 3.4.1. Clasificación de los Sistemas Secuenciales . . . 3.4.1.1. Máquinas de Mealy y de Moore . . . 3.4.1.2. Sistemas Síncronos y Asíncronos . .

. . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . .

15 15 15 17 19 20 21 22 23 24 25 29 30 30 31 33 33 34 34 37 41 44 45 45 46

IX

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

3.4.2. Diagrama de Estados . . . . . . . . . . . . . . . 3.4.3. Dispositivos de Memoria . . . . . . . . . . . . . 3.4.3.1. Latch Set-Reset . . . . . . . . . . . . . . 3.4.3.2. Latch SCR . . . . . . . . . . . . . . . . . 3.4.3.3. Latch D . . . . . . . . . . . . . . . . . . 3.4.3.4. Flip-Flop SR . . . . . . . . . . . . . . . 3.4.3.5. Flip-Flop D . . . . . . . . . . . . . . . . 3.4.3.6. Flip-Flop JK . . . . . . . . . . . . . . . . 3.4.3.7. Flip-Flop T . . . . . . . . . . . . . . . . 3.4.4. Implementación de Automatismos Secuenciales 3.5. Ejercicios Propuestos . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . .

46 47 48 51 52 53 54 55 56 56 62

4. LÓGICA CABLEADA 4.1. Dispositivos de Mando y Control . . . . . . . . . . . . . . . . . . 4.1.1. El Contactor . . . . . . . . . . . . . . . . . . . . . . . . . . 4.1.1.1. Categorías Según el Empleo . . . . . . . . . . . 4.1.2. El Relé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.1.3. Relé de Enclavamiento . . . . . . . . . . . . . . . . . . . . 4.1.4. Contactor con Bobina de Autorretención . . . . . . . . . 4.1.5. Relé de Temporización al Trabajo (Relé Tipo ON) . . . . 4.1.6. Relé de Temporización al Reposo (Relé Tipo OFF) . . . . 4.1.7. Relé de Temporización al Trabajo y al Reposo . . . . . . . 4.1.8. Elementos de Mando . . . . . . . . . . . . . . . . . . . . . 4.2. Funciones Básicas de Lógica Cableada . . . . . . . . . . . . . . . 4.2.1. Función Interruptor y Función Sello . . . . . . . . . . . . 4.2.2. Función Detector de Flancos . . . . . . . . . . . . . . . . 4.2.3. Función Toggle . . . . . . . . . . . . . . . . . . . . . . . . 4.2.4. Función Memoria Biestable . . . . . . . . . . . . . . . . . 4.2.5. Función Tren de Pulsos . . . . . . . . . . . . . . . . . . . 4.2.6. Función Refresco . . . . . . . . . . . . . . . . . . . . . . . 4.2.7. Función Simulación de Relé Tipo OFF con ON . . . . . . 4.2.8. Función Simulación de Relé Tipo ON con OFF . . . . . . 4.2.9. Función Contador . . . . . . . . . . . . . . . . . . . . . . 4.3. Lógica de Conmutación con Lógica Cableada . . . . . . . . . . . 4.4. Diseños Básicos en Lógica Cableada . . . . . . . . . . . . . . . . 4.4.1. Activación Alternada de Cargas . . . . . . . . . . . . . . 4.4.2. Encendido Secuencial de Cargas . . . . . . . . . . . . . . 4.4.3. Arranque de Motor DC en Derivación . . . . . . . . . . . 4.4.4. Arranque de Motores Trifásicos . . . . . . . . . . . . . . . 4.4.4.1. Arranque Estrella-Delta con Transición Abierta 4.4.4.2. Arranque Estrella-Delta con Transición Cerrada 4.4.5. Inversión de Giro en Motores . . . . . . . . . . . . . . . . 4.5. Ejercicios Propuestos . . . . . . . . . . . . . . . . . . . . . . . . .

67 67 67 70 71 71 71 71 72 73 73 74 74 75 76 77 78 79 80 80 81 81 84 84 86 88 90 90 91 92 93

X

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

5. Redes de Petri 5.1. Marco Introductorio . . . . . . . . . . . . . . . . . . . . . . . . 5.2. Definición y Presentación de las RdP . . . . . . . . . . . . . . . 5.3. Tipos de Transiciones y Lugares . . . . . . . . . . . . . . . . . . 5.4. Alcanzabilidad y Secuencia de Disparo . . . . . . . . . . . . . 5.5. Propiedades de las RdP . . . . . . . . . . . . . . . . . . . . . . 5.5.1. RdP Limitada . . . . . . . . . . . . . . . . . . . . . . . . 5.5.2. RdP Viva . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.5.3. RdP Reversible . . . . . . . . . . . . . . . . . . . . . . . 5.5.4. RdP Binaria . . . . . . . . . . . . . . . . . . . . . . . . . 5.5.5. RdP Conforme . . . . . . . . . . . . . . . . . . . . . . . 5.5.6. RdP Persistente . . . . . . . . . . . . . . . . . . . . . . . 5.5.7. RdP Conservativa . . . . . . . . . . . . . . . . . . . . . 5.6. RdP Interpretada . . . . . . . . . . . . . . . . . . . . . . . . . . 5.7. RdP Autónoma . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.7.1. RdP Generalizada . . . . . . . . . . . . . . . . . . . . . 5.7.2. RdP Ordinaria y Pura . . . . . . . . . . . . . . . . . . . 5.8. RdP Extendida . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.9. Modelamiento de Procesos . . . . . . . . . . . . . . . . . . . . . 5.9.1. Arquitectura Secuencial . . . . . . . . . . . . . . . . . . 5.9.2. Arquitectura de Decisión . . . . . . . . . . . . . . . . . 5.9.3. Arquitectura Paralela . . . . . . . . . . . . . . . . . . . . 5.9.4. Arquitectura de Confusión . . . . . . . . . . . . . . . . 5.9.5. Arquitecturas de Sincronización . . . . . . . . . . . . . 5.9.6. Arquitectura para Recurso Compartido . . . . . . . . . 5.9.7. Arquitectura Lectura-Escritura . . . . . . . . . . . . . . 5.9.8. Arquitectura Productor-Consumidor . . . . . . . . . . 5.9.9. Arquitectura Productor-Consumidor con Prioridad . . 5.9.10. Arquitectura para Capacidad Limitada . . . . . . . . . 5.9.11. Arquitectura de Memoria . . . . . . . . . . . . . . . . . 5.9.12. Arquitectura para Colas . . . . . . . . . . . . . . . . . . 5.10. Simplificación de una RdP . . . . . . . . . . . . . . . . . . . . . 5.11. Análisis de las Redes de Petri . . . . . . . . . . . . . . . . . . . 5.11.1. Análisis por Árbol de Cobertura . . . . . . . . . . . . . 5.11.2. Análisis por Transformación . . . . . . . . . . . . . . . 5.11.2.1. Reducción de una Subred de Petri a un Lugar 5.11.3. Análisis por Representación Estructural . . . . . . . . . 5.11.3.1. Matrices de Incidencia Previa y Posterior . . . 5.11.3.2. Subconjuntos y Subclases de una RdP . . . . 5.11.3.3. Matriz de Incidencia . . . . . . . . . . . . . . . 5.11.3.4. Ecuación de Estado . . . . . . . . . . . . . . . 5.11.3.5. Determinación de la Reversibilidad . . . . . . 5.11.3.6. Determinación de la Conservatividad . . . . . 5.11.3.7. Determinación de la Limitación . . . . . . . . 5.11.3.8. Determinación de la Vivacidad . . . . . . . . 5.12. Análisis Local de Redes de Petri . . . . . . . . . . . . . . . . . . XI

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

99 99 100 102 103 104 104 104 106 106 106 107 107 108 108 108 108 109 109 109 110 110 111 112 113 114 115 116 116 117 117 118 120 121 124 125 126 127 127 129 130 131 132 133 133 135

5.12.1. Red de Petri Dual . . . . . . . . . . . . . . . . 5.12.2. Invariantes de Marcado y de Disparo . . . . 5.12.2.1. Obtención de los P-Invariantes . . . 5.13. Portabilidad entre Redes de Petri y Lógica Cableada 5.14. Ejercicios Propuestos . . . . . . . . . . . . . . . . . .

. . . . .

. . . . .

. . . . .

135 135 136 138 143

6. ESTÁNDAR IEC 61131-3 6.1. Marco Introductorio . . . . . . . . . . . . . . . . . . . . . . . 6.1.1. Deficiencias de la Programación Escalera . . . . . . . 6.2. Marco Conceptual . . . . . . . . . . . . . . . . . . . . . . . . . 6.2.1. Elementos del Modelo de Software . . . . . . . . . . . 6.2.2. Partes de una POU . . . . . . . . . . . . . . . . . . . . 6.3. Elementos Comunes a los Lenguajes del Estándar . . . . . . 6.3.1. Conjunto de Caracteres . . . . . . . . . . . . . . . . . 6.3.2. Identificadores . . . . . . . . . . . . . . . . . . . . . . 6.3.3. Palabras Reservadas . . . . . . . . . . . . . . . . . . . 6.3.4. Comentarios . . . . . . . . . . . . . . . . . . . . . . . . 6.3.5. Delimitadores . . . . . . . . . . . . . . . . . . . . . . . 6.3.6. Tipos de Datos . . . . . . . . . . . . . . . . . . . . . . 6.3.6.1. Tipos de Datos Elementales . . . . . . . . . 6.3.6.2. Datos Genéricos . . . . . . . . . . . . . . . . 6.3.6.3. Propiedades de Tipos de Datos Elementales 6.3.6.4. Tipos de Datos Derivados . . . . . . . . . . 6.3.7. Variables . . . . . . . . . . . . . . . . . . . . . . . . . . 6.3.7.1. Tipos de Variables . . . . . . . . . . . . . . . 6.3.7.2. Atributos de las Variables . . . . . . . . . . . 6.3.7.3. Inicialización de Variables . . . . . . . . . . 6.3.8. Tipos de Unidades de Organización de Programa . . 6.3.8.1. Funciones . . . . . . . . . . . . . . . . . . . . 6.3.8.2. Bloques de Funciones . . . . . . . . . . . . . 6.3.8.3. Programas . . . . . . . . . . . . . . . . . . . 6.4. Texto Estructurado (ST) . . . . . . . . . . . . . . . . . . . . . 6.4.1. Sentencias . . . . . . . . . . . . . . . . . . . . . . . . . 6.4.2. Asignaciones, Operandos y Operadores . . . . . . . . 6.4.3. Sentencias para Control de Flujo . . . . . . . . . . . . 6.5. Listado de Instrucciones (IL) . . . . . . . . . . . . . . . . . . . 6.5.1. Estructura Básica del Listado de Instrucciones . . . . 6.5.2. El Acumulador Universal . . . . . . . . . . . . . . . . 6.5.3. Los Operadores . . . . . . . . . . . . . . . . . . . . . . 6.5.4. Llamados a POUs . . . . . . . . . . . . . . . . . . . . . 6.6. Diagrama de Bloques de Funciones (FBD) . . . . . . . . . . . 6.6.1. Elementos Gráficos de una Red FBD . . . . . . . . . . 6.6.2. Elementos para Control de Flujo . . . . . . . . . . . . 6.6.3. Reglas de la Evolución en una Red FBD . . . . . . . . 6.7. Diagrama Escalera (LD) . . . . . . . . . . . . . . . . . . . . . 6.7.1. Elementos Gráficos de una Red LD . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

149 149 150 151 151 154 157 157 157 157 159 159 160 160 162 162 163 165 165 167 169 169 170 174 179 181 181 181 182 187 187 188 188 190 191 192 193 193 196 196

XII

. . . . .

. . . . .

. . . . .

. . . . .

6.7.2. Elementos Para Control de Flujo . . . . . . . . . . . 6.7.3. Llamados a Funciones y Bloques de Funciones . . . 6.7.4. Reglas de la Evolución en una Red LD . . . . . . . . 6.8. Diagrama Funcional Secuencial (SFC) . . . . . . . . . . . . 6.8.1. Elementos Gráficos y Descripción de una Red SFC . 6.8.1.1. Las Etapas . . . . . . . . . . . . . . . . . . 6.8.1.2. Las Transiciones . . . . . . . . . . . . . . . 6.8.2. Secuencias . . . . . . . . . . . . . . . . . . . . . . . . 6.8.2.1. Secuencias Divergentes . . . . . . . . . . . 6.8.2.2. Secuencias Simultáneas . . . . . . . . . . . 6.8.2.3. Redes Inseguras . . . . . . . . . . . . . . . 6.8.3. Acciones . . . . . . . . . . . . . . . . . . . . . . . . . 6.8.3.1. Bloques de Acciones . . . . . . . . . . . . . 6.8.3.2. Calificadores de las Acciones . . . . . . . . 6.8.3.3. Control de Acción . . . . . . . . . . . . . . 6.8.4. Reglas de la Evaluación en una Red SFC . . . . . . 6.8.5. Reglas de la Evolución en una Red SFC . . . . . . . 6.8.6. Otras Características No Definidas en el Estándar . 6.9. Portabilidad entre los Diferentes Lenguajes . . . . . . . . . 6.10. Ejemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.11. Ejercicios Propuestos . . . . . . . . . . . . . . . . . . . . . .

XIII

. . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . .

197 197 198 200 200 201 202 204 205 206 206 207 207 209 213 214 216 216 218 218 224

XIV

Índice de Tablas 3.1. Tabla de Verdad para la Negación . . . . . . . . . . . . . . . . . . 3.2. Tabla de Verdad para la Conjunción . . . . . . . . . . . . . . . . 3.3. Tabla de Verdad para la Disyunción . . . . . . . . . . . . . . . . 3.4. Tabla de Verdad para la Implicación. . . . . . . . . . . . . . . . . 3.5. Tabla de Verdad para la Coimplicación . . . . . . . . . . . . . . . 3.6. Posibles Combinaciones para Función de Aridad 1. . . . . . . . 3.7. Posibles Combinaciones para Función de Aridad 2. . . . . . . . 3.9. Notación Simplificada de Mintérminos . . . . . . . . . . . . . . . 3.10. Notación Simplificada de Maxtérminos . . . . . . . . . . . . . . 3.11. Formas Canónicas Equivalentes . . . . . . . . . . . . . . . . . . . 3.12. Términos Don’t Care . . . . . . . . . . . . . . . . . . . . . . . . . 3.13. Lista de Mintérminos Ordenados por Vecindad . . . . . . . . . . 3.14. Primera Búsqueda de Términos Adyacentes . . . . . . . . . . . . 3.15. Segunda Búsqueda de Términos Adyacentes . . . . . . . . . . . 3.16. Listado de Términos No Agrupados y Mintérminos . . . . . . . 3.17. Identificación de Términos que Cubren Todos los Mintérminos . 3.18. Ejemplo de Tabla de Estados . . . . . . . . . . . . . . . . . . . . . 3.19. Secuencia de Excitación en una Latch SR. . . . . . . . . . . . . . 3.20. Tabla de Excitación para el Latch SR. . . . . . . . . . . . . . . . . 3.21. Tabla de Excitación para el Latch SCR. . . . . . . . . . . . . . . . 3.22. Tabla de Excitación para el Latch D. . . . . . . . . . . . . . . . . 3.23. Tabla de Excitación para el Flip-Flop SR. . . . . . . . . . . . . . . 3.24. Tabla de Excitación para el Flip-Flop D. . . . . . . . . . . . . . . 3.25. Tabla de Excitación para el Flip-Flop JK. . . . . . . . . . . . . . . 3.26. Tabla de Excitación para el Flip-Flop T. . . . . . . . . . . . . . . . 3.27. Tabla de Transiciones Automatismo Secuencial 1 . . . . . . . . . 3.28. Excitación de Flip-Flops Automatismo 1 . . . . . . . . . . . . . . 3.29. Tabla de Transiciones Automatismo Secuencial 2 . . . . . . . . . 3.30. Excitación de Flip-Flops Automatismo 2 . . . . . . . . . . . . . . 6.1. 6.2. 6.3. 6.4. 6.5.

Tipos de POUs . . . . . . . . . . . Tipos de Variables . . . . . . . . . Palabras Reservadas IEC 61131-3 Tipos de Datos Elementales . . . Calificadores de Acciones . . . . XV

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

17 18 18 18 19 24 25 31 32 33 34 42 42 43 43 44 47 50 50 51 52 54 54 55 56 57 58 60 61 152 153 158 161 210

XVI

Índice de Figuras 2.1. Alarma de Platón Basada en Clepsydra . . . . . . . . . . . . . . 2.2. Odómetro de Herón . . . . . . . . . . . . . . . . . . . . . . . . . 2.3. Modelo de Sistema de Control . . . . . . . . . . . . . . . . . . .

6 7 10

3.1. Representación de la AND . . . . . . . . . . . . . . 3.2. Representación de la OR . . . . . . . . . . . . . . . 3.3. Representación de la NOT . . . . . . . . . . . . . . 3.4. Representación de la NAND . . . . . . . . . . . . . 3.5. Representación de la NOR . . . . . . . . . . . . . . 3.6. Representación de la XOR . . . . . . . . . . . . . . 3.7. Representación de la NXOR . . . . . . . . . . . . . 3.8. Universalidad de la NAND y la NOR . . . . . . . 3.9. Mapa de Karnaugh para Función de Aridad 2 . . 3.10. Mapa de Karnaugh para Función de Aridad 3 . . 3.11. Otra Representación del Mapa de Karnaugh . . . 3.12. Mapas de Karnaugh para Función de Aridad 4 . . 3.13. Mapa de Karnaugh para Simplificar Mintérminos 3.14. Agrupaciones para Simplificar Mintérminos . . . 3.15. Mapa de Karnaugh para Simplificar Maxtérminos 3.16. Agrupaciones para Simplificar Maxtérminos . . . 3.17. Simplificación con Términos “Don’t Care” . . . . . 3.18. Máquina de Estados Finitos . . . . . . . . . . . . . 3.19. Máquina de Mealy . . . . . . . . . . . . . . . . . . 3.20. Máquina de Moore . . . . . . . . . . . . . . . . . . 3.21. Ejemplo de Diagrama de Estados . . . . . . . . . . 3.22. Latch Set . . . . . . . . . . . . . . . . . . . . . . . . 3.23. Latch Reset . . . . . . . . . . . . . . . . . . . . . . . 3.24. Latch Set-Reset . . . . . . . . . . . . . . . . . . . . 3.25. Latch SCR . . . . . . . . . . . . . . . . . . . . . . . 3.26. Latch D . . . . . . . . . . . . . . . . . . . . . . . . . 3.27. Flip-Flop SR . . . . . . . . . . . . . . . . . . . . . . 3.28. Flip-Flop D . . . . . . . . . . . . . . . . . . . . . . . 3.29. Flip-Flop JK . . . . . . . . . . . . . . . . . . . . . . 3.30. Flip-Flop T . . . . . . . . . . . . . . . . . . . . . . .

26 26 27 27 28 28 29 30 35 35 36 36 37 38 39 39 40 44 45 46 47 48 49 49 51 52 53 54 55 56

XVII

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3.31. Diagrama de Estados Automatismo Secuencial 1 3.32. Funciones Para el Flip-Flop A . . . . . . . . . . . 3.33. Funciones Para el Flip-Flop B . . . . . . . . . . . 3.34. Diagrama Lógico Automatismo 1 . . . . . . . . . 3.35. Diagrama de Estados Automatismo Secuencial 2 3.36. Funciones Para los Flip-flops del Automatismo 2 3.37. Funciones Para los Flip-flops del Automatismo 2 3.38. Diagrama Lógico Automatismo 2 . . . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

4.1. Componentes de un Contactor . . . . . . . . . . . . . . . . . . . 4.2. Representación y Numeración de Contactos . . . . . . . . . . . . 4.3. Representación y Operación de Relé Tipo ON . . . . . . . . . . . 4.4. Representación y Operación de Relé Tipo OFF . . . . . . . . . . 4.5. Simbología Elementos de Mando y Protección . . . . . . . . . . 4.6. Función Interruptor . . . . . . . . . . . . . . . . . . . . . . . . . . 4.7. Función Flanco de Subida. . . . . . . . . . . . . . . . . . . . . . . 4.8. Función Flanco de Bajada. . . . . . . . . . . . . . . . . . . . . . . 4.9. Función Toggle. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.10. Función Memoria Biestable . . . . . . . . . . . . . . . . . . . . . 4.11. Función Tren de Pulsos con 2 Relés ON . . . . . . . . . . . . . . 4.12. Función Tren de Pulsos con 2 Relés OFF y con Un solo ON. . . . 4.13. Función Refresco . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.14. Función Simulación de Relé OFF con Relé ON . . . . . . . . . . 4.15. Función Simulación de Relé ON con Relé OFF . . . . . . . . . . 4.16. Función Contador . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.17. Control de Alarma Visual . . . . . . . . . . . . . . . . . . . . . . 4.18. Lógica Cableada para Control de Alarma Visual . . . . . . . . . 4.19. Ejemplo de Lógica Cableada con Temporización . . . . . . . . . 4.20. Secuencia de Cargas A→B→C . . . . . . . . . . . . . . . . . . . . 4.21. Secuencia de Cargas A→B→C→D→C→B y A→B→C→D→B→C 4.22. Encendido en Secuencia M1↑, M2↑, M3↑, M3↓, M2↓, M1↓ . . . . 4.23. Encendido en Secuencia M1↑, M2↑, M3↑, M3↓, M1↓, M2↓ . . . . 4.24. Encendido en Secuencia M1↑, M2↑, M3↑, M2↓, M3↓, M1↓ . . . . 4.25. Arranque de Motor DC Utilizando Relés ON . . . . . . . . . . . 4.26. Arranque de Motor DC Utilizando Relés OFF . . . . . . . . . . . 4.27. Arranque de Motor Trifásico con Transición Abierta . . . . . . . 4.28. Arranque con Transición Abierta Usando Relé OFF . . . . . . . 4.29. Arranque de Motor con Transición Cerrada . . . . . . . . . . . . 4.30. Circuitos de Potencia para Inversión de Giro . . . . . . . . . . . 4.31. Circuito de Control para Inversión de Giro . . . . . . . . . . . . 5.1. 5.2. 5.3. 5.4. 5.5.

Elementos de una Red de Petri Transiciones Fuente y Sumidero Tipos de Nodos OR . . . . . . . Tipos de Nodos AND . . . . . . RdP No Limitada . . . . . . . .

. . . . .

XVIII

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

57 58 58 59 60 61 62 62 69 70 72 73 74 75 75 76 77 77 78 79 79 80 80 81 82 82 84 85 86 87 87 88 89 89 90 91 91 92 93 102 103 103 103 104

5.6. RdP No Viva . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.7. RdP No Viva en Punto Muerto . . . . . . . . . . . . . . . . . . . 5.8. RdP Reversible . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.9. RdP No Persistente . . . . . . . . . . . . . . . . . . . . . . . . . . 5.10. RdP Conservativa . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.11. Arco Inhibidor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.12. Arquitectura Secuencial . . . . . . . . . . . . . . . . . . . . . . . 5.13. Arquitectura de Decisión o de Conflicto . . . . . . . . . . . . . . 5.14. Arquitectura Paralela o Concurrente . . . . . . . . . . . . . . . . 5.15. Arquitectura de Confusión Simétrica . . . . . . . . . . . . . . . . 5.16. Arquitectura de Confusión Asimétrica . . . . . . . . . . . . . . . 5.17. Arquitectura de Punto de Encuentro Simple . . . . . . . . . . . . 5.18. Arquitectura de Punto de Encuentro Simétrico . . . . . . . . . . 5.19. Arquitectura de Punto de Encuentro Asimétrico . . . . . . . . . 5.20. Arquitectura de Semáforo . . . . . . . . . . . . . . . . . . . . . . 5.21. Arquitectura de Recurso Compartido . . . . . . . . . . . . . . . 5.22. Arquitectura de Lectura-Escritura . . . . . . . . . . . . . . . . . 5.23. Arquitectura Productor-Consumidor . . . . . . . . . . . . . . . . 5.24. Arquitectura Productor-Consumidor con Prioridad . . . . . . . 5.25. Arquitectura para Capacidad Limitada . . . . . . . . . . . . . . 5.26. Arquitectura de Memoria . . . . . . . . . . . . . . . . . . . . . . 5.27. Arquitectura para Colas . . . . . . . . . . . . . . . . . . . . . . . 5.28. Fusión de Lugares en Serie . . . . . . . . . . . . . . . . . . . . . . 5.29. Fusión de Transiciones en Serie . . . . . . . . . . . . . . . . . . . 5.30. Fusión de Lugares Paralelos . . . . . . . . . . . . . . . . . . . . . 5.31. Fusión de Transiciones Paralelas . . . . . . . . . . . . . . . . . . 5.32. Eliminación de Lugar Auto-lazo . . . . . . . . . . . . . . . . . . 5.33. Eliminación de Transición Auto-lazo . . . . . . . . . . . . . . . . 5.34. Árbol de Cobertura para la Figura 5.10 . . . . . . . . . . . . . . . 5.35. RdP con Nodo Terminal y Nodos Infinitamente Reproducibles. 5.36. Árbol de Cobertura para la Figura 5.35 . . . . . . . . . . . . . . . 5.37. Gráfico de Cobertura . . . . . . . . . . . . . . . . . . . . . . . . . 5.38. Subred de Petri . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.39. Subred de Petri a Macrolugar . . . . . . . . . . . . . . . . . . . . 5.40. Matrices de Incidencia Previa y Posterior . . . . . . . . . . . . . 5.41. RdP No Pura. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.42. RdP No Pura a Pura . . . . . . . . . . . . . . . . . . . . . . . . . 5.43. Gráfico Orientado Marcado . . . . . . . . . . . . . . . . . . . . . 5.44. Sifón y Trampa . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.45. Arquitectura Secuencial a Lógica Cableada . . . . . . . . . . . . 5.46. Arcos con Pesos a Lógica Cableada . . . . . . . . . . . . . . . . . 5.47. Arco Inhibidor a Lógica Cableada . . . . . . . . . . . . . . . . . 5.48. Nodo And a Lógica Cableada . . . . . . . . . . . . . . . . . . . . 5.49. Arquitectura de Decisión a Lógica Cableada . . . . . . . . . . . . 5.50. Arquitectura de Decisión con Prioridad a Lógica Cableada . . . 5.51. Temporizador a Lógica Cableada . . . . . . . . . . . . . . . . . . XIX

105 105 106 107 107 109 110 110 110 111 111 112 112 113 113 114 115 115 116 117 117 118 119 119 119 120 120 120 122 122 123 124 125 126 127 129 130 134 134 139 139 139 140 140 141 141

5.52. Acción a Lógica Cableada . . . . . . . . . . 5.53. Ejemplo de Red de Petri a Lógica Cableada 5.54. Ejercicios sobre Propiedades . . . . . . . . . 5.55. Ejercicio de Simplificación . . . . . . . . . .

. . . .

. . . .

. . . .

. . . .

141 142 143 144

6.1. Modelo Definido por el Estándar IEC 61131-3 . . . . . . . . 6.2. Partes de una POU . . . . . . . . . . . . . . . . . . . . . . . 6.3. Ejemplo de Texto Estructurado . . . . . . . . . . . . . . . . 6.4. Ejemplo de Listado de Instrucciones . . . . . . . . . . . . . 6.5. Ejemplo de Diagrama de Bloques Funcionales . . . . . . . 6.6. Ejemplo de Diagrama Escalera . . . . . . . . . . . . . . . . 6.7. Ejemplo de Diagrama Funcional Secuencial . . . . . . . . . 6.8. Ejemplo de Comentario . . . . . . . . . . . . . . . . . . . . 6.9. Ejemplo de Declaración de Tipo de Dato Derivado . . . . . 6.10. Ejemplo de Declaración de Atributos a Variables . . . . . . 6.11. Función que Evalúa Discriminante en Ecuación Cuadrática 6.12. Ejemplo de Invocación de Función . . . . . . . . . . . . . . 6.13. Uso de las Variables EN y ENO de una Función . . . . . . 6.14. Definición de Bloque de Función . . . . . . . . . . . . . . . 6.15. Definición de un Bloque de Función . . . . . . . . . . . . . 6.16. Característica de Tiempo del Temporizador TP . . . . . . . 6.17. Característica de Tiempo del Temporizador TON . . . . . . 6.18. Característica de Tiempo del Temporizador TOF . . . . . . 6.19. Reloj de Tiempo Real . . . . . . . . . . . . . . . . . . . . . . 6.20. Programa que Evalúa las Raices de la Ecuación Cuadrática 6.21. Formas de Sintaxis para la Sentencia IF ... THEN ... ELSE . 6.22. Sintaxis para la Sentencia CASE . . . . . . . . . . . . . . . . 6.23. Sentencia CASE con Variable Enumerada . . . . . . . . . . 6.24. Sintaxis para la Sentencia FOR ... DO . . . . . . . . . . . . . 6.25. Sintaxis para la Sentencia WHILE ... DO . . . . . . . . . . . 6.26. Sintaxis para la Sentencia REPEAT ... UNTIL . . . . . . . . 6.27. Sintaxis para la Sentencia EXIT . . . . . . . . . . . . . . . . 6.28. Sintaxis para Listado de Instrucciones . . . . . . . . . . . . 6.29. Operadores Booleanos en IL . . . . . . . . . . . . . . . . . . 6.30. Operadores ANY en IL . . . . . . . . . . . . . . . . . . . . . 6.31. Operadores de Salto y Comparación en IL . . . . . . . . . . 6.32. Llamado a Función en IL . . . . . . . . . . . . . . . . . . . . 6.33. Llamado a Bloque de Función en IL . . . . . . . . . . . . . 6.34. Elementos Gráficos de una Red FBD . . . . . . . . . . . . . 6.35. Elementos Gráficos Para Control de Flujo en FBD . . . . . 6.36. Ejemplo de Evolución en Red FBD . . . . . . . . . . . . . . 6.37. Ejemplo Red FBD con Realimentación y Salto . . . . . . . . 6.38. Representación de Bobina y Contacto en LD . . . . . . . . . 6.39. Ejemplo de Evolución en Red LD . . . . . . . . . . . . . . . 6.40. Determinación de Secuencia en Ejecución . . . . . . . . . . 6.41. Componentes Básicos de una Red SFC . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

154 155 155 156 156 156 156 159 164 168 171 172 173 175 176 178 178 179 179 180 183 183 184 185 185 185 186 187 189 189 190 191 191 192 193 194 195 196 199 199 201

XX

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

6.42. Transiciones con Sintaxis Inmediata . . . . . . . . . 6.43. Transición con Sintaxis de Conector . . . . . . . . . 6.44. Transiciones con Sintaxis de Nombre de Transición . 6.45. Secuencias Divergentes y Prioridades . . . . . . . . 6.46. Convergencia de Secuencias Divergentes . . . . . . 6.47. Secuencias Simultáneas y su Convergencia . . . . . 6.48. Redes Inseguras . . . . . . . . . . . . . . . . . . . . . 6.49. Elementos de un Bloque de Acción . . . . . . . . . . 6.50. Bloques de Acciones en los Lenguajes LD y FBD . . 6.51. Acción con Calificador N . . . . . . . . . . . . . . . . 6.52. Acción con Calificadores S y R . . . . . . . . . . . . . 6.53. Acción con Calificador L . . . . . . . . . . . . . . . . 6.54. Accón con Calificador D . . . . . . . . . . . . . . . . 6.55. Acción con Calificador P . . . . . . . . . . . . . . . . 6.56. Acción con Calificador SD . . . . . . . . . . . . . . . 6.57. Acción con Calificador DS . . . . . . . . . . . . . . . 6.58. Acción con Calificador LS . . . . . . . . . . . . . . . 6.59. Control de Acción . . . . . . . . . . . . . . . . . . . . 6.60. Módulo Secuenciador de Etapa . . . . . . . . . . . . 6.61. Acción con Calificador C . . . . . . . . . . . . . . . . 6.62. Partes de una Macro-Etapa . . . . . . . . . . . . . . . 6.63. Ejemplo en Texto Estructurado . . . . . . . . . . . . 6.64. Ejemplo en Listado de Instrucciones . . . . . . . . . 6.65. Ejemplo en Diagrama de Bloques de Funciones . . . 6.66. Ejemplo en Diagrama Escalera . . . . . . . . . . . . 6.67. Ejemplo en Diagrama Funcional Secuencial . . . . . 6.68. Ejercicio Propuesto 2 . . . . . . . . . . . . . . . . . . 6.69. Ejercicio Propuesto 4 . . . . . . . . . . . . . . . . . .

XXI

. . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . .

203 203 204 205 206 206 207 208 209 210 211 211 211 212 212 213 213 214 215 216 217 219 220 221 222 223 225 227

XXII

Capítulo 1

INTRODUCCIÓN El origen de los automatismos no se encuentra definido para una fecha específica, probablemente se puede hablar de los primeros sistemas automáticos desde los mismos inicios de la era prehistórica de la humanidad en el Paleolítico1 , cuando se realizaban trampas de caza con funcionamiento automático consistentes básicamente en fosas cavadas y cubiertas adecuadamente para ser activadas por el peso de la presa. Pero es desde los comienzos de la revolución industrial, a finales del siglo XIX y principios del XX, cuando la automatización de procesos ha cobrado un interés especial por parte de la ciencia y de los ingenieros, presentando la perspectiva que tenemos hoy de ellos como sistemas en los cuales se realizan acciones sobre un sistema mediante la manipulación directa de magnitudes físicas haciendo uso de otro sistema denominado de control. Los esfuerzos se han enfocado en reducir significativamente todos los costos derivados de la producción de bienes, manteniendo una calidad constante tanto en los productos terminados como en los mismos medios de producción y apartando al hombre de labores rutinarias, peligrosas, con gran incidencia de error, con riesgos para la salud humana e incluso donde se involucra un componente importante de estrés. El uso de los sistemas de automatización se ha incrementado especialmente durante la última mitad del siglo XX, debido principalmente a la globalización de los mercados, lo cual ha llevado a todas las organizaciones productivas a estar dentro de ámbitos competitivos y sometidos a rápidos procesos de cambios para adecuarse a las exigencias de cada tiempo, más aún cuando este mismo entorno pide respuestas rápidas y adecuadas con el fin de poder mantenerse en los niveles demandados por una competencia cada vez más especializada. Los automatismos, han sido entonces, la herramienta sobre la cual las organizaciones han basado su estrategia, desde los tiempos en los cuales sólo se empleaban dispositivos de accionamiento y control con base en lógica “todo o nada”, hasta los tiempos actuales donde con base en la microelectrónica y procesadores se emplean equipos mucho más sofisticados como lo son 1 Probablemente

desde el Paleolítico inferior y entre 600000 a 400000 A.J.

1

2

CAPÍTULO 1. INTRODUCCIÓN

los autómatas de lógica programable. Es por esta razón fundamental que los autores han querido presentar este libro como una herramienta básica en el aprendizaje y conocimiento de estas tecnologías, iniciando desde los conceptos básicos de lógica secuencial y combinacional, pasando por la lógica cableada y programada enmarcadas dentro de la norma IEC 61131-3, y presentando herramientas especializadas de diseño como lo son las redes de Petri.

Capítulo 2

FUNDAMENTOS DE LOS AUTOMATISMOS 2.1. Reseña Histórica Los automatismos se han observado desde los tiempos antiguos cuando se creaban toda clase de máquinas provistas de alguna forma de fuente de energía con el fin de imitar los movimientos de los seres vivos. Los primeros autómatas de los que se tenga noticia provienen de los tiempos de Dédalo donde se crearon estatuas animadas. Luego, los griegos y más tarde los romanos elaboraban juguetes con accionamiento mecánico [3]. En el año de 1500 A.C. en Etiopía, Amenhotep construyó una estatua del rey Memon la cual emitía sonidos cuando era iluminada por los primeros rayos del sol al amanecer. En el siglo IV A.C. Ktesibios diseña un reloj de agua conocido con el nombre de Clepsydra, el cual constaba de un mecanismo cuyo objetivo era que el nivel de un depósito de agua subiera a velocidad constante; para lograr este fin se empleaba un flotador que regulaba la entrada de agua a un depósito auxiliar. En el año 378 A.C. a Platón se le ocurre crear un sistema automático de alarma con base en una Clepsydra, ver Figura 2.1; en el vaso de la Clepsydra se ubicó un flotador, sobre el cual se depositan unas esferas, durante un tiempo determinado el vaso es llenado a una rata constante de agua y al final, cuando se alcanza el nivel máximo, las esferas caen sobre un plato de cobre lo cual es indicativo que el tiempo ha transcurrido. El uso dado por Platón a las Clepsydras suscitó un gran interés y durante todo el siglo siguiente se efectuaron muchos diseños basados en el reloj de agua. En el siglo I A.C., Herón de Alejandría escribe una serie de libros reunidos en una Enciclopedia Técnica entre los cuales se destacan los primeros documentos conocidos sobre automatismos. En ellos es de resaltar los libros sobre “Pneumática” y “Autómata”. En estos libros de Herón se describe uno de los primeros sistemas realimentados de los que se tenga conocimiento, el cual es el dispensador de vino. 5

6

CAPÍTULO 2. FUNDAMENTOS DE LOS AUTOMATISMOS

Figura 2.1: Alarma de Platón Basada en Clepsydra

A Herón también se le debe la creación de un Odómetro, sistema empleado para cuantificar una distancia recorrida, el cual constaba de un sistema de engranajes que cada vez que se producía un giro completo de la volante dejaba caer un esfera en un contenedor, ver Figura 2.2; al final el número de esferas permitían cuantificar la distancia recorrida. Uno de los autómatas más reconocidos es el Gallo de Estrasburgo, el cual formaba parte del reloj de la catedral de Estrasburgo y movía el pico y las alas al dar las horas. Este funcionó entre los años de 1352 y 1789 y es el autómata más antiguo que se conserva en la actualidad [6]. Pero entre los más célebres creadores de autómatas en la historia se encuentra a Vaucanson, el cual creó muchas maravillas que merecen gran reconocimiento aún en los días actuales. Entre sus creaciones está el Flautista, que representa un fauno según modelo de la estatua de Coysevox, que ejecuta una docena de aires valiéndose de movimientos de la lengua, labios y dedos. También se encuentra al Tamborilero y la Tañedora que se puede admirar en el conservatorio de artes y oficios de París. La reputación de Vaucanson se debe en gran medida a su obra el Pato, el cual era capaz de batir las alas, zambullirse, nadar, tragar grano y hasta expeler una forma de excremento. Vaucanson en sus obras no trató de copiar vida, sino únicamente de imitar algunas funciones

2.1. RESEÑA HISTÓRICA

7

individuales. En [6] se puede encontrar imágenes y descripciones de la mayoría de los automatismos mencionados previamente, incluso se puede encontrar variantes y la evolución que algunos de estos sistemas han tenido. Además, igualmente en [6] se puede encontrar la presentación de automatismos de los siglos XVII a XIX, como es el caso de los primeros componentes automatizados en molinos de viento.

Figura 2.2: Odómetro de Herón

Con el advenimiento de la electricidad y de la electrónica apareció una nueva generación de autómatas capaces de imitar realmente algunas funciones y reproducir comportamientos de seres vivos. En 1912, el jugador de ajedrez eléctrico de Torres Quevedo era capaz de jugar finales de partida. 1 El jugador de Nim, construido en 1951 en la Universidad de Manchester constituye otro ejemplo de autómata elemental, dado que existe un algoritmo que permite ganar con seguridad en este juego. Para esos mismos días Strachey construyó en 1 Juego

rey contra rey y torre

8

CAPÍTULO 2. FUNDAMENTOS DE LOS AUTOMATISMOS

los Estados Unidos un jugador de damas capaz de enfrentarse a un buen jugador; para ello la máquina debía analizar, con varias jugadas de antelación, todas las jugadas posibles a partir de una situación inicial [3].

2.2. Evolución de los Automatismos Para la década de los setenta, la complejidad y servicios de los automatismos se incrementó gracias al uso de los circuitos integrados y a los sistemas basados en microprocesadores. Durante esta misma época se desarrollaba la computadora digital, aunque con un empleo muy restrictivo en la industria debido a sus elevados costos, requerimientos de personal altamente calificado y poca interconectividad con otros sistemas, pero especialmente debido a sus problemas para el control de señales en voltaje y corriente de valor elevado. La demanda proveniente de la industria, en busca de un sistema económico, robusto, flexible, de fácil modificación y con mayor tratamiento de niveles de voltaje a los presentados por los ordenadores, provocó el desarrollo del controlador de lógica programable o PLC. Este primer equipo autómata pretendía básicamente sustituir a los sistemas básicos compuestos por relés o circuitos lógicos con las ventajas evidentes de una plataforma estándar de hardware. Dado lo anterior, en su nacimiento presentaron prestaciones muy similares a las tecnologías convencionales con lenguajes de programación que emulaban a los diagramas esquemáticos empleados por dichas tecnologías. Los autómatas actuales han evolucionado con respecto a las prestaciones de sus ancestros, incorporando fundamentalmente sistemas de programación más versátiles, con mejor velocidad de procesamiento y de respuesta y con capacidades de comunicación. En los lenguajes actuales de programación para autómatas se incorporan, además de las instrucciones clásicas de lógica binaria, temporizaciones y contadores, otras series de operaciones lógicas con palabras, funciones aritméticas, procesamiento para señales análogas, funciones de comunicación con los estándares más representativos en la industria y muchas funciones de control [1]. Sin embargo, la principal característica que sigue distinguiendo a los controladores de lógica programable es su robustez y capacidad de interconectividad con los procesos, esto sin acercarlo a las funcionalidades de una computadora digital, sino potenciándolo cada vez más para comunicación entre si y con las computadoras. Al integrar el autómata con las computadoras digitales, se presenta lo mejor de las prestaciones de ambos sistemas en uno solo, pero se hace entonces evidente la necesidad de replantear los métodos de diseño, por lo cual hoy en día emergen nuevas metodologías para el modelamiento de sistemas automáticos como es el caso de las redes de Petri.

2.3. COMPONENTES DE LOS AUTOMATISMOS

9

2.3. Componentes de los Automatismos El objetivo de un automatismo es controlar una planta o sistema sin necesidad que un operario intervenga directamente sobre los elementos de salida. El operario solo debe intervenir sobre las variables de control y el automatismo es el encargado de actuar sobre las salidas mediante los accionamientos con el fin de poder llevar a efecto el control de la planta. Entre los principales componentes de un automatismo se encuentran los transductores y los captadores de información, los preaccionamientos y los accionadores, así como los órganos de tratamiento de la información y elementos de interfaz entre el hombre y la máquina. Desde un punto de vista estructural, un automatismo se compone de dos partes claramente diferenciables, las cuales se describen a continuación. Parte Operativa: Formada principalmente por el conjunto de dispositivos, máquinas y/o subprocesos diseñados para realizar determinadas funciones de producción y corresponden en su gran mayoría a elementos de potencia. Parte de Control: Formada por los elementos de procesamiento y/o mando, interfaz de comunicación y de diálogo con el hombre. El sometimiento de la parte operativa se logra mediante un intercambio continuo de información entre ésta y la parte de mando o control. Este flujo de información se establece mediante los captadores (sensores binarios, transductores análogos y digitales) y los preaccionadores (contactores, relés). Los captadores se encargan entonces de recoger datos de magnitudes físicas y de cambios de estado a controlar y envían dicha información a la parte de control para su procesamiento [4]. La parte de control envía entonces acciones de mando a través de los preaccionadores, que son elementos que permiten el manejo de grandes potencias a partir de señales de baja potencia. En la Figura 2.3 se observa un diagrama de bloques con los diferentes elementos constitutivos de un automatismo [1, 3]. Los automatismos modernos constan de una gran diversidad de componentes y tecnologías, entre los cuales se puede hallar sistemas de naturaleza eléctrica, neumática, hidráulica, mecánica, etc. Se trata entonces de la integración de elementos de variada naturaleza u origen demandando sistemas integradores capaces de realizar la adecuada coordinación entre ellos. Debido a esta fuerte demanda se creó y apareció una dicotomía clara entre dos formas diferentes de afrontar la implementación de un automatismo. Esta dicotomía da origen a la clasificación tecnológica de los sistemas de control en sistemas de Lógica Cableada y sistemas de Lógica Programada [1].

10

CAPÍTULO 2. FUNDAMENTOS DE LOS AUTOMATISMOS PLANTA Accionadores CAPTADORES

PREACCIONADORES

Sensores, Transductores

Relés, Contactores

Señales Físicas

COMUNICACIONES

SISTEMA DE CONTROL

Señales de Mando

INTERFAZ HOMBRE-MÁQUINA

Figura 2.3: Modelo de Sistema de Control

2.4. Lógica Cableada Toma su nombre de la naturaleza de las conexiones empleadas entre los diferentes componentes individuales que intervienen en el sistema. Si los elementos son de origen eléctrico, entonces la conexión entre relés, interruptores, finales de carrera, etc., se realiza mediante conductores eléctricos. Si los elementos son de origen electrónico, entonces la conexión entre las compuertas lógicas se realiza mediante caminos conductores. En las tecnologías neumática e hidráulica, las conexiones entre los elementos se realizan mediante ductos por entre los cuales corre el elemento fluídico. Todas estas tecnologías se basan en órganos de mando del tipo “Todo o Nada” que pueden ser modelados mediante el álgebra de Boole y son comúnmente denominados como sistemas de conmutación. Según el sistema, esta consideración de “todo o nada” se puede relacionar con “abierto o cerrado”, “caliente o frío”, “conduce o no conduce”, “verdadero o falso”. En analogía a los órganos de mando, los órganos receptores no pueden encontrarse más que en dos estados posibles “alimentados o no alimentados”. La solución de un problema de conmutación radica en la disposición adecuada de órganos de mando para lograr que los órganos receptores estén alimentados cuando se satisfacen ciertas condiciones [2]. Este tipo de sistemas es bien aceptado entre los desarrolladores de automatismos para la creación de sistemas de baja complejidad. Sin embargo, presenta grandes dificultades especialmente cuando se requiere el desarrollo de sistemas robustos, ya que no facilita la integración de funcionalidad aritmética, limita el control de la ejecución de instrucciones, reduce la creación de secuencias complejas y la conducción y manipulación de estructuras de datos y presenta una deficiencia para la realización de programas estructurados y jerárquicos.

2.5. LÓGICA PROGRAMADA

11

2.5. Lógica Programada Con el advenimiento de la tecnología de los microprocesadores y los sistemas subsiguientes desarrollados a partir de estos, como es el caso de los controladores lógicos, los autómatas programables y el computador, se logró, y se continúa mejorando constantemente, un alto nivel de integración en los componentes electrónicos, con lo cual esta tecnología allana cada día más la posibilidad de integración de sistemas de diversificada naturaleza, entrega la capacidad de realizar cálculos de orden científico y la implementación de complejos algoritmos en arquitecturas de control distribuidas e inmersas en variados sistemas de gestión y comunicación. Durante los últimos diez años el mercado de procesos industriales y de control ha crecido significativamente. Los PLCs se han mostrado como la base sobre la cual se fundamentan estos sistemas, pero además han aparecido las computadoras digitales como competencia directa gracias a las velocidades de procesamiento y los costos reducidos logrados y divisados hacia un futuro. Con el desarrollo de estas tecnologías, cada uno de los proveedores trató de ofrecer sistemas amigables de programación que en principio funcionaron bien dentro de cada uno de sus sistemas orígenes. Pero debido a la fuerte demanda en la industria por una integración entre sistemas de diferentes naturalezas, fuentes y proveedores se hizo necesario la creación de un marco de referencia dentro del cual se mueva cada uno de los lenguajes de programación. Debido a lo anterior se produjo la publicación del estándar IEC 1131-3 en Marzo de 1993, hoy denominado IEC 61131-3, donde se define la forma en la cual deben ser programados los sistemas de control basados en PLCs y que además permite que los programas y comportamientos de las plantas bajo control sean de fácil entendimiento por personal de diferentes industrias [5].

12

CAPÍTULO 2. FUNDAMENTOS DE LOS AUTOMATISMOS

Bibliografía [1] Balcells, Josep. Romeral, Jose Luis Autómatas Programables Alfaomega marcombo 1998, ISBN 970-15-0247-7 [2] Delhaye C. Concepción Lógica de Automatismos Industriales Marcombo 1971, ISBN 26.676-1968 [3] García Moreno, Emilio Automatización de Procesos Industriales Alfaomega 2001, ISBN 970-15-0658-8 [4] Pallás Areny, Ramón Sensores y Acondicionadores de Señal 3ra Ed Alfaomega marcombo 2001, ISBN 970-15-0577-8 [5] Lewis, R. W. Programming Industrial Control Systems Using IEC 1131-3 Revised Edition IEE 1998. ISBN 0-85296-950-3 [6] http://automata.cps.unizar.es/Historia/Webs.

13

Capítulo 3

ANÁLISIS Y SÍNTESIS DE AUTOMATISMOS 3.1. Lógica de Predicados 3.1.1. Presentación del Lenguaje Formal El lenguaje es la herramienta básica en la comunicación humana. La lógica, como instrumento para la formalización del conocimiento humano, no está exenta de requerir un lenguaje que permita expresar de forma ordenada y clara sucesiones de afirmaciones y que contenga todos los elementos necesarios de comunicación. Las frases declarativas son el fundamento básico de la descripción del conocimiento, por tanto interesa la formalización de un lenguaje para su estudio [4]. En la lógica de proposiciones, o lógica de enunciados, se estudia las frases declarativas simples como elementos de una frase que pueden tomar un y solo un valor entre dos posibles (Verdadero y Falso, 1 y 0) y constituyen por si solas la unidad de comunicación. La lógica de predicados estudia con mayor profundidad las frases declarativas, colocando atención a sus objetos constitutivos y las relaciones que las gobiernan. Si la proposición está formada por una sola frase declarativa simple se dice que posee aridad1 cero. Si la proposición en estudio consta de más de una frase declarativa simple, entonces es necesario introducir elementos adicionales de enlace entre los diferentes elementos simples, o argumentos, y además se dice en este caso que posee aridad igual al número de argumentos [4, 5]. Para la conformación de los predicados se define la siguiente estructura: Variables: Son símbolos conformados por las últimas letras del alfabeto y en minúsculas. Se permite la adición de subíndices y el uso del alfabeto 1 La aridad de una función o de un predicado se define como el número de argumentos que tiene.

15

16

CAPÍTULO 3. ANÁLISIS Y SÍNTESIS DE AUTOMATISMOS griego, por ejemplo: w, x, y, z, y1 , z2 , α2 .

Constantes: Primeras letras del alfabeto en minúsculas con o sin subíndices, por ejemplo: a, b, c, d1 , bj . Se emplean para designar los objetos de los cuales se quiere hablar. Para hacer referencia a un equipo industrial cualquiera, por ejemplo al motor 5 o al motor 6, se pueden asignar las constantes m5 y m6 respectivamente, o para hacer referencia a la caldera simplemente se puede asignar la c. Funciones: Se emplean las letras f, g, h. Pueden igualmente llevar subíndices y en algunos casos superíndices para indicar la aridad. Por ejemplos la función g2 indica que la función g posee una aridad de 2. Relatores: Se representan mediante letras en mayúsculas, por ejemplo J, K, L. Igualmente se puede indicar la aridad de un predicado o relator mediante un superíndice. Los relatores tienen la función de representar a los hechos, el equivalente de los verbos en un lenguaje natural. Si el relator J significa “pertenecer a la fábrica 1”, entonces “Jc” significa que “la caldera pertenece a la fábrica 1”. Si el relator K significa “estar acoplados”, entonces “Km5 m6 ” significa que “los motores 5 y 6 están acoplados”. Para los casos anteriores, se dice que el relator J es monádico o de rango 1 y que el relator K es diádico o de rango 2. El rango de un relator es el número de complementos que requiere para tener sentido, sin embargo por conveniencia, se limita el rango de los relatores. Si por ejemplo K es diádico “Km5 m6 m7 ” no tiene sentido y para expresar que los motores 5, 6 y 7 están acoplados se puede emplear a K usándolo varias veces de forma conveniente. Cuantificadores: Son signos que proporcionan mayor fuerza al lenguaje formal. Se emplean conjuntamente con las variables y son principalmente dos.  El primero de ellos es el cuantificador particularizador oexistencial “ ” el cual se lee “existe”, por ejemplo, para la variable x “ xJx” significa “Existe  un x de manera que x pertenece a la fábrica 1”. De forma general “ x algo” significa que “algo” es cierto si la variable “x” se interpreta de forma adecuada.  El segundo de los cuantificadores es el universal o generalizador “ ” el cual se lee “para todo”, por ejemplo, para  la variable x “ xJx” significa “Para todo x, x pertenece a la fábrica 1”. Funtor: El funtor es un signo que complementado con nombres de objetos nombra a otros objetos, en contraste con un relator que da lugar a una afirmación. Ejemplo de un funtor diádico puede ser “M” que significa “el de mayor revoluciones”, así “Mm5 m6 ” significa “el de mayor revoluciones entre m5 y m6 . Se puede tener  funtores de cualquier rango. En matemáticas se tiene funtores como “ ” , “+”, “−”, etc. Descriptor: El descriptor se representa por “|” y se lee “tal que”.

3.1. LÓGICA DE PREDICADOS

17

Como ya se dijo, cuando se trata con proposiciones de orden uno o superior se hace necesario introducir el uso de conectivos lógicos con el propósito de enlazar las frases declarativas simples. A continuación se indica su simbología: La Negación: Se lee como “NO” o “ES FALSO QUE” y se representa por la conectiva ¬. En este sentido “¬Jc” significa que “la caldera NO pertenece a la fábrica 1”. La Conjunción: Se lee como “Y” y se representa por la conectiva ∧. En este sentido si el relator L significa “ser motor”, entonces “Lm ∧¬Lc” significa “m es un motor Y la caldera NO es un motor”. La Disyunción: Se lee como “O” y se representa por la conectiva ∨. En lenguaje natural la disyunción se puede interpretar de formas diferentes, en una puede significar “lo uno, lo otro o ambos” y en otra “lo uno, lo otro, pero no ambos”. De forma estricta en la lógica de predicados se emplea en el primero de los sentidos, es decir, en una forma inclusiva y no en forma exclusiva como en el segundo caso. La Implicación: Se lee como “SI ... ENTONCES ...” o “ ... IMPLICA ...” y se representa por la conectiva →. Coimplicación o Bicondicional: Se lee como “... SI Y SOLO SI ...” y se representa por la conectiva ↔. Lo cual quiere decir que lo que es válido para una afirmación, también lo es para otra afirmación, cuando ambas están relacionadas mediante el bicondicional.

3.1.2. Tablas de Verdad Toda frase declarativa puede tener uno de los dos siguientes valores posibles “Verdadero o Falso”, “V o F”, “1 o 0”. Estos valores de verdad en proposiciones con más de una frase declarativa están determinados por los valores de verdad de las frases declarativas simples y los conectivos lógicos que las relacionan [4]. En forma general, si ε y ζ son dos afirmaciones cualesquiera, si ε es verdadera entonces ¬ε es falsa y si ε es falsa entonces ¬ε es verdadera. Lo anterior se presenta de forma resumida en la Tabla 3.1, a la cual se le denomina tabla de verdad para la conectiva de negación. ε

¬ε

V

F

F

V

Tabla 3.1: Tabla de Verdad para la Negación

18

CAPÍTULO 3. ANÁLISIS Y SÍNTESIS DE AUTOMATISMOS

La tabla de verdad para dos afirmaciones relacionadas mediante la conectiva de conjunción se muestra en la Tabla 3.2. ε

ζ

ε∧ζ

V

V

V

V

F

F

F

V

F

F

F

F

Tabla 3.2: Tabla de Verdad para la Conjunción La tabla de verdad para dos afirmaciones relacionadas mediante la conectiva de disyunción se muestra en la Tabla 3.3. ε

ζ

ε∨ζ

V

V

V

V

F

V

F

V

V

F

F

F

Tabla 3.3: Tabla de Verdad para la Disyunción La tabla de verdad para la conectiva de implicación ha sido ampliamente discutida a lo largo de la historia. Filón consideraba que el enunciado ε→ζ es verdadero a no ser que ε fuera verdadero pero ζ falso. Por otro lado Diodoro daba la interpretación que ε→ζ es verdadero si siempre que ε es verdadero ζ también lo es. La interpretación de implicación en el lenguaje natural se acerca más a la entregada por Diodoro [4]. Para los propósitos de la lógica, la interpretación de Filón es más práctica y por tanto deberá ser interpretada de acuerdo con la Tabla 3.4. ε

ζ

ε→ζ

V

V

V

V

F

F

F

V

V

F

F

V

Tabla 3.4: Tabla de Verdad para la Implicación. De la tabla anterior se puede concluir que una afirmación falsa implica cualquier afirmación, esto es si εes falsa ε→ζ es verdadera para cualquiera que sea ζ; y que una afirmación verdadera es implicada por cualquier afirmación, esto es si ζ es verdadera ε→ζ es verdadera para cualquiera que sea ε.

3.1. LÓGICA DE PREDICADOS

19

La tabla de verdad para la coimplicación o bicondicional se muestra en la Tabla 3.5, donde se puede observar que para ε↔ζ ambas son verdaderas o ambas son falsas. ε

ζ

ε↔ζ

V

V

V

V

F

F

F

V

F

F

F

V

Tabla 3.5: Tabla de Verdad para la Coimplicación

3.1.3. Definición del Lenguaje Formal Definición: Un lenguaje formal de primer orden L es una colección de signos divididos en las siguientes categorías y cumpliendo las propiedades indicadas [3, 4, 5, 8]. 1. Variables: L debe tener infinitas variables, a cada una de las cuales se le asocia un número natural distinto denominado índice, de forma tal que todo natural es índice de una variable de L. La variable de índice i de L será entonces xi . 2. Constantes: L puede tener desde ninguna hasta infinitas constantes. A cada constante se le asocia un índice natural, así c i es la constante de índice i de L. 3. Relatores: Cada relator debe tener un número natural no nulo asociado denominado rango. Un relator n-ádico es un relator de rango n. Cada relator n-ádico lleva asociado un índice, de tal forma que el relator R in es el relator n-ádico de índice i, en caso de existir en L. Cómo mínimo debe existir un relator diádico R02 , al que se le da el nombre de igualador o “=”. 4. Funtores: Cada funtor debe tener asociado un rango e índice en las mismas condiciones mencionadas para los relatores. Fin es el funtor n-ádico de índice i, en caso de existir en L. 5. Negador: ¬ es el negador de L. 6. Implicador: → es el implicador de L.  7. Cuantificador Existencial: es el cuantificador existencial o particularizador de L.  8. Cuantificador Universal: es el cuantificador universal o generalizador de L.

20

CAPÍTULO 3. ANÁLISIS Y SÍNTESIS DE AUTOMATISMOS 9. Descriptor: | es el descriptor, el cual puede o no existir en L. En general L puede ser un lenguaje con o sin descriptor.

Cada signo de L debe pertenecer a una y solo una de las anteriores categorías. Si L es un lenguaje formal con descriptor, entonces L es el lenguaje resultante al retirar el descriptor.

3.1.4. Expresiones, Términos y Fórmulas La utilidad del lenguaje formal que se ha presentado tiene que ver principalmente con la necesidad de construir afirmaciones con sus signos. Se define un término como una cadena de símbolos utilizada para representar objetos cumpliendo las siguientes reglas [4, 5, 8]: Toda variable o constante individual es un término. Si se tienen los términos t1 , t2 , ... ,tj , ..., tn y f n es una función de aridad n entonces f n (t1 , t2 , .., tj , ..., tn ) es un término. Todos los términos posibles se obtienen aplicando únicamente las dos reglas anteriores. Una fórmula es una cadena de símbolos que toma un valor de Verdadero o Falso y posee la forma P n (t1 , t2 , .., tj , ..., tn ) donde P n es un relator de aridad n y t1 , t2 , ... ,tj , ..., tn son términos. Una cadena de signos en el lenguaje se denominará expresión si es un término o una fórmula dentro del lenguaje. Ejemplo: La frase “Todos los motores de la fábrica 1 están operables” se puede formalizar de la siguiente forma: Empleando el relator “J” que significa “pertenecer a la fábrica 1”, el relator “O” que significa “estar operable” y definiendo la variable “x” como “motor” entonces se puede escribir:    x Jx → Ox Ejemplo: Encontrar la función que describe el siguiente enunciado: El flujo de agua que llega a una solución salina para ser empleada en un proceso industrial será suspendido si se cumple una de las siguientes condiciones: Si el tanque se llena o si la salida del tanque permanece abierta, el nivel de agua no está bajo el nivel mínimo y la concentración de la solución no excede el 3 %. En este caso, se designa a f como la función que describe el enunciado. Las variables serán: l que se lee como “Tanque lleno”, v que se lee “tanque vacío, o bajo nivel mínimo”, s que se lee “salida del tanque abierta” y c que se lee “concentración de solución excede el 3 %”. Bajo las anteriores asignaciones se observa que la función posee una aridad de 4, lo cual

3.2. ÁLGEBRA DE BOOLE

21

  se indica como f 4 l, v, s, c . La función se verifica si se cumple una de las dos condiciones, a su vez la condición 2 se verifica si se cumplen simultáneamente las tres condiciones que la forman, por tanto se puede escribir:     f 4 l, v, s, c = l ∨ s ∧ ¬v ∧ ¬c

3.2. Álgebra de Boole George Boole, presentó en 1949 un sistema algebraico basado en dos valores, el cual se convirtió en la base fundamental para el desarrollo de las ciencias de la computación, programación y control industrial. Con base en el uso de este sistema, se puede formular proposiciones que toman uno de dos valores posibles (verdadero o falso, 1 o 0) y combinarlas para formas nuevas proposiciones y determinar su verdad o falsedad. El álgebra booleana se puede presentar mediante unos postulados que resumen sus elementos y propiedades básicas, los cuales se muestran a continuación [6, 10]: Postulado 1. Definición de Álgebra Booleana: Sistema algebraico cerrado, distributivo y complementado formado por un conjunto H de dos o más elementos y los dos funtores “∧” y “∨” tal que si ε y ζ pertenecen a H entonces ε∧ ζ pertenece a H y ε∨ζ también pertenece a H . De manera formal: 

   ε, ζ ∈ H ε ∧ ζ ∈ H y ε ∨ ζ ∈ H

Postulado 2. Existencia de los Elementos 1 y 0: En el conjunto H existen los elementos 1(uno) y 0(cero), únicos, denominados elementos neutros, tal que se cumple:   ε∈H ε∨ 0=ε    ε∈H ε∧ 1=ε 

Postulado 3. Conmutatividad 

   ε, ζ ∈ H ε ∧ ζ = ζ ∧ ε     ε, ζ ∈ H ε ∨ ζ = ζ ∨ ε

CAPÍTULO 3. ANÁLISIS Y SÍNTESIS DE AUTOMATISMOS

22

Postulado 4. Asociatividad     ε, ζ, ψ ∈ H ε ∧ (ζ ∧ ψ) = (ε ∧ ζ) ∧ ψ     ε, ζ, ψ ∈ H ε ∨ (ζ ∨ ψ) = (ε ∨ ζ) ∨ ψ Postulado 5. Distributividad     ε, ζ, ψ ∈ H ε ∨ (ζ ∧ ψ) = (ε ∨ ζ) ∧ (ε ∨ ψ)     ε, ζ, ψ ∈ H ε ∧ (ζ ∨ ψ) = (ε ∧ ζ) ∨ (ε ∧ ψ) Postulado 6. Complemento: Para todo ε ∈ H existe un único elemento ¬ε en H denominado complemento de ε, de forma que:   ¬ε ∈ H ε ∨ ¬ε = 1     ε ∈ H ¬ε ∈ H ε ∧ ¬ε = 0 

ε∈H



3.2.1. Principio de Dualidad Establece que si una expresión F es válida en el álgebra booleana, entonces su expresión dual, la que se denomina F d también lo es. La expresión dual se obtiene el reemplazar el operador ∨ por ∧, el operador ∧ por ∨, los 1 por 0 y los 0 por 1. Se debe seguir manteniendo las precedencias relacionadas por los paréntesis. Con este principio se verifica la validez de la expresión dual, más no su equivalencia con la expresión original. De manera formal este principio establece: 

F∈ H



  Fd Fd ∈ H

Ejemplo: Encontrar la expresión dual para:  

  F ε, ζ, ψ : (¬ε ∨ ¬ζ) ∧ (ε ∧ ζ) ∨ ψ = ψ ∧ (¬ε ∨ ¬ζ)

si ahora

 

  F ε, ζ, ψ : (¬ε ∨ ¬ζ) ∧ (ε ∧ ζ) ∨ ψ = ψ ∧ (¬ε ∨ ¬ζ)  

  (¬ε ∧ ¬ζ) ∨ (ε ∨ ζ) ∧ ψ = ψ ∨ (¬ε ∧ ¬ζ) F d ε, ζ, ψ :

El principio de dualidad se puede verificar en las expresiones de los postulados 2 hasta 6. Se presenta a continuación los teoremas fundamentales del álgebra booleana [6, 10].

3.2. ÁLGEBRA DE BOOLE

23

3.2.2. Teoremas Fundamentales Teorema 1: Idempotencia   ε∈H ε ∨ ε=ε    ε∈H ε ∧ ε=ε 

Teorema 2: Elementos neutros   ε∈H ε ∨ 1=1    ε∈H ε ∧ 0=0



Teorema 3: Involución 

  ε ∈ H ¬(¬ε) = ε

Teorema 4: Absorción     ε, ζ ∈ H ε ∨ (ε ∧ ζ) = ε     ε, ζ ∈ H ε ∧ (ε ∨ ζ) = ε Teorema 5: Segundo Teorema de Absorción 

   ε, ζ ∈ H ε ∨ (¬ε ∧ ζ) = ε ∨ ζ     ε, ζ ∈ H ε ∧ (¬ε ∨ ζ) = ε ∧ ζ

Teorema 6: Tercer Teorema de Absorción 

   ε, ζ ∈ H (ε ∧ ζ) ∨ (ε ∧ ¬ζ) = ε     ε, ζ ∈ H (ε ∨ ζ) ∧ (ε ∨ ¬ζ) = ε Teorema 7: Cuarto Teorema de Absorción     ε, ζ, ψ ∈ H (ε ∧ ζ) ∨ (ε ∧ ¬ζ ∧ ψ) = (ε ∧ ζ) ∨ (ε ∧ ψ)     ε, ζ, ψ ∈ H (ε ∨ ζ) ∧ (ε ∨ ¬ζ ∨ ψ) = (ε ∨ ζ) ∧ (ε ∨ ψ)

CAPÍTULO 3. ANÁLISIS Y SÍNTESIS DE AUTOMATISMOS

24

Teorema 8: Teorema de DeMorgan 

   ε, ζ ∈ H ¬(ε ∨ ζ) = ¬ε ∧ ¬ζ     ε, ζ ∈ H ¬(ε ∧ ζ) = ¬ε ∨ ¬ζ Este teorema se puede generalizar para n variables de la siguiente forma: 

   ε, ζ, ..., ψ ∈ H ¬(ε ∨ ζ ∨ ... ∨ ψ) = ¬ε ∧ ¬ζ ∧ ... ∧ ¬ψ     ε, ζ, ..., ψ ∈ H ¬(ε ∧ ζ ∧ ... ∧ ψ) = ¬ε ∨ ¬ζ ∨ ... ∨ ¬ψ Teorema 9: Teorema de Consenso     ε, ζ, ψ ∈ H (ε ∧ ζ) ∨ (¬ε ∧ ψ) ∨ (ζ ∧ ψ) = (ε ∧ ζ) ∨ (¬ε ∧ ψ)     ε, ζ, ψ ∈ H (ε ∨ ζ) ∧ (¬ε ∨ ψ) ∧ (ζ ∨ ψ) = (ε ∨ ζ) ∧ (¬ε ∨ ψ)

3.2.3. Funciones de Conmutación El concepto de función de conmutación se puede definir como sigue: Sean α0 , α1 , ... , αn−1 variables, cada una de las cuales representa el elemento 0 o 1, es decir al conjunto de los posibles valores que toma la variable, y sea f n (α0 , α1 , ... , αn−1 ) la función de aridad n para las variables α 0 , α1 , ... , αn−1 . La función f n puede tomar los valores 0 o 1 según el conjunto de valores definidos por las variables. Como se tienen n variables y cada variable puede tomar uno de dos posibles valores se tendrán 2n posibles combinaciones de n asignación de valores para las n variables y 2 2 posibles combinaciones para la función de aridad n. Para una función de aridad cero los posibles valores son f00 = 0 y f10 = 1. A continuación se muestra en las Tablas 3.6 y 3.7 las posibles combinaciones para funciones de aridad 1 y 2.

α0

f01

f11

f21

f31

0

0

1

0

1

1

0

0

1

1

Tabla 3.6: Posibles Combinaciones para Función de Aridad 1.

3.2. ÁLGEBRA DE BOOLE

25

α0

α1

f02

f12

f22

f32

f42

f52

f62

f72

f82

f92

2 2 2 2 2 2 f10 f11 f12 f13 f14 f15

0

0

0

1

0

1

0

1

0

1

0

1

0

1

0

1

0

1

0

1

0

0

1

1

0

0

1

1

0

0

1

1

0

0

1

1

1

0

0

0

0

0

1

1

1

1

0

0

0

0

1

1

1

1

1

1

0

0

0

0

0

0

0

0

1

1

1

1

1

1

1

1

Tabla 3.7: Posibles Combinaciones para Función de Aridad 2.

En las tablas anteriores se puede observar que f 21 = α0 , mientras f11 = ¬α0 2 es la negación de la variable, además f 14 = α0 ∨ α1 y f82 = α0 ∧ α1 . Lo anterior indica que aún no se han presentado todas las posibles funciones, aunque en gran parte unas se pueden obtener a partir de la combinación de las otras [6].

3.2.4. Funciones Lógicas Existen tres funciones básicas: la conjunción, la disyunción y la negación, a partir de las cuales por combinación se puede obtener otras 4 que por su amplia utilización se definen de forma independiente. AND: Representa la conjunción y se define como: 

 α0 , ... , αn−1



n ∈ H f (α0 , ... , αn−1 ) = α0 ∧ ... ∧ αn−1 = β | β ∈ H

Cumple las propiedades de asociatividad y conmutatividad, específicamente para el caso de tres variables: β = f 3 (α0 , α1 , α2 ) = =

α0 ∧ α1 ∧ α2 (α0 ∧ α1 ) ∧ α2

=

α0 ∧ (α1 ∧ α2 )

β = f 3 (α0 , α1 , α2 ) =

α0 ∧ (α1 ∧ α2 )

= =

α0 ∧ (α2 ∧ α1 ) (α0 ∧ α2 ) ∧ α1

=

α2 ∧ α0 ∧ α1

En la Figura 3.1 se muestra el símbolo de esta función según la norma ANSI/IEEE St 91-1984 junto con la representación para lógica cableada y su tabla de verdad.

CAPÍTULO 3. ANÁLISIS Y SÍNTESIS DE AUTOMATISMOS

26

a0

&

b

a0 a1

a1 Símbolo ANSI/IEEE

b

α0

α1

α0 ∧ α1

0

0

0

0

1

0

1

0

0

1

1

1

Lógica Cableada

Tabla de Verdad

Figura 3.1: Representación de la AND

OR: Representa la disyunción y se define como:

  α0 , ... , αn−1 ∈ H f n (α0 , ... , αn−1 ) = α0 ∨ ... ∨ αn−1 = β | β ∈ H Cumple las propiedades de asociatividad y conmutatividad, específicamente para el caso de tres variables: β = f 3 (α0 , α1 , α2 )

= α0 ∨ α1 ∨ α2 = (α0 ∨ α1 ) ∨ α2 = α0 ∨ (α1 ∨ α2 )

β = f 3 (α0 , α1 , α2 )

= α0 ∨ (α1 ∨ α2 ) = α0 ∨ (α2 ∨ α1 ) = (α0 ∨ α2 ) ∨ α1 = α2 ∨ α0 ∨ α1

En la Figura 3.2 se muestra el símbolo de esta función junto con la representación para lógica cableada y su tabla de verdad.

a0

³1

b

a1

a0 a1

Símbolo ANSI/IEEE

b

Lógica Cableada

α0

α1

α0 ∨ α1

0

0

0

0

1

1

1

0

1

1

1

1

Tabla de Verdad

Figura 3.2: Representación de la OR

3.2. ÁLGEBRA DE BOOLE

27

NOT: Representa la negación y se define como:

  α0 ∈ H f 1 (α0 ) = ¬α0 = β | β ∈ H En la Figura 3.3 se muestra el símbolo de esta función junto con la representación para lógica cableada y su tabla de verdad.

1

a0

a0

b

Símbolo ANSI/IEEE

α0

¬α0

0

1

1

0

b

Lógica Cableada

Tabla de Verdad

Figura 3.3: Representación de la NOT A partir de las tres funciones anteriores se puede obtener las siguientes cuatro, aunque debido a su amplia utilización se han definido independientemente y se les ha asignado un símbolo. NAND: Se obtiene al implementar la conjunción y al resultado aplicarle la negación, se define como:

  α0 , ... , αn−1 ∈ H f n (α0 , ... , αn−1 ) = ¬(α0 ∧...∧αn−1 ) = β | β ∈ H Cumple la propiedad de conmutatividad más no la de asociatividad. En la Figura 3.4 se muestra el símbolo de esta función junto con la representación para lógica cableada y su tabla de verdad.

a0

&

b

a1

a0 a1

Símbolo ANSI/IEEE

b

Lógica Cableada

α0

α1

¬(α0 ∧ α1 )

0

0

1

0

1

1

1

0

1

1

1

0

Tabla de Verdad

Figura 3.4: Representación de la NAND

CAPÍTULO 3. ANÁLISIS Y SÍNTESIS DE AUTOMATISMOS

28

NOR: Se obtiene al implementar la disyunción y al resultado aplicarle la negación, se define como:

  n α0 , ... , αn−1 ∈ H f (α0 , ... , αn−1 ) = ¬(α0 ∨...∨αn−1 ) = β | β ∈ H Cumple la propiedad de conmutatividad más no la de asociatividad. En la Figura 3.5 se muestra el símbolo de esta función junto con la representación para lógica cableada y su tabla de verdad.

a0

³1

a0 a1

b

b

a1 Símbolo ANSI/IEEE

α0

α1

¬(α0 ∨ α1 )

0

0

1

0

1

0

1

0

0

1

1

0

Lógica Cableada

Tabla de Verdad

Figura 3.5: Representación de la NOR

XOR: También denominada OR exclusiva, se define como: y = f 2 (α0 , α1 )

= α0 ⊕ α1 = (α0 ∧ ¬α1 ) ∨ (¬α0 ∧ α1 )

Cumple las propiedades de asociatividad y conmutatividad. En la Figura 3.6 se muestra el símbolo de esta función junto con la representación para lógica cableada y su tabla de verdad.

a0

=1

b

a1

a0 a0

Símbolo ANSI/IEEE

a1 a1

b

Lógica Cableada

α0

α1

α0 ⊕α1

0

0

0

0

1

1

1

0

1

1

1

0

Tabla de Verdad

Figura 3.6: Representación de la XOR

3.2. ÁLGEBRA DE BOOLE

29

NXOR: Se obtiene al implementar la XOR y al resultado aplicarle la negación, se define como: β = f 2 (α0 , α1 ) = = =

¬(α0 ⊕ α1 ) α0  α1   ¬ (α0 ∧ ¬α1 ) ∨ (¬α0 ∧ α1 )

Cumple la propiedad de conmutatividad más no la de asociatividad. En la Figura 3.7 se muestra el símbolo de esta función junto con la representación para lógica cableada y su tabla de verdad.

a0

=1

b

a1

a0 a0

Símbolo ANSI/IEEE

a1 a1

b

Lógica Cableada

α0

α1

α0  α1

0

0

1

0

1

0

1

0

0

1

1

1

Tabla de Verdad

Figura 3.7: Representación de la NXOR

3.2.4.1. Universalidad de la NAND y la NOR Toda función de conmutación se puede representar usando solo compuertas NAND o NOR, lo cual se deduce de las siguientes propiedades, donde g es una función NAND y h es una función NOR: g11 (α0 ) = g22

(α0 , α1 ) =

g32 (α0 , α1 ) =

h11 (α0 ) h22

(α0 , α1 )

h23 (α0 , α1 )

¬(α0 ∧ α0 ) = ¬α0   ¬ ¬(α0 ∧ α1 ) = α0 ∧ α1   ¬ ¬α0 ∧ ¬α1 = α0 ∨ α1

= ¬(α0 ∨ α0 ) = ¬α0   = ¬ ¬(α0 ∨ α1 ) = α0 ∨ α1   = ¬ ¬α0 ∨ ¬α1 = α0 ∧ α1

En la Figura 3.8 se puede observar la universalidad de estas dos funciones.

CAPÍTULO 3. ANÁLISIS Y SÍNTESIS DE AUTOMATISMOS

30

Función

NAND

a0

&

NOR

a0

Øa 0

³1

Øa 0

NOT

g11

a0 AND

h11

a0 &

³1 ³1

&

a1

a1

³1

g22

a0

h22

& &

OR

a1

a0

³1

³1

a1

&

g32

h23

Figura 3.8: Universalidad de la NAND y la NOR

3.2.5. Formas Algebraicas Estándar 3.2.5.1. Formas SOP y POS Las funciones de conmutación se pueden representar de muchas formas, pero particularmente son de interés las dos siguientes [6, 9].

3.2. ÁLGEBRA DE BOOLE

31

La primera de ellas es la forma SOP (suma de productos) la cual se construye al realizar la disyunción, es decir función OR, de términos en conjunción, donde cada término conjunción se obtiene mediante la función AND de varias variables, las cuales pueden estar complementadas o sin complementar (con negación o sin ella). A continuación se presenta un ejemplo para una función de tres variables la cual está en forma SOP: f 3 (α0 , α1 , α2 ) = (α0 ∧ ¬α1 ∧ ¬α2 ) ∨ (¬α1 ∧ α2 ) ∨ (¬α0 ∧ α2 ) La segunda forma es la POS (producto de sumas) la cual se construye al realizar la conjunción, es decir la función AND, de términos en disyunción, donde cada término en disyunción se obtiene mediante la función OR de varias variables, las cuales pueden estar complementadas o sin complementar. Un ejemplo de una función de tres variables en forma POS se muestra a continuación: f 3 (α0 , α1 , α2 ) = (¬α0 ∨ α1 ∨ ¬α2 ) ∧ (α0 ∨ ¬α1 ∨ ¬α2 ) ∧ (α0 ∨ ¬α2 ) 3.2.5.2. Formas Canónicas Mintérmino Es un término en conjunción el cual contiene exactamente una vez a cada una de las variables de la función, ya sea complementadas o sin complementar. En el ejemplo anterior de una función en forma SOP, el término (α0 ∧ ¬α1 ∧ ¬α2 ) es un mintérmino ya que cumple con la definición dada. Si una función se expresa en forma SOP y además todos sus términos son mintérminos, entonces se dice que la función posee la forma Canónica de Suma de Productos, o simplemente la forma SOP Canónica. A continuación se presenta un ejemplo de forma SOP canónica. f 3 (α0 , α1 , α2 ) = (α0 ∧ ¬α1 ∧ ¬α2 ) ∨ (¬α0 ∧ ¬α1 ∧ α2 ) ∨ (¬α0 ∧ α1 ∧ α2 ) Como para que un mintérmino tome un valor lógico de 1 se necesita que cada variable no complementada tome un valor de 1 y cada variable complementada tome un valor de 0, se aprovecha este valor de cada variable para hacer un código binario con tantos bits como variables en la función, con el cual se podrá simplificar la escritura del mintérmino en una función de forma SOP canónica. En la Tabla 3.9 se muestra esta simplificación para los mintérminos de la función anterior. Mintérmino

Código

Simplificación

(α0 ∧ ¬α1 ∧ ¬α2 )

100

m4

(¬α0 ∧ ¬α1 ∧ α2 )

001

m1

(¬α0 ∧ α1 ∧ α2 )

011

m3

Tabla 3.9: Notación Simplificada de Mintérminos

32

CAPÍTULO 3. ANÁLISIS Y SÍNTESIS DE AUTOMATISMOS Se observa que se ha simplificado la escritura de cada mintérmino mediante mi , donde i es el entero decimal correspondiente al código binario del mintérmino. Así la función se puede escribir de cualquiera de las siguientes formas: f 3 (α0 , α1 , α2 ) = (¬α0 ∧ ¬α1 ∧ α2 ) ∨ (¬α0 ∧ α1 ∧ α2 )  ∨ (α0 ∧ ¬α1 ∧ ¬α2 ) = m(1, 3, 4)

Maxtérmino Es un término en disyunción el cual contiene exactamente una vez a cada una de las variables de la función, ya sea complementadas o sin complementar. En el ejemplo anterior de una función en forma POS los términos (¬α0 ∨ α1 ∨ ¬α2 ) y (α0 ∨ ¬α1 ∨ ¬α2 ) son maxtérminos al cumplir ambos con la definición dada. Si una función se expresa en forma POS y además todos sus términos son maxtérminos, entonces se dice que la función posee la forma Canónica de Producto de Sumas, o simplemente la forma POS Canónica. A continuación se presenta un ejemplo de forma POS canónica. f 3 (α0 , α1 , α2 ) = (¬α0 ∨ α1 ∨ ¬α2 ) ∧ (α0 ∨ ¬α1 ∨ α2 ) ∧ (α0 ∨ ¬α1 ∨ ¬α2 ) Como para que un maxtérmino tome un valor lógico de 0 se necesita que cada variable no complementada tome un valor de 0 y cada variable complementada tome un valor de 1, se aprovecha este valor de cada variable para hacer un código binario con tantos bits como variables en la función, con el cual se podrá simplificar la escritura del maxtérmino en una función de forma POS canónica. En la Tabla 3.10 se muestra esta simplificación para los maxtérminos de la función anterior. Maxtérminos

Código

Simplificación

(¬α0 ∨ α1 ∨ ¬α2 )

101

M5

(α0 ∨ ¬α1 ∨ α2 )

010

M2

(α0 ∨ ¬α1 ∨ ¬α2 )

011

M3

Tabla 3.10: Notación Simplificada de Maxtérminos

Se observa que se ha simplificado la escritura de cada maxtérmino mediante Mi , donde i es el entero decimal correspondiente al código binario del maxtérmino. Así la función se puede escribir de cualquiera de las siguientes formas: f 3 (α0 , α1 , α2 ) = (α0 ∨ ¬α1 ∨ α2 ) ∧ (α0 ∨ ¬α1 ∨ ¬α2 )  ∧ (¬α0 ∨ α1 ∨ ¬α2 ) = M (2, 3, 5)

3.2. ÁLGEBRA DE BOOLE

33

3.2.5.3. Formas Canónicas Equivalentes Cada forma SOP canónica tiene una forma POS canónica equivalente dando una representación única para cada función [6]. Lo anterior se puede observar al examinar la Tabla 3.11 de verdad siguiente para una función dada. α0

α1

α2

f 3 (α0 , α1 , α2 )

0

0

0

1

0

0

1

0

0

1

0

1

0

1

1

1

1

0

0

0

1

0

1

0

1

1

0

1

1

1

1

0

Tabla 3.11: Formas Canónicas Equivalentes Las posiciones donde la función toma un valor de 1 deben corresponder a los mintérminos que la componen, de igual forma las posiciones donde la función toma un valor de 0 deben corresponder con los maxtérminos. Por tanto cada función se puede representar de forma equivalente ya sea mediante sus mintérminos o sus maxtérminos. Para el caso de la función de la Tabla 3.11, ésta se puede representar de cualquiera de las siguientes formas:  m(0, 2, 3, 6) f 3 (α0 , α1 , α2 ) =  = M (1, 4, 5, 7)

3.2.6. Términos “Don’t Care” Los términos “Don’t Care” o “No Importa” son aquellos que dentro de una función se derivan de combinaciones de las variables de entrada que se sabe nunca se presentarán, por tanto se pueden considerar indistintamente como mintérminos o maxtérminos sin afectar el comportamiento, es más, a conveniencia se pueden incluir o excluir. A estos términos, debido a su inclusión opcional en las formas canónicas, se les denomina frecuentemente como prescindibles [6, 10]. Ejemplo: Encontrar las formas canónicas para una función que indica con un valor lógico de 1 si un número de entrada en código BCD es mayor a 3 y menor o igual a 7. Para este caso, la entrada posee cuatro variables con las cuales se representan los números enteros del 0 al 15, pero un código BCD solo codifica los números del 0 al 9, por tanto las posiciones 10 a 15 son “Don’t Care”

34

CAPÍTULO 3. ANÁLISIS Y SÍNTESIS DE AUTOMATISMOS y se podrán de forma indistinta incluir en la representación por mintérminos o maxtérminos. A continuación se muestra la tabla de verdad para este ejemplo.

Código

α0

α1

α2

α3

f 4 (α0 , α1 , α2 , α3 )

0

0

0

0

0

0

1

0

0

0

1

0

2

0

0

1

0

0

3

0

0

1

1

0

4

0

1

0

0

1

5

0

1

0

1

1

6

0

1

1

0

1

7

0

1

1

1

1

8

1

0

0

0

0

9

1

0

0

1

0

10

1

0

1

0

d

11

1

0

1

1

d

12

1

1

0

0

d

13

1

1

0

1

d

14

1

1

1

0

d

15

1

1

1

1

d

Tabla 3.12: Términos Don’t Care

En la Tabla 3.12, mediante una d se ha notado los términos que son “Don’t Care” y que corresponden a aquellas entradas que se sabe nunca se presentarán para este ejemplo. La función se podrá representar de las siguientes formas: f 4 (α0 , α1 , α2 , α3 ) = =

 

m {(4, 5, 6, 7) + d (10, 11, 12, 13, 14, 15)} M {(0, 1, 2, 3, 8, 9) + d (10, 11, 12, 13, 14, 15)}

3.3. Simplificación de Funciones de Conmutación 3.3.1. Mapas de Karnaugh El objetivo de la simplificación de las funciones de conmutación radica en la minimización de costos, ya sea de realización o de implementación. Uno de los métodos más ampliamente empleados para la simplificación son los denominados Mapas de Karnaugh, los cuales están basados en los principios del álgebra de conjuntos, álgebra de Boole, tablas de verdad y mintérminos o maxtérminos [1, 6].

3.3. SIMPLIFICACIÓN DE FUNCIONES DE CONMUTACIÓN

35

Para una función de aridad 2, se tendrán cuatro posibles combinaciones de las variables, las cuales se pueden representar de forma gráfica en un Diagrama de Venn2 como se muestra en la Figura 3.9.

Cód

α0

α1

min

0

0

0

m0

1

0

1

m1

2

1

0

m2

3

1

1

m3

a0,Øa1 m0

¬α0 α0 (0) (1)

Ø

¬α1

a0,Øa1 a0, a1Øa0, a1 m2 m3 m1

(0)

m0

m2

m1

m3

α1 (1)

Tabla de Verdad

Diagrama de Venn

Diagr. Rectangular

a0 0 a1 0 1

0

1

1

2 3

Mapa de Karnaugh

Figura 3.9: Mapa de Karnaugh para Función de Aridad 2

Cód

α0

α1

α2

min

0

0

0

0

m0

1

0

0

1

m1

2

0

1

0

m2

3

0

1

1

m3

4

1

0

0

m4

5

1

0

1

m5

6

1

1

0

m6

7

1

1

1

m7

Tabla de Verdad

Øa0,Øa1,Øa2

a0,a1,Øa2

m0 a ,Øa ,Øa m4 m6 a ,a ,a 0

0

1

1

2

2

m5

Øa0,a1,Øa2

m7 m3

m2

m1

a0,Øa1,a2

Øa0,Øa1,a2

Øa0,a1,a2

Diagrama de Venn

a0 0 a1,a2 00 01 11 10

0

1

4

1

5

3

7

2

6

Mapa de Karnaugh

Figura 3.10: Mapa de Karnaugh para Función de Aridad 3

Para una función de aridad 3, se tendrán 8 posibles combinaciones de las variables, las cuales se pueden observar en la Figura 3.10 representadas en un Mapa de Karnaugh. El mapa de Karnaugh para el caso de función de aridad 3 también puede ser representado de forma horizontal como se muestra en la Figura 3.11. 2 Un Diagrama de Venn es una representación gráfica para el álgebra de conjuntos, y como el álgebra de conjuntos es un álgebra booleana en la que los conjuntos son los elementos del álgebra, esta representación es posible. La operación de intersección corresponde a la conjunción y la operación de unión a la disyunción.

CAPÍTULO 3. ANÁLISIS Y SÍNTESIS DE AUTOMATISMOS

36

a0,a1 a2 00 0

0

01

1

1

2 3

11

6

10

7

4 5

Figura 3.11: Otra Representación del Mapa de Karnaugh para Función de Aridad 3 Para el caso de una función de aridad 4, el mapa de Karnaugh se podría representar en las formas indicadas en la Figura 3.12.

Cód

α0

α1

α2

α3

min

0

0

0

0

0

m0

1

0

0

0

1

m1

2

0

0

1

0

m2

3

0

0

1

1

m3

4

0

1

0

0

m4

5

0

1

0

1

m5

6

0

1

1

0

m6

7

0

1

1

1

m7

8

1

0

0

0

m8

9

1

0

0

1

m9

10

1

0

1

0

m10

11

1

0

1

1

m11

13

1

1

0

0

m12

13

1

1

0

1

m13

14

1

1

1

0

m14

15

1

1

1

1

m15

Tabla de Verdad

a0,a1 a2,a3 00 00 01 11 10 a2,a3 a0,a1 00 00 01 11 10

0

01

4

11 10 12 8

1

5

13

9

3

7

15

11

2

6

14

10

0

01

1

11

3

10

2

4

5

7

6

12

13

15

14

8

9

11

10

Mapas de Karnaugh

Figura 3.12: Mapas de Karnaugh para Función de Aridad 4 En general, en un mapa de Karnaugh para una función de aridad n, una celda posee n celdas adyacentes, donde las celdas son enumeradas mediante el Código Gray3 y cada una representa a un posible mintérmino o maxtérmino de la función. Debido a que una celda debe poseer n celdas adyacentes, en el mapa de Karnaugh para una función de aridad 4 por ejemplo, la celda del 3 El código Gray es un código no aritmético donde de una cantidad a otra solo varía un bit a la vez.

3.3. SIMPLIFICACIÓN DE FUNCIONES DE CONMUTACIÓN

37

mintérmino m0 es adyacente con las celdas de los mintérminos m1 , m2 , m4 y m8 . Lo anterior significa que los lados derecho e izquierdo de un mapa de Karnaugh son continuos y lo mismo sucede con los lados superior e inferior. En otras palabras, para una celda sus adyacentes son todas aquellas en las que solamente una variable cambia a la vez.

3.3.2. Simplificación por Mapas de Karnaugh Para la simplificación de una función sobre un mapa de Karnaugh, se copia el valor para cada combinación de entrada en la celda correspondiente (un 1 para los mintérminos y un 0 para los maxtérminos), aunque por simplicidad se acostumbra colocar solo los 1 o 0, más no ambos [6, 10]. El objetivo será entonces realizar agrupaciones de celdas donde hay un 1 en grupos potencias de 2 (grupos de 2, 4, 8 etc. celdas). Cada grupo debe ser lo más grande posible ya que ello eliminará más variables, además la cantidad total de agrupaciones debe ser la menor posible tal que todos los mintérminos queden incluidos como mínimo en un grupo. Un grupo formado por 2n celdas elimina n variables. Las variables que se eliminan son aquellas que dentro de un grupo presentan cambio en su valor (cambian de 1 a 0) y permanecen aquellas que dentro del grupo no presentan cambio (permanecen en 1 o en 0). Al final la función simplificada estará formada por la disyunción de términos en conjunción, donde cada término es un grupo ya simplificado desde el mapa de Karnaugh. Ejemplo: Mediante un mapa de Karnaugh simplificar la siguiente función.  m (3, 5, 7, 8, 10, 13, 15) f 4 (α0 , α1 , α2 , α3 ) = La función representada sobre un mapa de Karnaugh queda como se muestra en la Figura 3.13. a0 a0,a1 a2,a3 00 00

1

01

a2

11 10

0

1

3 2

01

4 5

11 10 12 8

1

13

1 1 7 15 1 1 6

14

9 11

a3

10

1

a1

Figura 3.13: Mapa de Karnaugh para Simplificar Mintérminos

38

CAPÍTULO 3. ANÁLISIS Y SÍNTESIS DE AUTOMATISMOS Con el objeto de poder incluir a todos los mintérminos en el menor número de agrupaciones, pero a la vez con cada grupo lo más grande posible, se forman las siguientes agrupaciones las cuales también se muestran en la Figura 3.14. Grupo 1 = Grupo 2 =

m8 , m10 m3 , m7

Grupo 3 =

m5 , m7 , m13 , m15 a0

a0,a1 a2,a3 00 00

1

01

a2

11 10

0

1

3 2

01

4 5

11 10 12 8

1

13

1 1 7 15 1 1 6

14

9 11

a3

10

1

a1

Figura 3.14: Agrupaciones para Simplificar Mintérminos Para el Grupo 1 se puede observar que la variable α 2 es la única que cambia, igualmente es de esperarse que solo lo haga una, ya que como el grupo está formado por 21 celdas se debe eliminar solo 1 variable. Para el Grupo 2 se puede observar que la variable α 1 es la única que cambia y por tanto es la variable a eliminar para este grupo. Para el Grupo 3 se puede observar que las variables α 0 y α2 son las que cambian, igualmente es de esperarse que cambien dos, ya que como el grupo está formado por 22 celdas se debe eliminar 2 variables. Del procedimiento anterior, se puede entonces escribir la función simplificada de la siguiente forma: f 4 (α0 , α1 , α2 , α3 ) = (α0 ∧ ¬α1 ∧ ¬α3 ) ∨ (¬α0 ∧ α2 ∧ α3 ) ∨ (α1 ∧ α3 ) La simplificación de funciones en los mapas de Karnaugh también se puede realizar utilizando los maxtérminos. Para ello se debe copiar un 0 en cada celda correspondiente a un maxtérmino y realizar la agrupación siguiendo los mismos criterios ya expuestos para los mintérminos. Al final la función simplificada estará formada por la conjunción de términos en disyunción, donde cada término es un grupo ya simplificado desde el mapa de Karnaugh.

3.3. SIMPLIFICACIÓN DE FUNCIONES DE CONMUTACIÓN

39

Ejemplo: Simplificar la siguiente función usando un mapa de Karnaugh. f 4 (α0 , α1 , α2 , α3 ) =



M (2, 9, 10, 12, 13, 14, 15)

A continuación se procede a copiar un 0 en el mapa de Karnaugh en cada celda correspondiente a un maxtérmino, como se indica en la Figura 3.15. a0 a0,a1 a2,a3 00 00 01

a2

11 10

0

0

01

4

11 10 12 8

0

1

5

0

3

7

0

2

6

0

13

0

15 14

9

11

a3

10

0

a1

Figura 3.15: Mapa de Karnaugh para Simplificar Maxtérminos Conservando el objetivo de incluir a todos los maxtérminos en el menor número de agrupaciones, pero a la vez con cada grupo lo más grande posible, se forman las siguientes agrupaciones, las cuales también se pueden observar en la Figura 3.16. Grupo 1

= M9 , M13

Grupo 2

= M2 , M10

Grupo 3

= M12 , M13 , M14 , M15 a0

a0,a1 a2,a3 00 00 01

a2

11 10

0

0

01

4

11 10 12 8

0

1

5

3

7

0

2

6

0

13

0

15 14

0

9

11

a3

10

0

a1

Figura 3.16: Agrupaciones para Simplificar Maxtérminos

40

CAPÍTULO 3. ANÁLISIS Y SÍNTESIS DE AUTOMATISMOS Para el Grupo 1 se puede observar que la variable α 1 es la única que cambia, ya que como el grupo está formado por 21 celdas esta es la única variable a eliminar. Para el Grupo 2 se puede observar que la variable α 0 es la única que cambia y por tanto es la variable a eliminar para este grupo. Para el Grupo 3 se puede observar que las variables α 2 y α3 son las que cambian, igualmente es de esperarse que cambien dos, ya que como el grupo está formado por 22 celdas se debe eliminar 2 variables. Del procedimiento anterior, se puede entonces escribir la función simplificada de la siguiente forma: f 4 (α0 , α1 , α2 , α3 ) = (¬α0 ∨ α2 ∨ ¬α3 ) ∧ (α1 ∨ ¬α2 ∨ α3 ) ∧ (¬α0 ∨ ¬α1 )

Ejemplo: Simplificar la siguiente función la cual posee términos “Don’t Care”. f 4 (α0 , α1 , α2 , α3 ) =



m {(0, 2, 5, 6, 8, 9, 10, 14) + d (4, 7, 13, 15)}

La función sobre un mapa de Karnaugh, incluyendo tanto los mintérminos como los “Don’t Care” se muestran en la Figura 3.17. a0 a0,a1 a2,a3 00 00

1

01

a2

11 10

1

0

01

11 10 12 8

d

4

1

1

5

d

3

d

7

d

2

1

6

1

1

13

15 14

1

9

11

a3

10

1

a1

Figura 3.17: Simplificación con Términos “Don’t Care”

Como los términos “Don’t Care” se pueden considerar de forma indistinta como mintérminos o maxtérminos, según conveniencia, en este caso se han incluido como mintérminos, pero adicionalmente ellos pueden ser incluidos o no en las agrupaciones. En el caso de este ejemplo el término d15 no se ha incluido ya que con los grupos formados se han cubierto a todos los mintérminos de la función. Los grupos formados son los siguientes:

3.3. SIMPLIFICACIÓN DE FUNCIONES DE CONMUTACIÓN

Grupo 1 =

m0 , m2 , m8 , m10

Grupo 2 = Grupo 3 =

m4 , m5 , m6 , m7 m2 , m6 , m10 , m14

Grupo 4 =

m9 , m13

41

Eliminando las variables que cambian en cada uno de los grupos, se obtiene la siguiente función simplificada: f 4 (α0 , α1 , α2 , α3 ) = (¬α1 ∧¬α3 ) ∨ (¬α0 ∧α1 ) ∨ (α2 ∧¬α3 ) ∨ (α0 ∧¬α2 ∧α3 )

3.3.3. Simplificación por Quine-McCluskey Este método de simplificación de funciones de conmutación es un algoritmo tabular con base en los mapas de Karnaugh. Permite la implementación de una metodología sistemática para encontrar una función mínima con la ventaja adicional de poder manejar un gran número de variables, lo cual es de gran ayuda ya que los mapas de Karnaugh están limitados en la practica a sólo cuatro o máximo cinco variables [6, 9]. El método inicia con una lista enumerada de todos los mintérminos de una función de aridad n, agrupados en forma ordenada de acuerdo al número de unos “1” que contiene cada uno. Lo anterior con el fin de identificar todos los posibles términos adyacentes los cuales se caracterizan por diferenciarse en solo una variable. Seguidamente en una nueva columna se anota el resultado de búsqueda de mintérminos adyacentes entre grupos vecinos. En esta nueva lista se debe indicar mediante un signo de guión “-” la variable que cambia y adicionalmente señalar los términos agrupados desde la columna anterior. En esta nueva columna lo que se ha logrado es la identificación de términos con n-1 variables producto de la simplificación de una de ellas gracias a la adyacencia. El paso anterior se debe repetir iterativamente adicionando nuevas columnas hasta que no sea posible agrupar más términos. Cada nueva columna implica términos con una variable menos. Al final, los términos no señalados (es decir aquellos no agrupados en un grupo mayor) serán los candidatos a cubrir completamente la función de forma mínima. Finalmente se debe hacer una tabla que liste en las columnas todos los mintérminos y en las filas los términos no agrupados en los pasos anteriores. Lego se indica mediante un signo “X” los mintérminos que abarca un término determinado. Los mintérminos cubiertos por solo un término determinan a términos esenciales para cubrir la función. Luego de la identificación de todos los mintérminos cubiertos por los términos esenciales se busca el mínimo número de términos adicionales que abarquen a los mintérminos no cubiertos aún. Ejemplo: Simplificar la siguiente función empleando el método tabular de Quine-McCluskey.

42

CAPÍTULO 3. ANÁLISIS Y SÍNTESIS DE AUTOMATISMOS

f 4 (α0 , α1 , α2 , α3 ) =



m {0, 2, 3, 6, 7, 8, 9, 10, 13}

El primer paso consiste en realizar la lista enumerada de todos los mintérminos ordenados de acuerdo al número de “1” en cada uno de ellos. Columna 1 Mintérminos

α0 α1 α2 α3

0

0000

Cero unos

2 8

0010 1000

Dos unos

3

0011

6 9

0110 1001

10

1010

7

0111

Cuatro

13

1101

Unos

Tres unos

Tabla 3.13: Lista de Mintérminos Ordenados por Vecindad A continuación se realiza la búsqueda de términos adyacentes entre vecinos de la primera columna y el resultado se anota en una nueva columna, tal como se muestra a continuación: Columna 1 Mintér

α0 α1 α2 α3

0

0000

2 8

0010 1000

Columna 2 Mintér *

α0 α1 α2 α3

0y2

00_0

0y8

_000

* *

2y3

001_

2y6 2 y 10

0_10 _010

3

0011

*

6

0110

*

8y9

100_

9 10

1001 1010

* *

8 y 10

10_0

3y7

0_11

7 13

0111 1101

* *

6y7 9 y 13

011_ 1_01

Tabla 3.14: Primera Búsqueda de Términos Adyacentes

3.3. SIMPLIFICACIÓN DE FUNCIONES DE CONMUTACIÓN

43

Seguidamente se continúa con la búsqueda de adyacencias, ahora entre los términos de la segunda columna y los resultados se anotan en otra nueva columna, tal como se indica a continuación:

Columna 1

Columna 2

Mintér

α0 α1 α2 α3

0

0000

*

Columna 3

Mintér

α0 α1 α2 α3

0y2

00_0

*

0,2,8,10

α0 α1 α2 α3 _0_0

T1

0y8

_000

*

2,3,6,7

0_1_

T2

001_ 0_10

* *

Mintér

2

0010

*

8

1000

*

2y3 2y6

3

0011

*

2 y 10

_010

*

6 9

0110 1001

* *

8y9 8 y 10

100_ 10_0

T3 *

10

1010

*

7

0111

*

3y7 6y7

0_11 011_

* *

13

1101

*

9 y 13

1_01

T4

Tabla 3.15: Segunda Búsqueda de Términos Adyacentes

Como ya no es posible realizar nuevas agrupaciones entre los términos de la tercera columna, entonces se procede a identificar los términos que no han sido agrupados, con los cuales ahora se realiza una nueva tabla con ellos listados en las filas y todos los mintérminos de la función en las columnas, tal como se indica a continuación:

T1

0,2,8,10

_0_0

T2 T3

2,3,6,7 8,9

0_1_ 100_

T4

9,13

1_01

0

2

X

X X

3

6

7

8

9

X X

X

10

13

X

X X

X X

X

Tabla 3.16: Listado de Términos No Agrupados y Mintérminos

De la tabla anterior se puede observar que el término T1 es esencial para la función ya que es el único que cubre a los mintérminos 0 y 10, además el término T2 igualmente es esencial al ser el único de cubre los mintérminos 3, 6 y 7, e igualmente T4 es el único que cubre al mintérmino 13. Con estos tres términos esenciales se cubre la totalidad de los mintérminos de la función tal como se muestra a continuación:

CAPÍTULO 3. ANÁLISIS Y SÍNTESIS DE AUTOMATISMOS

44

T1 T2

0,2,8,10 2,3,6,7

_0_0 0_1_

* *

T3 T4

8,9 9,13

100_ 1_01

*

*

*

*

*

*

*

*

*

*

0

2

3

6

7

8

9

10

13

X

X X

X

X

X

X

X

X

X X

X

Tabla 3.17: Identificación de Términos que Cubren Todos los Mintérminos La función simplificada entonces es la siguiente: f 4 (α0 , α1 , α2 , α3 ) = (¬α1 ∧ ¬α3 ) ∨ (¬α0 ∧ α2 ) ∨ (α0 ∧ ¬α2 ∧ α3 )

3.4. Automatismos Secuenciales En los sistemas secuenciales los valores de las variables de salida, para un instante determinado, dependen no sólo de los valores de las entradas en ese instante (como era el caso de los sistemas combinacionales) sino también del estado presente en el cual se encuentre el sistema. En esta configuración, los estados se asocian con elementos de memoria que determinan el estado presente, el estado siguiente y la forma de hacer la transición de un estado a otro. Además, el valor del estado siguiente de los elementos de memoria es función de los valores de las entradas y del estado presente [1, 2, 6]. Se define como Variables de Estado a los valores binarios asociados con cada uno de los elementos de memoria. Un Estado es cada una de las combinaciones que puede tomar el conjunto de variables de estado, conteniendo toda la información necesaria para definir el comportamiento futuro. Con l variables de estado, un sistema secuencial posee 2l posibles estados, siendo éste un valor finito, de donde se deriva el nombre de Máquinas de Estados Finitos.

MEMORIA W1

Wl

wl

w1

LÓGICA x1 x2 xn

COMBINACIONAL

z1 z2 zm

Figura 3.18: Máquina de Estados Finitos

3.4. AUTOMATISMOS SECUENCIALES

45

Como se puede observar en la Figura 3.18, un sistema secuencial que posee n variables de entrada (x1 , x2 , ... , xn ), m variables de salida (z 1 , z2 , ... , zm ), l entradas a los elementos de memoria (w1 , w2 , ... , wl ) y l salidas de los elementos de memoria (W1 , W2 , ... , Wl ), las salidas y variables de estado son dadas por las siguientes funciones: zi

=

φn+l (x1 , x2 , ... , xn , W1 , W2 , ... , Wl ) i

wi

=

ϕn+l (x1 , x2 , ... , xn , W1 , W2 , ... , Wl ) i

Donde φn+l y ϕn+l son respectivamente la i − sima función de salida y de i i estado siguiente de aridad n + l.

3.4.1. Clasificación de los Sistemas Secuenciales 3.4.1.1. Máquinas de Mealy y de Moore De acuerdo con la topología adoptada por los sistemas secuenciales, se distinguen dos principalmente, dependiendo de si las salidas son función únicamente de las variables de estado o también de las entradas [2, 6, 10]. La primera es la Máquina de Mealy, donde en todo instante sus salidas son función de las variables de estado y de las entradas. La disposición de este autómata se puede observar en la Figura 3.19.

Entradas

Lógica combinacional para estado siguiente

Sistema

Lógica combinacional Salidas

de Memoria

Estado Presente

de Salida

Figura 3.19: Máquina de Mealy

La segunda es la Máquina de Moore, donde en todo instante sus salidas son función únicamente de las variables de estado. Esta topología se muestra en la Figura 3.20.

CAPÍTULO 3. ANÁLISIS Y SÍNTESIS DE AUTOMATISMOS

46

Entradas

Lógica combinacional para estado siguiente

Sistema de

Estado Presente

Lógica combinacional Salidas

Memoria

de Salida

Figura 3.20: Máquina de Moore

3.4.1.2. Sistemas Síncronos y Asíncronos Los sistemas secuenciales también se pueden clasificar en Síncronos y Asíncronos. Los síncronos son aquellos donde los cambios de estado y de las variables se realizan de forma sincronizada con los pulsos de un reloj sin importar que se presenten cambios entre pulsos consecutivos. En los sistemas asíncronos las variables de entrada actúan sobre el estado interno del sistema en el mismo instante que estas cambian de valor, o en otras palabras, las transiciones entre estados dependen de la frecuencia con que se presenten cambios en dichas señales.

3.4.2.

Diagrama de Estados

El Diagrama de Estados es una representación gráfica de un sistema secuencial que ayuda a presentar de forma clara la relación funcional existente entre las entradas, las salidas, el estado presente y el estado siguiente. En estos diagramas, los estados se representan como círculos, mientras las transiciones entre estados se indican mediante arcos orientados. En cada arco se relaciona los valores de las entradas y las salidas para la transición indicada. Otra forma de representación de un sistema secuencial es mediante la Tabla de Estados, en ella las columnas corresponden a los valores de las variables de entrada y las filas a los estados presentes del sistema. En cada celda se relaciona para el valor de entrada y de estado actual el estado siguiente y el valor de las salidas. En el diagrama de estados de la Figura 3.21, se muestra un ejemplo en el cual se tiene cuatro posibles estados en los cuales puede estar el sistema (representados por dos variables de estado ya que 22 = 4), una variable de entrada y una variable de salida.

3.4. AUTOMATISMOS SECUENCIALES

47 Entrada (x)

Estado Actual

0

1

A

C/0

B/1

B

B/1

C/0

C

A/0

D/1

D

D/1

A/0

Tabla 3.18: Ejemplo de Tabla de Estados 1 1

A

B

0 1

0 0 1 0

1 0 0 0

D 0 1

C 1 1

Figura 3.21: Ejemplo de Diagrama de Estados

Para este diagrama la respectiva tabla de estados es la que se muestra en la Tabla 3.18.

3.4.3. Dispositivos de Memoria Para la implementación de una máquina finita de estados es necesario contar entonces con dispositivos de memoria en los cuales se pueda guardar el valor de los estados presentes y con base en los cuales se pueda determinar el estado futuro al que pasará el sistema. Estos dispositivos son denominados Biestables, ya que conservan de forma permanente uno de dos estados posibles, 0 y 1. Para su estudio se considerará que el valor de la salida en un instante determinado de tiempo será Q(t) y el valor de salida para el estado siguiente será Q(t + 1) el cual dependerá del valor de las entradas y del estado presente [6, 10].

CAPÍTULO 3. ANÁLISIS Y SÍNTESIS DE AUTOMATISMOS

48

3.4.3.1. Latch Set-Reset El latch, conocido también como cerrojo estático, es un elemento de memoria cuyas señales de excitación o entrada determinan el estado del dispositivo. El dispositivo latch más básico se puede lograr utilizando una compuerta OR y retroalimentando la salida hacia una de las entradas como se muestra en la Figura 3.22. Si inicialmente ambas entradas se encuentran en un valor lógico de 0, la salida será igualmente 0. Al aplicar un valor lógico de 1 a la entrada libre, la salida pasará a un valor de 1 y éste se realimentará a la otra entrada con lo cual la salida estará estable en 1. Si seguidamente se aplica un valor de entrada de 0, la salida permanecerá en 1 debido al valor lógico de 1 en la entrada con realimentación. De la forma anterior se ha logrado guardar el valor 1 de forma permanente y este no cambiará a pesar de los valores que tome la entrada libre. Para este caso, al dispositivo se le denomina un latch set y de este mismo nombre asume la designación la entrada libre (S) ya que cuando ésta toma el valor lógico 1 la salida permanecerá indefinidamente en 1.

0 0

³1

1 0 1

³1

1 1 S

0

³1

1 Q

Figura 3.22: Latch Set Ahora, haciendo uso del teorema de involución y universalizando con compuertas NOR la configuración anterior se puede representar como se indica en la Figura 3.23. Entre la salida de la primera compuerta NOR y la entrada de la segunda se ha tomado una señal que claramente es la negación de la salida vista para el latch set (¬Q). A esta nueva configuración se le denomina latch reset, ya que análogamente al anterior, iniciando con valores lógicos de 0 en ambas entradas la salida de la primera NOR será 1, luego al aplicar un valor de 1 en la entrada libre se obtendrá el valor 0 a la salida de la primera NOR y un valor de 1 a la salida de la segunda NOR, éste último valor se retroalimenta con lo cual ahora la primera NOR tiene un valor de 1 en ambas entradas, lo cual vuelve y produce un 0 a la salida y la configuración tendrá un estado estable. Si luego se coloca un valor de cero a la entrada libre de la primera NOR nuevamente su salida será 0 y permanecerá así sin importar el valor lógico aplicado en la entrada libre. Dado el anterior comportamiento, esta configuración recibe el nombre de latch reset y la entrada se designa como (R).

3.4. AUTOMATISMOS SECUENCIALES

0

³1

³1 1

0

49

1

0

³1

³1 0

1

0

1 1

1

³1

³1

1

0

0 R

ØQ

Figura 3.23: Latch Reset Las dos configuraciones anteriores no tienen una aplicación útil ya que una vez se ha fijado un valor de 1 o 0 respectivamente en cada una de ellas, no es posible volver a cambiarlo. En la práctica se necesita de un dispositivo que permita ser activado o desactivado según los requerimientos. Si en la configuración del latch reset se deja libre una de las entradas a la segunda compuerta NOR (la que realiza la función de negación) se obtiene un sistema como el de la Figura 3.24, el cual es conocido como un latch set-reset o simplemente Latch SR.

S ³1 S

ØQ

³1

Q

³1

³1

R

ØQ

Q

S

Q

R

Q

R Figura 3.24: Latch Set-Reset En la Tabla 3.19 se muestra el valor que toma la salida Q para un latch SR de acuerdo con las secuencias de excitación mostradas. Se puede observar como al aplicar un valor lógico de 1 en la entrada S la salida Q irá inmediatamente a 1 independiente del valor presente en ella, además al aplicar un valor lógico de 1 en la entrada R la salida Q tomará el valor lógico 0. En la configuración

50

CAPÍTULO 3. ANÁLISIS Y SÍNTESIS DE AUTOMATISMOS

anterior, si las entradas S y R toman simultáneamente el valor lógico 1 las salidas Q y su complemento (¬Q) toman el valor 0, lo cual crea una condición de competencia entre las compuertas y, dependiendo de la estructura física de éstas, no se podría asegurar el valor de la salida. Por lo anterior la combinación de entrada R = S = 1 no es permitida para este sistema. S 0

R 0

Q 0

0

1

0

Se guarda un 1

1 0

0 0

1 1

Se guarda un 0

0

1

0

Entrada ilegal

0 1

0 1

0 X

Tabla 3.19: Secuencia de Excitación en una Latch SR. La tabla de excitación para el latch SR se muestra en la Tabla 3.20, con la cual además se puede encontrar la ecuación característica, relacionando el valor futuro de la salida con las entradas y el valor presente.

Entradas

Estado Presente

Estado Siguiente

S

R

Q(t)

Q(t + 1)

0

0

0

0

0

0

1

1

0

1

0

0

0

1

1

0

1

0

0

1

1

0

1

1

1

1

0

X

1

1

1

X

Tabla 3.20: Tabla de Excitación para el Latch SR.

La ecuación característica se puede verificar llevando los datos de la tabla de excitación para el latch SR a un mapa de Karnaugh y obteniendo la función simplificada para Q(t + 1): Q(t + 1) = S ∨ ¬R ∧ Q(t)

3.4. AUTOMATISMOS SECUENCIALES

51

3.4.3.2. Latch SCR Posee la misma configuración del latch SR, pero a su entrada se le dispone un arreglo que permite habilitar o inhibir los cambios de estado. De esta forma, se introduce un control en los valores de entrada restringiendo su aplicación al latch sólo cuando un valor lógico de 1 se aplica a la entrada de control C. Cuando la entrada de control tiene un valor lógico de 0 las entradas se inhiben y el latch SR no cambiará de estado ya que en set y reset tendrá simultáneamente el valor 0. La configuración de este latch y su representación se muestran en la Figura 3.25. Basado en el nombre de sus entradas, este latch recibe la designación de Latch SCR.

&

S

C

&

S

Q

R

Q

Q

S C R

Q

R Figura 3.25: Latch SCR La tabla de excitación y la ecuación característica para el latch SCR se muestran a continuación en la Tabla 3.21.

Entradas

Estado

Estado

Presente

Siguiente

C

S

R

Q(t)

Q(t + 1)

0

d

d

0

0

0

d

d

1

1

1

0

0

0

0

1

0

0

1

1

1

0

1

0

0

1

0

1

1

0

1

1

0

0

1

1

1

0

1

1

1

1

1

0

X

1

1

1

1

X

Tabla 3.21: Tabla de Excitación para el Latch SCR. Q(t + 1) = (S ∧ C) ∨ (¬R ∧ Q(t)) ∨ (¬C ∧ Q(t))

CAPÍTULO 3. ANÁLISIS Y SÍNTESIS DE AUTOMATISMOS

52

En la tabla y ecuación anterior se puede observar que cuando la entrada de control toma un valor lógico de 0, no importa que valores asuman las entradas S y R, el estado siguiente es siempre el mismo estado presente. Cuando la entrada de control toma el valor 1, la tabla es exactamente la misma que para el latch SR. 3.4.3.3. Latch D Es la misma configuración de una latch SCR, pero en este caso a la entrada R se asigna el valor negado de la entrada S, dando lugar a un único dato de entrada denominado D. La configuración y representación del Latch D se muestra en la Figura 3.26. Para este dispositivo, dada su configuración, la tabla de excitación del latch SCR se restringe a aquellos valores donde S es diferente de R dando como resultado que para poder almacenar un valor lógico, ya sea 1 o 0, se debe ingresar como dato el mismo valor a almacenar. La tabla de excitación se puede observar en la Tabla 3.22.

D

C

&

&

S

Q

D

Q

R

Q

C

Q

Figura 3.26: Latch D Entradas

Estado Presente

Estado Siguiente

C

D

Q(t)

Q(t + 1)

0

d

0

0

0

d

1

1

1

0

0

0

1

0

1

0

1

1

0

1

1

1

1

1

Tabla 3.22: Tabla de Excitación para el Latch D. A continuación se muestra la ecuación característica del latch D. Q(t + 1) = (D ∧ C) ∨ (¬C ∧ Q(t))

3.4. AUTOMATISMOS SECUENCIALES

53

3.4.3.4. Flip-Flop SR Los flip-flops realizan el cambio a un estado siguiente en sincronismo con los pulsos de un sistema de reloj, a diferencia de los latch donde cualquier cambio en las entradas producirá de inmediato el paso al estado siguiente. Para lograr este comportamiento, la configuración más empleada es la maestroesclavo de dos latch SCR. En ella, como puede observarse en la Figura 3.27, dos latch SCR comparten la misma señal de control pero complementada una en relación con la otra.

S R 1 C (reloj)

Maestro Q S C R Q

Esclavo Q S C R Q

S C R

Q Q

1

Figura 3.27: Flip-Flop SR

Cuando la señal del reloj, que es la misma señal de control, tiene un valor lógico de 0 el latch maestro se encuentra con sus entradas habilitadas mientras el latch esclavo las tiene inhibidas, esto hace que los valores en las entradas S y R sean tenidos en cuenta en el latch maestro pero ignorados en el latch esclavo. Luego cuando el reloj hace su transición de 0 a 1, el latch maestro ignorará los valores en sus entradas dando estabilidad en su salida y así permitiendo que el latch esclavo pase a su estado siguiente justo con la transición de subida del reloj. La tabla de excitación y ecuación característica del flip-flop SR se muestran a continuación, donde se puede observar que son iguales a la del latch SR con la única diferencia que los pasos a estado siguiente se producen justamente en el pulso de subida del reloj.

CAPÍTULO 3. ANÁLISIS Y SÍNTESIS DE AUTOMATISMOS

54

Entradas

Estado

Señal de

Estado

Presente

Activación

Siguiente

S

R

Q(t)

C

Q(t + 1)

0

0

0



0

0

0

1



1

0

1

0



0

0

1

1



0

1

0

0



1

1

0

1



1

1

1

0



X

1

1

1



X

Tabla 3.23: Tabla de Excitación para el Flip-Flop SR. Q(t + 1) = S ∨ ¬R ∧ Q(t) 3.4.3.5. Flip-Flop D Este flip-flop emplea para la configuración maestro esclavo a dos latch D. La representación y configuración se puede observar en la Figura 3.28.

Maestro D Q

D

C 1 C (reloj)

Esclavo D Q

D

Q

Q

C

Q

C

Q 1

Figura 3.28: Flip-Flop D La tabla de excitación para este flip-flop se reduce a la que se muestra en la Tabla 3.24. Estado

Señal de

Estado

Presente

Activación

Siguiente

D

Q(t)

C

Q(t + 1)

0

0



0

0

1



0

1

0



0

1

1



1

Entrada

Tabla 3.24: Tabla de Excitación para el Flip-Flop D.

3.4. AUTOMATISMOS SECUENCIALES

55

La ecuación característica se muestra a continuación. Q(t + 1) = D 3.4.3.6. Flip-Flop JK Este flip-flop se comporta igual a uno SR con la diferencia que elimina la restricción existente para S = R = 1. Para lograr este cometido, se realiza la configuración mostrada en la Figura 3.29, donde ahora la entrada J hace las veces de la entrada S y la entrada K de R. En esta configuración cuando J = K = 1 se obtiene la conmutación de la salida, es decir, si el estado presente es 0 entonces el siguiente será 1 y recíprocamente para un estado actual de 1.

& K J

Q

R C S

&

Q

J C K

Q

Q

reloj Figura 3.29: Flip-Flop JK La tabla de excitación resumiendo el comportamiento del flip-flop JK se muestra en la Tabla 3.25.

Entradas

Estado Presente

Señal de Activación

Estado Siguiente

J

K

Q(t)

C

Q(t + 1)

0

0

0



0

0

0

1



1

0

1

0



0

0

1

1



0

1

0

0



1

1

0

1



1

1

1

0



1

1

1

1



0

Tabla 3.25: Tabla de Excitación para el Flip-Flop JK. La ecuación característica está dada como se muestra a continuación. Q(t + 1) = ¬K ∧ Q(t) ∨ J ∧ ¬Q(t)

56

CAPÍTULO 3. ANÁLISIS Y SÍNTESIS DE AUTOMATISMOS

3.4.3.7. Flip-Flop T Es el mismo flip-flop JK donde las entradas J = K = 1. Este tipo de configuración, la cual se muestra en la Figura 3.30, se comporta como un conmutador (Toggle en inglés) cuando la entrada T toma un valor lógico de 1 y retendrá el estado actual si el valor de entrada es 0.

T

reloj

J C K

Q

T

Q

Q

C

Q

Figura 3.30: Flip-Flop T La tabla de excitación es un subconjunto de la tabla obtenida para el flipflop JK ya que se restringe a los valores de J y K iguales. Esta tabla de excitación se muestra en la Tabla 3.26. Estado

Señal de

Estado

Presente

Activación

Siguiente

T

Q(t)

C

Q(t + 1)

0

0



0

0

1



1

1

0



1

1

1



0

Entrada

Tabla 3.26: Tabla de Excitación para el Flip-Flop T. La ecuación característica se muestra a continuación. Q(t + 1) = ¬T ∧ Q(t) ∨ T ∧ ¬Q(t)

3.4.4. Implementación de Automatismos Secuenciales Para la implementación de automatismos secuenciales se puede seguir un algoritmo de diseño bien definido, el cual se describe a continuación [1, 6]: 1. A partir de la descripción de un problema se obtiene el diagrama de estados correspondiente y de éste la tabla de transiciones. 2. De acuerdo con el número de variables de estado se encuentra el número de filp-flops necesarios para la implementación y se determina su tipo, ya sea por conveniencia con el diseño o por requerimiento.

3.4. AUTOMATISMOS SECUENCIALES

57

3. Con la tabla de transiciones y el tipo de flip-flop escogido, se hallan las funciones de entrada a cada uno de los flip-flops y las funciones de salida. 4. El punto anterior entrega la información necesaria para representar gráficamente mediante un diagrama lógico el automatismo. Este diagrama lógico igualmente sirve como referencia para cualquier otro tipo de implementación independiente de la tecnología. Ejemplo Una máquina industrial realiza un proceso el cual consta de cuatro etapas, o estados, diferentes. Un operario mediante un pulsado sin rebote indica cuando la máquina debe cambiar de estado. Así, cuando el pulsador está en reposo, estado lógico 0, la máquina permanece en el estado actual y cuando el pulsador es activado la máquina avanza al siguiente estado. El automatismo debe terminar en el estado que inició. Siguiendo los pasos para la implementación del automatismo, a continuación se muestra inicialmente el diagrama de estados correspondiente. 0

0

1

00

01

1

1

11

10 1

0

0

Figura 3.31: Diagrama de Estados Automatismo Secuencial 1 Como existen cuatro estados posibles se requiere entonces de dos variables de estado, las cuales se han denominado como A y B respectivamente. El orden seleccionado para cada una de ellas se debe respetar durante toda la fase de diseño. La tabla de transiciones entonces será la siguiente: Estado Actual

Estado Siguiente Entrada (x) = 0 A B

Entrada (x) = 1 A B

A

B

0

0

0

0

0

1

0

1

0

1

1

0

1

0

1

0

1

1

1

1

1

1

0

0

Tabla 3.27: Tabla de Transiciones Automatismo Secuencial 1

58

CAPÍTULO 3. ANÁLISIS Y SÍNTESIS DE AUTOMATISMOS Como ya se determinó, se requiere de dos variables de estado para realizar la implementación, o sea que se necesita igual número de flip-flops, en nuestro caso se ha seleccionado el tipo JK. Si las entradas a cada uno de los flip-flops se designan respectivamente como JA KA y JB KB , entonces la tabla de verdad que describe las funciones para cada una de las entradas es la siguiente: Actual

x

Siguiente

FF A

FF B

A

B

A

B

JA

KA

JB

KB

0

0

0

0

0

0

d

0

d

0

0

1

0

1

0

d

1

d

0

1

0

0

1

0

d

d

0

0

1

1

1

0

1

d

d

1

1

0

0

1

0

d

0

0

d

1

0

1

1

1

d

0

1

d

1

1

0

1

1

d

0

d

0

1

1

1

0

0

d

1

d

1

Tabla 3.28: Excitación de Flip-Flops Automatismo 1 Con base en la tabla anterior se procede a obtener la simplificación de cada una de las funciones que representa respectivamente a cada entrada en los flip-flops. A continuación se muestran los mapas de Karnaugh respectivos para cada una de las entradas: A, B x 00 0

0 1

1

01

1

2 3

11

d

6

d

7

10

d

4

d

5

A, B x 00 0

d

0

1

d

1

JA=BÙx

01

d

2

d

3

11

1

6

10

7

4 5

KA=BÙx

Figura 3.32: Funciones Para el Flip-Flop A A, B x 00 0 1

1

0 1

01

d

2

d

3

11

d

6

d

7

JB=x

10

1

4 5

A, B x 00 0

d

0

1

d

1

01

1

2 3

11

1

6 7

10

d

4

d

5

KB=x

Figura 3.33: Funciones Para el Flip-Flop B

3.4. AUTOMATISMOS SECUENCIALES

59

Ahora se puede proceder a implementar el diagrama lógico para el automatismo secuencial pedido con base en las Figuras 3.32 y 3.33, el cual se puede observar en la Figura 3.34.

&

x

Q J C F-A K Q

A

Q J C F-B K Q

B

clk Figura 3.34: Diagrama Lógico Automatismo 1

El automatismo implementado en este ejemplo corresponde a una máquina de Moore, ya que en todo instante sus salidas solo dependen de las variables de estado. Particularmente, en este ejemplo las salidas son las mismas variables de estado. Ejemplo En una estación de prueba se realiza la verificación de cuatro propiedades diferentes de un producto. El producto terminado se coloca sobre una banda transportadora la cual lo llevará por las cuatro estaciones diferentes de prueba, una por cada propiedad a verificar. Sin embargo, estando en un estado cualquiera un operario puede decidir mediante dos pulsadores si continuar a la siguiente estación (ir a la derecha D) o si regresar a la estación previa (ir a la izquierda I). Por seguridad se desea instalar un sistema visual que indique al personal la dirección de movimiento de la banda transportadora, así: si la banda se mueve hacia la derecha se debe encender una luz roja R, si la banda se mueve hacia la izquierda se debe encender una luz verde V, si la banda se encuentra detenida entonces se deben encender ambas luces. Presionar derecha en la última estación indica regresar al inicio pero con un desplazamiento a la izquierda. Los pulsadores de dirección poseen enclavamiento mecánico que impide su accionamiento simultáneo. En este ejemplo se requiere de dos entradas (una por cada pulsador de dirección) y de dos salidas (una por cada luz indicadora). El primer paso es obtener el diagrama de estados a partir del enunciado, el cual se puede observar en la Figura 3.35 y donde el valor de las entradas y de las salidas en cada caso es indicado por la relación DI/RV.

CAPÍTULO 3. ANÁLISIS Y SÍNTESIS DE AUTOMATISMOS

60

0d 11

00 11

10 10

00

01

01 01

10 10 01 01

00 11

10

10 10 01 01

00 11

11

10 01

Figura 3.35: Diagrama de Estados Automatismo Secuencial 2

Dado que se tiene un total de cuatro estados se requerirá entonces de dos variables de estado las cuales serán designadas como Q1 y Q2, y para las cuales la tabla de transiciones se muestra a continuación:

Estado Actual Q1 Q2

Estado Siguiente DI = 00

DI = 01

A0

0

A/11

A/11

DI = 10 B/10

B0

1

B/11

A/01

C/10

C1

0

C/11

B/01

D/10

D1

1

D/11

C/01

A/01

Tabla 3.29: Tabla de Transiciones Automatismo Secuencial 2 De la Tabla 3.29 se puede deducir la tabla de verdad para cada una de las entradas de los 2 flip-flops que se requieren, solo basta seleccionar que tipo usar, en este caso se empleará flip-flops tipo T. Igualmente se realiza la tabla de verdad para las dos salidas. Los resultados se muestran en la Tabla 3.30. Seguidamente, y con base en la misma Tabla 3.30, se puede realizar la simplificación de cada una de las funciones de las entradas a los flipflops y para cada una de las salidas, tal como se puede observar en las Figuras 3.36 y 3.37.

3.4. AUTOMATISMOS SECUENCIALES Actual

61

Entradas

Siguiente

FF 1

FF 2

Q1

Q2

D

I

Q1

Q2

T1

T2

Salidas R

V

0

0

0

0

0

0

0

0

1

1

0

0

0

1

0

0

0

0

1

1

0

0

1

0

0

1

0

1

1

0

0

0

1

1

d

d

d

d

d

d

0

1

0

0

0

1

0

0

1

1

0

1

0

1

0

0

0

1

0

1

0

1

1

0

1

0

1

1

1

0

0

1

1

1

d

d

d

d

d

d

1

0

0

0

1

0

0

0

1

1

1

0

0

1

0

1

1

1

0

1

1

0

1

0

1

1

0

1

1

0

1

0

1

1

d

d

d

d

d

d

1

1

0

0

1

1

0

0

1

1

1

1

0

1

1

0

0

1

0

1

1

1

1

0

0

0

1

1

0

1

1

1

1

1

d

d

d

d

d

d

Tabla 3.30: Excitación de Flip-Flops Automatismo 2 Q1, Q2 01 11 10 D, I 00 0 4 12 8 00 1

01 11 10

d

5

13

1

15

d

3

d

7

d

2

1

6

1

14

9

11 10

T1=(Q2ÙD)Ú(Q1ÙØQ2ÙI)

Q1, Q2 01 11 10 D, I 00 0 4 12 8 00 01

1

1

5

1

13

1

15

d

14

1

11

d

3

d

7

d

10

1

2

1

6

1

9

11 10

T2=DÚ(Q2ÙI)Ú(Q1ÙI)

Figura 3.36: Funciones Para los Flip-flops del Automatismo 2

CAPÍTULO 3. ANÁLISIS Y SÍNTESIS DE AUTOMATISMOS

62

Q1, Q2 01 11 10 D, I 00 0 4 12 8 00

1

1

1

01

1

1

5

11

d

3

d

7

10

1

2

1

6

1

13

9

15

d

14

1

d

11 10

R=(DÙØI)Ú(ØQ1ÙØQ2)Ú (ØQ1ÙD)Ú(Q1ÙØQ2ÙD)

Q1, Q2 01 11 10 D, I 00 0 4 12 8 00

1

1

01

1

1

11

d

3 2

10

1

1

1

5

1

d

7

d

6

1

13

1

15

d

9

11

14

10

V=ØDÚ(Q1ÙQ2ÙD)

Figura 3.37: Funciones Para los Flip-flops del Automatismo 2 Finalmente, con base en la información anterior se obtiene el diagrama lógico de la Figura 3.38.

&

& ³1 T Q FF 1 C Q

&

D

& &

T Q FF 2 C Q

³1 R

& &

³1

I

&

³1

&

clk Figura 3.38: Diagrama Lógico Automatismo 2 El automatismo implementado en esta ocasión corresponde a una máquina de Mealy, ya que en todo instante sus salidas dependen de las variables de estado y del valor de las entradas.

3.5. Ejercicios Propuestos 1. Encontrar la función que describe el siguiente enunciado:

V

3.5. EJERCICIOS PROPUESTOS

63

La alarma de seguridad en un almacén sonará si se cumple una de las siguientes afirmaciones: Si las puertas están abiertas y se activa el sensor de humo Si las puertas están cerradas y se activa el sensor de humo Si las puertas están cerradas y se activa el sensor de movimiento 2. Encontrar la función que describe el siguiente enunciado: En un proceso industrial se prepara una mezcla mediante la combinación de 3 reactivos diferentes, para lo cual se dispone de 3 válvulas, una por cada uno. Un agitador activado por un motor se debe encender en cualquiera de los siguientes casos: Si se abre la válvula que deposita el primer reactivo Si se abre la válvula que deposita el segundo reactivo Si por cualquier razón están abiertas más de dos válvulas simultáneamente 3. Simplificar las siguientes funciones empleando únicamente los postulados y teoremas del álgebra de Boole: f 5 (α1 , α2 , α3 , α4 , α5 ) = (α1 ∧α2 α3 ∨α4 )∧(¬α3 ∨α4 )∧(¬α3 ∨α4 ∨α5 ) f 3 (α1 , α2 , α3 ) = ¬α2 ∧ (α2 ∨ α3 ) ∨ ¬α1 ∨ (α1 ∧ α3 ) f 3 (α1 , α2 , α3 ) = (α1 ∧ α2 ) ⊕ (α1 ∧ α3 ) f 4 (α1 , α2 , α3 , α4 ) = ¬ {(α2 ⊕ ¬α3 ) ∨ ¬(α1 ∧ α2 ) ∧ ¬(¬α1 ∨ α3 )} 4. Llevar las siguientes funciones a su representación SOP canónica: f 3 (α1 , α2 , α3 ) = (¬α2 ∧ ¬α3 ) ∨ (α1 ∧ α3 ) ∨ (¬α1 ∧ α2 ∧ ¬α3 ) f 4 (α1 , α2 , α3 , α4 ) = (α1 ∧ α2 ∧ ¬α3 ) ∨ (¬α2 ∧ ¬α3 ) ∨ (α1 ∧ α3 ∧ α4 ) ∨ (¬α1 ∧ α2 ∧ α3 ∧ α4 ) 5. Llevar las siguientes funciones a su representación POS canónica: f 3 (α1 , α2 , α3 ) = (α1 ∨ α2 ∨ α3 ) ∧ (α1 ∨ ¬α3 ) ∧ (¬α2 ∨ α3 ) f 4 (α1 , α2 , α3 , α4 ) = (α1 ∨ α3 ∨ ¬α4 ) ∧ (α2 ∨ α3 ∨ α4 ) ∧ (¬α1 ∨ α2 ∨ α3 ) 6. Simplificar las siguientes funciones empleando los Mapas de Karnaugh:  f 4 (α1 , α2 , α3 , α4 ) = m(2, 3, 4, 8, 9, 12, 13, 14)  f 3 (α1 , α2 , α3 ) = m(3, 5, 6, 7)  f 4 (α1 , α2 , α3 , α4 ) = m(3, 4, 6, 7, 11, 14, 15)   f 4 (α1 , α2 , α3 , α4 ) = m(0, 2, 4, 5, 7) + d(6, 8, 10, 15)   f 4 (α1 , α2 , α3 , α4 ) = M (0, 7, 10, 15) . d(2, 12)

64

CAPÍTULO 3. ANÁLISIS Y SÍNTESIS DE AUTOMATISMOS 7. Simplificar las siguientes funciones con base en el método tabular de Quine-McCluskey:  f5 (α1 , α2 , α3 , α4 , α5 ) = m(1, 3, 5, 7, 11, 12, 21, 26, 27, 29, 30, 31) + d(14, 15, 20, 23)  f5 (α1 , α2 , α3 , α4 , α5 ) = m(3, 4, 6, 11, 12, 13, 14, 17, 19, 20, 22, 30) + d(2, 10, 15, 16, 24) 8. Obtener el diagrama de estados y el circuito secuencial que implemente el problema propuesto: En un sistema industrial de manufacturación se tiene un conjunto de tres labores, las cuales se deben realizar en sincronismo con los pulsos de un reloj de tal forma que con el reloj contando de 0 a 7 en cada cuenta impar se debe realizar el proceso 1, en cada cuenta par el proceso 2 y en la cuenta igual a 5 el proceso 3. El circuito a diseñar consta del sistema de conteo y tres salidas (una por cada proceso) de tal forma que cada una tenga un valor lógico de uno para indicar que su respectivo proceso se debe realizar. Una puerta codificada requiere la introducción de la cadena binaria 1101 para validar su apertura. El sistema debe exigir la introducción completa de la cadena cada vez que detecte un ingreso incorrecto, es decir si por ejemplo alguien introduce 1011 los dos últimos unos no pueden ser tomados como el inicio de la cadena correcta y por lo que en este caso se debe introducir 10111101. El circuito a implementar consta de una entrada sin rebote que permite el ingreso de los valores binarios, la lógica secuencial que detecta la cadena correcta y una salida que se pone en un valor lógico de uno para permitir la apertura de la puerta.

Bibliografía [1] Floyd, Thomas L. Fundamentos de Sistemas Digitales, 7ma Ed Prentice Hall 2000. ISBN 84-205-2994-X [2] García Moreno, Emilio. Automatización de Procesos Industriales Alfaomega 2001. ISBN 970-15-0658-8 [3] Groenendijk, Jeroen. Stokhoff, Martin Dynamic Predicate Logic Department of Computational Linguistics, University of Amsterdam, 1990. [4] Ivorra Castillo, Carlos Lógica y Teoría de Conjuntos. [5] Labra Gayo, Jose Emilio. Fernández Lanvin, Daniel. Lógica de Predicados. Cuaderno Didáctico, Universidad de Oviedo. [6] Nelson, Victor P. Nagle, H. Troy. Carroll, Bill D. Irwin, J. David. Análisis y Diseño de Circuitos Lógicos Digitales Prentice Hall 1996. ISBN 968-880-706-0. [7] Rios Luis H., Alzate Alfonso. Sistemas Digitales ISBN: en trámite, 2008. [8] Teller, Paul A Modern Formal Logic Primer: Volume II, Predicate Logic and Metatheory (TBD) 1st Ed Prentice Hall Callege Div, 1989. ISBN-13: 978-0139031700. [9] Tinder, Richard F. Engineering Digital Design, 2nd Ed Academic Press 2000. ISBN 0-12-691295-5. [10] Wakerly, John F. Digital Design: Principles and Practices, Third Edition Prentice Hall, 1999. ISBN-10: 0137691912, ISBN-13: 978-0137691913. 65

Capítulo 4

LÓGICA CABLEADA 4.1. Dispositivos de Mando y Control 4.1.1. El Contactor Elemento básico sobre el cual se fundamenta una lógica de tipo “todo o nada”, la cual corresponde a operaciones del tipo “abierto o cerrado”, “verdadero o falso”, “1 ó 0”, “caliente o frío”, etc. El contactor es un dispositivo compuesto por pares metálicos montados sobre un mecanismo el cual puede mantenerlos en estado de unión o separación, representando así la naturaleza “todo o nada”. En el estado de unión se presentará conducción ya que habrá una resistencia ideal de cero entre los contactos y en el estado de separación se presentará no conducción por la presencia de resistencia infinita entre los pares metálicos [4]. Lo importante de este accionamiento es la utilización externa del estado en el cual se encuentren los contactos o pares metálicos [2, 6]. El contactor es un dispositivo mecánico de accionamiento mediante electroimán. Cuando la bobina del electroimán se encuentra bajo tensión, el contactor se cierra, estableciendo un camino a través de los pares metálicos entre una red de alimentación y un receptor. El desplazamiento de la parte móvil del electroimán que arrastra las partes móviles de los pares metálicos puede ser rotacional, lineal o combinación de los dos anteriores. Cuando se suspende la alimentación de la bobina, el circuito magnético se desmagnetiza y regresa a su posición de reposo debido a la acción conjunta de resortes que actúan como elementos de reposición tanto en los mismos pares metálicos como en la parte móvil de la armadura, y de la acción de la misma gravedad en determinados equipos. A continuación se presentan los principales elementos que forman un contactor: El Electroimán: Se comporta como el elemento proveedor de desplazamiento de los contactos. Se compone principalmente del circuito magnético y la bobina. Su forma depende del tipo de contactor y de si la fuente 67

68

CAPÍTULO 4. LÓGICA CABLEADA de alimentación es de corriente continua o alterna. El circuito magnético incluye un entrehierro reducido en posición “cerrado”. El recorrido de llamado es la distancia entre la parte fija y la móvil cuando el contactor se encuentra en reposo. Los resortes de reposición se comprimen durante el recorrido de aplastamiento y hasta el final del mismo. El circuito magnético para corriente continua posee chapas de acero al silicio unidas mediante remache o soldadura y circuito laminado para reducir las corrientes de Foucault.1 Para el circuito magnético en corriente continua se puede emplear dependiendo del caso ya sea el mismo circuito magnético laminado de corriente alterna o específicamente un electroimán para corriente continua de acero macizo [4].

La Bobina: Es la encargada de generar el flujo magnético requerido para atraer la parte móvil de la armadura. Está diseñada para soportar los choques mecánicos provocados por los cierres y aperturas del circuito magnético y los choques electromagnéticos que se producen cuando la corriente recorre las espiras. Pares Metálicos: También denominados como polos, establecen o interrumpen la corriente dentro del circuito de potencia. Se dimensionan para soportar la corriente nominal del contactor en servicio permanente sin presentar calentamientos. Su fabricación se basa en una aleación de plata resistente a la oxidación y al arco. Estos pares metálicos pueden estar dispuestos de tal forma que en estado de reposo permitan o no el paso de la corriente y en estado de accionamiento la operación inversa [3]. Contactos Auxiliares: Realizan funciones de automantenimiento, esclavización, enclavamiento de contactos y señalización. Se pueden identificar tres tipos básicos, a saber: 1. Contactos instantáneos de cierre: se encuentran normalmente abiertos en posición de reposo, NA, y se cierran cuando el contactor está bajo tensión. 2. Contactos instantáneos de apertura: se encuentran normalmente cerrados en posición de reposo, NC, y se abren cuando el contactor está bajo tensión. 3. Contactos instantáneos NA/NC: Los dos contactos comparten un polo en común. En reposo el contacto NA se encuentra abierto y el NC cerrado. Con la energización de la bobina del contactor ambos cambian de estado. Contactos Principales: Realizan las operaciones de paso o interrupción de corriente a los receptores. 1 Las corrientes de Foucault reducen el flujo útil de una corriente magnetizante y calientan innecesariamente el circuito magnético

4.1. DISPOSITIVOS DE MANDO Y CONTROL

69

Sistema de Soplado: Normalmente un contacto se abre para interrumpir el paso de corriente que previamente llegaba hasta el equipo receptor. En la mayoría de los casos los equipos son de tipo inductivo y solo con muy pocas excepciones la corriente no se interrumpe de manera instantánea.2 Cuando la corriente es superior a un amperio, se establece un arco eléctrico entre los pares metálicos cuando se separan. El arco es una forma de descarga eléctrica en los gases o en vacío, su parte central alcanza la temperatura máxima que a menudo supera varios miles de grados, valores muy superiores a los que pueden superar los metales y los aislantes utilizados en la fabricación de contactos. De lo anterior se deduce que se debe limitar la duración del arco, ni demasiado largo como para que se deterioren las paredes o los materiales metálicos, ni demasiado corto con el fin de limitar las sobretensiones producto de los cambios muy rápidos en la corriente del circuito de carga. Para controlar este arco, se sitúan piezas ferromagnéticas que crean un campo perpendicular al arco con el fin de atraerlo y enfriar el medio lo más rápido posible [4]. La Figura 4.1 muestra un esquema resumido de los principales componentes de un contactor, mientras que la Figura 4.2 muestra la representación esquemática del mismo.

Contactos móviles Resortes de reposición contactos Contactos fijos Cámara soplado de arco

Armadura móvil Resorte de reposición armadura Bobina Armadura fija

Base

Figura 4.1: Componentes de un Contactor

2 La corriente se interrumpe de forma instantánea solo en el caso de una apertura en el momento justo de cruce por cero de una corriente alterna.

CAPÍTULO 4. LÓGICA CABLEADA

70

Bobina A1

A

Contactos de Potencia 1

A2

2

3

4

5

6

41

42

Contactos auxiliares 13

14

23

24

31

32

Contactos auxiliares Contactos auxiliares de cierre de apertura Figura 4.2: Representación y Numeración de Contactos La numeración de los contactos se realiza mediante pares ordenados (1,2), (3,4), etc. para los contactos principales y mediante pares (#1,#2) y (#3,#4) para los contactos auxiliares instantáneos de apertura y los de cierre respectivamente. El símbolo # representa la numeración consecutiva de contactos iniciando siempre por los normalmente abiertos, así para un contactor con dos contactos auxiliares instantáneos de cierre y dos de apertura la numeración respectivamente es: (13,14), (23,24), (31,32) y (41,42) [ 3, 5]. 4.1.1.1. Categorías Según el Empleo En la elección de un contactor para un uso específico se determina la capacidad del aparato para establecer, soportar e interrumpir la corriente en el receptor bajo control, con unas condiciones de utilización, sin presentar recalentamiento o desgaste excesivo de los contactos. En la elección de un contactor se debe tener en cuenta los siguientes aspectos. Tipo y características del receptor a controlar: intensidad y tipo de corriente, tensión, regímenes transitorios, etc. Condiciones de explotación: ciclos de maniobra, factor de marcha, cortes en vacío o con carga, coordinaciones, durabilidad eléctrica, etc. Condiciones ambientales: temperatura, humedad, altitud, etc. En la norma IEC 158-1 se establecen categorías de los contactores según su empleo en corriente alterna de la siguiente manera [4]: Categoría AC1: Se aplica a todos los receptores que emplean corriente alterna y cuyo factor de potencia es al menos igual a 0,95. Categoría AC2: Se refiere al arranque, frenado en contracorriente y marcha a impulsos en motores de anillos. Al cierre, el contactor establece la intensidad de arranque, del orden de 2,5 veces la intensidad nominal del motor. Categoría AC3: Se refiere a los motores de jaula de ardilla, el corte se realiza a motor lanzado. Al cierre, el contactor establece la intensidad de arranque, del orden de 5 a 7 veces la intensidad nominal de motor.

4.1. DISPOSITIVOS DE MANDO Y CONTROL

71

Categoría AC4: Se refiere al arranque, frenado en contracorriente y marcha a impulsos en motores de jaula de ardilla. El contactor se cierra con un arco que puede alcanzar de 5 a 7 veces la intensidad nominal del motor.

4.1.2. El Relé Su operación, constitución y finalidad es igual a las ya descritas para un contactor. Su diferencia principal radica en que el relé sólo posee contactos auxiliares, por lo que no se emplea para controlar los accionamientos de los receptores. Debido a que sus contactos son todos auxiliares, se emplea en la sección de control de un circuito con el fin de actuar como elemento de automantenimiento, esclavización, enclavamiento de contactos, señalización y protección.

4.1.3. Relé de Enclavamiento Éste es un tipo especial de relé que posee dos bobinas, una bobina principal de operación normal, la cual al ser energizada cambia el estado de los contactos que son todos del tipo auxiliar, pero una vez desenergizada los contactos no regresan al estado de reposo debido a la acción de un dispositivo de enclavamiento. Para regresar los contactos al estado de reposo es preciso energizar una bobina auxiliar la cual es la encargada de retirar el enclavamiento. Este tipo de relé se emplea como función de memoria en un proceso, permitiendo recordar el estado en el cual se encontraba un proceso ante posibles cortes en el suministro de potencia del circuito de control y reanudar en la posición correcta [4, 5].

4.1.4. Contactor con Bobina de Autorretención Es un contactor que posee además de la bobina principal una adicional de bloqueo o de autorretención. La función de la bobina de bloqueo es impedir el accionamiento de la bobina principal, así si la bobina principal no ha sido energizada, y por ende los contactos se encuentran en posición de reposos, y se energiza la bobina de autorretención los contactos permanecerán en sus posiciones de reposo así se energice la bobina principal. La bobina de bloqueo sólo actúa como medio para impedir el recorrido de la bobina principal desde su posición de reposo al de energización más no al contrario, es decir, no se puede emplear como medio para regresar los contactos al estado de reposo [4, 5].

4.1.5. Relé de Temporización al Trabajo (Relé Tipo ON) Son relés dotados de un mecanismo neumático o electrónico el cual retarda el accionamiento de contactos auxiliares desde la energización de la bobina del relé y por un tiempo programado mediante algún elemento de ajuste (tornillo

CAPÍTULO 4. LÓGICA CABLEADA

72

guía o potenciómetro). Estos relés también pueden poseer contactos auxiliares instantáneos los cuales cambiarán de estado inmediatamente se energiza la bobina, pero los contactos auxiliares temporizados retardan su conmutación por el tiempo ajustado, sin embargo cuando se desenergiza la bobina del relé, todos los contactos auxiliares, ya sean instantáneos o temporizados, regresan al estado de reposo. En este tipo de relé, si antes de terminarse la temporización para conmutación se desenergiza la bobina, los contactos temporizados no cambian de estado, es decir, permanecen en reposo. En la Figura 4.3 se observa la representación de contactos y un diagrama de tiempo de su operación ante posibles situaciones de energización de bobina versus tiempo de ajuste, además se puede notar el tipo de numeración que siguen los contactos temporizados mediante el par (#5,#6) para los contactos temporizados a su apertura y el par (#7,#8) para los contactos temporizados a su cierre [3, 5].

Bobina A1

TRon A2

Contactos instantáneos 13

14

21

22

Contactos temporizados 37

38

TR-TC

45

46

Bobina Instantáneo Temporizado Ajuste

Ajuste

TR-TA

Figura 4.3: Representación y Operación de Relé Tipo ON

4.1.6. Relé de Temporización al Reposo (Relé Tipo OFF) Son relés dotados de un mecanismo neumático o electrónico el cual retarda el regreso al estado de reposo de contactos auxiliares luego de la desenergización de la bobina del relé y por un tiempo programado mediante algún elemento de ajuste. Estos relés también pueden poseer contactos auxiliares instantáneos los cuales cambiarán de estado inmediatamente se energice la bobina al igual que lo harán los contactos auxiliares temporizados, sin embargo cuando se desenergice la bobina solo los contactos instantáneos regresan de forma inmediata al reposo mientras que los temporizados retardan dicha acción por el tiempo de ajuste. En este tipo de relé, si se vuelve a energizar la bobina antes de terminar la temporización, los contactos auxiliares temporizados continuarán en su estado conmutado y volverán a temporizar con la nueva desenergización de la bobina, es decir, no harán conmutación a reposo. En la Figura 4.4 se observa la representación de contactos y un diagrama de tiempo para su operación ante posibles situaciones de energización de bobina versus tiempo de ajuste, además se puede notar que el tipo de numeración que siguen los contactos es

4.1. DISPOSITIVOS DE MANDO Y CONTROL

73

igual al del relé tipo ON con la única diferencia que ahora un contacto auxiliar temporizado que en reposo está normalmente abierto temporiza su apertura mientras que en un tipo ON temporiza su cierre y análogamente para un contacto auxiliar temporizado que en reposo está normalmente cerrado [3, 5].

Bobina A1

TRoff

A2

Contactos instantáneos 13

14

21

22

Contactos temporizados 37

38

TR-TA

45

46

Bobina Instantáneo Temporizado Ajuste

Ajuste

TR-TC

Figura 4.4: Representación y Operación de Relé Tipo OFF

4.1.7. Relé de Temporización al Trabajo y al Reposo Son relés dotados de un mecanismo electrónico que implementa simultáneamente las características de los relés temporizados al trabajo y al reposo. Su operación se basa en un oscilador el cual se emplea como elemento base de conteo para la temporización y que además definirá la resolución de las unidades de tiempo para temporización. Ya que su funcionalidad se puede representar por la suma de un relé tipo ON más de uno tipo OFF no se realizarán posteriores discusiones sobre su funcionamiento [4].

4.1.8. Elementos de Mando Son elementos empleados para ingresar las órdenes hacia los dispositivos de control con el fin de actuar sobre los órganos receptores, los cuales en general son elementos de potencia que forman la parte operativa del sistema. Aunque existen muchos elementos de mando solo se verán los necesarios para el desarrollo de las siguientes secciones y que servirán como interfaz entre el hombre y el sistema [2, 3, 5, 6, 8]. Breaker: Aparato mecánico que protege los circuitos contra corto circuitos dentro de unos límites de corte asignados con la característica que la apertura de uno solo de los polos es suficiente para abrir todos los demás. Adicionalmente permite protección por sobre cargas. Pulsadores: Representan el elemento natural de ingreso de órdenes de tipo “Todo o Nada”. Son elementos que no retienen el cambio de posición,

CAPÍTULO 4. LÓGICA CABLEADA

74

así, si se emplea un pulsador que en estado de reposo es normalmente abierto al pulsarlo pasará al estado cerrado y permanecerá así hasta que se libere regresando entonces de inmediato a su estado de reposo. Los hay con estado de reposo normalmente abierto y con estado de reposo normalmente cerrado. Indicadores: Son elementos que van ubicados en el lado de control cumpliendo propósitos de información, seguridad o detección de estado actual de otros elementos de mando y/o control. Pueden ser luces indicadoras, alarmas visuales o sonoras y demás elementos informativos. La Figura 4.5 muestra la representación gráfica de algunos de los elementos de mando y protección más comúnmente empleados.

Pulsadores

Normalmente Normalmente Pulsadores con abierto cerrado enclavamiento Protecciones

Braker bipolar

Fusible

Relé de sobrecorriente

Figura 4.5: Simbología Elementos de Mando y Protección

4.2. Funciones Básicas de Lógica Cableada 4.2.1. Función Interruptor y Función Sello Consiste en implementar a partir de un pulsador normalmente abierto, que actúa como acción de encendido, y de uno normalmente cerrado, que actúa como acción de apagado, la funcionalidad de un interruptor monopolar que retiene efectivamente el estado actual así se libere el pulsador. En la Figura 4.6 se muestra la implementación y un diagrama de tiempo donde se observa el comportamiento de un órgano receptor cualesquiera (en este caso se emplea una luz) ante diferentes acciones de los elementos de mando. El contacto normalmente abierto del contactor A que va en paralelo con el pulsador P1 es el encargado de retener la instrucción de encendido por lo que frecuentemente se le refiere con el nombre de función sello.

4.2. FUNCIONES BÁSICAS DE LÓGICA CABLEADA

75

Circuito de control P1

P2 P2

CR

P1

CR

CR A

A

CR

B

Circuito de potencia B A

Figura 4.6: Función Interruptor

4.2.2. Función Detector de Flancos Consiste en realizar una implementación que permita a un órgano receptor ver solo la conmutación de bajo a alto (flanco de subida) o de alto a bajo (flanco de bajada) de un pulsador normalmente abierto [5, 7]. En este caso se asocia el estado de pulsación como el nivel alto (conducción) y el estado de reposo como el nivel bajo (no conducción).

Circuito de control P1

P1

CR1

CR1 CR1

CR2

CR1

A

CR2

CR2 A,B

Circuito de potencia B A

Figura 4.7: Función Flanco de Subida.

P1

CAPÍTULO 4. LÓGICA CABLEADA

76

La Figura 4.7 muestra el diseño para un circuito detector de flancos de subida, donde la duración del pulso en la bobina A y la carga B es de solo un instante de conmutación o del tiempo que toma realizar un scan de programa en las implementaciones basadas en lenguajes de programación. La configuración de contacto abierto de CR1 en serie con el contacto cerrado de CR2 recibe el nombre de detector de flanco de subida. La configuración para un detector de flancos de bajada se muestra en la Figura 4.8, donde la topología asociada es el contacto cerrado de CR1 en serie con el contacto abierto de CR2.

Circuito de control P1

P1

CR1

CR1 CR1

CR2

CR1

A

CR2

P1

CR2 A,B

Circuito de potencia B A

Figura 4.8: Función Flanco de Bajada. En general, para la gran mayoría de implementaciones de funciones que se realizan en las secciones siguientes, el circuito de potencia siempre consiste en realizar la activación de un órgano receptor mediante el empleo de un contacto de potencia perteneciente al contactor adecuado, por tanto, a menos que se requiera de una implementación diferente en potencia se seguirá obviado esta parte en los circuitos implementados, no con ello ignorándola.

4.2.3. Función Toggle La función toggle se puede realizar con base en las implementaciones para los detectores de flancos y consiste en hacer que una carga permanezca en su estado actual hasta que ocurra un nuevo flanco, momento en el cual debe conmutar de estado [7]. En esta implementación al presionar, o soltar, un pulsador se ocasiona que una carga se active, la cual debe permanecer en ese estado aunque se libere el pulsador, la carga sólo debe pasar al estado de reposo en el instante que se vuelva a pulsar, o soltar, y debe permanecer inactiva hasta

4.2. FUNCIONES BÁSICAS DE LÓGICA CABLEADA

77

la siguiente pulsación. Como ejemplo, en la Figura 4.9 se muestra la implementación de un circuito toggle ante flancos de bajada para la activación de un órgano receptor cualquiera A.

Circuito de control P1

P1 P1 P1 P1 P1 P1

CR1 CR2

CR1 CR1

CR2

CR4

CR1, CR2

CR3

CR4 CR3, A

CR3 CR2

CR1

CR3

CR4

CR4 A

CR3

Figura 4.9: Función Toggle.

4.2.4. Función Memoria Biestable Permite almacenar un dato binario (1, 0) haciendo uso de una bobina de contactor [3, 7]. En la Figura 4.10 cuando se presiona el pulsador P1 se almacena un 1 lógico en la bobina Q, dato que permanece indefinidamente almacenado hasta cuando se presione el pulsador P2 el cual pone la salida inmediatamente en un valor de 0 lógico. El pulsador P1 hace las veces de set y el pulsador P2 las veces de reset en analogía con el dispositivo latch visto en la Sección 3.4.3.1.

Circuito de control P1 P1 P2 P2

P1 S

P2

R

S

R

Q

S R Q

Q

Figura 4.10: Función Memoria Biestable

CAPÍTULO 4. LÓGICA CABLEADA

78

4.2.5. Función Tren de Pulsos Consiste en implementar un circuito de lógica cableada que permita la permutación de una carga entre el estado de encendida por un tiempo dado t 1 y el estado apagada durante un tiempo dado t 2 [5, 7]. La implementación se realiza haciendo uso de pares de relés de temporización los cuales se pueden emplear en cualquier combinación (2 ON, 2 OFF y ON con OFF) [5]. Si se desea que el ancho del pulso de trabajo sea igual al ancho del pulso de reposo se puede emplear un único relé de temporización haciendo uso de una función de memoria biestable. En la Figura 4.11 se muestra la implementación y diagrama de tiempo para la función tren de pulsos realizada con dos relés de temporización ON, mientras en la Figura 4.12 se muestra la implementación con dos relés de temporización OFF y con un solo relé ON.

Circuito de control P1

P2

P2 CR TR1

CR CR

TR2-TA

TR2

TR1-TC CR

TR1

TR1-TA

A

t1 ON t2 ON

TR2 A t1

t2

Figura 4.11: Función Tren de Pulsos con 2 Relés ON

En el diagrama de la derecha en la Figura 4.12 se puede observar el uso de un contacto de CR en la línea de alimentación vertical izquierda con el propósito de impedir que algún elemento se energice antes de la orden de inicio con el pulsador P2, además en esta implementación se ha hecho uso de la función memoria biestable guardando en el relé CR1 la información sobre el ciclo actual que se realiza en el tren de pulsos. Igualmente con el contactor A se puede tener un tren de pulsos donde el primer ciclo se realiza con carga encendida, mientras con el contactor B se obtiene el primer ciclo con carga apagada. En el diagrama de la izquierda el control para la carga A efectúa un tren de pulsos que inicia con primer ciclo en carga encendida, si se desea iniciar con carga apagada únicamente basta con cambiar el contacto en serie con A de temporizado a la apertura por temporizado al cierre del mismo relé TR1.

4.2. FUNCIONES BÁSICAS DE LÓGICA CABLEADA Circuito de control con dos OFF

Circuito de control con un solo ON P2

P1 P2

P1

CR

CR

TR-TA CR1

CR

CR

CR

CR

CR

CR

79

TR1

t1

TR-TA

OFF

TR2-TC

TR2

TR1-TA

A

B

B

B

A

A

t ON

A CR1

t2

OFF

TR1-TA

A

TR

B

CR1

CR1

Figura 4.12: Función Tren de Pulsos con 2 Relés OFF y con Un solo ON.

4.2.6. Función Refresco Ésta es una función de gran importancia al implementar la acción de un pulsador que enciende una carga al ser presionado y la cual solo debe estar activa por un instante dado de tiempo, ya sea que se suelte el pulsador o no. Si antes de terminar el tiempo para el cual la carga debe estar activa se vuelve a presionar el pulsador, entonces la orden se debe refrescar y nuevamente debe iniciar el conteo de tiempo para el cual debe permanecer en ese estado. En la Figura 4.13 se muestra su implementación y el diagrama de tiempo que describe su comportamiento ante diferentes situaciones de entrada.

Circuito de control P1

P1 CR

CR

TR

t OFF

A t

A TR-TA

Figura 4.13: Función Refresco

t

t

CAPÍTULO 4. LÓGICA CABLEADA

80

4.2.7. Función Simulación de Relé Tipo OFF con ON Esta función permite implementar la funcionalidad de un relé de temporización tipo OFF mediante el empleo de un relé tipo ON. En la Figura 4.14 se muestra el circuito de control que permite realizar la misma funcionalidad del relé tipo OFF haciendo uso de un relé ON y además se indica claramente los elementos de circuito que son análogos entre sí [5].

Simulación de relé OFF P1

P2

Uso real de relé OFF P1

P2

CR

CR

CR CR CR1

TR-TA CR

CR CR1

CR ON

TR A

CR1

OFF

TR

A

TR-TA

Figura 4.14: Función Simulación de Relé OFF con Relé ON

4.2.8. Función Simulación de Relé Tipo ON con OFF Esta función permite implementar la funcionalidad de un relé de temporización tipo ON mediante el empleo de un relé tipo OFF. En la Figura 4.15 se muestra el circuito de control que permite realizar la misma funcionalidad del relé tipo ON haciendo uso de un relé OFF y además se indica claramente los elementos de circuito que son análogos entre sí [5].

Simulación de relé ON P1

P2

Uso real de relé ON P1

P2

CR CR CR

CR1 TRi CR1 TR-TC

CR2

TR

CR CR

OFF

CR

TR

ON

CR1 CR2 A

TR-TC

A

Figura 4.15: Función Simulación de Relé ON con Relé OFF

4.3. LÓGICA DE CONMUTACIÓN CON LÓGICA CABLEADA

81

4.2.9. Función Contador Su diseño se basa en un circuito que permite ir guardando, o contando, las veces que un pulsador se presiona y libera con lo cual se implementa un conteo de flancos de subida y bajada y al cabo de los cuales se pueden ejecutar acciones deseadas. En la Figura 4.16 se muestra un circuito que permite encender una carga A a la tercera pulsación de P2, donde se observa como los relés CR2 y CR4 actúan como memorias que guardan los flancos de subida que han ocurrido, mientras los relés CR3 y CR5 guardan los flancos de bajada, a su vez el pulsador P1 actúa como un reset para la cuenta de flancos.

P2

P1

CR1 CR2 CR1 CR3

CR2 CR1

CR4

CR3 CR1 CR4 CR1 CR5 CR1

CR5

CR5

A

A

Figura 4.16: Función Contador

4.3. Lógica de Conmutación con Lógica Cableada Por naturaleza, la lógica cableada es lógica de conmutación donde los elementos de tipo “todo o nada” son implementados mediante contactores, relés y sus contactos asociados. Para obtener una minimización de la implementación se puede recurrir a cualquiera de los métodos vistos en la Sección 3.3 con el fin de minimizar la función de conmutación [2, 3]. Para ilustrar la metodología general se realiza un ejemplo. Ejemplo Se hace la implementación de un circuito en lógica cableada que permite el control de una alarma visual en un proceso que es controlado por 3 motores. Como condiciones, el proceso exige que máximo un motor esté fuera de servicio a la vez pero en todo caso el motor 1 siempre debe estar encendido. Como elementos de captación se emplean relés en serie

CAPÍTULO 4. LÓGICA CABLEADA

82

con los motores, de tal forma que si un motor sale de operación su relé asociado se desenergiza. Designando como CRA, CRB y CRC a cada uno de los relés en serie con los motores, se puede construir la siguiente tabla de verdad y mapa de Karnaugh para simplificar la función:

Cód

CRA

CRB

CRC

Al

0

0

0

0

1

1

0

0

1

1

2

0

1

0

1

3

0

1

1

1

4

1

0

0

1

5

1

0

1

0

6

1

1

0

0

7

1

1

1

0

CRA, CRB

00

CRC

Tabla de Verdad

0

1

0

1

1

1

01

1

2

1

3

11

6 7

10

1

4 5

Mapa de Karnaugh

Figura 4.17: Control de Alarma Visual

P1

P2 CR CR

CR

CRA

Al

CRB CRC

Figura 4.18: Lógica Cableada para Control de Alarma Visual Del mapa de Karnaugh de la Figura 4.17 se obtiene que la función a implementar para la alarma es Al= ¬A ∨ (¬B ∧ ¬C) la cual implementada en lógica cableada se puede observar en la Figura 4.18, donde P1, P2 y CR únicamente se comportan como la función interruptor para energizar el circuito. Cuando los motores están energizados, también lo están los tres relés y por ende se abren los contactos normalmente cerrados de estos. Ante cualquiera de las condiciones de alarma descritas se producirá la activación del contactor denominado Al, el cual se encarga de activar la alarma visual.

4.3. LÓGICA DE CONMUTACIÓN CON LÓGICA CABLEADA

83

En muchas ocasiones los problemas de lógica cableada involucran situaciones de temporización las cuales no se pueden analizar inmediatamente desde la lógica de conmutación. Sin embargo aplicando los conocimientos sobre funciones básicas y lógica combinacional se puede lograr encontrar la solución adecuada para este tipo de problemas [2]. A manera de ejemplo se realiza la implementación de un circuito para el control de un sistema de seguridad de una caja fuerte. Ejemplo En una sucursal bancaria, una vez que el empleado a cargo introduce la clave correcta para acceder a una caja fuerte, dispone de dos pulsadores así: uno para la apertura de la caja denominado A y otro para el cierre denominado C. Una vez el funcionario oprime A se enciende de forma automática un sistema de video, pero la apertura de la caja se retrasa durante 5 segundos. A su vez, cuando el operario sale y oprime cerrar la caja se cierra de forma automática e inmediata, pero el sistema de video sigue registrando durante 5 segundos más. Se desea implementar el sistema de control que da apertura a la caja y encendido al sistema de video con base en las señales de control A y C, pero usando un único relé de temporización TR. Para dar solución a este problema se procede de la siguiente forma: Se emplean memorias biestables con el fin de guardar las órdenes de apertura (CR1) y de cierre (CR2) y una memoria adicional (M) que ingresa con la apertura y se resetea con el cierre y se emplea para controlar el video y la puerta. El relé de temporización (TR) en esta ocasión se comporta por naturaleza como un ON ya que una vez energizado debe inmediatamente iniciar el conteo de los 5 segundos. Este conteo inicia ya sea con la orden de apertura o la de cierre y se mantiene hasta que termine el tiempo de 5 segundos. La puerta (P) no debe abrir hasta que se de la orden de apertura y transcurra la temporización y se debe cerrar inmediatamente se de orden de cierre, lo cual se expresa directamente mediante lógica combinacional tal como se puede observar en la Figura 4.19. El video debe estar encendido mientras una de estas condiciones sea verdadera: permanezca la memoria (M) o 5 segundos después de darse la órden de cierre. Con el fin de hacer reutilizable el diseño se saca de operación las bobinas CR1 y CR2 luego de terminada la temporización relacionada con cada orden.

CAPÍTULO 4. LÓGICA CABLEADA

84

A

TR-TA

CR1

CR1 C

TR-TA

CR2

M

CR1

CR2

CR2 A M

M CR1

TR-TA

TR

CR2 TRi TR-TC CR2 M

C

t ON

P V 5s

5s

P

P M

V

CR2

Figura 4.19: Ejemplo de Lógica Cableada con Temporización

4.4. Diseños Básicos en Lógica Cableada El objeto de esta sección es el de ilustrar algunos diseños básicos que permiten la implementación de funcionalidades comunes y muy frecuentes para ser desarrolladas mediante lógica cableada y que se basan en las funciones básicas vistas previamente. Con estas implementaciones sólo se busca mostrar su desarrollo más no su justificación o conveniencia de uso.

4.4.1. Activación Alternada de Cargas Con el encendido alternado de cargas se persigue como objetivo activar cargas en una secuencia dada. La activación se debe producir mientras un pulsador P1 esté presionado. La implementación de este tipo de circuito se basa en la función biestable con el fin de ir guardando progresivamente la información sobre orden de secuencia, aunque también se podría usar la función contador pero resultando en un mayor número de relés. En la Figura 4.20 se muestra el circuito de lógica cableada para la activación alternada de 3 cargas diferentes A, B y C las cuales deben activarse en el mismo orden enunciado, además los relés CR1 y CR2 son las funciones biestables para recordar respectivamente la información sobre el encendido de la carga A y de la carga B.

4.4. DISEÑOS BÁSICOS EN LÓGICA CABLEADA

P1

CR1

C

85

A

A CR1 CR2

A

B

B CR2

B

C

C A

C

CR1

CR1 B

C

CR2

CR2

Figura 4.20: Secuencia de Cargas A→B→C

La implementación para cualquier número de cargas en activación alternada ordenada se puede extender inmediatamente del diseño mostrado en la Figura 4.20, sin embargo cuando la activación varía el orden de las cargas los diseños pueden cambiar ligeramente pero siempre teniendo como base la función biestable. En la Figura 4.21 se muestra a la izquierda el circuito de lógica cableada para la activación de cargas en secuencias A→B→C→D→C→B y a la derecha para la secuencia A→B→C→D→B→C. En estos circuitos es de resaltar como la memoria implementada con el relé CR4 no recibe una orden de reset sino hasta el inicio de un nuevo ciclo. En general un diseño siempre debe permitir la reutilización indefinida del circuito sin necesidad de tener que desenergizar completamente para reiniciar un nuevo ciclo. Si se desea una activación de cargas en cualquier orden, su diseño se puede realizar con base en alguno de los mostrados previamente, por ejemplo para una secuencia de activación en el orden B→A→C→D→C→A, se puede implementar con base en la secuencia A→B→C→D→C→B reemplazando A por B y B por A.

CAPÍTULO 4. LÓGICA CABLEADA

86

Secuencia A®B®C®D®C®B P1

CR1

B

Secuencia A®B®C®D®B®C P1

A

A C

CR1 CR2 A

B

B D

C

C

CR4

C

C

D

D B CR4 C CR4 CR4

CR1

C

A CR1

CR2

B CR2

CR3

CR3 D

D

CR3

D

D

CR2

B

C

CR3

CR4

D

CR2 CR3 B

C

C

B

A

B

CR2 CR3 B

CR1

C

A

CR1 CR2 A

A

CR1

C

D CR4

CR4 C CR4 CR4

CR1

CR2

CR3

CR3 A

CR4

D

A

CR4

CR4

Figura 4.21: Secuencia de Cargas A→B→C→D→C→B y A→B→C→D→B→C

4.4.2. Encendido Secuencial de Cargas En muchos procesos se requiere del ingreso, y posterior apagado, de una serie de cargas en una secuencia dada. A diferencia de la activación alternada, en esta ocasión cada carga dispone de su propio pulsador de arranque y de paro, pero se debe garantizar que el encendido se produzca en una secuencia dada y además igualmente se debe respetar una secuencia para el apagado. En la Figura 4.22 se muestra el diseño para el encendido secuencial de 3 cargas: M1, M2 y M3. La secuencia de encendido para este ejemplo se realiza en el mismo orden listado y además la secuencia de apagado se realiza en orden inverso, es decir, el último en encender es el primero que se debe poder apagar. Para este tipo de secuencia se emplea la siguiente nomenclatura: M1↑, M2↑, M3↑, M3↓, M2↓, M1↓; donde la flecha orientada hacia arriba indica el orden en la secuencia para encendido de la respectiva carga y la flecha orientada hacia abajo el orden para el apagado.

4.4. DISEÑOS BÁSICOS EN LÓGICA CABLEADA

P1

87

A1 M1

P2

P3

M2

M3

M1 A2

M1

M2

M2 A3 M3

M2 M3

Figura 4.22: Encendido en Secuencia M1↑, M2↑, M3↑, M3↓, M2↓, M1↓ En las Figuras 4.23 y 4.24, se muestra el diseño para las secuencias M1↑, M2↑, M3↑, M3↓, M1↓, M2↓ y M1↑, M2↑, M3↑, M2↓, M3↓, M1↓respectivamente. En cada figura se muestra al lado derecho una simplificación para el diseño del lado izquierdo.

P1

A1

P1

A1

M1 M3 P2

P3

M1

M1 A2

M2 A3

M3 M1

P2

M1 A2

M2

M2

M2 M3

M1

P3

M1

M1

M2

M2 A3

M3

M2

M3

M3

Figura 4.23: Encendido en Secuencia M1↑, M2↑, M3↑, M3↓, M1↓, M2↓ Si se desea obtener un encendido en un orden diferente, siempre será posible abstraerlo de alguno de los mencionados anteriormente realizando el adecuado reemplazo de nombres para las cargas, por ejemplo si se desea el encendido en secuencia M2↑, M1↑, M3↑, M3↓, M1↓, M2↓ claramente se puede lograr a partir del diagrama de la Figura 4.22 reemplazando M2 por M1 y M1 por M2, además la generalización para cualquier número de cargas es directa.

CAPÍTULO 4. LÓGICA CABLEADA

88

P1

A1

P1

A1

M1 M3 P2

M1 A2

M2 A3

P3

M2

M3

M1 M3

M1

M2 M3

P2

M1 A2

M2 M2 A3

P3 M3 M2

M1

M2

M2

M3

M3

Figura 4.24: Encendido en Secuencia M1↑, M2↑, M3↑, M2↓, M3↓, M1↓

4.4.3. Arranque de Motor DC en Derivación En el circuito de control para el arranque de un motor de corriente continua se debe considerar los elementos requeridos para protección adicional a la implementación propia de la funcionalidad de arranque. Las consideraciones más relevantes deben incluir la protección contra cortocircuitos, protección contra sobrecargas y limitación de corrientes en el arranque. En el momento del arranque el voltaje en la armadura es de cero voltios y como la resistencia interna es de un valor muy bajo se presenta una corriente de valor muy alto. Se hace necesario entonces insertar una resistencia de arranque en serie de tal forma que limite el valor de la corriente mientras el voltaje en la armadura crece para limitar por si mismo la corriente. Pero esta resistencia de arranque no debe permanecer en el circuito de manera indefinida por lo que se debe retirar a medida que la velocidad del motor crece. Una forma de implementar este requerimiento es colocar una resistencia de arranque conformada por una serie de segmentos que se van retirando a medida que aumenta la velocidad. En la Figura 4.25 se muestra el circuito de potencia y de control. Para la protección contra cortocircuito en el motor se emplean fusibles en cada una de las líneas de alimentación, para la protección contra sobrecarga se emplea un relé térmico en serie con la armadura de tal forma que si se presenta una corriente excesiva y prolongada se calentará el térmico ocasionando la activación de los contactos del relé. Como elemento adicional de protección se instala un relé en el circuito de campo, el cual tiene por finalidad sensar una posible pérdida de la corriente ante lo cual se debe desenergizar el motor. Los contactos 1A y 2A tienen por finalidad retirar a tiempo adecuado cada uno de los segmentos de la resistencia de arranque, para lo cual se emplean relés de temporización tipo ON. El cálculo del número de segmentos, valor de cada segmento y el ajuste de tiempo para los temporizadores son temas que se encuentran fuera del alcance de este libro, pero si el lector desea profundizar [1] es una buena opción

4.4. DISEÑOS BÁSICOS EN LÓGICA CABLEADA

89

de consulta. Otros métodos de arranque se pueden encontrar en [8].

Circuito de control A

P

Circuito de potencia

CRsc CRc

M Rf

M

M

2A

TR1

TR1-TC

CRc

t1 ON

1A

TR2

TR2-TC

Ea

R arranque +

M

1A TR1-TC

Lf

1A

t2

CRsc M

2A

ON

2A

2A

Figura 4.25: Arranque de Motor DC Utilizando Relés ON En la Figura 4.26 se muestra el diseño para el mismo tipo de circuito de arranque descrito pero usando relés de temporización tipo OFF.

A

P

CRsc CRc

M

M

M TR2-TC

1A

TR1-TC TR2-TA

TR1

t1

OFF

1A

1A TR1-TA

2A

TR2-TC

1A

TR2

t2

OFF

2A

2A

Figura 4.26: Arranque de Motor DC Utilizando Relés OFF

CAPÍTULO 4. LÓGICA CABLEADA

90

4.4.4. Arranque de Motores Trifásicos 4.4.4.1. Arranque Estrella-Delta con Transición Abierta Si un motor de jaula se planea para operar con su bobinado en delta, la tensión en cada fase de la máquina será igual a la tensión de alimentación, pero si el bobinado √ se conecta en triángulo durante el arranque la tensión de fase se reduce en 3, lo cual a su vez hace que la corriente de arranque en estrella sea menor en 13 que la corriente en delta. Sin embargo, como el par del motor varía con el cuadrado de la tensión en cada bobinado, durante el arranque en estrella éste se reduce a un tercio del par en delta. Es por tanto que el arranque se debe proyectar para una conexión en estrella de los bobinados para posteriormente permanecer en estado estable en conexión delta. La denominación de transición abierta proviene del hecho que durante el cambio de estrella a delta se desenergiza temporalmente la máquina con el fin de evitar un cortocircuito en los bobinados. En la Figura 4.27 se puede observar los circuitos de control y potencia en los cuales N es el contactor que crea el neutro para la conexión en estrella, D el contactor que crea la conexión en delta, M el contactor que da ingreso a la alimentación de la máquina, CRsc son relés térmicos para la protección contra sobrecarga y TR es un relé de temporización tipo ON. El diseño anterior también se puede realizar empleando un relé de temporización tipo OFF, tal como se puede observar en la Figura 4.28.

Circuito de potencia

Circuito de control P

A

TR-TA

N

N CRsc M

CRsc

CRsc M M M

TR N

M

M

D

M

M

CRsc

CRsc

CRsc

t1 ON

D

D

N

N

N

D

Figura 4.27: Arranque de Motor Trifásico con Transición Abierta

4.4. DISEÑOS BÁSICOS EN LÓGICA CABLEADA

91

Circuito de control A

P

TR-TA

N

N CRsc M

CRsc

CRsc M M M

M

TR N

t1 OFF

D

Figura 4.28: Arranque con Transición Abierta Usando Relé OFF 4.4.4.2. Arranque Estrella-Delta con Transición Cerrada Con el fin de evitar la interrupción de una posible corriente elevada en los bobinados cuando se realiza la transición abierta, se pone un juego adicional de contactos que permiten el ingreso de unas resistencias que darán la continuidad a la conexión. Así, antes de retirar la estrella se ingresan las resistencias formando una conexión en paralelo con los bobinados, luego se retira la estrella haciendo que ahora las resistencias queden en serie y finalmente se ingresa la delta con lo cual se puede retirar definitivamente las resistencias del circuito. En la Figura 4.29 se puede observar el diseño para el arranque con transición cerrada. Para mayores detalles sobre las justificaciones, metodologías y diseños adicionales de arranques el lector se puede remitir a [8].

Circuito de potencia

Circuito de control P

A

D

T N

N CRsc M

CRsc

CRsc M M TR-TC M

TR D

T N

M

M

CRsc

CRsc

t1 ON

M

M

R

D

CRsc R

D

T

T

N

N

N

D R

D

T

Figura 4.29: Arranque de Motor con Transición Cerrada

CAPÍTULO 4. LÓGICA CABLEADA

92

4.4.5. Inversión de Giro en Motores Los métodos para la inversión de giro de un motor dependen de la naturaleza del mismo, así por ejemplo para un motor de corriente continua se puede disponer un arreglo de contactos que permitan cambiar la polaridad del rotor con el fin de invertir el sentido de rotación, en los motores monofásicos de baja potencia se dispone de un embobinado principal y uno auxiliar que se desconecta de forma automática gracias a un interruptor centrífugo y donde para lograr la inversión es necesario invertir la polaridad de uno de los dos arrollamientos y en los motores trifásicos la inversión se logra invirtiendo la conexión en dos de las tres fases. En general el diseño de control para estos circuitos de inversión es básicamente el mismo y la diferencia radica fundamentalmente en las conexiones del circuito de potencia. Así, el circuito de control debe permitir el ingreso de una orden de sentido de giro y cambiar el estado de los contactos adecuados para esa orden, luego ante la orden de cambio de sentido de giro se debe desenergizar el motor por un tiempo prudencial que garantice su reposo antes de ingresar la orden de giro en sentido contrario, además se debe garantizar por seguridad que no se puede dar de forma simultánea órdenes de giro contrarias. En la Figura 4.30 se muestra el circuito de potencia para la inversión en motores monofásicos y de corriente continua, mientras que en la Figura 4.31 se muestra el circuito de control que puede ser igual para ambas aplicaciones. Los pulsadores identificados con la letra F controlan el sentido de giro positivo, mientras los pulsadores con la letra R identifican el sentido de giro negativo. Para el caso de arranque de un motor DC en derivación, al circuito mostrado en la Figura 4.30 se le puede adicionar la parte correspondiente a los contactos que ingresan los segmentos de resistencia de arranque, caso en el cual esta parte del diseño se debe ubicar en paralelo con el relé de temporización.

Circuito de potencia inversión motor DC

Rf

Lf

Circuito de potencia inversión motor monofásico

M

M

CRc F

F

+

R arranque

R

-

M 1A

2A

R

F

Auxiliar

CRsc M F

R

R

Principal

K

Figura 4.30: Circuitos de Potencia para Inversión de Giro

4.5. EJERCICIOS PROPUESTOS

93

Existen muchos otros métodos y procedimientos para arranque e inversión de giro, los cuales además dependerán del tipo de máquina. Si el lector desea profundizar, en [5, 8] podrá encontrar mucho más al respecto.

Circuito de control P

PR

PF

CRf PR

PF

CRr

CRf

CRf

CRr

CRr

F

M R

TR-TC F

TR CRf CRr

t1 OFF

F R

R

Figura 4.31: Circuito de Control para Inversión de Giro

4.5. Ejercicios Propuestos 1. Implementar la función toggle para la activación de una carga ante flancos de subida, transiciones desde el estado lógico 0 al 1, si se emplea un pulsador denominado P. 2. Implementar la función tren de pulsos empleando un relé de temporización tipo ON para controlar el tiempo de encendido de la carga y un relé de temporización tipo OFF para controlar el tiempo de apagado. El primer ciclo en la carga debe ser el de encendido. 3. Implementar la función tren de pulsos empleando un relé de temporización tipo OFF para controlar el tiempo de encendido de la carga y un relé de temporización tipo ON para controlar el tiempo de apagado. El primer ciclo en la carga debe ser el de encendido. 4. Si en los puntos 2 y 3 se requiere que la carga inicie apagada, ¿Qué modificaciones se deben realizar? 5. Implementar la función refresco empleando un relé de temporización tipo ON.

94

CAPÍTULO 4. LÓGICA CABLEADA 6. Implementar la función tren de pulsos empleando un único relé de temporización de tipo OFF. 7. Implementar un circuito de lógica cableada que realice la activación exacta de una carga durante dos ciclos completos de un tren de pulsos. La carga debe iniciar apagada. 8. Implementar la activación alternada de cargas para la secuencia A→ B→ C→ C. 9. Implementar la activación alternada de cargas para la secuencia B→ A→ C→ D→ C→ A.

10. Implementar la activación alternada de cargas para la secuencia A→ A→ B→ B empleando la función contador de pulsos. 11. Implementar la activación alternada de cargas para la secuencia A→ A→ B→ C empleando la función contador de pulsos. 12. Implementar la activación alternada de cargas para la secuencia A→ A→ B→ C con base en la secuencia A→ B→ C→ D. 13. Implementar el encendido secuencial de cargas para M2↑, M1↑, M3↑, M3↓, M1↓, M2↓. 14. Implementar un circuito de control para el arranque del motor DC de la Figura 4.25 si los contactos 1A y 2A son normalmente cerrados y se desea emplear únicamente relés de temporización de tipo ON. 15. Implementar un circuito de control para el arranque del motor DC de la Figura 4.25 si el contacto 1A es normalmente cerrado y se desea emplear únicamente relés de temporización de tipo OFF. 16. Por un pasillo largo solo puede circular una persona a la vez, por tanto se ha dispuesto de un sistema de control que permita indicar a las personas que llegan si pueden ingresar. En cada extremo se ha ubicado un sensor fotoeléctrico a la entrada y un semáforo con luz roja y verde que permite indicar si se puede ingresar o no. El sistema debe iniciar con los semáforos de ambos sentidos en verde, pero una vez una persona llega en un sentido se activa el sensor correspondiente y se fijan los dos semáforos en rojo. Cuando la persona sale por el lado opuesto, y ante la activación del sensor adecuado, se fijan nuevamente los semáforos en verde. Se asume que el tráfico es muy bajo y que en ningún caso habrá personas que pueden ingresar simultáneamente desde ambos lados. 17. Ajustar el diseño del punto anterior si se desea que una vez salga una persona del pasillo los semáforos esperen 3 segundos antes de pasar a verde. Para este nuevo diseño, usar un único relé de temporización del tipo deseado.

4.5. EJERCICIOS PROPUESTOS

95

18. Ajustar el diseño del punto 16 si se desea permitir un máximo de dos personas en el mismo sentido. Para ello el semáforo del sentido de ingreso actual debe permanecer en verde si sólo existe una persona dentro del pasillo y pasar a rojo sólo cuando ingrese la segunda. Tener en cuenta que si sale una persona, pero queda otra, el semáforo en el sentido de ingreso actual debe pasar a verde. 19. Sobre una cinta transportadora se vierte mineral que se transporta hasta un depósito final. Se dispone de un pulsador de arranque (A) y de uno de paro (P), ambos normalmente abiertos. Una vez se pulsa A la banda transportadora inicia su circulación, pero se retarda 10 segundos el vertimiento del mineral. Finalmente cuando se pulsa P el vertimiento se suspende inmediatamente, pero la banda circula por otros 10 segundos. Implementar el diseño del circuito de control para este sistema empleando un relé de temporización tipo ON para el retardo indicado con el pulsador A y un relé de temporización tipo OFF para el retardo indicado con el pulsador P. 20. Diseñar el mismo circuito de control para el sistema del punto 19 si únicamente se puede emplear un solo relé de temporización del tipo adecuado.

96

CAPÍTULO 4. LÓGICA CABLEADA

Bibliografía [1] Chapman, Stephen J. Máquinas Eléctricas, Segunda Edición. McGraw-Hill, 1993. ISBN 958-600-125-3. [2] Delhaye, C. Concepción Lógica de Automatismos Industriales. Marcombo, 1971. ISBN 26.676-1968. [3] Hackworth, Jhon R. Hackworth, Feredirck D. Jr. Programmable Logic Controllers: Programming Methods and Applications Prentice Hall, 2003. [4] Manual Electrotécnico, Telesquemario. Tecnologías de Control Industrial. Schneider Electric España S.A., 1999. Depósito Legal B. 00.000-99. [5] Montoya Rivera, Duvan. Ocampo Torres, Carlos Alberto. Conceptos de Relevación Industrial y Diseños para el Laboratorio. Proyecto de Grado, Universidad Tecnológica de Pereira, 1999. Director José Eyder Tabares. [6] Pallás Arenas, Ramón. Sensores y Acondicionamiento de Señal, Tercera Edición. Alfaomega marcombo, 2001. ISBN 970-15-0577-8. [7] Parr, E.A. Programmable Controllers, An enginner´s guide, Third Edition. Newness. 2003. ISBN 0-7506-5757-X. [8] Siskind, Charles S. Sistemas Industriales de Regulación Eléctrica. Editorial Labor, 1968. Depósito Legal B. 12 288-1968.

97

Capítulo 5

Redes de Petri 5.1. Marco Introductorio Las Redes de Petri fueron introducidas inicialmente por el Dr. Carl Adam Petri en el año de 1962 para su disertación doctoral en la facultad de Matemáticas y Física del Technical University of Darmstadt, en Alemania Occidental [9, 10]. El éxito de las Redes de Petri radica en la amplitud de diferentes sistemas que se pueden modelar bajo esta misma técnica, entre los cuales se pueden incluir: sistemas asíncronos, concurrentes, paralelos, no determinísticos, secuenciales, de eventos discretos, distribuidos, estocásticos, entre otros. Cuando se hace referencia concreta a la automatización industrial, es importante resaltar como en estos sistemas se puede encontrar una gran variedad de subsistemas de naturaleza diferente. Éste puede ser el caso de un sistema de manufacturación donde se realizan varios procesos en paralelo, pero a la vez se requiere de la sincronización para el inicio o fin de ciertas tareas; además muchas veces los procesos deben utilizar una cantidad limitada de recursos con lo cual deben competir por ellos y determinar posibles situaciones de prioridad entre los mismos procesos, otras veces los sistemas están restringidos en su capacidad de procesamiento o de prueba con lo cual se presentan situaciones de capacidades limitadas y en otros escenarios aún más complejos se puede presentar situaciones donde las materias primas, productos a probar, etc. arriban a las líneas de proceso de forma aleatoria. Todos estos planteamientos se suman al tradicional enfoque de procesos en secuencia ordenada, donde una acción es claramente identificada y su fin implica el inicio de una subsiguiente [7]. Las Redes de Petri se presentan como una poderosa herramienta capaz de modelar de forma gráfica y matemática todos estos sistemas de diferentes naturalezas. Su representación gráfica permite una visualización clara de los sistemas, además de facilitar su posterior descripción mediante otras metodologías tales como: máquinas de estados, diagramas de flujo, gráficos marcados, diagramas de bloques, diagramas escalera, diagramas de descripción secuen99

100

CAPÍTULO 5. REDES DE PETRI

cial, etc. La representación matemática de las Redes de Petri se basa en un modelo matricial-vectorial que además de describirlas permite su estudio, análisis y abstracción de sistemas complejos. Las Redes de Petri (RdP), tal como fueron introducidas inicialmente, no incluían el concepto de tiempo, por lo que luego surgieron las denominadas Redes de Petri Temporizadas con el fin de poder analizar aquellos sistemas que dependen de esta variable. Como además el tiempo también puede tomar valores determinísticos o valores aleatorios se introdujo luego los modelos de Redes de Petri Determinísticas y de Redes de Petri Estocásticas [2]. El objeto principal del presente capítulo es la presentación de una introducción general a las Redes de Petri enfocadas hacia el estudio de los Sistemas de Eventos Discretos, los cuales son procesos que pueden ser modelados de forma completa con base en una concepción donde los estados son discretos y donde el cambio de un estado a otro es una respuesta a eventos que ocurren a intervalos discretos y además sin ninguna regularidad [5]. Entre ejemplos de sistemas de eventos discretos se tienen las colas, las cuales representan a aquellos sistemas donde se tiene un recurso dado que ofrece un servicio a ciertos clientes y donde se puede presentar la situación de tener un promedio de tiempo de atención inferior al tiempo promedio de llegada de nuevos clientes, ocasionando con ello la acumulación de estos últimos en lo que se denomina una cola. En los sistemas reales esta situación está bien representada, por ejemplo, en los puntos de pago de almacenes de cadena, ventanillas de atención a usuarios, etc. y en sistemas tales como líneas de fabricación que se interconectan y comparten recursos, servidores de comunicación, sistemas de cómputo con uno o varios núcleos de procesamiento, control general de tráfico, etc.

5.2. Definición y Presentación de las RdP Las RdP constan de tres componentes denominados como Lugares (elementos pasivos), Transiciones (elementos activos) [6] y Arcos (elementos conectivos), donde los lugares están relacionados con estados, condiciones, recursos, esperas, etc. y en conjunto reciben la denominación P y se representan por círculos; las transiciones están relacionadas con eventos, acciones, ejecución de sentencias, etc. y en conjunto reciben la denominación T y se representan por rectángulos o segmentos de línea; y los arcos unen lugares con transiciones y transiciones con lugares, más no dos lugares o dos transiciones entre sí, y se representan por segmentos orientados de línea a los cuales se les asocia de forma individual un peso (k) que es un valor entero positivo y el cual se puede interpretar como un conjunto de k arcos en paralelo. El conjunto de todos los arcos que unen lugares con transiciones y transiciones con lugares se designa por F y a la función de peso asignada a cada arco se le denomina W . Para designar el estado actual de la red se emplea una serie de Marcas, también denominadas Tokens, y las cuales se representan usualmente por una serie de puntos negros ubicados al interior de cada lugar. El número de marcas ac-

5.2. DEFINICIÓN Y PRESENTACIÓN DE LAS RDP

101

tuales en cada lugar representa el marcado actual de la red M , el cual es un vector de tamaño igual al número de lugares que conforman la red con un valor en la i-ésima posición igual al número de marcas del i-ésimo lugar. El marcado inicial de la red, indicando el estado de la red al inicio, se denomina M0 . Una vez presentados los elementos de una RdP se puede realizar ahora la definición formal de la siguiente forma: Una RdP es una quíntupla P N = {P, T, F, W, M0 } donde [2, 4, 5, 6, 10]: P = {p1 , p2 , pi , ..., pm } es el conjunto finito de lugares de la red T = {t1 , t2 , , tj , ..., tn } es el conjunto finito de transiciones de la red F ⊆ (P x T ) ∪ (T x P ) es el conjunto de arcos que definen el flujo de la red W : F → {1, 2, 3, ...} es la función de peso M0 : P → {0, 1, 2, 3, ...} es el marcado inicial de la red Además, los lugares y transiciones deben cumplir que: P ∩ T = ∅ y T ∩ P = ∅. La estructura de una RdP sin un marcado inicial se nota por la cuádrupla N = {P, T, F, W }, y esta misma red con un marcado inicial también se puede notar como P N = {N, M0 }. En una RdP, para un lugar pi previo a una transición tj se dice que pi es un Lugar de Entrada a la transición tj y además que están unidos por un Arco de Entrada a dicha transición. Para un lugar p i posterior a una transición tj se dice que pi es un Lugar de Salida de la transición tj y además que están unidos por un Arco de Salida de dicha transición. El comportamiento de un sistema está representado en todo instante por el marcado actual de la red, siendo este marcado indicativo del estado y los cambios que se presentan en el sistema. La evolución en el marcado se rige por las siguientes reglas de transición: 1. Una transición tj está Sensibilizada si cada lugar de entrada p i a ella está marcado con mínimo w (pi , tj ) tokens, donde w (pi , tj ) es el peso del arco de entrada que une a pi con tj . 2. Una transición sensibilizada puede ser Disparada dependiendo de si su evento asociado ocurre. 3. El disparo de una transición sensibilizada remueve w (p i , tj ) marcas o tokens de cada lugar de entrada a la transición y adiciona w (t j , pi ) marcas a cada lugar de salida de la transición, donde w (t j , pi ) es el peso del arco de salida que une a tj con pi . La Figura 5.1 es un ejemplo de una RdP y en ella se puede observar claramente los elementos constitutivos de la misma.

CAPÍTULO 5. REDES DE PETRI

102

t1

P1 t4 t3

t2

P2

P3

2

t5 P5

P6

P4

Figura 5.1: Elementos de una Red de Petri

En la Figura 5.1 el peso del arco que une el lugar P4 con t4 tiene un valor de 2, pero el peso en los demás arcos es de 1, caso en el cual de forma generalizada se omite poner textualmente el valor de este peso en cada uno de los demás arcos. En esta red sólo el lugar P4 tiene marcas al inicio por lo que el vector de marcado inicial en este caso es: M0 = {0, 0, 0, 2, 0, 0} el cual denota claramente la existencia de 2 marcas en el lugar 4 y ninguna para los demás. Si la transición t1 se dispara1 aparece una marca en el lugar 1 y da lugar al marcado M1 = {1, 0, 0, 2, 0, 0}. Ahora se puede disparar únicamente la transición t2 ya que las demás no se encuentran sensibilizadas. Al disparar t2 el nuevo marcado ahora es M2 = {1, 1, 0, 2, 0, 0}. Teniendo sensibilizada la transición t3, una vez ocurre su disparo se retira una marca de cada uno de los lugares de entrada a ésta (P1 y P2) y se pasa una marca al lugar de salida (P3) y se obtiene el marcado M3 = {0, 0, 1, 2, 0, 0}. Ahora se tiene sensibilizada la transición t4 y cuando ocurre su disparo se retira una marca del lugar P3 y dos marcas del lugar P4 y se pasa una marca al lugar P5. Estas secuencias de disparos ocurren siguiendo fielmente las tres reglas de evolución enunciadas previamente y arrojan un nuevo marcado M4 = {0, 0, 0, 0, 1, 0}.

5.3. Tipos de Transiciones y Lugares Cuando una transición no posee ningún lugar de entrada se dice que es una Transición Fuente y en este caso sólo se requiere que ocurra su evento asociado para poder ser disparada, similarmente, cuando una transición no posee ningún lugar de salida se dice que es una Transición Sumidero y cuando se dispara sólo se remueven marcas de los lugares de entrada previos a ella [10]. En la Figura 5.2 se muestra una red donde la transición t1 es de tipo fuente y la t3 de tipo sumidero. De forma análoga, existen los Lugares Fuente (que no están conectados a ninguna transición de entrada) y Lugares Sumidero (que no están conectados a ninguna transición de salida). 1 Por ahora se asume que esta transición se puede disparar sin importar el hecho de no poseer ningún lugar de entrada, aunque más adelante se especifica que ésta es un tipo especial de transición la cual sólo requiere del cumplimiento de su evento asociado para ser disparada.

5.4. ALCANZABILIDAD Y SECUENCIA DE DISPARO t1

P1

t2

P2

103

t3

Figura 5.2: Transiciones Fuente y Sumidero Un lugar puede tener indistintamente varios arcos de entrada y/o varios arcos de salida y recibe de forma general el nombre de Nodo OR. Si en un nodo OR sólo existe un arco de entrada pero varios arcos de salida, recibe el nombre de Nodo de Selección. Si en un nodo OR existen varios arcos de entrada pero un sólo arco de salida, recibe el nombre de Nodo de Atribución [5, 11]. En la Figura 5.3 se muestra la representación general para cada uno de estos tres tipos de nodos.

Nodo OR

Nodo de Selección

Nodo de Atribución

Figura 5.3: Tipos de Nodos OR Una transición puede tener indistintamente varios arcos de entrada y/o varios arcos de salida y recibe el nombre general de Nodo AND. Si en un nodo AND sólo existe un arco de entrada pero varios arcos de salida, recibe el nombre de Nodo de Distribución. Si en un nodo AND existen varios arcos de entrada pero un solo arco de salida, recibe el nombre de Nodo de Conjunción [5, 11]. En la Figura 5.4 se muestra la representación general para cada uno de estos tres tipos de nodos.

Nodo AND

Nodo de Distribución

Nodo de Conjunción

Figura 5.4: Tipos de Nodos AND

5.4. Alcanzabilidad y Secuencia de Disparo Con base en las reglas de la evolución para el marcado, cada vez que una transición sensibilizada se dispara ocasiona un cambio en el marcado de la red. Por tanto, a partir de un marcado inicial M0 y realizando una secuencia de n disparos posibles se llega a un marcado final Mn para el cual fue necesario T realiza la secuencia t1 , t2 , ... , tn y que se denota como σ = {t1 , t2 , ... , tn } . En general se dice que un marcado Mn es Alcanzable desde un marcado inicial M0 si existe una Secuencia de Disparo σ que permita a la evolución del marcado llegar a Mn desde M0 .

CAPÍTULO 5. REDES DE PETRI

104

5.5. Propiedades de las RdP 5.5.1. RdP Limitada Una red de Petri P N = {N, M0 } se dice que es k-limitada cuando el número de marcas en cada uno de los lugares de la red no supera un número finito k para cualquier marcado alcanzable a partir del marcado inicial. Esta característica garantiza que no se presenta problema de desbordamiento en el marcado para ninguno de los lugares. El máximo número de marcas para cada uno de los lugares de una red es su Capacidad, por lo que se dice que un lugar está limitado si su capacidad es finita. En la Figura 5.5, con un marcado inicial M0 = {1, 0, 0} al disparar t1 el marcado que se obtiene es M1 = {0, 1, 1}, si luego se dispara t2 se obtiene el marcado M2 = {1, 0, 1} y repitiendo esta misma secuencia de disparo k veces, al final, se obtiene un marcado Mk = {1, 0, k} con lo cual se puede verificar que la red es No Limitada debido a que el número de marcas en el lugar P3 puede crecer de forma no controlada (M k (3) = k); aunque con disparos de la transición t3 se puede controlar un posible desbordamiento, la ocurrencia de su evento asociado no se garantiza de forma oportuna.

P1

P2

t2

P3

t3

t1

Figura 5.5: RdP No Limitada A una red de Petri que es 1-limitada se le denominada RdP Segura. Por tanto, una RdP es segura si cada lugar de la red es seguro.

5.5.2. RdP Viva Una red de Petri P N = {N, M0 } se dice que es viva si, una vez alcanzado un marcado cualquiera desde M0 , siempre es posible disparar cualquier transición de la red mediante una secuencia progresiva y adecuada de disparos. Con frecuencia esta propiedad se relaciona directamente con la no existencia de puntos muertos dentro de la red que ocasionen la imposibilidad de poder disparar cualquier transición. En la Figura 5.6 se muestra un ejemplo de una red que no cumple esta propiedad, mientras que la Figura 5.5 es un ejemplo de una RdP viva. En la Figura 5.6, inicialmente sólo se puede disparar la transición t1 con lo cual quedan marcas en los lugares P2, P3 y P4 (Figura 5.7-a), luego sólo es

5.5. PROPIEDADES DE LAS RDP

105

posible disparar la transición t3 con lo cual ahora las marcas están en los lugares P2 y P5 (Figura 5.7-b), seguidamente sólo está sensibilizada la transición t2 y la cual al ser disparada deja la red únicamente con una marca en el lugar P4 (Figura 5.7-c); con la red en este marcado no se tiene ninguna transición sensibilizada y se alcanza un punto muerto.

P2 P1

t2

P4

P5

t1 P3

t3

Figura 5.6: RdP No Viva

P2 P1

t2

P2 P5 P1

P4 t1

t2 P5

P4 t1

P3 (a)

t3

P2 P1

t2 P5

P4 t1

P3

t3

(b)

P3

t3

(c)

Figura 5.7: RdP No Viva en Punto Muerto Además de la propiedad de Viva en una red de Petri, se definen varios niveles de vivacidad para una transición en una P N = {N, M 0 }, así: Nivel 0: Se dice que una transición es L0-Viva si nunca puede ser disparada para cualquier secuencia de disparo desde M 0 . Nivel 1: Se dice que una transición es L1-Viva si puede ser disparada al menos una vez en alguna secuencia de disparo desde M 0 . Nivel 2: Se dice que una transición es L2-Viva si existe un número entero positivo, l, el cual representa la cantidad mínima de veces que esta se puede disparar en alguna secuencia de disparo desde M 0 . Nivel 3: Se dice que una transición es L3-Viva si se puede disparar indefinidamente para alguna secuencia de disparo desde M 0 .

CAPÍTULO 5. REDES DE PETRI

106

Nivel 4: Se dice que una transición es L4-Viva si es L1-Viva para todo marcado alcanzable desde M 0 . Se debe observar que si para una transición se cumple que es L4-Viva, esto implica que es L3-Viva, y si es L3-Viva implica que es L2-Viva y finalmente si es L2-Viva implica que es L1-Viva. Lo anterior solo implica que si una transición es de nivel mayor entonces se cumple que es de nivel menor, más no lo contrario.

5.5.3. RdP Reversible Una red de Petri P N = {N, M0 } es reversible si para todo marcado alcanzable Mk , es posible alcanzar nuevamente M0 . Se define además una clase especial de redes donde no necesariamente se regresa al estado inicial, sino a un estado determinado diferente del inicial y que se denomina como Estado Residente [2, 10]. La Figura 5.8 es un ejemplo de una red reversible, ya que siempre es posible volver al marcado inicial sin importar el marcado que se alcance.

P2 P1

t2

P4 t4

t1

P3

t3

P6

P5

t5 Figura 5.8: RdP Reversible Las tres propiedades enunciadas hasta ahora (RdP Limitada, Viva y Reversible) son independientes entre sí, lo cual implica que si una red cumple una de ellas no necesariamente cumple alguna de las otras.

5.5.4. RdP Binaria Una red de Petri P N = {N, M0 } es binaria si es 1-Limitada. Ésta es una clase especial de red de Petri Limitada donde el número máximo de marcas en cada lugar es siempre uno. Este tipo especial de red es el fundamento de los sistemas de diseño para autómatas programables y lógica cableada [5]. Las redes representadas en las Figuras 5.6 y 5.8 son ejemplos de redes Binarias, ya que en todo instante el número máximo de marcas en cada uno de los lugares es 1.

5.5.5. RdP Conforme Una red de Petri P N = {N, M0 } es conforme si es Binaria y Viva. La red de la Figura 5.6 es un ejemplo de una red que no es conforme, mientras que la red de la Figura 5.8 si lo es.

5.5. PROPIEDADES DE LAS RDP

107

5.5.6. RdP Persistente Una red de Petri P N = {N, M0 } es persistente si dos transiciones cualesquiera que están sensibilizadas permanecen de igual forma hasta su respectivo disparo. Esto implica que si se dispara una de las transiciones, entonces la otra continúa sensibilizada [10]. La red de la Figura 5.8 es un ejemplo de una red persistente, ya que luego de disparar la transición t1 quedan marcas en los lugares P2 y P3 y por ende están sensibilizadas las transiciones t2 y t3, permaneciendo en este estado hasta que cada una sea disparada, sin importar qué pase con la otra. En la Figura 5.9 se muestra un ejemplo de una red que no es persistente, ya que una vez se dispara t1 se logra que las transiciones t2 y t3 estén sensibilizadas, pero si se dispara luego la transición t3 ocasiona que la transición t2 deje de estar sensibilizada.

P2 P1

t2

P4

t4 P6

t1

P3

t3

P5

t5

t6 Figura 5.9: RdP No Persistente

5.5.7. RdP Conservativa Una red de Petri P N = {N, M0 } es conservativa si el número total de marcas es siempre una constante para todo marcado alcanzable desde M 0 . Esta propiedad implica que la suma de marcas en cada uno de los lugares de la red, incluyendo durante el marcado inicial, es una constante sin importar el marcado que se alcance. En la Figura 5.10 se puede observar un ejemplo de una red conservativa, donde en todo instante siempre existe un total de 2 marcas dentro de toda la red.

P2 P1

2

t2

P4 t4

t1

P3

t3

2

P5

t5 Figura 5.10: RdP Conservativa

P6

CAPÍTULO 5. REDES DE PETRI

108

5.6. RdP Interpretada Ya se han mencionado muchas de las aplicaciones donde se emplean las redes de Petri como elemento descriptivo o de modelamiento para un sistema físico particular. Cuando una RdP se asocia como elemento descriptivo de la estructura de un sistema, tal que cada transición representa una condición física para la evolución y cada lugar las acciones a realizar producto de la misma evolución, se dice que la RdP es Interpretada. Si una RdP es interpretada y/o su evolución es una función del tiempo se dice que es una RdP No Autónoma [5, 11]. En general, cuando a una RdP no se le asocia ninguna interpretación se dice que es una RdP Autónoma.

5.7. RdP Autónoma 5.7.1. RdP Generalizada Una red de Petri generalizada es una RdP Autónoma que está formada por la cuádrupla N G = {P, T, α, β}, donde: P = {p1 , p2 , pi , ..., pm } es el conjunto finito de lugares de la red T = {t1 , t2 , , tj , ..., tn } es el conjunto finito de transiciones de la red α: (P x T ) → {1, 2, 3, ...} es la función de incidencia previa β: (T x P ) → {1, 2, 3, ...} es la función de incidencia posterior En la anterior cuádrupla, existe un α(pi , tj ) = 0 si hay un arco que va desde el lugar pi a la transición tj y con valor igual al peso de dicho arco. Además existe un β(tj , pi ) = 0 si hay un arco que va desde la transición tj al lugar pi y con valor igual al peso de dicho arco.

5.7.2. RdP Ordinaria y Pura Una RdP generalizada es Ordinaria si sus funciones de incidencia previa y posterior sólo toman valores en el conjunto {0, 1}. Además una RdP generalizada es Pura si ninguna transición está conectada a un mismo lugar tal que ese lugar sea simultáneamente de entrada y salida para la transición, es decir, para toda transición tj y cada lugar pi se debe cumplir que: α(pi , tj )β(tj , pi ) = 0 Cuando en una RdP existe un lugar que es simultáneamente de entrada y salida para una transición, se dice que ese lugar es un lugar en auto-lazo.

5.8. RDP EXTENDIDA

109

5.8. RdP Extendida Una RdP Extendida es aquella donde existe una nueva clase de arco denominado Arco Inhibidor, el cual une estrictamente lugares con transiciones y se distingue gráficamente de un arco estándar por un pequeño círculo en la posición de la flecha de orientación. Cuando a una transición llega un arco inhibidor, para que se encuentre sensibilizada se requiere la no presencia de marcas en el lugar de entrada conectado por dicho arco inhibidor. En la siguiente figura se muestra un ejemplo de la forma como opera el arco inhibidor. En la Figura 5.11-(a) la transición t1 no se encuentra sensibilizada dado que existe una marca en el lugar de entrada P2 conectado mediante un arco inhibidor, sin embargo en la Figura 5.11-(b) la transición si se encuentra sensibilizada dado que no existe ninguna marca en P2 y por tanto puede ser disparada, caso en el cual se retira la marca de P1 y pasa una marca a P3.

P2

P2 t1

P1

t1

P3

(a)

P1

P3

(b)

Figura 5.11: Arco Inhibidor

5.9. Modelamiento de Procesos Se introducen de forma general diferentes arquitecturas comunes para la representación de diversos sistemas físicos mediante su modelamiento con base en redes de Petri. La mayoría de estos sistemas son de gran importancia a la hora de implementar diferentes aspectos de un automatismo industrial, y además globalmente la unión adecuada de varias de estas arquitecturas puede ayudar en la definición total de un sistema.

5.9.1. Arquitectura Secuencial Esta arquitectura corresponde a la representación de sistemas donde, de forma definida, a la realización de una tarea específica sigue otra luego de cumplirse un evento que permite la evolución. En la Figura 5.12 se muestra un esquema general para esta arquitectura.

CAPÍTULO 5. REDES DE PETRI

110

P1

t1

P2

t2

P3

t3

Figura 5.12: Arquitectura Secuencial

5.9.2. Arquitectura de Decisión Esta arquitectura corresponde a un nodo de selección donde mediante la presencia de varias transiciones sensibilizadas simultáneamente, luego de la marca en un lugar de entrada común, se puede describir un sistema que realiza la activación de un determinado evento de entre varios posibles. A esta arquitectura también se le denomina Conflicto o Selección. En la Figura 5.13 se muestra un esquema general para esta arquitectura, donde en cada transición debe existir la sintaxis adecuada que impida el disparo simultáneo de más de una de las transiciones o, de forma concreta, cada evento asociado a una transición en arquitectura de decisión debe ser mutuamente excluyente con los demás eventos en las transiciones de salida para el nodo de selección.

t1 t2

P1

t3

P2 P3 P4

Figura 5.13: Arquitectura de Decisión o de Conflicto

5.9.3. Arquitectura Paralela Dos o más eventos se definen como en paralelo, o concurrentes si, desde un punto inicial de sincronismo, su ejecución se inicia simultáneamente. Esta arquitectura corresponde a la activación paralela de tareas de los sistemas de cómputo y desde el punto de vista de un RdP se puede implementar con inicio en un nodo de distribución, el cual realiza la función de sincronización y luego da paso a la ejecución de cada uno de los lugares donde se lleva a cabo las tareas paralelas.

P2 P3

P1 t1

P4

Figura 5.14: Arquitectura Paralela o Concurrente

5.9. MODELAMIENTO DE PROCESOS

111

En la arquitectura de la Figura 5.14 es evidente que una vez la transición t1 se dispara ocurre la sincronización de inicio en la ejecución de las tareas relacionadas con los lugares de salida de dicha transición.

5.9.4. Arquitectura de Confusión Ésta es una clase especial de arquitectura que mezcla la arquitectura de conflicto con la concurrente. Para este tipo de estructura existen dos clases distinguibles de implementación, la primera es la Confusión Simétrica donde dos eventos son concurrentes entre sí pero ambos están en conflicto con un tercero, ver Figura 5.15. La segunda clase es la Confusión Asimétrica, donde dos eventos son concurrentes entre sí, pero uno cualquiera de ellos está en conflicto con un tercero en caso de disparo del otro, ver Figura 5.16 [10].

P1

P2

t2

t1

t3

Figura 5.15: Arquitectura de Confusión Simétrica

P3 t2 P1

P2

t1

P4

t3

Figura 5.16: Arquitectura de Confusión Asimétrica En la Figura 5.15 t1 y t3 son concurrentes, pero ambos están en conflicto con t2, esto es, t1 y t3 pueden ocurrir ambos sin importar que sucede con el otro, pero t1 y t3 no pueden ocurrir si antes ocurre t2, de igual forma t2 no puede ocurrir si antes ocurre t1 o t3. En la Figura 5.16 t1 es concurrente con t2, pero está en conflicto con t3 en caso de un disparo previo de t2, ya que en esta situación el disparo de t1 impide el disparo de t3 y viceversa.

CAPÍTULO 5. REDES DE PETRI

112

5.9.5. Arquitecturas de Sincronización En el modelamiento de diferentes procesos industriales, siempre está presente la necesidad de sincronizar diferentes eventos dependiendo de la evolución u ocurrencia de eventos anteriores. La arquitectura paralela es la forma más simple de sincronización para el inicio de varios eventos, sin embargo existen muchas otras arquitecturas que permiten la implementación de sincronizaciones de diversa naturaleza, entre las cuales se encuentran las siguientes [5]: Punto de Encuentro Simple En esta arquitectura se requiere que dos ramas secuenciales se encuentren en un mismo punto antes de iniciar la ejecución de otros eventos posteriores y concurrentes. En la Figura 5.17 se puede observar como se requiere del cumplimiento del evento t3 antes de poder iniciar con la evaluación de los eventos concurrentes t4 y t5.

t1

t2

P1

P2 t3

P3

P4 t4

t5

Figura 5.17: Arquitectura de Punto de Encuentro Simple Punto de Encuentro Simétrico Esta arquitectura se basa en dos ramas secuenciales, de tal forma que en un punto dado una rama se sincroniza con la otra y viceversa, esto es, la ejecución de un evento de una rama requiere que la otra ya se encuentre en una situación dada. En la Figura 5.18, el disparo de t3 está sincronizado con el cumplimiento previo de t2 y de igual forma el disparo de t4 está sincronizado con el cumplimiento previo de t1, sin embargo, es importante resaltar como una vez que ocurre t1 y t2 el disparo de t3 y t4 es independiente uno del otro.

t1 P1

P2 t3

t2 P3

P4

t4

Figura 5.18: Arquitectura de Punto de Encuentro Simétrico

5.9. MODELAMIENTO DE PROCESOS

113

Punto de Encuentro Asimétrico En esta arquitectura una rama secuencial se sincroniza con otra y luego ésta última con la primera. En la Figura 5.19 se puede observar como inicialmente t2 requiere previamente de t1 y luego t3 requiere de t2.

t1

P2

P1

t2 t3

P3

Figura 5.19: Arquitectura de Punto de Encuentro Asimétrico Semáforo Ésta es una arquitectura de encuentro, pero en este caso sólo una primera rama secuencial se sincroniza con una segunda sin que ésta última se sincronice con la primera. En la Figura 5.20 se puede observar como t4 requiere del disparo previo de t1, sin embargo t3 es totalmente independiente de t2.

t1

t2 P2

P1 t3

P3 t4

Figura 5.20: Arquitectura de Semáforo

5.9.6. Arquitectura para Recurso Compartido Una de las concepciones más simples de un recurso compartido se presenta cuando una parte de algún sistema debe ser usada en varios procesos que debe acceder en forma controlada a su uso y notificar su liberación para permitir su posterior empleo en otro proceso. De forma natural se puede presentar esta noción en los sistemas de cómputo con un solo procesador pero con múltiples tareas a realizar, donde cada vez que se genera una tarea ésta puede acceder al procesador siempre y cuando se encuentre libre, en caso de estar libre se debe crear algún tipo de notificación que impida el acceso al procesador por parte de otra tarea, e igualmente crear otra notificación cuando se libere el recurso. En caso que una nueva tarea encuentre el procesador ocupado, debe esperar por la notificación de liberación de recurso para poder acceder a éste. Otra noción de recurso compartido normalmente presente en los sistemas industriales

CAPÍTULO 5. REDES DE PETRI

114

es la necesidad de compartir brazos robóticos o bandas transportadoras en la realización de varias funciones. En la Figura 5.21, P5 posee una marca inicial, notificando que el recurso se encuentra libre, con lo cual el primer evento que ocurra entre t3 y t4 puede usarlo y por ende quita la marca de P5 creando así la notificación de recurso ocupado. Las transiciones t5 y t6 indican el fin de utilización de dicho recurso y regresan una marca a P5 creando la notificación de recurso libre y listo para ser usado nuevamente. Las transiciones t1 y t2 indican la llegada de una nueva tarea o solicitud al sistema desde dos puntos diferentes.

t1

t2 P5

P1 t3

P2 t4 P4

P3 t5

t6

Figura 5.21: Arquitectura de Recurso Compartido

5.9.7. Arquitectura Lectura-Escritura Ésta es una arquitectura que permite la realización de una de dos tareas posibles por parte de algún recurso y con la restricción que cuando una de las tareas se realiza la otra no se puede ejecutar. Esta arquitectura corresponde a un mismo recurso compartido que realiza dos acciones diferentes y que por ende cuando ejecuta una de ellas no puede realizar la otra. Una forma natural de visualizar esta arquitectura es una unidad de lectura-escritura la cual aunque realiza ambas tareas solo puede ejecutar una a la vez. Desde un punto de vista industrial, muchas máquinas presentan la capacidad de realizar dos tareas diferentes pero la ejecución de alguna impide la realización de la otra [5, 10]. En la Figura 5.22 se observa esta arquitectura, la cual se basa en una arquitectura de recurso compartido, pero con la salvedad que ahora sólo existe un único punto de llegada de solicitudes las cuales son procesadas adecuadamente de acuerdo a su naturaleza mediante las transiciones t2 y t3.

5.9. MODELAMIENTO DE PROCESOS

115

t1

P1

t2 P2

t3 P4

P3 t4

t5

Figura 5.22: Arquitectura de Lectura-Escritura

5.9.8. Arquitectura Productor-Consumidor Esta arquitectura representa a los sistemas donde claramente una división del mismo realiza acciones de producción y otra realiza las acciones de consumo. Esta relación se puede visualizar de forma clara en los sistemas de producción-consumo, fabricación-empaque, fabricación-pruebas, etc., donde evidentemente la razón a la cual se realiza la primera acción es diferente a la razón a la cual se ejecuta la segunda. Por ejemplo, en la Figura 5.23, se puede representar un sistema donde el lado izquierdo realiza la producción y el lado derecho consume, así entonces en el centro de la arquitectura se representa una especie de almacén donde permanecen los ítems fabricados hasta el instante en el cual son demandados para consumo. Este almacén, dependiendo de su naturaleza, también puede recibir el nombre de depósito, buffer, etc.

t2

t1 P1

P2 t3

P3

t4 P5

P4 t5

t6

Figura 5.23: Arquitectura Productor-Consumidor

CAPÍTULO 5. REDES DE PETRI

116

5.9.9. Arquitectura Productor-Consumidor con Prioridad Esta arquitectura representa la situación donde a un consumidor se le provee prioridad sobre otro. En la Figura 5.24 se puede observar como el consumidor del lado izquierdo posee prioridad sobre el del lado derecho, ya que puede consumir primero que el del lado derecho siempre y cuando tenga provisión en su almacén. El consumidor del lado derecho sólo consume si posee provisión y además si el del lado izquierdo no tiene su provisión respectiva.

t2

t1 P1

P2 t3

P3 t5

t9 P5

t6

P7

P6

t4 P4

t8

t7

P8

t10 P10

P9 t11

t12

Figura 5.24: Arquitectura Productor-Consumidor con Prioridad

5.9.10. Arquitectura para Capacidad Limitada En los sistemas reales los almacenes, depósitos, buffers, etc. poseen capacidad límite de almacenamiento o de procesamiento. Las redes de Petri brindan una forma efectiva de modelamiento de este tipo de restricciones de los sistemas reales, en contraposición con otros sistemas de modelamiento donde estas condiciones son difíciles de implementar [2, 5]. Para el modelamiento de capacidad se emplea un lugar adicional con tantas marcas iniciales como capacidad tiene el recurso en cuestión; este lugar debe estar conectado por arcos hacia la porción de red que a su vez implementa el recurso limitado. Si en el sistema productor-consumidor de la Figura 5.23 se desea modelar una capacidad para el almacén, el sistema resultante es el mostrado en la Figura 5.25, donde además se ha impuesto como restricción de capacidad en el almacén un total de 4 productos mediante el nuevo lugar P6.

5.9. MODELAMIENTO DE PROCESOS t2

t1 P1

117

P2

P6 t3

P3

t4 P4

t5

P5 t6

Figura 5.25: Arquitectura para Capacidad Limitada

5.9.11. Arquitectura de Memoria Esta arquitectura se puede extraer como consecuencia de la arquitectura de capacidad limitada, con el objeto de recordar las veces que se ha producido un evento o recordar el número máximo de veces que otro evento puede ser realizado [5]. En la Figura 5.26, el lugar P1 contiene el máximo número de veces que el evento t1 se puede verificar, cinco en este caso, aunque si P1 y P2 son simultáneamente lugares de salida de una misma transición se puede recordar en P1 las veces que esta transición se dispara y controlar con ello los disparos de t1.

P1

P2 t1

Figura 5.26: Arquitectura de Memoria

5.9.12. Arquitectura para Colas Las colas o filas se presentan de forma común en los sistemas de atención a usuarios, pero desde el punto de vista de los automatismos también se encuentran frecuentemente en los sistemas de producción donde los diferentes procesos de la cadena productiva se realizan independientemente por sistemas autónomos entre sí. Como ejemplo de una arquitectura de colas, se muestra en la Figura 5.27 el modelo de un sistema de atención al cliente donde se posee dos tipos diferentes de servicios a prestar mediante el uso de tres ventanillas

CAPÍTULO 5. REDES DE PETRI

118

de atención. La transición t1 indica la llegada de un nuevo usuario, las transiciones t2 y t3 clasifican el usuario de acuerdo con el servicio que requiere, las transiciones t4, t5 y t6 indican el inicio de atención a un nuevo usuario de la fila en la ventanilla correspondiente y finalmente las transiciones t7, t8 y t9 indican el fin de atención a un usuario. En este modelo se tiene presente la restricción de atención a un solo usuario por vez en cada ventanilla, como es lo usual.

Cliente nuevo

t1

Servicio 1 P2

t2

P3 Fila Servicio 2

Fila Servicio 1 t5

t4 P4

Servicio 2 t3

P1

P5

P6

t6 P8

P7

t7

t8

Ventanilla 1

Ventanilla 2

P9 t9

Ventanilla 3

Figura 5.27: Arquitectura para Colas

5.10. Simplificación de una RdP Con el objeto de simplificar el modelo de una RdP antes de proceder a su análisis, es conveniente realizar su reducción hacia una red de menor complejidad que preserve las propiedades de la red original. Este procedimiento se hace particularmente importante cuando se trata con redes de gran tamaño donde es conveniente realizar algún tipo de transformación hacia una red de menor tamaño que conserve las propiedades de la red inicial [6, 9, 10]. Aunque existen muchos métodos descritos por varios autores [6, 10], se presenta únicamente las transformaciones más simples basadas en un conjunto de reglas básicas: 1. Fusión de Lugares en Serie: Si en una red de Petri P N = {N, M 0 } existe una transición tj la cual es la única transición de salida de un lugar pi y la única transición de entrada de un lugar pi+1 , entonces la red se puede transformar en una nueva red de Petri P N  = {N  , M0 } donde se fusionan en un solo lugar a pi y pi+1 y se elimina a tj . En la Figura 5.28, se puede observar la forma general de esta regla.

5.10. SIMPLIFICACIÓN DE UNA RDP

119

Figura 5.28: Fusión de Lugares en Serie 2. Fusión de Transiciones en Serie: Si en una red de Petri P N = {N, M 0 } existe un lugar pi el cual es lugar de salida de una transición tj y es el único lugar de entrada de una transición tj+1 , entonces la red se puede transformar en una nueva red de Petri P N  = {N  , M0 } donde se fusionan en una sola transición a tj y tj+1 y se elimina a pi . En la Figura 5.29, se muestra la forma general de esta regla.

Figura 5.29: Fusión de Transiciones en Serie 3. Fusión de Lugares Paralelos: Si en una red de Petri P N = {N, M 0 } existen dos lugares pi y pi+1 tal que ambos comparten una única transición de entrada y una única transición de salida, entonces la red se puede transformar en una nueva red de Petri P N  = {N  , M0 } donde se fusionan en un solo lugar a pi y pi+1 . Éste nuevo lugar sigue teniendo la misma transición de entrada y la misma transición de salida previas a los dos lugares que reemplaza. En la Figura 5.30, se puede observar esta regla de forma generalizada.

Figura 5.30: Fusión de Lugares Paralelos 4. Fusión de Transiciones Paralelas: Si en una red de Petri P N = {N, M 0 } existen dos transiciones tj y tj+1 tal que ambas comparten un único lugar de entrada y un único lugar de salida, entonces la red se puede transformar en una nueva red de Petri P N  = {N  , M0 } donde se fusionan en una sola transición a tj y tj+1 . Esta nueva transición sigue teniendo el mismo lugar de entrada y el mismo lugar de salida previos a las dos transiciones que reemplaza. En la Figura 5.31, se puede observar la forma general de esta regla.

120

CAPÍTULO 5. REDES DE PETRI

Figura 5.31: Fusión de Transiciones Paralelas 5. Eliminación de un Lugar en Auto-lazo: Si en una red de Petri P N = {N, M0 } existe un lugar tal que es simultáneamente de entrada y salida para una transición, entonces la red se puede transformar en una nueva red de Petri P N  = {N  , M0 } donde se elimina dicho lugar. En la Figura 5.32, se muestra la forma general de esta regla.

Figura 5.32: Eliminación de Lugar Auto-lazo 6. Eliminación de una Transición en Auto-lazo: Si en una red de Petri P N = {N, M0 } existe una transición tal que es simultáneamente de entrada y salida para un lugar, entonces la red se puede transformar en una nueva red de Petri P N  = {N  , M0 } donde se elimina dicha transición. En la Figura 5.33, se puede observar esta regla de forma generalizada.

Figura 5.33: Eliminación de Transición Auto-lazo

5.11. Análisis de las Redes de Petri Dentro de los métodos para análisis de un RdP existen tres que son de principal interés: Análisis por Árbol de Cobertura, Análisis por Transformación y Análisis Estructural [10, 11]. El primer método presenta ventajas claras cuando se trata con redes limitadas y permite fácilmente verificar propiedades, sin embargo cuando la red es ilimitada no se puede obtener información importante. El segundo método no es más que tratar de pasar una red a una más sencilla

5.11. ANÁLISIS DE LAS REDES DE PETRI

121

mediante reducciones y la cual conserve las propiedades de la primera y facilite el análisis. El último método permite determinar las propiedades de una red independizando el marcado inicial de la estructura, por lo que facilita el estudio de una red para varios marcados iniciales.

5.11.1. Análisis por Árbol de Cobertura El árbol de cobertura para una red de Petri P N = {N, M 0 } se construye iniciando desde el marcado inicial y buscando todos los posibles nuevos marcados obtenibles a partir de éste. Un nuevo marcado se logra si se dispara cada una de las transiciones sensibilizadas [10]. El disparo de una transición representa una nueva rama en el árbol y en su extremo se ubica un nodo con el nuevo marcado que se obtiene [2, 9]. El procedimiento anterior es iterativo para cada nuevo nodo, a partir del cual se debe identificar las nuevas ramas posibles para el árbol. La identificación de nuevos nodos representa una frontera en el árbol e implica un proceso con pasos finitos [2], incluso en el caso de redes no limitadas. Se puede distinguir claramente tres clases diferentes de nodos frontera: 1. Nodo Terminal: Nodo, o marcado, en el cual no se encuentra sensibilizada ninguna transición. 2. Nodo Duplicado: Nodo, o marcado, el cual ya se encuentra en un nodo previo del árbol. 3. Nodo Infinitamente Reproducible: Un Nodo, o marcado M  es infinitamente reproducible si M  ≥ M  para cualquier M  que ya se ha generado en el árbol, esto es si el número de marcas en cada uno de los lugares de M  es mayor o igual al número de marcas en cada uno de los lugares de M  o como relación, si M  (pi ) ≥ M  (pi ) para pi = p1 , . . . , pm . En este caso, se introduce el símbolo  el cual representa un número arbitrariamente grande de marcas como resultado de nodos infinitamente reproducibles y que además posee las siguientes propiedades para cada número entero positivo ξ:  ± ξ =  y  > ξ. La introducción del símbolo  permite que la generación del árbol de cobertura contenga siempre un proceso finito de pasos. En este caso se reemplaza en M  a cada M  (pi ) que sea menor a M  (pi ) por el símbolo  para formar así a M  . Como ejemplo inicial para la obtención del árbol de cobertura se hace el análisis para la Figura 5.10, donde claramente se observa que el marcado inicial es M0 = {2, 0, 0, 0, 0, 0} y el cual se emplea como raíz del árbol. A partir de este marcado M0 se puede determinar que la única transición sensibilizada es t1 lo cual conduce a un solo nuevo marcado M1 = {0, 1, 1, 0, 0, 0}, donde nuevamente se encuentra que las únicas transiciones sensibilizadas son t2 y t3 con lo cual se tienen dos nuevas ramas representando dos posibles marcados nuevos así: M2 = {0, 0, 1, 1, 0, 0} y M3 = {0, 1, 0, 0, 1, 0}, tal como

CAPÍTULO 5. REDES DE PETRI

122

se observa en la Figura 5.34. Desde el nodo M2 se puede determinar que sólo se encuentra sensibilizada la transición t3 con lo cual se llega al marcado M4 = {0, 0, 0, 1, 1, 0}. Retomando el nodo M3 se encuentra que sólo está sensibilizada la transición t2 llevando al mismo marcado M4 = {0, 0, 0, 1, 1, 0} obtenido en el paso anterior y conformando lo que se denomina como nodo duplicado. En este instante sólo es posible disparar t4 lo cual entrega el marcado M5 = {0, 0, 0, 0, 0, 2}, posteriormente solo es posible disparar t5 lo cual conduce al marcado M6 = {1, 0, 0, 0, 0, 1}. Finalmente, solo es posible disparar nuevamente t5 con lo cual se obtiene el mismo marcado inicial, o sea otro nodo duplicado.

M0

[2 0 0 0 0 0]

t1 [2 0 0 0 0 0]

t2 M2

t2

[2 0 0 0 0 0]

t4

t5

M1 M3

[2 0 0 0 0 0]

[2 0 0 0 0 0]

t3

t3

[2 0 0 0 0 0]

t5 [2 0 0 0 0 0]

M4 M5 M6

Figura 5.34: Árbol de Cobertura para la Figura 5.10

t1

P3

t3 P7

P1 P2

t2

t5 P6

P4 P5

t4

Figura 5.35: RdP con Nodo Terminal y Nodos Infinitamente Reproducibles. Ahora se muestra el ejemplo de árbol de cobertura para la red de la Figura 5.35, la cual es una red que presenta varias situaciones importantes a estudiar. En la Figura 5.36, se muestra el árbol de cobertura resultante, donde además se hace uso del símbolo  para indicar nodos infinitamente reproducibles. De la observación rápida de la red se puede determinar que en el lugar P3 las marcas pueden crecer indefinidamente. En el árbol se puede encontrar que el marcado M10 = {1, 0, 1, 1, 0, 1, 0} es el marcado que sigue al

5.11. ANÁLISIS DE LAS REDES DE PETRI

123

disparar la transición t2, pero este marcado contiene a su vez al marcado inicial ya que cumple la relación M10 (pi ) ≥ M0 (pi ) y por lo que finalmente queda como M10 = {1, 0, , 1, 0, 1, 0}. En este mismo árbol se encuentra que el nodo M4 = {0, 0, 0, 1, 0, 0, 1} es un nodo terminal ya que en este marcado no se encuentra sensibilizada ninguna transición.

M0 t2 t2

M10 [1 0 w 1 0 1 0]

M11

t1

M13

t5

[0 1 w 1 0 1 0]

M12

t4

M1 t1 [0 1 1 1 0 1 0] M5

t3

[0 1 0 0 1 1 0]

t5 t5

t3

t4

M7

t2

M6 t4

t3

t1 t2 M8

t1

t2

[1 0 w 0 1 1 0]

[0 0 w 1 0 0 1]

[1 0 0 1 0 1 0]

t3

[1 0 0 0 1 1 0]

[0 1 w 0 1 1 0]

t4

M9

t5

M2

[0 0 1 1 0 0 1]

[0 1 0 1 0 1 0]

t4

M3

t3

M4

t4

[0 0 0 0 1 0 1]

t5

[0 0 0 1 0 0 1] Nodo Terminal

[0 0 w 0 1 0 1]

Figura 5.36: Árbol de Cobertura para la Figura 5.35 En general, el proceso para realizar el árbol de cobertura de la Figura 5.36 y cualquier otro árbol para cualquier otra red consiste en iniciar con el marcado inicial e ir progresivamente encontrando todos los posibles nuevos marcados, teniendo en cuenta que si se llega a un marcado que ya existe en el árbol éste es un nodo duplicado y por tanto se puede conectar con su par, además si algún nuevo nodo cumple el criterio M  (pi ) ≥ M  (pi ) entonces se debe reemplazar en M  a cada M  (pi ) menor que M  (pi ) por el símbolo  para formar así a M  . Gracias al árbol de cobertura de una red de Petri se pueden determinar algunas de las propiedades ya vistas, de la siguiente forma: Una red de Petri P N = {N, M0 } es limitada si y sólo si el símbolo  no aparece en ninguno de los nodos del árbol de cobertura. Una red de Petri P N = {N, M0 } es segura si y sólo si en los nodos del árbol de cobertura sólo aparecen los números 1 o 0. Una transición tj de una red de Petri P N = {N, M0 } es muerta si y sólo si no aparece como rama en el árbol de cobertura. El marcado M es un marcado alcanzable desde M 0 , si este aparece como nodo en el árbol de cobertura. Una red de Petri P N = {N, M0 } es reversible si y sólo si desde cualquier nodo del árbol de alcanzabilidad es posible encontrar una ruta hacia el nodo inicial. Esta condición también se relaciona como Árbol de Cobertura Fuertemente Conexo [11].

CAPÍTULO 5. REDES DE PETRI

124

En el árbol de cobertura de una red de Petri no limitada no es posible determinar su alcanzabilidad o vivacidad, debido a la información perdida al introducir el símbolo . Además redes no limitadas pueden llegar a tener el mismo árbol de cobertura incluso con diferentes propiedades de vivacidad [10]. El árbol de cobertura para una red de Petri limitada recibe el nombre especial de Árbol de Alcanzabilidad, ya que contiene todos los posibles marcados alcanzables. Además, en este caso, todas las propiedades vistas para una red de Petri pueden ser discutidas mediante el árbol de alcanzabilidad. Todo árbol de cobertura de una red de Petri P N = {N, M 0 }, puede ser representado mediante un Gráfico de Cobertura G = {V, E}, donde V es el conjunto de todos los nodos diferentes en el árbol de cobertura y E es el conjunto de todas las ramas que representan el disparo de una única transición que lleva de un nodo a otro. En particular, el gráfico de cobertura de un árbol de alcanzabilidad se denomina como Gráfico de Alcanzabilidad y puede ser interpretado como un diagrama de estados en el mismo sentido discutido en la Sección 3.4.2. En la Figura 5.37 se muestra el gráfico de cobertura, o gráfico de alcanzabilidad en este caso, para el árbol de cobertura de la Figura 5.34.

M0

t1

M1

t2

M2

t3

M4

t4

M5

t5

M6

M3 t3

t2 t5

Figura 5.37: Gráfico de Cobertura

5.11.2. Análisis por Transformación El análisis por transformación tiene su fundamento en la idea intuitiva de encontrar para una red de Petri P N = {N, M 0 } otra red P N  = {N  , M0 } tal que ésta última preserve las propiedades de la primera, pero a la vez facilite la verificación de las mismas propiedades. Caso particular de los diferentes métodos de transformación son los métodos de simplificación vistos en la Sección 5.10 y conocidos también como métodos de reducción y donde el objetivo es ir buscando progresivamente una red más sencilla que la actual al poseer ya sea menos lugares o menos transiciones [11]. Luego de encontrar una red reducida es posible aplicar alguno de los otros métodos de análisis, de ser necesario, para determinar las diferentes propiedades expuestas. Entre las diferentes técnicas adicionales para la transformación de redes de Petri es de especial interés la reducción de una subred a un único lugar, la cual se ve a continuación.

5.11. ANÁLISIS DE LAS REDES DE PETRI

125

5.11.2.1. Reducción de una Subred de Petri a un Lugar Una subred de Petri es aquella P N ∗ donde el conjunto de sus lugares y transiciones son subconjuntos respectivos de los lugares y transiciones de otra red P N , o sea, una subred de Petri es un subconjunto de otra red mayor. De forma intuitiva, las condiciones necesarias para que un lugar se comporte globalmente de forma análoga a la subred con el fin de poder realizar la reducción son [11]: 1. No se crea ni se destruyen marcas. 2. La vivacidad de las transiciones en la subred depende de la vivacidad de otras transiciones externas de la misma subred. 3. Todas las marcas en la subred se pueden emplear en el disparo de cualquiera de las transiciones que definen la frontera con el resto de la red. Con el fin de evitar que una subred cree o destruya marcas, es condición suficiente para ello que el peso de sus arcos sea la unidad y sus transiciones posean un único lugar de entrada y un único lugar de salida. Si la subred cumple esta condición, se dice que es una subred Potencialmente Reducible. En la Figura 5.38 se muestra una subred potencialmente reducible a un solo lugar. En una subred, los lugares con transiciones de entrada que no pertenecen a la subred se denominan Lugares Ascendientes (lugares P1, P2 y P3), mientras que los lugares con transiciones de salida que no pertenecen a la subred se denominan Lugares Descendientes (lugares P3 y P5). El lugar que reemplaza a la subred dentro de la red mayor se denomina Macrolugar.

P3

t3 t2

t1

t5

t3 t11

t6 t8 P5 P2 t4 P1 t7 P4

t11 ?

t2

t10 t9

Macrolugar

t10 t1

Figura 5.38: Subred de Petri Un macrolugar puede reemplazar a una subred si ésta última cumple las siguientes condiciones:

CAPÍTULO 5. REDES DE PETRI

126 1. La subred es potencialmente reducible.

2. Para todo lugar dentro de la subred mínimo existe un camino que parte de un lugar ascendiente y llega a él. 3. Para todo lugar dentro de la subred existen caminos que lo unen a los diferentes lugares descendientes. En el ejemplo de la Figura 5.38, al examinar las tres condiciones anteriores se encuentra que la primera condición se cumple, ya que todos los arcos tienen como peso la unidad y todas las transiciones poseen un único lugar de entrada y un único lugar de salida. La segunda condición también se cumple, al existir un camino que une un lugar ascendiente a cada uno de los lugares de la subred. La tercera condición no se cumple, ya que no existe un camino que una a P4 con P3. De lo anterior se establece que esta subred no es reducible a un macrolugar. Si un macrolugar puede reemplazar a una subred, entonces debe poseer tantas marcas iniciales como la suma de las marcas iniciales que poseen los lugares de la subred, además debe tener como transiciones de entrada todas las conectadas previamente a los lugares ascendientes y como transiciones de salida todas las conectadas previamente a los lugares descendientes. En la red resultante no aparecen, se eliminan, todas las transiciones y lugares de la subred. La Figura 5.39 es un ejemplo de una subred reducible a un macrolugar.

P3 t3

Macrolugar

t5

t1

t6

P2 t1

t2

t4

t6

P1 Figura 5.39: Subred de Petri a Macrolugar

5.11.3. Análisis por Representación Estructural La representación estructural de una red de Petri permite describir la dinámica de comportamiento de una red mediante una serie de ecuaciones matriciales. Su principal ventaja radica en la independencia que se logra en la descripción estructural del sistema del marcado inicial, con lo cual se facilita el análisis para sistemas con diferentes marcados iniciales pero igual estructura.

5.11. ANÁLISIS DE LAS REDES DE PETRI

127

5.11.3.1. Matrices de Incidencia Previa y Posterior Cada elemento que conforma la matriz de incidencia posterior, C+ , para una red de Petri P N = {N, M0 } es el peso del arco que va desde la transición + + tj al lugar de salida pi y se define como c+ ij = β (tj , pi ). De lo anterior C = [cij ] con dimensiones m x n, para una red con m lugares y n transiciones. En la matriz de incidencia previa, C − , cada uno de sus elementos representa el peso del arco que llega a la transición tj proveniente desde el lugar − = [c− de entrada pi y se define como c− ij = α (pi , tj ). De lo anterior C ij ] con dimensiones m x n. En general, la matriz de incidencia posterior representa el peso de los arcos de salida de cada una de las transiciones de la red, mientras la matriz de incidencia previa representa el peso de los arcos de entrada a cada una de las transiciones. A continuación, en la Figura 5.40, se muestra a manera de ejemplo las matrices de incidencia previa e incidencia posterior para la red de la Figura 5.10. ⎤ 0 0 0 0 1 1 0 0 0 0 ⎥ ⎥ 1 0 0 0 0 ⎥ C+ ⎥ 0 1 0 0 0 ⎥ 0 0 1 0 0 ⎦ 0 0 0 2 0 Matriz de Incidencia Posterior ⎡

⎢ ⎢ ⎢ =⎢ ⎢ ⎣

⎤ 2 0 0 0 0 0 1 0 0 0 ⎥ ⎥ 0 0 1 0 0 ⎥ C− ⎥ 0 0 0 1 0 ⎥ 0 0 0 1 0 ⎦ 0 0 0 0 1 Matriz de Incidencia Previa ⎡

⎢ ⎢ ⎢ =⎢ ⎢ ⎣

Figura 5.40: Matrices de Incidencia Previa y Posterior Como ya se expuso en la Sección 5.7.2, si las funciones de incidencia previa y posterior sólo toman valores en el conjunto {0, 1} se dice que la red de Petri es ordinaria. Además una red de Petri es pura si ninguna transición está conectada a un mismo lugar tal que ese lugar sea simultáneamente de entrada y salida para la transición, es decir, para toda transición t j y cada lugar pi se debe cumplir que α(pi , tj )β(tj , pi ) = 0. Ésta última característica para una red pura es muy importante y es tratada en más detalle en las secciones siguientes. 5.11.3.2. Subconjuntos y Subclases de una RdP Dentro de una red de Petri también se definen otros subconjuntos, los cuales se listan a continuación [10, 11]: 1. Lugares de entrada de una transición t j , denotado como • tj : es el subconjunto de lugares que pertenecen a una red de Petri conformado por los lugares donde la función de incidencia previa para la transición es mayor que cero. •

tj =



  pi ∈ P α(pi , tj ) > 0

CAPÍTULO 5. REDES DE PETRI

128

2. Lugares de salida de una transición t j , denotado como t•j : es el subconjunto de lugares que pertenecen a una red de Petri conformado por los lugares donde la función de incidencia posterior para la transición es mayor que cero.    pi ∈ P β(tj , pi ) > 0 t•j = 3. Transiciones de entrada de un lugar p i , denotado como • pi : es el subconjunto de transiciones que pertenecen a una red de Petri conformado por las transiciones donde su función de incidencia posterior para el lugar es mayor que cero.    • pi = tj ∈ T β(tj , pi ) > 0 4. Transiciones de salida de un lugar pi , denotado como p•i : es el subconjunto de transiciones que pertenecen a una red de Petri conformado por las transiciones donde su función de incidencia previa para el lugar es mayor que cero.    p•i = tj ∈ T = t•j = 1) > 0 Para la Figura 5.10, algunos de los subconjuntos que se pueden definir son: • t ={P1} 1 t•1 ={P2, P3}

• t ={P4, P5} 4 t•1 ={P6}

•p

5 ={t3}

p•5 ={t4}

Con base en los anteriores subconjuntos definidos dentro de una red de Petri se pueden definir las siguientes subclases de redes de Petri [10]: 1. Máquina de Estados, ME: es una red de Petri ordinaria donde cada transición posee exclusivamente un único lugar de entrada y un único lugar de salida.      ME = tj ∈ T |• tj | = t•j  = 1 2. Gráfico Marcado, GM: es una red de Petri ordinaria donde cada lugar posee exclusivamente una única transición de entrada y una única transición de salida.    GM = pi ∈ T |• pi | = |p•i | = 1 3. Red de Libre Elección, LE: es una red de Petri ordinaria donde cada arco que parte de un lugar es o su único arco de salida o el único arco de entrada para una transición. Representa una estructura de red que generaliza las dos subclases anteriores.    LE = pi ∈ T |p•i | ≤ 1 ∨ • (p•i ) = {pi }

5.11. ANÁLISIS DE LAS REDES DE PETRI

129

5.11.3.3. Matriz de Incidencia En las redes de Petri puras la representación matricial se puede simplificar en una única matriz denominada como Matriz de Incidencia, C, la cual se define como: C = C+ − C− . Cada uno de los elementos que compone la matriz de incidencia, cij , es positivo para indicar la presencia de incidencia posterior, negativo para indicar la presencia de incidencia previa o cero para indicar la no conexión entre el lugar pi y la transición tj . A continuación se muestra la matriz de incidencia para la red de la Figura 5.10: ⎡ C=

C+



C−

⎢ ⎢ ⎢ =⎢ ⎢ ⎣ ⎡ ⎢ ⎢ ⎢ =⎢ ⎢ ⎣

0 1 1 0 0 0 −2 1 1 0 0 0

0 0 0 1 0 0

0 0 0 0 1 0 0 −1 0 1 0 0

0 0 0 0 0 2 0 0 −1 0 1 0

1 0 0 0 0 0





⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥−⎢ ⎥ ⎢ ⎦ ⎣ 0 0 0 −1 −1 2

2 0 0 0 0 0

1 0 0 0 0 −1



0 1 0 0 0 0

0 0 1 0 0 0

0 0 0 1 1 0

0 0 0 0 0 1

⎤ ⎥ ⎥ ⎥ ⎥ ⎥ ⎦

⎥ ⎥ ⎥ ⎥ ⎥ ⎦

Para el caso de una red pura, la matriz C contiene toda la información necesaria para reconstruir completamente la red; esto sucede al indicar claramente el tipo de incidencia que relaciona a cada lugar con cada transición ya que las matrices de incidencia previa y posterior no comparten elementos en las mismas posiciones. Esta gran ventaja de C también muestra claramente el impedimento para su aplicación en una red no pura, como se puede observar en la Figura 5.41, donde el lugar P3 es simultáneamente de entrada y de salida para la transición t1.

P1 t1

P3

P2 t2

Figura 5.41: RdP No Pura.

CAPÍTULO 5. REDES DE PETRI

130

Para esta red las matrices de incidencia previa y posterior se muestran a continuación: ⎤ 1 0 ⎦ 0



C+

0 =⎣ 1 1



C−

1 =⎣ 0 1

⎤ 0 1 ⎦ 0

De las dos matrices anteriores, se puede observar como comparten un elemento en una misma posición, debido a la presencia del auto-lazo. El hecho de compartir un elemento en alguna posición implica que al realizar la resta C+ − C− , de la cual se obtiene la matriz de incidencia, se pierde información que impide su reconstrucción. Una forma fácil de solventar la restricción para uso de la matriz de incidencia en las redes no puras es la adición de un lugar y una transición adicionales que eliminen el auto-lazo, tal como se muestra en la Figura 5.42, donde gracias a la adición de P4 y t3 se elimina el auto-lazo y se permite el uso de C para la red de la Figura 5.41.

P1

P4

t1

t3

P2

P3

t2

Figura 5.42: RdP No Pura a Pura 5.11.3.4. Ecuación de Estado En una red de Petri interesa conocer el marcado que se alcanza luego de realizar una cierta secuencia de disparo partiendo de un marcado inicial conocido. El vector de disparo, µk , es un vector con tantos elementos como transiciones tiene la red y con un valor de 1 en la posición de la transición disparada y cero en el resto de componentes. En las redes de Petri puras y con un marcado inicial conocido, existe una ecuación que determina el marcado alcanzado desde un marcado inicial dado un vector de disparo y se conoce como ecuación de estado, la cual está dada por: T MkT = Mk−1 + Cµk

5.11. ANÁLISIS DE LAS REDES DE PETRI

131

Como esta ecuación entrega una forma de determinar un marcado posterior a partir de uno previo, entonces se puede decir sucesivamente que: T MkT = Mk−2 + Cµk−1 + Cµk = M0T + C(µ1 + · · · + µk )

De donde se define el vector secuencia de disparo σ = µ1 + · · · + µk , el cual al ser reemplazado en la ecuación anterior se obtiene finalmente: MkT = M0T + Cσ De la anterior ecuación es importante resaltar el hecho que el vector σ sólo entrega datos sobre las transiciones disparadas para llagar hasta el marcado deseado, más no brinda información sobre la secuencia en la cual se realizaron dichos disparos. Aplicando las anteriores ecuaciones a la red de la Figura 5.10 se puede determinar el marcado alcanzado luego de disparar las transiciones t1 y t2 así: ⎡ M1T

⎢ ⎢ ⎢ =⎢ ⎢ ⎣

2 0 0 0 0 0





⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥+⎢ ⎥ ⎢ ⎦ ⎣

−2 1 1 0 0 0

0 −1 0 1 0 0

0 0 −1 0 1 0

0 0 0 −1 −1 2

1 0 0 0 0 −1



⎡ ⎥ ⎥⎢ ⎥⎢ ⎥⎢ ⎥⎣ ⎦

1 1 0 0 0





⎢ ⎥ ⎢ ⎥ ⎢ ⎥=⎢ ⎦ ⎢ ⎣

2 0 0 0 0 0





⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥+⎢ ⎥ ⎢ ⎦ ⎣

−2 0 1 1 0 0



⎡ 0 ⎥ ⎢ 0 ⎥ ⎢ ⎥ ⎢ 1 ⎥=⎢ ⎥ ⎢ 1 ⎦ ⎣ 0 0

⎤ ⎥ ⎥ ⎥ ⎥ ⎥ ⎦

Si ahora se dispara las transiciones t3 y t4 el marcado alcanzado es: ⎡ ⎢ ⎢ ⎢ M2T = ⎢ ⎢ ⎣

0 0 1 1 0 0





⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥+⎢ ⎥ ⎢ ⎦ ⎣

−2 1 1 0 0 0

0 −1 0 1 0 0

0 0 −1 0 1 0

0 0 0 −1 −1 2

1 0 0 0 0 −1





⎥ ⎥⎢ ⎥⎢ ⎥⎢ ⎥⎣ ⎦

0 0 1 1 0





⎢ ⎥ ⎢ ⎥ ⎢ = ⎥ ⎢ ⎦ ⎢ ⎣

0 0 1 1 0 0





⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥+⎢ ⎥ ⎢ ⎦ ⎣

0 0 −1 −1 0 2





⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥=⎢ ⎥ ⎢ ⎦ ⎣

0 0 0 0 0 2

⎤ ⎥ ⎥ ⎥ ⎥ ⎥ ⎦

En estas ecuaciones se puede observar que el vector σ no es cualquier vector, fuera de tener componentes no negativas debe ser aplicable a partir del marcado inicial. Esto tiene fundamento en la noción intuitiva de no poder existir un marcado con componentes negativas [11]. Para la determinación de las propiedades de una red de Petri mediante el uso del análisis por representación estructural se debe presentar su aplicación individual a cada una de ellas, lo cual se realiza a continuación. En general se asume que las redes bajo estudio son de tipo puras, pero ya se ha visto una metodología simple de eliminación del auto-lazo. 5.11.3.5. Determinación de la Reversibilidad Una red de Petri, P N = {N, M 0 }, es reversible si y sólo si existe un vector anulador derecho, Γ, con todos sus elementos positivos para la matriz de incidencia de la red [11]. Como esta definición establece que CΓ = 0, el sistema lineal de ecuaciones resultantes con coeficientes enteros se puede escribir de

CAPÍTULO 5. REDES DE PETRI

132

forma rápida a partir del balance de marcas en cada uno de los lugares de la red, así por ejemplo, para la red de la Figura 5.10 se tiene: ⎡ ⎢ ⎢ ⎢ CΓ = ⎢ ⎢ ⎣

−2 1 1 0 0 0

0 −1 0 1 0 0

0 0 −1 0 1 0

0 0 0 −1 −1 2

1 0 0 0 0 −1



⎡ ⎥ ⎥⎢ ⎥⎢ ⎥⎢ ⎥⎣ ⎦

−2γ1 + γ5 γ1 − γ2 γ1 − γ3 γ2 − γ4 γ3 − γ4 2γ4 − γ5



γ1 γ2 γ3 γ4 γ5

⎥ ⎥ ⎥=0 ⎦

= = = = = =

0 0 0 0 0 0

De donde se obtiene γ1 = γ2 = γ3 = γ4 = π y γ5 = 2π. Con π = 1 el vector Γ = [1, 1, 1, 1, 2]T , lo cual significa que se requiere exactamente disparar una vez las transiciones t1 a t4 y dos veces la transición t5 para partir y regresar al marcado inicial. Se debe notar como también son admisibles valores superiores de π y se interpretan como las veces que la red alcanza el marcado inicial. 5.11.3.6. Determinación de la Conservatividad Una red de Petri, P N = {N, M 0 }, es conservativa si y sólo si existe un vector anulador izquierdo, ∆, con todos sus elementos positivos para la matriz de incidencia de la red [11]. Como esta definición establece que ∆T C = 0, el sistemas lineal de ecuaciones resultantes con coeficientes enteros se puede escribir de forma rápida a partir del balance de marcas en cada una de las transiciones de la red, así por ejemplo, para la red de la Figura 5.10 se tiene: ⎡ ∆C =



δ1

δ2

δ3

δ4

δ5

δ6

⎢ ⎢ ⎢ ⎢ ⎢ ⎣

−2 1 1 0 0 0

−2δ1 + δ2 + δ3 −δ2 + δ4 −δ3 + δ5 −δ4 − δ5 + 2δ6 δ1 − δ6

0 −1 0 1 0 0

0 0 −1 0 1 0

0 0 0 −1 −1 2

1 0 0 0 0 −1

⎤ ⎥ ⎥ ⎥ ⎥=0 ⎥ ⎦

=0 =0 =0 =0 =0

De donde se obtiene δ1 = δ6 = π1 , δ3 = δ5 = π2 y δ2 = δ4 = π3 , además 2π1 = π2 + π3 . Con π2 = π3 = 1 el vector ∆ = [1, 1, 1, 1, 1, 1]T . Los anteriores resultados permiten introducir un nuevo concepto importante en el análisis de las redes de Petri. Al observar la Figura 5.10 se puede notar que uno de los resultados obtenidos del análisis de la conservatividad fue que δ3 = δ5 = π2 y δ2 = δ4 = π3 , que en la figura se pueden interpretar como que el disparo de t2 retira el mismo número de marcas que añade al subconjunto formado por los lugares P2 y P4, que t3 hace lo propio con el subconjunto formado por los lugares P3 y P5 y que finalmente las transiciones t1 o t4 retiran la misma cantidad de marcas que añaden, lo cual se expresa en el resultado 2π 1 = π2 +π3 .

5.11. ANÁLISIS DE LAS REDES DE PETRI

133

5.11.3.7. Determinación de la Limitación Si para una red de Petri, P N = {N, M 0 }, existe ∆ tal que ∆T C = 0, o sea la red es conservativa, entonces P N es limitada. Esta conclusión se desprende directamente de la aplicación de la ecuación de estado [11], en donde se puede encontrar que si la red tiene un marcado inicial finito entonces el marcado de cualquier lugar de la red también está limitado a un valor finito.

5.11.3.8. Determinación de la Vivacidad La determinación de la vivacidad de una red de Petri no es directa, al no existir una propiedad general que la pueda determinar, ya que como se ha expuesto, el vector secuencia de disparo no entrega la información completa sobre el orden de disparo de las transiciones. Sin embargo se pueden expresar algunos criterios que hablan sobre si una red es viva y segura para las diferentes subclases de redes de Petri estudiadas [10, 11]. Previo a la expresión de estos teoremas se define primero una RdP Fuertemente Conexa: Si una red de Petri, P N = {N, M 0 }, es viva y segura entonces no posee transiciones fuente o sumidero ni lugares fuente o sumidero, y se dice que P N = {N, M0 } es fuertemente conexa, es decir, existe un camino orientado que parte desde cada uno de los nodos de la red y llega a cada uno de los otros nodos. La anterior definición se relaciona directamente con la de árbol de cobertura fuertemente conexo. Criterio 1: Una máquina de estados es viva si y sólo si la red P N = {N, M 0 } es fuertemente conexa y el marcado inicial posee al menos una marca. Criterio 2: Una máquina de estados es segura si y sólo si el marcado inicial posee como máximo una marca. Criterio 3: Una máquina de estados viva es segura si y sólo si el marcado inicial posee exactamente una marca. Criterio 4: Toda máquina de estados es conservativa. Un gráfico marcado, GM = {N, M0 }, se puede dibujar como un Gráfico Orientado Marcado, GM = {G, M 0 } donde los arcos representan los lugares, los nodos a las transiciones y las marcas se ubican sobre los arcos. Se dice que un nodo está en un circuito orientado del GM = {G, M0 } si uno de sus arcos de entrada y uno de sus arcos de salida pertenecen al circuito orientado; por ejemplo, la Figura 5.43 muestra el gráfico orientado de la Figura 5.8, donde P1, P3, P5 y P6 forman un circuito orientado al igual que P1, P2, P4 y P6.

CAPÍTULO 5. REDES DE PETRI

134

t1 P1

P3

P2

t3

t5

t2

P5 P6

P4 t4

Figura 5.43: Gráfico Orientado Marcado Criterio 5: Un gráfico marcado es vivo, si y sólo si su marcado inicial posee como mínimo una marca en cada circuito orientado del respectivo gráfico orientado marcado. Criterio 6: El número máximo de marcas que puede tener un arco en un gráfico orientado marcado es igual al mínimo número de marcas puestas por el marcado inicial en el circuito orientado que contiene el arco. Criterio 7: Todo gráfico marcado que sea fuertemente conexo es conservativo. Un subconjunto no vacío de lugares en una red ordinaria de Petri se denomina Sifón si cada transición de la red que tiene un lugar de salida en el subconjunto también tiene un lugar de entrada que pertenece al subconjunto. Análogamente, un subconjunto no vacío de lugares en una red ordinaria de Petri se denomina Trampa si cada transición de la red que tiene un lugar de entrada en el subconjunto también tiene un lugar de salida que pertenece al subconjunto. La Figura 5.44 muestra la generalidad para sifón y trampa.

Sifón

Trampa

Figura 5.44: Sifón y Trampa Criterio 8: Una red de libre elección es viva si y sólo si cada sifón en la red contiene una trampa marcada.

5.12. ANÁLISIS LOCAL DE REDES DE PETRI

135

5.12. Análisis Local de Redes de Petri 5.12.1. Red de Petri Dual La red de Petri dual de una red de Petri generalizada, N G = {P, T, α, β}, se obtiene al cambiar los lugares por transiciones y las transiciones por lugares preservando la estructura, o sea N Gd = {T, P, β, α}es la red dual de N G. La matriz de incidencia de una red dual, C d , se obtiene de la transpuesta negativa de la matriz de incidencia de la red original, es decir C d = −CT . Con simple observación se puede determinar que toda máquina de estados es la red de Petri dual de un gráfico orientado marcado y que todo gráfico orientado marcado es la red dual de una máquina de estados.

5.12.2. Invariantes de Marcado y de Disparo Se denomina Invariante de Disparo a cualquier relación satisfecha por todas las secuencias de disparo que se pueden realizar desde el marcado inicial. De igual forma, se denomina Invariante de Marcado a cualquier relación satisfecha por todos los marcados alcanzables desde el marcado inicial [11]. La obtención de estos invariantes se basa en el vector anulador derecho, Γ, y el vector anulador izquierdo, ∆, para la matriz de incidencia y donde todos los elementos de estos vectores deben ser cero o positivos. Además, se denomina Componente Repetitiva a todo vector anulador derecho no negativo de C y Componente Conservativa a todo vector anulador izquierdo no negativo de C. Ya que cualquier componente repetitiva o conservativa multiplicada por un escalar (kΓ o k∆) también lo es, se requiere de una normalización, para lo cual se debe garantizar que el máximo común divisor de los elementos no nulos de la componente sea la unidad. Bajo estas condiciones la componente se convierte en una Componente Canónica repetitiva o conservativa según el caso. Una componente canónica repetitiva también se denomina T-invariantes, mientras una componente canónica conservativa también recibe el nombre de P-invariantes. Los elementos componentes diferentes de cero en los T-invariantes representan la cuenta de disparos necesarios, de las transiciones que representan, para alcanzar el marcado inicial partiendo del mismo marcado inicial. Así mismo, los elementos componentes diferentes de cero en los P-invariantes representan el peso asociado para ese lugar tal que la suma ponderada de marcas en esos lugares es una constante para todo marcado alcanzable desde el marcado inicial [12]. En los T-invariantes o P-invariantes se define un subconjunto de transiciones o lugares, según el caso, consistente en los elementos no nulos en el respectivo invariante. Estos subconjuntos de transiciones o lugares se denominan Soporte del Invariante y se presentan por Γ o ∆ según el invariante al que hacen referencia. Para ver un ejemplo del cálculo de los T-invariantes, el lector puede referirse a la Sección 5.11.3.5, donde se puede observar claramente la representación que se ha discutido sobre ellos.

CAPÍTULO 5. REDES DE PETRI

136

Para el cálculo de los P-invariantes se puede seguir dos procedimientos fáciles, a saber: el primero de ellos es calcular los T-invariantes de la red de Petri dual, o mediante el segundo que consiste en realizar un procedimiento iterativo que permite encontrar de forma rápida todos los P-invariantes de la red de forma tal que todos estos P-invariante obtenidos sean suficientes para generar cualquier relación lineal de componentes conservativas canónicas. A continuación se presenta el proceso iterativo para el desarrollo del segundo método. 5.12.2.1. Obtención de los P-Invariantes El proceso iterativo inicia con la formación de una nueva matriz como concatenación de la matriz unitaria de dimensión m y la matriz de incidencia, así: 

.. I 0 .C0



, donde el superíndice cero hace referencia únicamente a la iteración

cero, o sea procedimiento previo. El procedimiento iterativo se describe de la siguiente forma [11]: 1. Iniciar el contador k en 1. 2. Añadir en la parte inferior de la nueva matriz todas las filas que resultan como combinación lineal positiva de pares de filas de ella misma y que a su vez anulan a la k-ésima columna de Ck−1 . 3. Eliminar de la matriz resultante las filas en las cuales la k-ésima columna de Ck−1 es no nula. 4. Hacer k = k + 1 hasta un máximo de k = número de de transiciones menos una. Regresar a 2. 5. Las filas resultantes de la matriz I k son los P-invariantes luego de realizarse la respectiva normalización. Como ejemplo de este procedimiento se muestra la obtención de los P-invariantes para la Figura 5.8. Lo primero es construir la nueva matriz de la siguiente forma: ⎡

⎢ +1 ⎢ ⎢ ⎢ 0 ⎢   ⎢ ⎢ .. ⎢ 0 I 0 .C0 = ⎢ ⎢ ⎢ ⎢ 0 ⎢ ⎢ ⎢ 0 ⎢ ⎣ 0

0

0

0

0

0

+1

0

0

0

0

0

+1

0

0

0

0

0

+1

0

0

0

0

0

+1

0

0

0

0

0

+1

.. . .. . .. . .. . .. . .. .



−1

0

0

0

+1

−1

0

0

+1

0

−1

0

0

+1

0

−1

0

0

+1

−1

0

0

0

+1

+1 ⎥ ⎥ ⎥ 0 ⎥ ⎥ ⎥ ⎥ 0 ⎥ ⎥ ⎥ ⎥ 0 ⎥ ⎥ ⎥ 0 ⎥ ⎥ ⎦ −1

En la primera iteración se realiza la obtención de las combinaciones lineales positivas que anulan la primera columna de C0 , así:

5.12. ANÁLISIS LOCAL DE REDES DE PETRI ⎡ ⎢ +1 ⎢ ⎢ ⎢ 0 ⎢ ⎢ ⎢ ⎢ 0 ⎢ ⎢ ⎢ ⎢ 0 ⎢ ⎢ ⎢ 0 ⎢ ⎢ ⎢ ⎢ 0 ⎢ ⎢ ··· ⎢ ⎢ ⎢ ⎢ +1 ⎣

0

0

0

0

0

+1

0

0

0

0

0

+1

0

0

0

0

0

+1

0

0

0

0

0

+1

0

0 ···

0 ···

0 ···

0 ···

+1 ···

+1

0

0

0

0

0

+1

0

0

0

+1

137 ⎤

.. . .. . .. . .. . .. . .. . ··· .. . . ..

−1

0

0

0

+1

−1

0

0

+1

0

−1

0

0

+1

0

−1

0

0

+1

−1

0 ···

0 ···

0 ···

+1 ···

0

−1

0

0

0

0

−1

0

+1 ⎥ ⎥ ⎥ 0 ⎥ ⎥ ⎥ ⎥ 0 ⎥ ⎥ ⎥ ⎥ 0 ⎥ ⎥ ⎥ 0 ⎥ ⎥ ⎥ ⎥ −1 ⎥ ⎥ ··· ⎥ ⎥ ⎥ ⎥ +1 ⎥ ⎦ +1

Luego se eliminan las filas para las cuales la columna uno de C0 son no nulas, lo cual es ahora C1 : ⎡ ⎢ 0 ⎢ ⎢   ⎢ ⎢ 0 .. ⎢ I 1 .C1 = ⎢ ⎢ 0 ⎢ ⎢ ⎢ ⎢ +1 ⎣ +1

0

0

+1

0

0

0

0

0

+1

0

0

0

0

0

+1

+1

0

0

0

0

0

+1

0

0

0



.. . . .. .. . .. . . ..

0

+1

0

−1

0

0

+1

−1

0

0

0

+1

0

−1

0

0

0

0

−1

0

0

⎥ ⎥ ⎥ 0 ⎥ ⎥ ⎥ ⎥ −1 ⎥ ⎥ ⎥ ⎥ +1 ⎥ ⎦ +1

Procediendo igual para la segunda iteración, se obtienen las combinaciones lineales que eliminan la segunda columna de C1 y se eliminan las filas para las cuales la columna dos de C1 son no nulas, arrojando como resultado C2 . ⎡



0

⎢  ⎢ ⎢ .. ⎢ 0 I 2 .C2 = ⎢ ⎢ ⎢ ⎢ +1 ⎣ +1

0

0

0

+1

0

0

0

0

0

+1

0

+1

0

0

0

+1

0

+1

0

0



.. . .. . .. . .. .

0

0

+1

−1

0

0

0

+1

0

0

−1

0

0

0

0

−1

En la tercera iteración los resultados son: ⎡



. I 3 ..C3



⎢ 0 ⎢ ⎢ =⎢ ⎢ +1 ⎣ +1

0

0

0

0

+1

+1

0

+1

0

0

0

+1

0

+1

0

. .. .. . .. .

0

⎥ ⎥ ⎥ −1 ⎥ ⎥ ⎥ ⎥ +1 ⎥ ⎦ +1

⎤ 0

0

0

+1

0

0

0

−1

0

0

0

−1

−1 ⎥ ⎥ ⎥ +1 ⎥ ⎥ ⎦ +1

Finalmente, en la cuarta y última iteración el resultado obtenido es el siguiente:

CAPÍTULO 5. REDES DE PETRI

138



. I .C

4. 4



⎡ ⎢ +1 =⎣ +1

+1

0

+1

0

+1

0

+1

0

+1

+1

.. . .. .

⎤ 0

0

0

0

0 ⎥ ⎦

0

0

0

0

0

Los resultados anteriores están claramente normalizados, por los que los soportes para los P-invariantes obtenidos son entonces:

∆1 =

{P1, P2, P4, P6}

∆2 =

{P1, P3, P5, P6}

Estos resultados indican la forma en la cual la relación de marcas entre los lugares del primer soporte se mantiene constante, es decir, si en la Figura 5.8 se hace la suma de las marcas en los lugares P1, P2, P4 y P6 ésta siempre es una constante, y de igual forma se puede proceder con los lugares del segundo soporte. Además se debe recordar que cualquier otra combinación lineal de los anteriores también es otra componente conservativa, por lo que si se suman ambos se obtiene una tercera relación de la forma ∆1 + ∆2 = {2P1, P2, P3, P4, P5, 2P6} indicando que al realizar la suma ponderada de marcas en todos los lugares de la red se obtiene otra relación constante, que en este caso es de 2.

5.13. Portabilidad entre Redes de Petri y Lógica Cableada Mediante la portabilidad se persigue realizar el paso directo de implementaciones realizadas bajo la teoría de redes de Petri a una estructura tipo lógica cableada que facilite su implementación bajo técnicas de programación en PLCs. La técnica acá presentada se basa en el concepto que emplean las redes de Petri para controlar la evolución o flujo en la red, y el cual se fundamenta en el marcado. Cada lugar de una red de Petri representa un estado, condición o recurso y se asocia en los diagramas de lógica cableada con uno de los escalones que en general deben controlar un contador que hace las veces de bobina, pero a su vez permite el control de marcas en el lugar asociado. Las transiciones corresponden con los eventos o acciones que permiten la evolución del marcado y se asocian con los contactos, que a su vez deben realizar la regla de evolución de retirar marcas de los lugares previos, restar en los contadores, y sumar marcas en los lugares siguientes, sumar en los contadores respectivos [1, 8]. Se muestra la forma de reemplazar cada uno de los elementos de una red de Petri por una estructura tipo lógica cableada que representa la misma funcionalidad y reglas de evolución involucradas. Para iniciar, en la Figura 5.45 se muestra la forma de reemplazar una arquitectura secuencial.

5.13. PORTABILIDAD ENTRE REDES DE PETRI Y LÓGICA CABLEADA 139 P1=C1

C1

t1

t1

C2:=C2+1 C1:=C1-1

P2=C2

Figura 5.45: Arquitectura Secuencial a Lógica Cableada En la anterior figura, el disparo de la transición t1 se asocia con el evento de cierre en el contacto análogo, lo cual ocasiona la evolución si el lugar P1 se encuentra marcado, que es análogo a decrementar en uno del contador previo e incrementar en uno el contador siguiente. De forma general, los arcos en la red de Petri pueden tener asociado un peso, que a su vez puede ser distinto para cada uno. En este caso la regla de la evolución exige que en el lugar previo deben existir como mínimo tantas marcas como peso tiene el arco que lo une con la transición y se deben adicionar en el lugar de salida tantas marcas como peso tiene el arco que la une con la transición. En la Figura 5.46 se representa esta regla de evolución general que exige el mínimo de marcas (n) en P1 y el cumplimiento de la transición para retirar n marcas de P1 y adicionar m marcas a P2.

n m

P1=C1 C1 > n

t1

t1

C2:=C2+m C1:=C1-n

P2=C2

Figura 5.46: Arcos con Pesos a Lógica Cableada Otro elemento básico de las redes de Petri es el arco inhibidor, el cual exige la no presencia de marcas en el lugar de partida para permitir la sensibilización de la transición a la cual llega. Para el caso de implementación en lógica cableada, este arco inhibidor se puede interpretar como un contacto normalmente cerrado asociado al lugar de salida del arco con el fin de verificar la no presencia de marcas. En la Figura 5.47 se muestra su representación.

P1=C1 P2=C2 t1

C1

C2

t1

C3:=C3+1 C1:=C1-1

P3=C3 Figura 5.47: Arco Inhibidor a Lógica Cableada

CAPÍTULO 5. REDES DE PETRI

140

En un Nodo And, una transición puede tener varios lugares de entrada y varios lugares de salida. Para este caso, la implementación en lógica cableada debe reflejar la regla de sensibilización de la transición y la evolución del marcado hacia cada uno de los lugares de salida. En la Figura 5.48 se muestra su esquema general.

P1=C1

P2=C2

C1

C2

t1

C3:=C3+1 C4:=C4+1

t1

C1:=C1-1 P3=C3

C2:=C2-1

P4=C4

Figura 5.48: Nodo And a Lógica Cableada En la arquitectura de decisión se describe la activación de un evento de entre varios posibles. Para su implementación en lógica cableada, la sensibilización y posterior disparo de una sola de las transiciones posibles determina el camino a seleccionar, por lo que los eventos asociados a las transiciones deben ser mutuamente excluyentes. En la Figura 5.49 se muestra su representación.

P1=C1 t1

t2

P2=C2

P3=C3

C1

t1

C1

t2

C2:=C2+1 C1:=C1-1 C3:=C3+1 C1:=C1-1

Figura 5.49: Arquitectura de Decisión a Lógica Cableada En muchos casos, no se puede asegurar que los eventos asociados a la arquitectura de decisión sean mutuamente excluyentes, por lo que se debe asignar una prioridad o asegurar que la ocurrencia de ambos no cree un conflicto. Para la implementación en lógica cableada de este tipo de circunstancias se hace necesario la adición de condiciones que impidan el disparo de las transiciones de forma simultánea, o definir claramente prioridades a los eventos, tal como se muestra en la Figura 5.50, donde la ocurrencia simultánea de las transiciones t1 y t2 no produce la evolución.

5.13. PORTABILIDAD ENTRE REDES DE PETRI Y LÓGICA CABLEADA 141 C1

t2

t1

C1

t1

t2

C2:=C2+1 C1:=C1-1 C3:=C3+1 C1:=C1-1

Figura 5.50: Arquitectura de Decisión con Prioridad a Lógica Cableada En la mayoría de los automatismos se consideran condiciones de temporización que representan un estado del sistema, o sea un lugar dentro de una red de Petri. Si la evolución está condicionada al cumplimiento del temporizador, la implementación en lógica cableada debe tener en cuenta esta condición para la sensibilización de la transición respectiva, tal como se muestra en la Figura 5.51, donde se asume una temporización tipo ON.

t1 P1=C1 Ton=T

C1 C1 Ton

t2

Ton=T(s) t2

C2:=C2+1 C1:=C1-1

P2=C2

Figura 5.51: Temporizador a Lógica Cableada Como a todo lugar se le asocia un posible estado, condición o recurso, se hace necesario asignar la ejecución de estas acciones ante la presencia de marcas en el lugar, lo cual se realiza mediante la implementación mostrada en la Figura 5.52.

t1 P1=C1 A(Acción)

C1

A(Acción)

t2 Figura 5.52: Acción a Lógica Cableada

CAPÍTULO 5. REDES DE PETRI

142

Finalmente, se hace énfasis en la implementación del marcado inicial de una red de Petri. El marcado inicial determina el estado de arranque de un sistema y es fundamental para determinar la evolución de estados, o marcados. Para su implementación en lógica cableada se procede a realizar la activación de cuenta adecuada en cada uno de los contadores que representan lugares con marcas iniciales, asumiendo que todo sistema en el arranque tiene sus contadores en cero, lo cual es práctico ya que la mayoría de los sistemas en PLCs definen un valor inicial de cuenta por defecto en cero para los contadores al momento de arranque del sistema. En la Figura 5.53 se muestra un ejemplo completo de implementación en lógica cableada para una red de Petri, donde el primer escalón implementa el marcado inicial.

C2 C3 C4 C5 C6 C1

t1

t1 P3

P2

t3

t2

P5

P4 t4

C2:=C2+1 C3:=C3+1

P1

t5

C1:=C1+1

C2

t2

C3

t3

C4 C5 t4

C1:=C1-1 C4:=C4+1 C2:=C2-1 C5:=C5+1 C3:=C3-1 C6:=C6+1 C4:=C4-1

P6 C6

t5

C5:=C5-1 C1:=C1+1 C6:=C6-1

Figura 5.53: Ejemplo de Red de Petri a Lógica Cableada De la figura anterior se podría pensar que la parte del último escalón que realiza el incremento del contador uno sobra, ya que su incremento se realiza de forma automática cuando todos los contadores quedan en cero. Sin embargo, esto no siempre es así, ya que algunos sistemas pueden no ser reversibles o regresar un número diferente de marcas cuando se termina un ciclo completo. En muchas ocasiones se usa un interruptor en serie con los contactos normalmente cerrados que dan el marcado inicial, con el fin de independizar el arranque del fin de un ciclo.

5.14. EJERCICIOS PROPUESTOS

143

5.14. Ejercicios Propuestos 1. Determine las propiedades de RdP Limitada, Viva, Reversible, Binaria, Conforme, Persistente y Conservativa para cada una de las siguientes redes de Petri:

t1

P1

P1

t1 P2

P3

P2 t2

t2

t3

P3 P4

P4 (a)

(b)

P1

P1 t1

t2

P2

P3

t4

t3

t5

t3 P4 t6

P2 P5

t1

t4

t2

t5

P6

P3

P4

t3 (c)

(d)

Figura 5.54: Ejercicios sobre Propiedades 2. Halle la matriz de incidencia, C, para cada una de las redes de la Figura 5.54. 3. Halle el marcado alcanzado en la red de la Figura 5.54-d si el vector seT cuencia de disparo es σ = {1, 0, 1, 0, 0} . 4. Encuentre el árbol de cobertura para todas las redes de las Figuras 5.54. 5. Encuentre los gráficos de cobertura todas las redes de las Figuras 5.54. 6. Determine para el punto 4, ¿Cuáles árboles de cobertura son árboles de alcanzabilidad y por qué?

CAPÍTULO 5. REDES DE PETRI

144

7. Determine para el punto 5, ¿Cuáles gráficos de cobertura son gráficos de alcanzabilidad y por qué? 8. Realice la simplificación de la siguiente red de Petri.

t9 P1

P2

t1

t2

P3

P4

P11

t3

t10

P6

P5 t6 P8

t4

P7 t8 P10

P9 t5

P12 t11 P13

t7 t12

Figura 5.55: Ejercicio de Simplificación 9. Encuentre las subredes de Petri que se pueden reducir a un lugar en la red de la Figura 5.55. 10. Encuentre los T-invariantes y P-invariantes para las redes de Petri de las Figuras 5.54. 11. Realice la implementación en lógica cableada para la red de Petri de la Figura 5.54-d.

Bibliografía [1] A. H. Jones, M. Uzam, A. H. Khan, D. Karimzadgan, S. B. Kenway A General Methodology for Converting Petri Nets Into Ladder Logic: The TPLL Methodology Procediendo de la 5ta Conferencia Internacional CIMAT Francia, 1996, pp 357-362. [2] Bobbio Andrea System Modelling with Petri Nets Procediendo de A.G. Colombo and A. Saiz Bustamante (eds), System Reliability Assessment, Kluwer p.c., pp 102-143. 1990. [3] Brusey James PetriLLD Tutorial Segunda Edición. 2005, 2006. [4] Frantisek Capkovi Modelling and Control of Discrete Event Dynamic Systems BRICS Report Series, 2000. ISSN 0909-0878. [5] García Moreno Emilio Automatización de Procesos Industriales Alfaomega, 2001. ISBN 970-15-0658-8. [6] Girault Claude, Valk Rüdiger Petri Nets for Systems Engineering A Guide to Modeling, Verification, and Applications Springer-Verlag, 2003. ISBN: 3-540-41217-4. [7] Haas Peter J Stochastic Petri Nets: Modelling, Stability, Simulation Springer-Verlag, 2002. ISBN 0-387-95445-7. [8] K. Venkatesh, M. Zhou, R. J. Caudill Comparing Ladder Logic Diagrams and Petri Nets For Sequence Controller Design Through a Discrete Manufacturing System Procediendo de la IEEE, Transactions on Industrial Electronics, Vol. 41, No 6, pp 611 a 619. Diciembre de 1994. 145

BIBLIOGRAFÍA

146 [9]

Martins M. Paulo Romero, Dueire L. Rafael, Freire C. Paulo Roberto Introdução às Redes de Petri e Aplicações Departamento de Informática, Universidad Federal de Pernambuco X Escola de Computação, Campinas-SP. Brasil, 1996.

[10] Murata Tadao Petri Nets: Properties, Analysis and Applications Procediendo de la IEEE, Vol. 77, No 4, pp 541 1 580. Abril de 1989. [11] Silva Manuel Las Redes de Petri: en la Automática y la Informática Editorial AC, 1985. ISBN 84-7288-045-1. [12] Zurawski Richard, Zhou MengChu Petri Nets and Industrial Applications: A Tutorial Procediendo de la IEEE, Transactions on Industrial Electronics, Vol. 41, No 6, pp 567 a 583. Diciembre de 1994.

Capítulo 6

ESTÁNDAR IEC 61131-3 6.1. Marco Introductorio Los diagramas escalera, tal como se vieron en el Capítulo 4, han evolucionado desde los diagramas de cableado utilizados en el diseño de sistemas para vehículos, siendo inicialmente una excelente forma de expresar el desarrollo de pequeñas aplicaciones con habilidades muy básicas en programación. Debido a su fácil interpretación y seguimiento se hicieron muy populares y la mayoría de los PLCs entregaron una forma de programación con base en los diagramas escalera. Sin embargo, el desarrollo de un sistema de estos se vuelve más complejo cuando el tamaño del sistema crece, trayendo con ello nuevos problemas en el desarrollo, especialmente haciendo muy difícil la creación de programas estructurados, el diseño de subrutinas o procedimientos y dificultando enormemente el seguimiento y mantenimiento de sistemas en proporción al tamaño de los mismos. Aunque cada fabricante de PLCs trató a su manera de ir subsanando las dificultades presentadas, el enorme crecimiento de la industria de los automatismos ocasionó la presencia de diversos lenguajes y técnicas de desarrollo propios de cada uno dificultando la integración, mantenimiento y seguimiento de los sistemas por parte de los desarrolladores y personal de planta, requiriendo de habilidades y capacitación especial en cada uno de los tipos de PLCs usados. Se requería, entonces, de lo que se llama hoy en día Sistemas Abiertos, permitiendo la construcción de grandes soluciones usando equipos provenientes de varios manufacturadores y estandarizando los métodos y técnicas de programación. Lo anterior fue la motivación principal para la emisión del Estándar IEC 61131-3, el cual provee técnicas bien concebidas y probadas para lenguajes de programación de PLCs teniendo implicación directa sobre la productividad en el desarrollo de las aplicaciones al mejorar su análisis, desarrollo, mantenimiento y seguimiento [8, 9, 10]. La primera publicación del estándar se realizó en 1993 y a lo largo del tiempo ha tenido correcciones, enmiendas y reportes técnicos de los cuales los principales son: Corrección al IEC 61131-3 de 1994 149

150

CAPÍTULO 6. ESTÁNDAR IEC 61131-3

el cual corrige errores encontrados en el estándar posteriores a su publicación, Reporte Técnico 2 “Extensiones Propuestas al IEC 61131-3” y el Reporte Técnico 3 “Guías para la aplicación e implementación de lenguajes de programación para controladores programables” [4, 6, 5, 7, 8, 9].

6.1.1. Deficiencias de la Programación Escalera Aunque este tipo de programación fue la abanderada en los inicios de la propagación de los sistemas basados en PLCs, ella presentaba unas deficiencias bien definidas las cuales era necesario superar. La mayoría de los sistemas de programación en escalera soportados por los PLCs entregaban un número limitado de subrutinas, dificultando la división de un programa extenso en estructuras funcionales menores y con una jerarquía bien definida. De lo anterior se puede deducir que se limitaba la reutilización de piezas de software con funcionalidades comunes a más de una aplicación. Era entonces necesario escribir una y otra vez las mismas piezas de software para cumplir exactamente la misma funcionalidad dentro de un mismo sistema y más aún en sistemas diferentes. Es claro que la posibilidad de tener bloques funcionales con lógica repetida que se puedan invocar continuamente puede reducir en gran proporción el tamaño de los programas y facilitar su mantenimiento. Otro inconveniente con este tipo de sistemas escalera era su inercia natural a impedir el uso de estructuras de datos ya que estos eran almacenados como unidades simples de memoria en bits o registros, pero en los sistemas actuales se necesita poder mantener agrupados conjuntos de datos relacionados y todos, posiblemente, de naturaleza diferente. Un ejemplo particular es el caso de un sensor en el cual fuera del valor que entrega relacionado con una variable física se debe guardar información de su ubicación, identificación, último mantenimiento, última falla, etc. Tal vez la dificultad más grande con los sistemas escalera aparece una vez los sistemas de control crecen, y a la vez también sus alcances y propósitos. Cuando el deseo es controlar un sistema complejo el cual abarca varios frentes se hace necesaria la introducción de control para la aplicación mediante secuencias. Si por ejemplo se quiere controlar el arranque de un motor de corriente alterna se requerirá iniciar verificando el estado de ciertas partes del sistemas que son externas al motor con el fin de asegurar la conveniencia o seguridad de su arranque, luego será necesario proceder con las acciones propias del arranque y cuando se asegure su operación en régimen permanente realizar el paso de las acciones posteriores o activación de máquinas y sistemas subsecuentes. Aunque la realización de este tipo de aplicación es posible mediante el uso de los diagramas escalera, su implementación es tediosa, a medida que el sistema crece se vuelve prácticamente inmanejable y su posterior mantenimiento es casi que imposible. En un sistema como el descrito en el párrafo anterior será posible encontrar requerimientos sobre el control de ejecución, por ejemplo se puede requerir seguimiento simultáneo a procesos donde las necesidades de ejecución del

6.2. MARCO CONCEPTUAL

151

código relacionado con cada proceso pueden ser diferentes, así unas partes del código deben ser evaluadas con mayor periodicidad en relación con otras. Estas demandas son bastantes difíciles de cumplir mediante la mayoría de los sistemas tradicionales encontrados. Es más, cuando el sistema requiere de controles basados en técnicas PID el problema se multiplica, ya que para garantizar un buen control, es necesario mantener la velocidad de muestreo entre actualizaciones de los algoritmos de control en estado estable y con una duración definida. Además, cuando se hace necesaria la introducción de análisis más complejos se requerirá de la presencia de operaciones aritméticas, las cuales son bastante complicadas en su implementación mediante el uso exclusivo de programación escalera. Todas las problemáticas expuestas son justificaciones más que válidas como motivación para la búsqueda y posterior introducción del Estándar IEC 611313 [2, 1, 8, 9].

6.2. Marco Conceptual El estándar IEC 61131-3 fuera de describir los lenguajes de programación para PLCs, también consta de guías y metodologías para la creación de proyectos. El estándar asume en todo instante que los valores provenientes de los sensores externos, encargados de obtener la valoración de las diferentes cantidades físicas, se encuentran disponibles en locaciones definidas de memoria en un PLC; de igual forma los valores de salida, encargados de controlar actuadores e indicadores, serán exteriorizados al actualizar locaciones definidas de memoria.

6.2.1. Elementos del Modelo de Software Los principales elementos requeridos en un modelo de software IEC 611313 son los siguientes [8, 9]: Configuración: Conforma la capa exterior del modelo de software. Generalmente se concibe como el mismo software requerido en un PLC. Cuando las aplicaciones se hacen más complejas y extensas, se hace necesaria la presencia de varios PLCs, los cuales deben interactuar entre ellos y donde el software de cada uno se puede interpretar como una configuración separada. La configuración guarda información sobre el tipo de PLC y recurso necesario para ejecutar un programa, la prioridad respectiva asignada, las variables globales y externas y las variables de asignación física. Recurso: Cada una de las unidades de proceso disponibles en un PLC. Un recurso puede correr varios programas y un programa no se podrá ejecutar si no es cargado en un recurso.

CAPÍTULO 6. ESTÁNDAR IEC 61131-3

152

Programa: Un programa se puede elaborar a partir de diferentes elementos de software, cada uno de los cuales puede a su vez ser elaborado en cualquiera de los lenguajes de programación definidos por el estándar. Cada elemento constitutivo de un programa puede requerir de prioridades diferentes de ejecución, para lo cual a cada parte se le puede asignar una tarea. Tarea: Una tarea configura la ejecución de un conjunto de programas y/o bloques de funciones. Esta configuración puede permitir la ejecución periódica de estos elementos o su ejecución ante solicitud. Un programa o bloque de función determinado permanecerá inactivo hasta que sea asignado a una tarea específica y hasta el momento en el cual dicha tarea se ejecute ya sea de forma periódica o por demanda. Unidades de Organización de Programa (POU): Son las funciones y bloques de funciones a partir de las cuales se pueden elaborar programas y otras POUs, por tanto pudiendo ser usados repetidamente en diferentes partes de una aplicación. El estándar IEC 61131-3 limita los tipos de POUs a tres principales tipos de bloques los cuales se describen en la Tabla 6.1: Tipo de POU

Descripción

Programa

Representa el programa principal y la unidad mayor de reu-

PROGRAM

tilización de software. En este tipo de unidad se incluye la asignación de variables de entrada y salida a direcciones físicas del PLC. Puede tener uno o varios parámetros de entrada y de salida.

Bloque de Función

Tipo de POU base del diseño jerárquico, al permitir la creación

FUNCTION_BLOCK

de programas desde unidades menores. Puede contener funciones y otros bloques de funciones. Posee un algoritmo que corre una vez con cada ejecución del bloque de función. Permite definir datos como conjunto de parámetros de entrada y salida que se pueden conectar a otros bloques o a variables internas. Las variables definidas pueden ser estáticas, lo cual implica que sus valores se pueden retener entre ejecuciones.

Función FUNCTION

Elemento de software que al ser invocado con un mismo conjunto de valores de entrada siempre retorna el mismo valor de salida, es decir, no posee variables estáticas y solo produce un único resultado primario.

Tabla 6.1: Tipos de POUs Variables Locales y Globales: Las variables pueden contener diferentes tipos de datos y poseer nombres que las representen de forma adecuada. Las variables locales se pueden declarar ya sea en las configuraciones, en los programas, en los bloques de funciones o en las funciones, pero quedando restringidas en acceso únicamente al elemento que las contiene. Una

6.2. MARCO CONCEPTUAL

153

variable global puede ser declarada en un programa y por tanto ser accedida desde todos los elementos de software dentro del mismo, igualmente si ésta es definida en un recurso o en una configuración podrá ser accedida por todos los elementos constitutivos de los mismos. Variables de Representación Directa: Permiten el acceso directo a posiciones de memoria del PLC. Sólo pueden ser declaradas y accedidas dentro de los programas. Su uso extensivo dificulta la reutilización de los programas que las definen, dado que al indicar posiciones determinadas de memoria éstas pueden variar de un programa a otro. Ruta de Acceso: Es una declaración especial de variable que puede ser leída o escrita por otras configuraciones remotas diferentes a la que la declara. Es de resaltar que el estándar no define los protocolos de comunicaciones a emplear. A continuación, en la Tabla 6.2, se resumen los diferentes tipos de variables disponibles y el Constructor 1 respectivo de cada una de ellas. Tipo de Variable Variable Local

Constructor VAR

Descripción Sólo es visible y procesable dentro de la POU que la define. Puede ser leída o escrita.

Variable de Entrada

VAR_INPUT

Variable de Salida

VAR_OUTPUT

Es una variable que es visible en la POU invocante. Dentro de su POU sólo puede ser leída más no escrita. Es una variable que es visible en la POU invocante. Fuera de su POU sólo se puede leer, pero dentro puede ser tanto leída como escrita.

Variable de Entrada y Salida

VAR_IN_OUT

Tipo de variable que combina los dos tipos anteriores. Puede ser leída y escrita tanto fuera como dentro de su POU.

Variable Externa

VAR_EXTERNAL

Es una variable global definida por una POU, siendo visible y con posibilidades de lectura y escritura por todas las otras POUs.

Variable Global

VAR_GLOBAL

Posee las mismas características de una variable externa.

Variable Ruta de

VAR_ACCESS

Variable global de uso en las configu-

Acceso

raciones como medio de comunicación entre una y las demás.

Tabla 6.2: Tipos de Variables 1 Un

constructor es una palabra especial, escrita normalmente en mayúsculas, empleada para determinar el inicio y/o fin de un elemento particular de software.

CAPÍTULO 6. ESTÁNDAR IEC 61131-3

154

En la Figura 6.1 se observa una representación esquemática de los diferentes componentes o elementos involucrados en el modelo de software definido por el Estándar IEC 61131-3.

CONFIGURACIÓN RECURSO

RECURSO

Tarea

Programa

Tarea

Programa

Tarea

Programa Bloque de Función (FB)

Función (FUN)

RECURSO Tarea

Tarea

Programa

Programa

VAR LOCAL

FB

FUN

VARIABLES GLOBALES Y DE REPRESENTACIÓN DIRECTA

RUTAS DE ACCESO

HACIA OTRAS CONFIGURACIONES

Figura 6.1: Modelo Definido por el Estándar IEC 61131-3

6.2.2. Partes de una POU Toda POU consta de tres partes, con las cuales se define completamente su tipo y funcionalidad deseada. En la primer parte se define el nombre y tipo de la POU, en la segunda parte se realiza la declaración de tipos de datos y variables y la última parte consta del código de instrucciones o algoritmo que define la funcionalidad [8, 9]. Si la POU es una función, en la primer parte debe ir la definición de tipos de datos. El Estándar IEC 61131-3 permite que las partes de declaración y de código puedan ser realizadas en cualquiera de los cinco lenguajes de programación textuales o gráficos definidos en el mismo estándar. Si, por ejemplo, se desea implementar un bloque de función para el arranque de un motor AC trifásico, la POU respectiva podría ser la mostrada en la Figura 6.2. En el estándar se definen un total de cinco lenguajes de programación, de los cuales tres son gráficos y dos son textuales, permitiendo la portabilidad de los programas independiente de los proveedores de los PLCs. A continuación se realiza una corta presentación de cada uno de los lenguajes, ya que su descripción será objetivo de secciones subsecuentes.

6.2. MARCO CONCEPTUAL Tipo de POU Interfaz de variables Variables locales

155

FUNCTION_BLOCK VAR_INPUT VAR_OUTPUT VAR

ArranqueMotor

Iniciar FIN Velocid PasoYD

:BOOL; END_VAR :BOOL; :BYTE; END_VAR :BOOL; END_VAR

ArranqueMotor Fin

Parte de declaraciones

Iniciar

Algoritmo

Velocid

ALGORITMO

Parte de código

Figura 6.2: Partes de una POU Texto Estructurado: (Structured Text- ST) Lenguaje de programación de alto nivel de sintaxis similar a los lenguajes tradicionales de texto como C, PASCAL, etc. Listado de Instrucciones: (Instruction List- IL) Lenguaje de programación de bajo nivel con orientación a máquina, el cual se basa en lenguajes similares ofrecidos por varios proveedores de PLCs. Diagrama de Bloques de Funciones: (Function Block Diagram- FBD) Lenguaje de programación que permite la interconexión gráfica del flujo de control entre funciones, bloques de funciones y los demás elementos funcionales. Diagrama Escalera: (Ladder Diagram- LD) Lenguaje gráfico de programación que se basa en los tradicionales diagramas de lógica cableada, o escalera. Diagrama Funcional Secuencial: (Sequential Function Chart- SFC) Lenguaje gráfico de programación que permite describir el flujo de control mediante la asignación de tareas en partes que se pueden realizar en forma secuencial o paralela. Como ejemplo para los diferentes tipos de lenguajes del estándar, se tiene la implementación de un control sencillo para una alarma en un banco: si se abre la caja fuerte en horario laboral se debe encender un indicador de riesgo, pero si se abre la caja fuerte fuera de horario laboral se debe activar una alarma sonora: IF (CajaFuerte=Abierta) AND (Horario=Laboral) THEN Indicador=1; ELSE IF (CajaFuerte=Abierta) AND (HorarioLaboral) THEN Alarma=1; END_IF; END_IF;

Figura 6.3: Ejemplo de Texto Estructurado

CAPÍTULO 6. ESTÁNDAR IEC 61131-3

156

LD AND ST LD AND

CajaFuerte Laboral Indicador CajaFuerte NOT(Laboral)

ST

Alarma

Figura 6.4: Ejemplo de Listado de Instrucciones

CajaFuerte

& 1

Laboral

Indicador

&

Alarma

CajaFuerte

Figura 6.5: Ejemplo de Diagrama de Bloques Funcionales

CajaFuerte

Laboral

=, = 0 THEN DISCR := TRUE; END_IF; END_FUNCTION

Figura 6.11: Función que Evalúa Discriminante en Ecuación Cuadrática En el ejemplo anterior la función posee tres parámetros de entrada, los cuales cuando la función es invocada desde otra función, bloque de función o programa pueden ser asignados como valores provenientes desde literales, valores o expresiones. El nombre de los parámetros para la función invocada se toma desde los identificadores asignados a cada variable de entrada que se declaró al definir el tipo de función. Por ejemplo, a continuación se muestran tres formas

172

CAPÍTULO 6. ESTÁNDAR IEC 61131-3

diferentes de asignar valores a los parámetros de la función DISCR cuando es invocada: DISCR1 := DISCR(A:=2, B:=3, C:=1); DISCR2 := DISCR(B:=4+1, A:=2, C:=1); DISCR3 := DISCR(B:=3, C:=1);

Figura 6.12: Ejemplo de Invocación de Función DISCR1 es evaluada mediante la función DISCR con parámetros dados todos como literales, en DISCR2 se puede observar que los parámetros se pueden ingresar en cualquier orden y en DISCR3 hace falta un parámetro, caso en el cual a A le es asignado el valor por defecto para un dato de tipo LREAL (o sea cero). Sin embargo la mayoría de las funciones estandarizadas no poseen nombres para los parámetros debido a que son evidentes y explicativos por si mismos, por lo que estas funciones se invocan mediante una lista de parámetros, un ejemplo es nuevamente la función raíz cuadrada donde es claro que el valor entre paréntesis, SQRT(x), es el que se desea evaluar. Cuando las funciones son empleadas en los lenguajes gráficos de programación del estándar LD (Diagrama Escalera) y FBD (Diagrama de Bloques de Funciones) ellas poseen una entrada y una salida adicionales denominadas respectivamente como EN y ENO. Estas dos variables son definidas de forma implícita tanto para las funciones estandarizadas como cuando se define un nuevo tipo de función y por ende no requieren ser declaradas, sin embargo ellas pueden ser accedidas dentro del cuerpo de la función como parte de su implementación. La entrada EN (Enable) es una habilitación de ejecución y debe tener un valor de TRUE para poderse ejecutar el conjunto de instrucciones en el cuerpo de la función. La salida ENO (Enable Output) es puesta automáticamente en un valor de TRUE cuando la ejecución de la función se realiza exitosamente. Cuando EN tiene un valor de FALSE siempre la salida ENO tomará un valor igual, sin embargo cuando EN tiene un valor de TRUE inicialmente ENO toma un valor de TRUE pero programáticamente dentro del cuerpo de la función este valor puede ser cambiado, lo cual puede ocurrir si durante la ejecución ocurren errores, aunque el estándar exige que el compilador ponga automáticamente ENO en FALSE ante la ocurrencia de alguno de los tipos de errores definidos por el mismo estándar. Para poder realizar la anterior implementación, las palabras EN y ENO son reservadas en los lenguajes descritos, y aunque una enmienda del estándar permitió la implementación de estas variables en texto estructurado, para poder permitir una posible conversión de código entre lenguajes también deben ser reservadas en IL y ST. Con la ayuda de las variables EN y ENO de las funciones se puede realizar una implementación fácil de control de error al conectar la variable de salida ENO de una función a la variable de entrada EN de otra, lo cual impedirá la

6.3. ELEMENTOS COMUNES A LOS LENGUAJES DEL ESTÁNDAR

173

ejecución de funciones posteriores a la ocurrencia de errores o ante situaciones programadas. Ejemplo Se plantea la necesidad de sumar dos números reales y posteriormente obtener la raíz cuadrada de dicha suma. Si la suma efectuada es negativa la raíz cuadrada no es un número real y por tanto no se podría efectuar, entonces un posible código de control para esta situación en ST se muestra a continuación. SUMA := ADD(A, B, ENO=>OkSuma); IF OkSuma THEN IF SUMA >= 0 THEN POSITIVO := TRUE; END_IF; RAIZ := SQRT(SUMA, EN:=POSITIVO, ENO=>OkRaiz); END_IF;

Figura 6.13: Uso de las Variables EN y ENO de una Función Del ejemplo anterior es importante resaltar como se ha empleado la salida ENO de cada una de las funciones para ir controlando la ejecución. Se puede observar además que el delimitador =>se emplea para asignar el valor de ENO en otra variable y que para realizar la suma se ha empleado la función ADD la cual es idéntica al operador de texto estructurado “+”. Igual analogía ocurre con las funciones y operadores de resta (SUB y -), multiplicación (MUL y *), división (DIV y /), módulo (MOD y MOD), exponencial (EXPT y **) y de asignación (MOVE y :=). Los operadores de suma y multiplicación se denominan extensibles ya que el número de parámetros de entrada puede variar, mientras que los demás no presentan esta característica. En la Figura 6.13 también es de resaltar el empleo de la función de comparación “mayor o igual que”. Todas las funciones de comparación siempre retornarán un tipo de dato BOOL y se pueden emplear con todos los tipos de datos, además también poseen un operador en texto estructurado para cada una así: mayor que (GT y >), mayor o igual que (GE y >=), igual (EQ y =), menor que (LT y __ __ __

>CABLE1>

>CABLE1> >CABLE1>

Figura 6.34: Elementos Gráficos de una Red FBD

6.6. DIAGRAMA DE BLOQUES DE FUNCIONES (FBD)

193

En la Figura 6.34, el elemento denominado Conector es empleado para la elaboración de grandes redes. Este elemento no se considera como un elemento para el control de flujo, su significado debe ser entendido como una prolongación de una línea y simplemente ayuda en la continuidad del mismo flujo. A un conector se le asocia un nombre o etiqueta el cual es considerado como un identificador local en la POU respectiva. En un sistema donde la pantalla está limitada en ancho o largo, esta herramienta es de mucha utilidad, más sin embargo en los sistemas que no limitan la pantalla, o que poseen un gran ancho, esta herramienta es opcional de ser implementada. La funcionalidad descrita dentro de una POU se puede realizar empleando una o más redes, por tanto a cada red se le debe asignar un nombre y en la mayoría de los sistemas se acostumbra a realizar una enumeración consecutiva de éstas. Este nombre se asocia con la etiqueta necesaria para realizar saltos en el lenguaje ST, ver Figura 6.31 y el estándar sólo la define con ese propósito y la trata además como un identificador local dentro de la POU.

6.6.2. Elementos para Control de Flujo Son elementos gráficos adicionales que tienen influencia sobre el control de ejecución. Permiten el abandono prematuro de la ejecución o el salto hacia o desde una red. En ambos casos estas acciones se pueden realizar de forma condicional o incondicional. Estos elementos se muestran en la Figura 6.35.

cond

RETURN

cond

Figura 6.35: Elementos Gráficos Para Control de Flujo en FBD En la gráfica 6.35 el objeto de la derecha es el elemento para abandono prematuro y el objeto de la izquierda el elemento para salto. En ambos casos “cond” representa la condición sobre la cual se evalúa la acción, si esta condición se fija en 1 (TRUE) las acciones se realizarán de forma incondicional.

6.6.3. Reglas de la Evolución en una Red FBD Una red FBD se compone en general de elementos en forma de caja rectangular que representan funciones o bloques de funciones, los cuales se interconectan empleando conexiones y conectores, y donde además el flujo de la información puede ser direccionado empleando elementos para control de flujo. Una función en general puede tener varias entradas, las cuales se dibujan al lazo izquierdo de la caja que la representa y una única salida que se dibuja al lado derecho, un bloque de función sólo se diferencia de una función en el hecho que puede tener varias salidas todas dibujadas al lado derecho. El nombre para el tipo de bloque de función al igual que el nombre de una función va dentro de la caja rectangular en la parte superior, en el caso de los bloques de

CAPÍTULO 6. ESTÁNDAR IEC 61131-3

194

funciones el nombre de la instancia va ubicado sobre la caja. Los nombres de las variables de entrada y salida para una función o bloque de función dado van dentro de su caja al nivel del respectivo puerto de dato que representan. Una red esquematizada con base en la anterior descripción, siempre debe seguir los siguientes criterios con el fin de determinar la forma de evolución del flujo de datos a través de las redes [8, 9]: 1. La secuencia de ejecución de varias redes se realiza una a una de arriba hacia abajo. Esta secuencia de ejecución se puede alterar empleando saltos. 2. La evaluación de un elemento cualesquiera en la red requiere para su inicio que todas sus entradas estén disponibles, lo cual equivale a que sus entradas hayan sido evaluadas y entregadas desde elementos anteriores. 3. La evaluación de un elemento de la red no se da por terminada hasta que se disponga de la evaluación de todas sus salidas. 4. En el mismo sentido del punto 2, cuando una primera red transfiere datos a una segunda se necesita que la primera tenga disponibles todos los datos requeridos en la segunda para que ésta última pueda iniciar su ejecución. Esto también se aplica en conjuntos de bloques de funciones que se ejecutan bajo el control de diferentes tareas que poseen configuración de ejecución en tiempos diferentes. Ejemplo: Una red FBD que implementa la siguiente función de conmutación se muestra en la Figura 6.36: F = ¬(A ∨ (B ∧ (C ∨ 1))) 001: C

OR AND

1

tmp

B tmp

OR F

A

Figura 6.36: Ejemplo de Evolución en Red FBD

6.6. DIAGRAMA DE BLOQUES DE FUNCIONES (FBD)

195

En la Figura 6.36 se puede observar como la salida, que representa a la función F , posee una negación al final de la expresión la cual se pudo haber implementado usando la función estándar NOT indistintamente. Además se debe notar como los datos de entrada pueden ser variables o constantes. En esta misma figura se ha empleado un conector denominado ”tmp” el cual sirve para darle continuidad a una línea dentro del diagrama. Ejemplo: Si la función F del ejemplo anterior se emplea como condición necesaria para permitir la ejecución de una segunda red, la cual implementa la evaluación de la función S = (S ∗ 0,05) + N 2, la representación esquemática para esta nueva red FB es la mostrada en la Figura 6.37.

001 Red1: C

OR AND

1

tmp

B tmp

OR Red2

A 002 Red2: 0.05

MUL AND

S

N2

Figura 6.37: Ejemplo Red FBD con Realimentación y Salto

En la Figura 6.37, es de aclarar que se permite la realimentación de valores, pero para poder cumplir con la reglas de evolución listadas en la Sección 6.6.3 es necesario que la primera vez que se avalúa la red el valor de la entrada realimentada sea tomado desde el valor inicial por defecto definido para el tipo de dato asociado. Es de resaltar además que se cuenta con los parámetros EN y ENO en las funciones, con los cuales se puede incidir explícitamente sobre el flujo de la información en una red, de la forma ya descrita en la Sección 6.3.8.1.

CAPÍTULO 6. ESTÁNDAR IEC 61131-3

196

6.7. Diagrama Escalera (LD) Este lenguaje se fundamenta en los diagramas de la lógica cableada clásica y sus componentes gráficos representan elementos encontrados en estos mismos diagramas, tal como se estudió en el Capítulo 4. Un diagrama escalera se compone de dos líneas verticales, las cuales entregan la alimentación para los restantes elementos del diagrama que se sitúan en líneas horizontales, o escalones, y donde por convención se asume que la información (flujo de potencia) va desde la línea vertical de la izquierda a la línea de la derecha. Como el diagrama se base en el uso de contactores, los contactos indican el estado actual de variables booleanas, con lo cual constituyen un método de sólo lectura de la variable que representan, mientras que las bobinas proveen un método de solo escritura para la variable asociada [1, 8, 9].

6.7.1. Elementos Gráficos de una Red LD Al igual que para una red FBD el estándar define dos métodos de realizar los gráficos, un método semi-gráfico y un método gráfico completo. Los elementos básicos de la red compuestos por líneas, conexiones, bloques y conectores son representados exactamente igual a como se definió en la Sección 6.6.1 correspondiente a una red FBD. Adicional a los elementos básicos anteriores, una red LD posee además elementos gráficos para representar contactos y bobinas, ambos representados en cualesquiera de los dos métodos gráficos, por simplicidad se muestra a continuación únicamente las representaciones gráficas completas.

?

?

Figura 6.38: Representación de Bobina y Contacto en LD En la Figura 6.38 la incógnita dentro de cada elemento representa un símbolo de un conjunto posible ya sea para un contacto o para una bobina. A continuación se listan los símbolos para cada elemento y se da una breve descripción de su significado: Contactos: “ “ Caracter espacio en blanco: Representa un contacto normalmente abierto / Caracter slash: Representa un contacto normalmente cerrado P: Representa un contacto sensible a transición positiva, o sea que se activa con flanco de subida

6.7. DIAGRAMA ESCALERA (LD)

197

N: Representa un contacto sensible a transición negativa, o sea que se activa con flanco de bajada Bobinas: “ “ Caracter espacio en blanco: Bobina que toma el valor de estado lógico evaluado por los elementos a su izquierda / Caracter slash: Bobina negada; toma el valor negado de estado lógico evaluado por los elementos a su izquierda S: Set de Bobina; la bobina se fija en el estado ON cuando el valor lógico evaluado por los elementos a su izquierda es 1. La bobina permanece en este estado hasta que se emplee un reset de bobina. R: Reset de Bobina; la bobina se fija en el estado OFF cuando el valor lógico evaluado por los elementos a su izquierda es 1. La bobina permanece en este estado hasta que se defina un estado contrario. M: Bobina de Retención; opera de forma igual a una bobina normal, con excepción que su estado se retiene en la memoria del PLC ante fallos en el suministro de potencia. SM: Bobina de Retención Set; opera de forma igual a un set de bobina, con excepción que su estado se retiene en la memoria del PLC ante fallos en el suministro de potencia. RM: Bobina de Retención Reset; opera de forma igual a un reset de bobina, con excepción que su estado se retiene en la memoria del PLC ante fallos en el suministro de potencia. P: Bobina Sensible a Transición Positiva; la bobina pasa al estado ON con un flanco de subida. N: Bobina Sensible a Transición Negativa; la bobina pasa al estado ON con un flanco de bajada.

6.7.2. Elementos Para Control de Flujo Son elementos gráficos adicionales que tienen influencia sobre el control de ejecución. Permiten el abandono prematuro de la ejecución o el salto hacia o desde una red LD. En ambos casos estas acciones se pueden realizar de forma condicional o incondicional y su representación es idéntica a la definida en la Figura 6.35 con operación igual a la ya vista en la Sección 6.6.2 para el lenguaje FBD.

6.7.3. Llamados a Funciones y Bloques de Funciones Al igual que en el lenguaje FBD, las funciones y bloques de funciones son representados mediante cajas rectangulares, donde las entradas van al lado izquierdo y las salidas (en el caso de las funciones una sola salida) van al lado derecho. El nombre formal de cada variable de entrada y salida va dentro de

198

CAPÍTULO 6. ESTÁNDAR IEC 61131-3

la caja al nivel del respectivo puerto de dato que representan. El nombre de un tipo de bloque de función y el nombre de una función van dentro de la caja en la parte superior, mientras que el nombre de la instancia de un bloque de función va ubicado sobre la caja. Los parámetros de entrada y salida en un bloque de función pueden ser de cualquier tipo de dato, pero el estándar exige que como mínimo una entrada y una salida deben ser de tipo booleano y deben tener conexión directa o indirecta a las líneas verticales del diagrama escalera. En las funciones las entradas EN y ENO sirven como elementos para controlar el flujo y además proveen un medio de cumplir con el requerimiento de tener como mínimo una entrada y una salida booleana con conexión directa o indirecta a las líneas verticales de la red LD.

6.7.4. Reglas de la Evolución en una Red LD La secuencia de evaluación siempre debe seguir los siguientes criterios con el fin de determinar la forma de evolución del flujo de datos a través de las redes [8, 9]: 1. La secuencia de ejecución de varias redes se realiza una a una de arriba hacia abajo. Esta secuencia de ejecución se puede alterar empleando saltos. Igualmente los escalones de una red son ejecutados en secuencia de arriba hacia abajo. 2. La evaluación de un elemento cualesquiera en la red requiere para su inicio que todas sus entradas estén disponibles, lo cual equivale a que en un escalón o una POU sus entradas hayan sido evaluadas y entregadas desde elementos anteriores. 3. La evaluación de un elemento de la red no se da por terminada hasta que se disponga de la evaluación de todas sus salidas. 4. En el mismo sentido del punto 2, cuando una red transfiere datos a otra se requiere que la primera tenga disponibles todos los datos requeridos en la segunda para poder iniciar su ejecución. La función de conmutación de la Figura 6.36 se toma a manera de ejemplo para la implementación de una red en lenguaje LD, la cual se muestra en la Figura en la página siguiente. De la anterior red es claro como este lenguaje posee una naturaleza análoga a los circuitos digitales, ya que en ella fácilmente se pueden implementar funciones de conmutación, además desde el mismo diagrama se puede deducir simplificaciones que en muchos casos requieren de técnicas de minimización. Sin embargo una de las grandes desventajas de la programación en este lenguaje, fuera de las ya expuestas en la Sección 6.1.1, es la dificultad para programar ciclos iterativos o para tratar con tipos de datos derivados [2, 8, 9].

6.7. DIAGRAMA ESCALERA (LD)

199

A

B

F

C

/ 1

Figura 6.39: Ejemplo de Evolución en Red LD En el lenguaje LD también es posible realizar la realimentación de variables, lo cual sucede cuando en un mismo escalón se emplean contactos y entradas a funciones o bloques de funciones que se relacionan con variables (como bobinas o salidas de funciones o bloques de funciones) que se actualizan en el mismo escalón. A diferencia de lo que ocurre con la realimentación en el lenguaje FBD, en LD la realimentación sólo se realiza mediante conexiones implícitas, con lo cual aquellas conexiones que inician a la derecha y terminan en la izquierda, ver Figura 6.37, no son permitidas en LD. Un tema de especial cuidado, que se puede presentar con mayor frecuencia en lenguaje LD en comparación con FBD, es el problema de determinación de secuencia en la ejecución, que en algunos lenguajes gráficos de programación se denomina como condiciones de ejecución. Para entender este punto se muestra la Figura 6.40.

Var1

Var2

Var3

FunAB1 FunAB S1 E1 S2

Var2

Figura 6.40: Determinación de Secuencia en Ejecución Se puede observar como al momento de ejecutar la red de la Figura 6.40 no es claro en que instante será actualizado el dato de la variable denominada Var2, por tanto tampoco es claro si al instante de su evaluación ésta poseerá un valor que viene desde la evaluación previa o si por el contrario estará actualizado con el valor que entregue la salida 2 del bloque de función (FunAB1.S2) durante la evaluación presente. Por ende, este tipo de situaciones debe ser evitada durante la realización de redes tipo FBD o LD.

200

CAPÍTULO 6. ESTÁNDAR IEC 61131-3

6.8. Diagrama Funcional Secuencial (SFC) Éste es el último de los lenguajes del estándar IEC 61131-3, tiene su fundamento en las metodologías para la descripción de sistemas secuenciales, principalmente en Redes de Petri. Su naturaleza es gráfica y permite la estructuración de una implementación mediante estados, o unidades, que se ejecutan paso a paso. Cada uno de estos estados basa su ejecución en condiciones definidas por el operador y en condiciones dependientes de las entradas al sistema. Además cada unidad puede ser implementada en cualquiera de los otros cuatro lenguajes definidos en el estándar o mediante descripciones proporcionadas por el mismo SFC [2, 1, 8, 9]. El diagrama funcional secuencial se puede utilizar para realizar la implementación de POUs del tipo Bloque de Funciones o Programa, más no para las Funciones, lo anterior se debe a la misma naturaleza de este lenguaje, el cual retiene información en los estados y por tanto va en contravía de la definición dada para Función, ver la Sección 6.3.8.1.

6.8.1. Elementos Gráficos y Descripción de una Red SFC Una red SFC se compone primariamente de dos elementos: las Etapas y las Transiciones. Las etapas se representan mediante cajas rectangulares que van interconectadas entre si mediante una línea vertical, donde a su vez va ubicada una línea horizontal que representa la transición. A cada etapa se le puede asociar un conjunto de instrucciones, denominadas Acciones, las cuales se realizan dependiendo del estado actual en el cual se encuentre la etapa. Una etapa puede estar en uno de dos estados posibles: Activo o Inactivo. Si el estado actual es activo, entonces las acciones asociadas se repiten hasta que el estado de la etapa sea el de inactivo. El cambio de estado de una etapa está determinado por la transición inmediatamente debajo de ella. A la transición se le asigna una Condición de Transición la cual no es más que una expresión booleana a ser verificada. Cuando una etapa se encuentra activa se evalúa continuamente la condición asociada a la transición debajo de ella, cuando esta condición alcanza un valor verdadero “TRUE” ocasiona que la etapa que actualmente se encuentra activa pase al estado de inactiva y la etapa posterior a la transición, que actualmente se encontraba inactiva, pasa a estar activa (dependiendo de la estructura de la red se podría tener más de una etapa posterior a la transición). Dentro de la red SFC existe una etapa especial, denominada Start, (Inicio). Cuando la red SFC es invocada la etapa Start es activada de forma automática dando inicio así al flujo de datos a través de la red. En los sistemas modernos se acostumbra indicar las etapas que actualmente se encuentran en el estado activo mediante una marca circular negra (•) que se denomina Token (moneda) y que ayuda en el seguimiento gráfico del flujo secuencial a través de la red. En la Figura 6.41 se muestra una red SFC para una secuencia de encendido de dos cargas.

6.8. DIAGRAMA FUNCIONAL SECUENCIAL (SFC)

201

Línea con dirección Start

Etapa inicial P=1

A

Transición, su condición se valida cuando P=1 Etapa

P=0 Espera

Transición, su condición se valida cuando P=0

P=1 B P=0

Figura 6.41: Componentes Básicos de una Red SFC En la Figura 6.41, cuando se hace el llamado a la red se activa inicialmente la etapa Start la cual permanece así hasta el instante en el cual la transición inmediatamente debajo verifique la condición asignada, en este caso se espera por la pulsación de P. Luego cuando se pulse P entonces se desactiva la etapa inicial y se activa la etapa A donde se debe asignar el conjunto de acciones necesarias para encender la primer carga (las acciones serán estudiadas más adelante). Esta carga permanece encendida hasta el instante cuando se libere el pulsador P, que además es la condición de la transición debajo de A, por lo que al verificarse esta condición, esto es P = 0, se desactiva la etapa A y se activa la etapa Espera. En Espera el sistema no realiza ninguna acción asociada, simplemente ahora es necesaria una nueva verificación de pulsación de P para poder avanzar hacia la siguiente etapa. Cuando se pulse P entonces se desactiva Espera y se activa la etapa B, donde se realizan las acciones necesarias para encender la carga B hasta cuando se libere nuevamente el pulsador. Finalmente con la liberación de P se regresa al estado inicial y el ciclo puede reiniciar. 6.8.1.1. Las Etapas Cada etapa dentro de una red SFC posee un identificador que debe ser único y que es tomado como una variable declarada automáticamente y de tipo local. El nombre de este identificador no debe ser asignado a ningún otro elemento dentro de la POU implementada. Las etapas son de dos clases a saber: unas denominadas simplemente como etapas las cuales se representan mediante rectángulos y otras denominadas como etapas iniciales las cuales se presentan mediante un rectángulo dentro de otro, ver Figura 6.41. Cuando se realiza el llamado a una POU implementada en SFC, se activan de forma automática todas las etapas iniciales, las cuales no necesariamente deben ir al principio de

202

CAPÍTULO 6. ESTÁNDAR IEC 61131-3

la red. La activación de una etapa se indica en la mayoría de los sistemas mediante la presencia de una marca circular, o token, dentro del rectángulo de la etapa. Asociado a cada identificador de etapa existen dos variables declaradas implícitamente. La primera de ellas es la Bandera de Etapa, que se puede acceder mediante la notación identificador.X, y es una variable de tipo BOOL que entrega el valor actual de activación de la etapa asociada, así si la etapa se encuentra activa entonces identificador.X tendrá un valor de TRUE y de lo contrario valdrá FALSE. Esta primera variable implícita es de mucha utilidad para el control de flujo y la ejecución de acciones en diferentes lugares de la red. La segunda variable declarada de forma implícita es Tiempo Transcurrido de Etapa, la cual se puede acceder mediante la notación identificador.T, y es una variable de tipo TIME que entrega el tiempo transcurrido desde la activación de la etapa. Si la etapa no ha sido activa ni una sola vez, el valor de esta variable será cero, pero si la etapa ya fue activa pero actualmente no lo está, entonces el valor de la variable será el tiempo transcurrido de la última vez que estuvo activa. Si se desea que el valor de esta variable incluya el valor de iteraciones anteriores, entonces se debe declarar explícitamente una instancia con el atributo RETAIN, de la misma forma como se explicó en la Sección 6.3.7.2 y tal como aparece en la Figura 6.10.

6.8.1.2. Las Transiciones Una transición es una especie de barrera que retiene activas las etapas previas a ella hasta cuando se verifique una expresión booleana que se le asocia, caso en el cual las etapas previas se desactivan y todas las etapas posteriores se activan. Sin embargo la condición de una transición sólo es evaluada cuando todas las etapas previas a ella se encuentren en estado activo. La expresión que describe la condición de la transición puede ser implementada en varias formas y en cualquiera de los otros cuatro lenguajes del mismo estándar, aunque la forma empleada restringe los lenguajes a usar. Como ejemplo, las expresiones para las transiciones en la Figura 6.41 están dadas en ST. A continuación se describen las diversas formas en las cuales se puede realizar la descripción de la condición de transición y en cada una se indica los lenguajes del estándar que se pueden emplear. La primera forma, denominada como de sintaxis inmediata, consiste en escribir inmediatamente a continuación de la transición la expresión para la condición. En este caso escribir puede ser interpretado como la acción de escribir una expresión booleana en lenguaje ST o por la conexión directa de una red LD o FBD que entrega como resultado un dato de tipo BOOL. En esta primera forma no se permite el uso de expresiones en lenguaje IL. A continuación, en la Figura 6.42, se muestran los casos específicos mencionados.

6.8. DIAGRAMA FUNCIONAL SECUENCIAL (SFC) Representación

203

Descripción

Etapa1 V1 & V2 Etapa2

V1 V2 Etapa2

Etapa1 &

V2

turado (ST) que entregue como resultado un dato booleano.

Etapa1

V1

Condición de transición evaluada mediante cualquier expresión en lenguaje de texto estruc-

Condición de transición evaluada directamente desde un escalón de red LD. Por naturaleza, una red LD evalúa mediante contactos expresiones booleanas las cuales se emplean para evaluar la transición.

Condición de transición evaluada directamente desde una salida de tipo booleana en una red FBD. Se debe asegurar que la salida de la red FBD conec-

Etapa2

tada a la transición sea de tipo booleana.

Figura 6.42: Transiciones con Sintaxis Inmediata La segunda forma, denominada sintaxis de conector, consiste en emplear conectores en los casos de redes LD y FBD en lugar de conexiones inmediatas. El empleo de estos conectores se realiza de la misma forma en que se describieron en la Sección 6.6.1. A continuación, en la Figura 6.43, se muestra la forma de ser empleados.

Representación

Descripción

Etapa1 Se emplea un conector con conexión directa a la transición. El conector hace el enlace hacia una red

Conector

en LD o FBD que se encuentra en otro lugar del dia-

Etapa2

grama SFC

Figura 6.43: Transición con Sintaxis de Conector La tercer y última forma, denominada sintaxis de nombre de transición, emplea un identificador como nombre para la transición. De esta forma se puede

CAPÍTULO 6. ESTÁNDAR IEC 61131-3

204

emplear cualquiera de los otros cuatro lenguajes del estándar en los cuales se describe programáticamente, de acuerdo a la naturaleza de cada uno, la expresión booleana para el identificador de la transición. En la Figura 6.44 se muestra un ejemplo de cada uno de los casos posibles para esta forma de sintaxis.

Representación

Etapa1

Descripción

A la transición se le asigna un identificador, o nombre, el cual puede ser definido usando cualquiera

Tran1

de los otros cuatro lenguajes del estándar.

Etapa2

TRANSITION Tran1: V1 V2

&

Tran1

Definición del identificador para la condición de transición empleando una red FBD. La salida de la red es el valor para la condición.

END_TRANSITION TRANSITION Tran1: Tran1 V1 V2 END_TRANSITION TRANSITION Tran1: LD V1 AND V2 END_TRANSITION

Definición del identificador para la condición de transición empleando una red LD. A la bobina de la red LD se le asigna el identificador. Definición del identificador para la condición de transición empleando el lenguaje IL. El resultado final almacenado en el acumulador es el valor de la condición.

TRANSITION Tran1 := V1 & V2; END_TRANSITION

Definición del identificador para la condición de transición empleando el lenguaje ST. La asignación de la condición se realizar usando el delimitador :=.

Figura 6.44: Transiciones con Sintaxis de Nombre de Transición

6.8.2. Secuencias Cualquier POU implementada en SFC puede poseer una o más redes, cada una de las cuales se compone de etapas y transiciones. Nunca se podrá conectar dos etapas entre sí o dos transiciones entre sí. Es posible que una transición esté precedida de una o más etapas, e igualmente es posible que luego de ella exista una o más etapas siguientes. La interconectividad entre estos elementos (etapas, transiciones) se denomina secuencia, así si posterior a la activación de una etapa es posible sólo

6.8. DIAGRAMA FUNCIONAL SECUENCIAL (SFC)

205

la activación de otra se dice que la conexión es en Secuencia Única, pero si es posible la activación de una etapa entre varias se dice que la conexión es en Secuencia Divergente, mientras que si es posible la activación de dos o más etapas a la vez la conexión es en Secuencias Simultáneas. Como ejemplo, la red de la Figura 6.41 se compone exclusivamente de secuencias únicas. A continuación se describe las secuencias divergentes y las simultáneas.

6.8.2.1. Secuencias Divergentes Cuando a una etapa le sigue más de una transición, se dice que la secuencia es divergente. En este caso al estar la etapa activa se evaluarán todas las transiciones posteriores a ella y la primera transición en ser validada definirá la ruta a seguir. En caso de tener más de una transición validada simultáneamente se definen métodos para determinar la prioridad entre ellas. En la Figura 6.45 se muestran las tres posibles formas de definir la prioridad en la evaluación.

Por Defecto

Definida por Usuario

Etapa1

Etapa1

* Tran1 Etapa2

Mutuamente Excluyente

Tran2 Etapa3

* 2 Tran1 Etapa2

Etapa1

1 Tran2

Etapa3

Tran1 Etapa2

Tran2 Etapa3

La selección de una secuen-

El usuario define mediante

Las transiciones son eva-

cia se realiza evaluando las

un número la prioridad de

luadas sin ningún orden

transiciones de izquierda a derecha. La primer transi-

la evaluación, así cada ruta es enumerada y la evalua-

definido. En este caso se debe asegurar que las mis-

ción en ser validada define la

ción se realiza en orden as-

mas expresiones para las

ruta a seguir. Un asterisco indica que ésta es la prioridad

cendente. Un asterisco y el número asignado a cada ruta

condiciones de las transiciones operen de forma mu-

en uso.

indican que ésta es la priori-

tuamente excluyente, es de-

dad en uso.

cir, sólo sea posible la validación de una entre varias.

Figura 6.45: Secuencias Divergentes y Prioridades

Luego de la selección de una secuencia divergente, es necesario volver a unir los caminos hacia una sola ruta. En este caso a una etapa le antecede más de una transición, una desde cada ruta. En la Figura 6.46 se muestra la forma de realizar la convergencia de secuencias divergentes.

CAPÍTULO 6. ESTÁNDAR IEC 61131-3

206 Etapa1

Etapa2

Tran1

Tran2

Etapa n

Figura 6.46: Convergencia de Secuencias Divergentes 6.8.2.2. Secuencias Simultáneas Cuando una transición debe dar lugar a la ejecución simultánea de más de una etapa, se dice que las secuencias son simultáneas. En este caso cuando una transición es validada, lo cual implica además que la etapa previa a ella se encuentre activa, se activa simultáneamente más de una etapa inmediatamente posterior a la transición. Igualmente será necesario realizar la convergencia de secuencias simultáneas hacia una sola ruta, en este caso una transición se valida cuando todas las etapas conectadas a ella y que provienen de secuencias simultáneas se encuentren activas y además se valide la condición de la transición, con lo cual se desactivarán todas las etapas previas a dicha transición y se activará la etapa siguiente. En la Figura 6.47 se muestra la representación gráfica de secuencias simultáneas y su respectiva convergencia.

Etapa1

Etapa1

Tran Etapa2

Etapa3

Etapa2

Tran Etapa n

Figura 6.47: Secuencias Simultáneas y su Convergencia 6.8.2.3. Redes Inseguras Ya que SFC tiene su fundamento en las Redes de Petri, se debe prevenir redes que no tengan un comportamiento seguro. El estándar IEC 61131-3 hace énfasis en la necesidad de evitar redes con topologías Inseguras e Inalcanzables [8, 9]. Una Topología Insegura es aquella en la cual se puede presentar la activación incontrolada y sin coordinación de etapas, esto sucede especialmente cuando en secuencias simultáneas se permite la activación de etapas exteriores a ellas sin asegurar que las acciones al interior se terminen completamente.

6.8. DIAGRAMA FUNCIONAL SECUENCIAL (SFC)

207

Una Topología Inalcanzable es aquella en la cual algún elemento (etapa o transición) nunca podrá ser evaluado. Esto sucede comúnmente cuando se mezclan secuencias divergentes con simultáneas sin el debido cuidado. La Figura 6.48 muestra un ejemplo de cada uno de estos dos tipos de redes inseguras, topologías estas que se deben evitar.

Etapa1

Etapa1

T1

T1 Etapa2

T2 Etapa4

Etapa2

Etapa3

T3 Etapa5

T2

T4 Etapa6

T5

Etapa3

Etapa4

T3 Etapa5

T4 Etapa6

T5

T6

Red Insegura: Si estando activas Etapa2 y

Red Inalcanzable: En esta red nunca se po-

Etapa3 se valida T4 podría ocurrir tener acti-

drá verificar T5, ya que Etapa5 y Etapa6 for-

vas simultáneamente Etapa2 y Etapa4 debido al retorno hacia Etapa1, además el número de

man una secuencia divergente ocasionando que nunca T5 tenga sus tres etapas previas ac-

marcas podría crecer sin control.

tivas.

Figura 6.48: Redes Inseguras

6.8.3. Acciones Al describir una red mediante el lenguaje SFC se persigue como objetivo que con cada etapa que se encuentre activa se realice la ejecución de una acción, o un conjunto de acciones, que se asocia a dicha etapa con la finalidad de implementar un comportamiento deseado. Estas instrucciones entonces son escritas dentro de una caja denominada Bloque de Acciones y la cual va unida a la etapa asociada. Las acciones tienen por finalidad definir las instrucciones de una etapa o una secuencia de instrucciones que se deben ejecutar bajo ciertas condiciones. Además de implementar comportamientos externos del sistema, también se pueden emplear como elementos para el control de flujo. 6.8.3.1. Bloques de Acciones En la Figura 6.49 se puede observar los elementos constitutivos generales de un bloque de acción, donde la descripción de las acciones se puede realizar

CAPÍTULO 6. ESTÁNDAR IEC 61131-3

208

en cualquiera de los otros cuatro lenguajes definidos por el estándar e incluso se puede emplear otra red SFC. Calificador

Tran1 Etapa2 Tran2

N

Nombre de Acción

AccionEtapa2

Indicador Booleano

Indicador

IF Presion THEN Indicador := TRUE; ELSE Indicador := FALSE; END_IF Descripción de la acción

Figura 6.49: Elementos de un Bloque de Acción En general, un bloque de acción consta de los siguientes elementos: un Calificador, el cual define una condición de ejecución que controla ya sea el tiempo, o instante, de ejecución de las instrucciones asociadas o el valor que se debe asignar a una variable booleana. El Nombre de Acción es un identificador que debe ser único dentro de la POU implementada. El Indicador Booleano es una variable opcional a ser implementada dentro del bloque de acción con propósito de permitir su actualización de forma manual dentro del cuerpo de instrucciones con el fin de ser indicativa del estado actual de la ejecución. Por último la sección de Descripción de la Acción puede ser implementada en cualquiera de los lenguajes del estándar, incluyendo otra red SFC, es más, debido a la complejidad que podría alcanzar la descripción de un comportamiento dado se permite que esta sección sea implementada en un diagrama aparte o incluso en otra página, caso en el cual el lenguaje IL no se puede usar. Cuando se emplea un diagrama o página independiente para la implementación de la descripción de la acción, el nombre de la acción se emplea como identificador que enlaza la acción con la descripción. En general, una etapa puede constar de cualquier número de acciones asociadas. Además una misma acción puede ser relacionada con más de una etapa. Más aún, si se desea, una etapa puede no tener ninguna acción asociada, con lo cual simplemente se espera a la validación de la condición de transición. La ejecución de las acciones se rige mediante las siguientes dos reglas: 1. Cada etapa junto con sus acciones asociadas se ejecuta al menos una vez luego de su activación. En este estado la bandera Etapa.X se fija y permanece en TRUE. 2. Posterior a la desactivación de una etapa, ésta y todas sus acciones asociadas son invocadas una vez más con el propósito de asegurar una adecuada finalización de variables y estados. Durante esta parte de la ejecución y durante todo el tiempo que la etapa esté inactiva la bandera Etapa.X permanece en FALSE.

6.8. DIAGRAMA FUNCIONAL SECUENCIAL (SFC)

209

Por último, es de destacar que los bloques de acciones no son de uso restrictivo del lenguaje SFC. Estos también pueden ser empleados dentro de redes FBD y LD tal como se muestra en la Figura 6.50.

V1 V2

Salida N Acción

I1

Bloque de Acción en LD

V1 V2

&

N Acción

I1

Salida

Bloque de Acción en FBD

Figura 6.50: Bloques de Acciones en los Lenguajes LD y FBD En la Figura 6.50 la línea a la izquierda del bloque de acción se encarga de dar la activación, en FBD cuando se entrega un valor booleano de TRUE y en LD cuando hay paso en el flujo de potencia de izquierda a derecha. Igualmente se puede emplear de forma opcional el indicador booleano con propósitos de seguimiento al desarrollo de las acciones implementadas, caso en el cual se asigna su valor a una variable. 6.8.3.2. Calificadores de las Acciones Ya se ha visto que uno de los elementos constitutivos de una acción es su calificador, ver Figura 6.49. Hasta el momento siempre se ha empleado el calificador “N” con el cual toda acción se ejecuta continuamente mientras su etapa asociada se encuentre activa. Sin embargo, el estándar define un amplio rango de calificadores adicionales con los cuales se puede controlar de forma exacta el momento justo en el cual una acción se debe ejecutar en relación con la activación de su etapa asociada. De lo anterior es claro que la ejecución de una acción será dependiente de la activación de la etapa asociada y del tipo de calificador asignado. En la Tabla 6.5 se muestra el listado de los calificadores disponibles. Aunque estos calificadores son de inmensa ayuda en la descripción de funcionalidades, igualmente pueden ocasionar mayores inconvenientes en el mantenimiento, depuración y seguimiento a redes que los contienen, especialmente en aquellos casos donde se emplea calificadores que extienden acciones más allá de la desactivación de una etapa, como es el caso de SD. Con el propósito de clarificar la forma de operar de estos calificadores, a continuación se muestran las posibles situaciones de cada uno de ellos en un diagrama de tiempos.

CAPÍTULO 6. ESTÁNDAR IEC 61131-3

210 Calificador N

Nombre

Descripción

No Memorizada

Se ejecuta mientras la etapa sea activa

No Memorizada

Igual a la anterior

R

Reset

Reset memorizado de una acción

S

Set

Set memorizado de una acción

L

Limitada

Acción que se ejecuta sólo por un tiempo dado o hasta que la etapa esté inactiva, lo que suceda primero

D

Retarda

Acción que inicia su ejecución luego de un tiempo de retardo dado y que termina cuando la etapa esté inactiva. Si la etapa es inactiva antes del retardo la acción nunca se ejecuta

P

Impulsiva

Acción que se ejeucta sólo una vez al inicio de la activación de la etapa

SD

Memorizada y Retardada

Set memorizado de una acción luego de un tiempo dado. El set ocurrirá independiente de la desacti-

DS

Retardada y Memorizada

SL

Memorizada y

Set memorizado por un tiempo dado. El set ocurri-

Limitada

rá independiente de la desactivación de la etapa

vación de la etapa. Igual a la anterior, pero en este caso si se produce la desactivación de la etapa antes de terminar el retardo no se realiza la memorización

Tabla 6.5: Calificadores de Acciones El calificador tipo ’N’ ejecuta la acción de forma continua mientras la etapa asociada esté igualmente activa. Esto es, la acción se realizará mientras la bandera Etapa.X tenga un valor de TRUE. En la Figura 6.51 se observa el comportamiento de la acción en el tiempo. E1.X

T1 E1

N AcciónE1 T2

AcciónE1 T2

Figura 6.51: Acción con Calificador N El calificador tipo ’S’ ejecuta la acción de forma continua desde el momento en el cual la etapa asociada esté activa y dicha acción permanece (se memoriza) aunque la etapa pase al estado inactivo. Para detener la ejecución de la acción es necesario que en otra etapa se haga referencia a la misma acción pero usando el calificador ’R’, con lo cual en el momento de la activación de esta segunda etapa se ejecutará una vez más la acción y se realizará enseguida el reset. En la Figura 6.52 se muestra la forma como operan estos calificadores.

6.8. DIAGRAMA FUNCIONAL SECUENCIAL (SFC)

211

T1 E1

S Acción

T2

T2 Tn-1 En

E1.X

Acción R Acción

Tn-1

Tn

Figura 6.52: Acción con Calificadores S y R El calificador ’L’ ejecuta la acción desde la activación de la etapa asociada, pero la realiza sólo por un periodo determinado de tiempo. En caso que la etapa se desactive antes de culminar la ejecución de la acción, ésta última no se continúa ejecutando. Es claro entonces que la acción se realizará hasta cuando suceda una de las siguientes situaciones: hasta que transcurra el tiempo propuesto o hasta que se desactive la etapa asociada, estas situaciones se muestran en la Figura 6.53. E1.X

T1 E1

LT#2s Acción

Acción T2

T2

2s

2s

Figura 6.53: Acción con Calificador L El calificador ’D’ ejecuta la acción un tiempo después de la activación de la etapa asociada. Esta ejecución dura hasta cuando se produzca la desactivación de la correspondiente etapa, en caso que el tiempo no se cumpla antes de la desactivación de la etapa entonces la acción nunca se lleva a cabo. Este comportamiento se observa en la Figura 6.54. E1.X

T1 E1

DT#2s Acción T2

Acción T2 2s

Figura 6.54: Accón con Calificador D

2s

CAPÍTULO 6. ESTÁNDAR IEC 61131-3

212

El calificador ’P’ ejecuta la acción una única vez con la activación de la etapa asociada. A este calificador también se le denomina como impulsivo. En la Figura 6.55 se muestra su comportamiento.

E1.X

T1 E1

P Acción T2

Acción T2

Figura 6.55: Acción con Calificador P

El calificador ’SD’ ejecuta la acción un tiempo después de la activación de la etapa asociada, este inicio de ejecución se realiza independientemente del estado futuro de la etapa. La ejecución se detiene sólo cuando en otra etapa se haga referencia a la misma acción empleando el calificador ’R’. En las anteriores condiciones es de aclarar que en caso que el calificador ’R’ se realice sobre la acción antes de que se cumpla el tiempo de retardo la acción nunca se lleva a cabo. En la Figura 6.56 se muestran estos comportamientos para el calificador ’SD’.

T1 E1

SD T#2s Acción

T2

T2

Acción

Tn-1 En

R Tn

E1.X

Acción

Tn-1 2s

2s

Figura 6.56: Acción con Calificador SD

El calificador ’DS’ ejecuta la acción un tiempo después de la activación de la etapa asociada, este inicio se realiza siempre y cuando una vez cumplido el retardo la etapa aún esté activa. Al igual que en el caso anterior, se requiere hacer referencia en otra etapa a la misma acción usando el calificador ’R’ para detener su ejecución. La Figura 6.57 muestra el comportamiento descrito para este calificador.

6.8. DIAGRAMA FUNCIONAL SECUENCIAL (SFC)

213

T1 E1

DS T#2s Acción

E1.X T2

T2

Acción

Tn-1 En

R

Acción

Tn-1 2s

Tn

2s

Figura 6.57: Acción con Calificador DS Por último, el calificador ’SL’ ejecuta la acción desde la activación de la etapa asociada y memoriza esta acción por un tiempo determinado. La duración de la ejecución de la acción no depende en este caso del estado futuro de la etapa asociada, sin embargo si en una etapa posterior se hace referencia a la misma acción usando el calificador ’R’, la acción se detendrá aún en el caso que no se haya cumplido la duración fijada para la ejecución. En la Figura 6.58 se muestran los comportamientos descritos para este calificador. T1 E1

LS T#2s Acción

T2

T2

Acción

Tn-1 En

E1.X

R

Acción

Tn-1 2s

Tn

2s

Figura 6.58: Acción con Calificador LS 6.8.3.3. Control de Acción Ya que se puede hacer referencia a una acción en particular desde diferentes bloques de acciones en varias etapas y como estas etapas pueden estar, o no, activas simultáneamente, dependiendo incluso de los tipos de calificadores empleados, una acción en particular puede recibir simultáneamente llamados desde diferentes lugares los cuales influenciarán su tiempo de ejecución. Para poder controlar la programación de una acción específica se emplea un Control de Acción, el cual en general es un bloque de función propio del sistema operativo y que se encarga de evaluar y determinar las condiciones bajo las cuales se debe dar inicio y paro a la ejecución de una acción [8]. En la Figura 6.59 se muestra la representación de este bloque de función.

CAPÍTULO 6. ESTÁNDAR IEC 61131-3

214 R

N

&

Q

³1

S E1.X Ei.X

L D P

En.X

SD DS SL Control de Acción

Figura 6.59: Control de Acción El control de acción está implementado con base en una función OR la cual recibe como entradas las evaluaciones de cada uno de los diferentes tipos de calificadores (representados en la Figura 6.59 mediante un rectángulo) a excepción de ’R’. Una función AND se encarga de proveer el nivel mayor de prioridad al calificador ’R’. Desde las diferentes etapas que contengan bloques de acciones con la acción a evaluar se conecta la bandera Etapa.X a la entrada respectiva y la salida Q se encarga de activar directamente la acción o de permitir la ejecución cíclica de instrucciones en las secciones asociadas de descripción de acción. De acuerdo con las reglas para la ejecución de acciones, se debe tener siempre presente que posterior a la desactivación de una etapa se realiza una última invocación de todas las acciones con el propósito de asegurar el estado final de las variables.

6.8.4. Reglas de la Evaluación en una Red SFC En los lenguajes de texto como IL o ST las instrucciones se ejecutan en secuencia una a continuación de la otra en el mismo orden que son escritas y esta secuencia únicamente es alterada por el uso de sentencias para control de flujo u operadores para saltos. En una red SFC el método que determina la secuencia de ejecución es diferente. En las redes SFC cada POU se asocia con una tarea, la cual es responsable de la ejecución de los elementos en su interior. Así una red SFC dentro de una POU es evaluada cada vez que la POU lo haga y una red SFC dentro de un bloque de acción es evaluada cada vez que la etapa asociada sea activa. En general las reglas para la evaluación de redes SFC son las siguientes [8, 9]: 1. Todos las etapas iniciales son activadas por defecto cuando se realiza la inicialización del sistema, por ende se ejecutan las acciones asociadas a

6.8. DIAGRAMA FUNCIONAL SECUENCIAL (SFC)

215

las etapas iniciales. 2. Con el inicio de una nueva evaluación se determina el conjunto de todas las etapas activas y se permite la evaluación de todas las transiciones asociadas con ellas. 3. Para cada acción se realiza la verificación de la salida de su control de acción respectivo. Las acciones que terminan su ejecución desde la evaluación anterior (transición TRUE a FALSE de la salida del control de acción) son ejecutadas una vez más. 4. Se ejecutan todas las acciones con salida TRUE en su control de acción. 5. A medida que las instrucciones en acciones se terminen, se realiza la lectura y escritura de valores de variables hacia o desde los canales físicos de entrada. 6. Las etapas activas con transiciones asociadas que tienen condición de transición TRUE (que son validadas) son desactivadas y se activan las etapas siguientes a las transiciones validadas. En este punto se itera desde el paso 2. El comportamiento descrito para la evaluación se implementa de forma física mediante lo denominado Módulo Secuenciador de Etapa. Éste se interpreta como un elemento tecnológico funcional capaz de realizar la conexión entre etapas anteriores y posteriores. Su diseño se realiza mediante un biestable donde a la entrada SET se conectan mediante una función AND dos señales con el fin de implementar las dos condiciones necesarias para la activación de la etapa, a saber: que la etapa anterior esté activa y que se produzca la validación de la transición previa a ella. En la entrada RESET se conecta una señal desde la etapa siguiente, esta entrada implementa la condición de ejecución de acciones una vez más luego de la desactivación de la etapa. Finalmente la única salida del módulo es el estado actual de activación que se emplea como señal para las etapas siguientes, señal de desactivación de las etapas previas y como señal de la bandera Etapa.X. En la Figura 6.60 se muestra un módulo secuenciador y la forma de conexión para la implementación de varias etapas.

En.X Etapa y Transición Previas

&

Etapa Siguiente

³1

En

Ti

En-1

En.X &

Ti+1

En+1.X &

En ³1

En+1 ³1 En+2

Figura 6.60: Módulo Secuenciador de Etapa

CAPÍTULO 6. ESTÁNDAR IEC 61131-3

216

6.8.5. Reglas de la Evolución en una Red SFC Las siguientes reglas de evolución aseguran el correcto flujo de la información y el comportamiento adecuado de una red SFC [8, 9]. 1. Nunca se podrá unir de forma directa dos etapas o dos transiciones, la conexión siempre debe incluir de forma alternada etapas y transiciones. 2. Si una transición se une hacia dos o más etapas en secuencia simultánea, las secuencias que inician en cada nueva etapa se ejecutan de forma simultánea e independiente. 3. El tiempo durante el cual se realiza la validación de una transición, la desactivación de las etapas previas a ella y la activación de sus etapas siguientes se puede considerar como instantáneo. 4. No se hace necesario considerar efectos de retardo entre transiciones que se validan de forma simultánea. 5. La condición de transición para una etapa no se evalúa hasta que el efecto resultante de la activación de la etapa sea comunicado a través de toda la POU.

6.8.6. Otras Características No Definidas en el Estándar Debido a la gran popularidad en implementación de automatismos con base en SFC muchos sistemas integran en forma general algunas características adicionales no definidas dentro del estándar IEC 61131-3. El propósito de esta sección es el de describir brevemente algunas de las características adicionales más relevantes que se implementan [3, 9]. Dentro del conjunto de los calificadores se define uno adicional denominado Condicional y representado por ’C’. Este calificador ocasiona que una acción en particular requiera del cumplimiento de una condición para ser ejecutada, esta condición es adicional a la activación de la etapa. La forma general para este calificador se muestra en la Figura 6.61, donde la condición booleana es una expresión en sintaxis ST igual a las expresiones descritas para las transiciones y que define la condición bajo la cual se puede realizar la acción. La acción se ejecutará sólo si la etapa asociada está activa y la expresión booleana para la condición toma un valor TRUE.

T1 E1

Condición Booleana C

AcciónEtapaE1

T2

Figura 6.61: Acción con Calificador C

6.8. DIAGRAMA FUNCIONAL SECUENCIAL (SFC)

217

Otro concepto importante no definido dentro del estándar es el de MacroEtapa. Una macro-etapa es una representación gráfica que permite agrupar como una sola unidad una porción de la red SFC, facilitando de esta forma la legibilidad, mantenibilidad y reutilización de porciones de código. La interfaz de conexión entre la macro-etapa y el resto de la red SFC se realiza mediante una etapa de entrada E y una etapa de salida S, ver Figura 6.62, las cuales enmarcan a las etapas y transiciones que se desea agrupar. Estas últimas reciben el nombre de Expansión de la macro-etapa. La validación de la transición que precede a la macro-etapa ocasiona la activación de la etapa de entrada y la activación de la etapa de salida será entonces una de las condiciones necesarias, más no suficiente, para la validación de la transición posterior a la macroetapa. En la Figura 6.62 para activar la etapa de inicio de la macro-etapa se requiere de la validación de la transición A y para la validación de la transición B debe estar activa la etapa de salida en la macro-etapa. Etapa Inicial E10

Start A ME1

F Macro-Etapa

E11

B Etapa2

G E12

C Etapa3 D

H S10 Etapa Final

Figura 6.62: Partes de una Macro-Etapa Cuando se realiza un diseño jerárquico frecuentemente se tendrán varias redes SFC que describen de forma separada funcionalidades particulares del sistema implementado. Esta situación requiere entonces de acciones de control que permitan la interacción controlada y sincronizada de las diferentes redes mediante la definición de condiciones de dependencia entre ellas lo cual conlleva a establecer jerarquías entre las mismas redes. Para facilitar esta labor varios sistemas de implementación adicionan acciones denominadas Órdenes de Forzado, las cuales permiten controlar la ejecución de un diagrama jerárquicamente inferior desde otro de orden superior. Este control se lleva a efecto mediante la modificación del conjunto de etapas activas en la red inferior en función de las variables que intervienen en la activación de las transiciones de la red de orden superior.

218

CAPÍTULO 6. ESTÁNDAR IEC 61131-3

Una orden de forzado se comporta como una acción de índole interna con la cual la red de jerarquía inferior toma de inmediato la situación que se impone y además esta orden es prioritaria sobre las demás reglas de evolución. Con el propósito de impedir ciclos indeseados se prohíbe que una red forzada realice acción similar sobre su red de orden superior y además una red sólo puede ser forzada en todo instante por una sola red de orden superior. Lo anterior facilita una de las condiciones generales de una red forzada y es que ésta debe permanecer en dicho estado mientras las condiciones que fijaron tal situación se sigan verificando. La sintaxis general para una orden de forzado es: ’F/Identificador de red a forzar:{elementos a forzar}’. El formato para las etapas que se desea forzar puede tomar varias formas dependiendo de lo deseado, así por ejemplo si se desea forzar todas las etapas de una red identificada como G01 la sintaxis es ’F/G01:{ }’, pero si se desea desactivar únicamente la evolución conservando activa la etapa actual la sintaxis es ’F/G01:{*}. Si finalmente lo deseado es cambiar las etapas de la red que deben estar actualmente activas, por ejemplo a las etapas 3 y 8, entonces la sintaxis es ’F/G01:{3,8}’. En muchas ocasiones se desea que estas órdenes de forzado duren solo un instante, caso en el cual se puede emplear el calificador impulsivo para esta acción adicionando una flecha orientada a continuación de la letra F así: ’F↑/G01:{3,8}’.

6.9. Portabilidad entre los Diferentes Lenguajes La portabilidad es la posibilidad de representar una POU descrita en un lenguaje en otro dado. Aunque debería ser posible realizar en forma general la traducción entre lenguajes del estándar, esto no siempre es práctico, ya que una de la principales características del mismo estándar es proveer el conjunto de lenguajes de entre los cuales se debe escoger de acuerdo a la aplicación puntual o diseño particular de POU el que mejor se acomode [1, 8, 9]. Durante el desarrollo de cada una de las secciones concernientes a los lenguajes del estándar se han presentado ejemplos de como realizar ciertas operaciones o funcionalidades en cada uno de los lenguajes, a su vez, de la comparación entre estas formas se puede ir esbozando métodos generalizados para realizar la traducción, aunque está no siempre se puede realizar de forma directa como en el caso de sentencias para el control de flujo en ST hacia FBD, donde se debe recurrir a toda la experiencia y algo de ingenio para lograr de forma correcta la traducción.

6.10. Ejemplo Se presenta el desarrollo de un ejemplo en los cinco lenguajes del estándar IEC 61131-3. Para la implementación del mismo se ha empleado el paquete de software CoDeSys.

6.10. EJEMPLO

219

Se implementa un sistema de control para un tanque de aguas lluvias, el cual posee tres motobombas (denominadas respectivamente M1, M2 y M3) y tres sensores de nivel, S1 para indicar nivel bajo, S2 para nivel medio y S3 para nivel alto. El control permite la activación alternada de motobombas cada vez que el nivel ascienda a S1. Si estando una motobomba activa el nivel llega a S2 se debe activar la siguiente motobomba en la secuencia. Si estando dos motobombas activas el nivel llega a S3 se debe activar la última de las motobombas. Cuando el nivel baje nuevamente de S1 se deben apagar todas las motobombas activas. La siguiente ocasión que el nivel suba de S1, debe encender la motobomba que sigue en la secuencia individual.

Figura 6.63: Ejemplo en Texto Estructurado

220

CAPÍTULO 6. ESTÁNDAR IEC 61131-3

Figura 6.64: Ejemplo en Listado de Instrucciones

6.10. EJEMPLO

Figura 6.65: Ejemplo en Diagrama de Bloques de Funciones

221

222

CAPÍTULO 6. ESTÁNDAR IEC 61131-3

Figura 6.66: Ejemplo en Diagrama Escalera

6.10. EJEMPLO

223

Action Init M1:=FALSE; M2:=FALSE; M3:=FALSE; Action Step 2 M1:=TRUE; IF S2 THEN M2:=TRUE; END_IF IF S3 THEN M3:=TRUE; END_IF Action Step 3 M1:=FALSE; M2:=FALSE; M3:=FALSE; Action Step 4 M2:=TRUE; IF S2 THEN M3:=TRUE; END_IF IF S3 THEN M1:=TRUE; END_IF Action Step 5 M1:=FALSE; M2:=FALSE; M3:=FALSE; Action Step 6 M3:=TRUE; IF S2 THEN M1:=TRUE; END_IF IF S3 THEN M2:=TRUE; END_IF

Figura 6.67: Ejemplo en Diagrama Funcional Secuencial

224

CAPÍTULO 6. ESTÁNDAR IEC 61131-3

6.11. Ejercicios Propuestos Para cada uno de los siguientes problemas propuestos, realice su implementación en los cinco lenguajes del estándar IEC 61131-3. La implementación en cada lenguaje se debe desarrollar de forma independiente, es decir, no trate de hacer una implementación por analogía con otra. 1. Se desea controlar el encendido de una carga desde un único pulsador monoestable normalmente abierto. Cada vez que se presione y libere el pulsador la carga debe cambiar de estado, es decir cuando el pulsador regrese a su estado de reposo la carga debe pasar de encendida a apagada o viceversa, según como se encuentre. Al inicio, cuando se presiona el pulsador, la carga está apagada. 2. La Figura 6.68, muestra el esquema de un proceso para mezclas de reactivos. En el depósito de mezcla se vierte inicialmente el reactivo que se alimenta mediante la válvula V1 hasta el nivel N2, luego se vierte el reactivo alimentado por la válvula V2 hasta el nivel N3. Esta mezcla se lleva al Depósito A mediante la acción de la válvula V4 y hasta que el nivel N1 indique tanque vacío. Posteriormente se prepara otra mezcla vertiendo inicialmente el reactivo alimentado por la válvula V3 hasta el nivel N2 y seguidamente el reactivo alimentado por V2 hasta el nivel N3. Esta mezcla se lleva al Depósito B mediante la acción de la válvula V5 y hasta que se vacíe nuevamente el depósito de mezcla. Mientras se vierta el reactivo alimentado por V2 se debe tener encendido un mezclador, M, el cual debe permanecer así hasta que el nivel baje a N2 cuando el tanque se esté vaciando. Cuando los depósitos A y B estén llenos con sus respectivas mezclas se procede a abrir las válvulas VA y VB que los vacían. Ya que las mezclas son diferentes no se garantiza el vaciado simultáneo, por lo que cada vez que se vacía el depósito A (nivel en Na) o el depósito B (nivel en Nb) se debe cerrar la respectiva válvula de ese depósito (VA o VB). El ciclo reinicia sólo con los depósitos A y B vacíos. Se cuenta con un interruptor monoestable para dar arranque al sistema. Además, el arranque está condicionado a que todos los depósitos deben estar vacíos, para lo cual primero se debe garantizar vaciar los depósitos inferiores, y luego si el depósito de mezcla tiene residuo, se abren todas las válvulas para permitir su vaciado rápido.

6.11. EJERCICIOS PROPUESTOS V1

225

V2

V3

Depósito de Mezcla M V4

N3 N2 N1

V5 Depósito B

Depósito A VA

Na

VB

Nb

Figura 6.68: Ejercicio Propuesto 2 3. En muchos sistemas automatizados se dispone de un único botón de mando desde el cual se selecciona una operación deseada de entre un conjunto de posibles. De desea implementar el control de operación para una impresora, la cual dispone únicamente de un botón monoestable para determinar la operación a realizar, así: si el botón se presiona por menos de tres segundos la impresora enciende de forma normal, si el botón se presiona entre 5 y 8 segundos la impresora entrega la página de prueba, pero si el botón se presiona entre 8 y 10 segundos se entra en el modo de configuración. Además, como ayuda para el usuario se dispone de un led que opera de la siguiente forma: Inicialmente se encuentra apagado, cuando se inicia la pulsación del botón éste led enciende de forma permanente hasta los tres segundos, entre 3 hasta 5 segundos se paga nuevamente para indicar que este intervalo no produce ninguna operación del sistema, entre 5 hasta 8 segundos hace una intermitencia (encendido y apagado) con período de 1s, luego entre 8 hasta 10 segundos la intermitencia es con un periodo de 0.5s, finalmente luego de los 10 segundos el led permanece apagado. Este diseño únicamente controla el tipo de encendido, se asume que cada uno de los sistemas que implementan cada acción de la impresora ya están disponibles y sólo requieren ser activados adecuadamente de acuerdo a la solicitud de encendido. Si el botón se libera en alguno de los intervalos que no producen ninguna acción, el sistema debe permitir nuevamente el reinicio de pulsación. 4. Un sistema de mezcla y carga posee un total de tres carros de transporte (CarroA, CarroB y CarroC), cada uno de los cuales circula por su propia vía, con sensores en los extremos así: al lado izquierdo los sensores son de tipo final de carrera y se denominan Ai, Bi y Ci respectivamente; al lado derecho los sensores son de tipo inductivo y calibrados para detectar los carros justo en su centro y denominados Ad, Bd y Cd. Cada carro posee en el fondo una compuerta manejada por un pistón de efecto simple (con una señal de cero lógico cierra y con una señal de 1 lógico abre) que permite el vaciado de cada carro, estos pistones se denominan Pa, Pb y Pc

226

CAPÍTULO 6. ESTÁNDAR IEC 61131-3 respectivamente, además existen motores que permiten el desplazamiento a izquierda o derecha de cada uno de los carros, así: para el CarroA son Cai y Cad, para el CarroB son Cbi y Cbd y para el CarroC son Cci y Ccd. Existen dos tolvas T1 y T2, donde la primera contiene cierto material y la segunda agua. Al inicio los tres carros se encuentran a la izquierda y el arranque es simultáneo mediante un pulsador monoestable A. Los tres inician su desplazamiento a derecha de forma independiente hasta el sensor que los ubica debajo de la tolva T1 (At1 para el CarroA, Bt1 para el CarroB y Ct1 para el CarroC). Esta tolva se puede desplazar a izquierda o derecha con los motores T1i y T1d respectivamente (Ver vista lateral en la Figura 6.69) e inicia en la posición central. La tolva debe atender los carros en el mismo orden de llegada depositando en cada uno material durante 10s para lo cual debe activar el pistón Pt1. Cuando un carro ha sido cargado por la tolva T1 puede iniciar su recorrido hacia la tolva T2, para lo cual existe un sensor que lo ubica en posición (At2 para el CarroA, Bt2 para el CarroB y Ct2 para el CarroC). La tolva T2, inicialmente en la posición central, igualmente se puede desplazar a izquierda o derecha con los motores T2i y T2d (no mostrados en la Figura 6.69) y debe depositar agua en el mismo orden de llegada en cada uno de los carros por un tiempo de 5s, para lo cual dispone del pistón Pt2. Cuando un carro tiene completa su carga de agua, debe continuar su recorrido a derecha hasta los sensores Ad, Bd o Cd, según el caso. En el extremo derecho, cada carro puede vaciar su contenido dentro del Carro de Carga para lo cual debe abrir su pistón de vaciado. En este punto, no importa que más de un carro vacíe de forma simultánea su contenido. Una vez vacío, un carro puede regresar a cargar en la tolva 1 sin ir hasta el extremo izquierdo. El Carro de Carga se debe llenar con un total de 10 viajes de los carros de transporte de tal forma que al final no quede ningún carro cargado, es decir, el carro que realiza la octava descarga debe ir hasta la izquierda y no trabajar más, luego el que realiza la novena y finalmente el que hace la décima descarga. Todo el proceso en general debe ser realizado en el menor tiempo posible, por lo que no está permitido que ningún carro espere a otro en ninguna posición.

6.11. EJERCICIOS PROPUESTOS

Ai,Bi Ci

T1

T2

Pt1 Cai Cad CarroA Pa

Pt2 Cbi Cbd CarroB Pb

At1,Bt1,Ct1

At2,Bt2,Ct2

T1i T1a

227

T1d T1

CarroA Pa

T1b

Vista frontal Cci

Ccd CarroC Pc

Carro de Carga T1c

CarroB CarroC Pb Pc

Vista lateral

Figura 6.69: Ejercicio Propuesto 4

Ad, Bd, Cd

228

CAPÍTULO 6. ESTÁNDAR IEC 61131-3

Bibliografía [1] Bolton, W. Programmable Logic Controllers, Fourth Edition. Elsevier, 2006. ISBN-10: 0-7506-8112-8 [2] Balcells, Josep. Romeral, Jose Luis. Autómatas Programables Alfaomega marcombo 1998, ISBN 970-15-0247-7 [3] García Moreno, Emilio. Automatización de Procesos Industriales Alfaomega 2001, ISBN 970-15-0658-8 [4] International Electrotechnical Commission SC65B/WG7/TF3 Type 2 Technical Report “Proposed Extensions to IEC 1131-3” Commite Draft, Paris, France, 9/96. Version: 05/1997 [5] International Electrotechnical Commission SC65B/WG7/TF3 Correction of IEC 1131-3 “Revised Technical Corrigendum to IEC 1131-3” Draft Version, Yokohama, Japan, 5/97 [6] International Electrotechnical Commission SC65B/WG7/TF3 Porposal to IEC 1131-3 “Draft Amendments to IEC 1131-3” Draft Version, Venedig, Italy, 8/98 [7] International Electrotechnical Commission SC65B/WG7/TF3 Committee Draft - IEC 61131-3, 2nd Ed. “Programmable Controllers - programming languages” Committee Draft, Houston, 10/1998 [8] John, Karl-Heinz. Tiegelkamp, Michael. IEC 61131-3: Programming Industrial Automation Systems Springer, 2001. ISBN 3-540-67752-6 [9] Lewis, R. W. Programming Industrial Control Systems Using IEC 1131-3 Revised Edition IEE 1998. ISBN 0-85296-950-3 229

230

BIBLIOGRAFÍA

[10] Parr, E.A. Programmable Controllers, An enginner´s guide, Third Edition. Newness. 2003. ISBN 0-7506-5757-X.