Memoria Automatismos Lógicos

Page 1

Instituto Tecnol贸gico y de Estudios Superiores de Monterrey

Automatismos l贸gicos

Memoria del curso

Dr. Rosalino Rodr铆guez Calder贸n Jonathan Mendoza Campos A01063509

8 de mayo de 2013


INTRODUCCIÓN

Un sistema digital es una combinación de dispositivos diseñados para manipular información lógica o cantidades físicas que estén representadas en forma digital; es decir, las cantidades sólo pueden tener valores discretos. La mayoría de las veces estos dispositivos son electrónicos. Algunos de los sistemas digitales más familiares incluyen computadoras y calculadoras digitales, equipo de audio y video digital, y el sistema telefónico, que es el sistema más grande del mundo.

Los avances en la tecnología digital durante las últimas tres décadas han sido fenomenales y hay muchas razones para creer que vienen más. La tasa de crecimiento en el dominio digital continúa siendo enorme. “La tecnología digital continuará su incursión a alta velocidad en las áreas actuales de nuestra vida, así como ocupando mayores espacios en formas que ni siquiera hemos imaginado. Todo lo que podemos hacer es tratar de aprender tanto como podamos acerca de esta tecnología y sujetarnos bien para disfrutar el viaje” (Ronald J, 2003, P. 8).

Dicho lo anterior, la finalidad de este documento es compilar todo lo visto durante clase, aunado a lo aprendido en las actividades colaborativas así como las investigaciones en las tareas que se desarrollaron durante el curso.

1


ÍNDICE

Introducción.

1

1. Fundamentos teóricos de sistemas lógicos.

3

1.1. Introducción a los sistemas lógicos. 1.2. Sistemas Numéricos. 1.3. Funciones lógicas Básicas. 1.4. Algebra Booleana. 1.5. Minimización por Mapas de Karnaugh.

3 3 8 15 17

2. Circuitos combinatorios digitales.

22

2.1. Conceptos básicos de diseño de circuitos combinatorios con compuertas básicas. 22 2.2. Diseño usando exclusivamente compuertas NAND. 23 2.3. Circuitos combinatorios mediante dispositivos lógicos programables (PLD’s). 28 2.4. Decodificadores, Multiplexores. 33 3. Circuitos secuenciales digitales.

36

3.1. Conceptos básicos de circuitos secuenciales. 3.2. Latches, Flip-Flop’s. 3.3. Análisis de circuitos secuenciales. 3.4. Síntesis de circuitos secuenciales síncronos. 3.5. Circuitos secuenciales mediante PLD´s.

36 37 41 42 45

4. Lógica industrial.

48

4.1. Circuitos Lógicos Eléctricos. 48 4.2. El Controlador Lógico Programable (PLC). 48 4.3. Diagramas de escalera. 51 4.4. Estándar IEC 1131 para programación de PLC’s. 4.5. Temporizadores y contadores, conjunto de instrucciones, funciones y bloques de datos. 53 4.6. Técnicas de programación de PLC’s. 58 5. Conclusiones.

59

6. Referencias.

60

2


1. FUNDAMENTOS TEÓRICOS DE SISTEMAS LÓGICOS

1.1 Introducción a los sistemas lógicos

Un sistema lógico es un sistema que se encarga de procesar, almacenar y tomar decisiones, de tal modo que los datos salientes del sistema se puedan representar por medio de un sistema numérico.

1.2 Sistemas numéricos

Un sistema numérico es aquél que hace uso de símbolos para representar y manipular cantidades, cuya base es la cantidad de símbolos posibles. Los sistemas numéricos pueden ser de dos tipos:

1. No posicional: El valor es independiente de la posición. Por ejemplo: el sistema romano o maya. 2. Posicionales: La posición indica el peso o valor.

Es importante recalcar que los sistemas lógicos trabajan con sistemas numéricos posicionales. Dentro de los sistemas numéricos posicionales, estos son los más comunes:

-

Decimal: Base 10 (es decir, 10 símbolos: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9). Sistema usado comúnmente.

-

Binario: Base 2 (es decir, 2 símbolos: 0, 1). Utilizado en sistemas digitales, con el cual se representan los estados On y Off.

-

Octal: Base 8 (es decir, 8 símbolos: 0, 1, 2, 3, 4, 5, 6, 7). Utilizado principalmente en sistemas de cómputo.

-

Hexadecimal: Base 16 (es decir, 16 símbolos: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F). Al igual que el Octal es utilizado en sistemas de cómputo.

3


Los sistemas posicionales se pueden representar por medio polinomial: đ?‘ Ăşđ?‘šđ?‘’đ?‘&#x;đ?‘œ = đ?‘‹(đ?‘›âˆ’1) đ?‘? (đ?‘›âˆ’1) + đ?‘‹(đ?‘›âˆ’2) đ?‘? (đ?‘›âˆ’2) + â‹Ż + đ?‘‹0 đ?‘? 0 + đ?‘‹(−1) đ?‘? (−1) + ‌ đ?‘‹(−đ?‘š) đ?‘? (−đ?‘š) Donde ‘b’ es la base, ‘X’ es el sĂ­mbolo del sistema numĂŠrico, ‘n’ es el nĂşmero de dĂ­gitos enteros y ‘m’ es el nĂşmero de dĂ­gitos fraccionarios.

Existe otra representaciĂłn para los sistemas posicionales, la cual es llamada: representaciĂłn yuxtaposicional. Esta consiste que consiste en colocar un sĂ­mbolo al lado de otro. Al utilizar este tipo de representaciĂłn, es importante colocar un subĂ­ndice que indique la base. Ejemplo:

Figura 1. Ejemplo de representaciĂłn yuxtaposicional

Podemos decir que todos los nĂşmero pueden ser convertidos a decimal, es decir a base 10. Para realizarlo se suma cada sĂ­mbolo (X), multiplicando por la base (b) elevada a la posiciĂłn actual (n, m). La posiciĂłn inicia en cero y es la primera al lado izquierdo al punto, del lado derecho las posiciones se consideran negativas. De manera mĂĄs clara, lo anterior puede expresarse con la siguiente fĂłrmula: đ?‘›

đ?‘ Ăşđ?‘šđ?‘’đ?‘&#x;đ?‘œ đ?‘‘đ?‘’đ?‘?đ?‘–đ?‘šđ?‘Žđ?‘™ = ∑ đ?‘Ľđ?‘? đ?‘– đ?‘–=−đ?‘š

Ejemplo: Convertir 11102 a la base 10.

4


đ?‘ 10 = 1đ?‘Ľ23 + 1đ?‘Ľ22 + 1đ?‘Ľ101 + 0đ?‘Ľ100 = 1410 En lo que corresponde a la conversiĂłn de nĂşmeros decimales a la base N, el mĂŠtodo es el siguiente: primero se separa la parte entera de la parte decimal, se divide la parte entera entre la base y se toma el residuo hasta que el cociente sea cero. El primer residuo se interpreta como el dĂ­gito menos significativo, despuĂŠs se multiplica la parte decimal por la base y tomamos la parte entera hasta obtener un nĂşmero entero, entonces el primer nĂşmero entero es el digito mĂĄs significativo

Ejemplo: ConversiĂłn del nĂşmero 4610 a binario.

46 23

0

11

1

5

1

2

1

1

0

0

1

Por lo tanto, 4610 = 1011102 Como

mencionamos

anteriormente,

existen

otros

sistemas

numĂŠricos

posicionales, tales como la base octal y el hexadecimal, sin embargo en esta secciĂłn nos enfocamos principalmente a explicar la conversiĂłn de binario a base 10 y viceversa; pues fueron los sistemas mĂĄs utilizados durante el curso. Aun asĂ­, a continuaciĂłn se explicarĂĄ muy brevemente la conversiĂłn de binario a octal y viceversa, asĂ­ como la conversiĂłn hexadecimal a binario y viceversa.

La conversiĂłn de octal a binario se lleva a cabo convirtiendo cada dĂ­gito octal en su equivalente binario de 3 bits, utilizando la misma tabla de conversiĂłn de octal a binario.

5


Tabla 1. Tabla de conversión binario – octal.

Por ejemplo: 738 a binario:

Si sabemos que 710 = 1112 y 310 = 0112, por lo tanto:

738 = 1110112

En cambio, la conversión de binario a octal se lleva a cabo convirtiendo cada grupo de 3 dígitos binarios en su equivalente octal de acuerdo a la tabla. Por ejemplo: 10011102 a octal: Primeramente separamos en grupos de tres dígitos, en el sentido de derecha a izquierda, teniendo estos grupos: 001 001 110. Notamos que el grupo de la izquierda solamente contaría con un solo dígito, en este caso para completar el grupo con tres dígitos y facilitar la comprensión se pueden agregar los dígitos necesarios para completar el grupo de tres, aclarando que los dígitos agregados son 0 (ceros) y se colocan siempre a la izquierda.

Una vez separados, convertimos cada grupo de tres dígitos a su equivalente en octal, utilizando la misma tabla ya mencionada, aclarando que el valor máximo que puede

6


tomar un solo dígito en el sistema octal es el 7. De tal modo que la conversión quedaría de la siguiente manera:

10011102 = 1168

La conversión de hexadecimal

a binario sigue básicamente el mismo

procedimiento que la de octal a binario, sólo que en este caso cada dígito hexadecimal se representa en 4 dígitos binarios. Aclarando que los valores en hexadecimal van del 0 a la letra F, que analógicamente sería del 0 al 15, comenzando con la letra A en el número 10 y terminando con la F en el número 15.

Tabla 2. Tabla de conversión hexadecimal – binario.

Por ejemplo: convertir 4F a binario.

Si sabemos que 416 = 01002 y F16 = 11112, por lo tanto:

7


4F16 = 010011112

En cambio, la conversión de binario a hexadecimal se lleva a cabo convirtiendo cada grupo de 4 dígitos binarios en su equivalente hexadecimal de acuerdo a la tabla de conversión binario-hexadecimal.

Por ejemplo: 110011102 a hexadecimal:

Primeramente separamos en grupos de cuatro dígitos, en el sentido de derecha a izquierda, teniendo estos grupos: 1100 1110. Una vez separados, convertimos cada grupo de

cuatro dígitos a su equivalente en decimal, utilizando la misma tabla ya

mencionada. Aclarando que el valor máximo que puede tomar un solo dígito en el sistema hexadecimal es la letra F. De tal modo que la conversión quedaría de la siguiente manera:

110011102 = CE16

1.3 Funciones lógicas básicas

Siguiendo con el análisis del contenido del curso, toca el turno de las funciones lógicos básicas, las cuales haciendo uso de los sistemas numéricos, más en específico del sistema binario, realizaran cierta función dependiendo el tipo de compuerta que sean, y claro, toda salida será en función de las entradas.

El comportamiento de una función lógica puede determinarse a través de tres formas: expresión algebraica, tabla de verdad ó diagrama de tiempo. A continuación se explicarán las tres funciones básicas más comunes, las cuales son: NOT, AND y OR.

8


OperaciĂłn lĂłgica inversora (NOT)

Su funciĂłn es invertir la seĂąal de entrada, es decir si en la entrada se coloca un 1 lĂłgico, a la salida tendremos un 0 lĂłgico y viceversa. Su sĂ­mbolo algebraico es la prima (‘) o una barra encima (ÂŻ). đ?‘Œ = đ??´Ě… = A’

Figura 2. SĂ­mbolo de compuerta NOT.

Tabla 3. Tabla de verdad de compuerta NOT.

Figura 3. Circuito elĂŠctrico equivalente a compuerta NOT.

9


Operación lógica Y (AND)

Su función es dar una salida igual a 1 lógico si todas sus entradas son 1, en caso de no cumplirse esa condición, su salida será un 0 lógico. Su símbolo algebraico es el punto (A·B) o juntar variables (AB). Su expresión algebraica es Y = (AB)

Figura 4. Símbolo de compuerta AND.

Tabla 4. Tabla de verdad de compuerta AND.

Figura 5. Circuito eléctrico equivalente a compuerta AND.

10


Operación lógica O (OR)

Su función es dar una salida igual a 1 si al menos una de las entradas es 1. Su símbolo es el signo más (A+B). Su expresión es Y = (A+B).

Figura 6. Símbolo de compuerta OR.

Tabla 5. Tabla de verdad de compuerta OR.

Figura 7. Circuito eléctrico equivalente a compuerta OR.

11


En caso de querer obtener el diagrama de tiempo de la función, usaremos la tabla de verdad, donde el periodo será el doble del anterior, para así observar la variación de las salidas. En la figura 8 se muestra el diagrama de tiempo de una compuerta OR, teniendo como entras A y B, y como salida solamente Y. Notamos que el periodo de B es el doble del periodo de A, cumpliendo totalmente con la condición para obtener el comportamiento de Y.

Figura 8. Diagrama de tiempo de compuerta OR.

Y = (A+B)

También se puede obtener la expresión algebraica de un arreglo de compuertas, esto es realmente fácil a través del siguiente método:

Figura 9. Arreglo de compuertas.

12


Tomando como base la figura 9, el análisis se hace siguiendo el recorrido de las líneas de entrada, las cuales al llegar a las compuertas realizarán la función lógica que la compuerta lógica. Por ejemplo, la entrada A en la parte inferior izquierda llega a una compuerta NOT, realizando la operación tendremos a la salida de esa compuerta una A’. Este procedimiento se sigue con todas las entradas hasta llegar a la salida, realizado ya todo el procedimiento, el resultado será el de la figura 10.

Figura 10. Arreglo de compuertas resuelto.

Ya obtuvimos la expresión por medio un diagrama de tiempo y de un arreglo de compuertas por implementar, ahora es el turno de obtener la función a través de una tabla de verdad. Para obtener dicha ecuación, hay dos formas de hacerlo: una es llamada maxitérminos y la otra es minitérminos.

Utilizando minitérminos se toman en cuenta sólo aquellas filas de la tabla de verdad que tengan en la salida un 1, agrupamos las entradas de cada fila con compuertas AND, negando las entradas cuyo valor sea cero. Al final se unen las distintas filas en una compuerta OR, tal y como se muestra en el ejemplo de la figura. 11.

13


Figura 11. Obtención de función lógica a través de minitérminos.

En cambio, utilizando maxitérminos debemos tomar en cuenta sólo aquellas filas de la tabla de verdad donde la salida sea 0, agrupamos las entradas de cada fila en compuertas OR, negando las entradas cuyo valor sea 1. Al final se unen las distintas filas en una compuerta AND, tal y como se muestra en el ejemplo de la figura. 12.

Figura 12. Obtención de función lógica a través de maxitérminos.

Aquí es importante recalcar que el uso de cualquiera de los dos métodos anteriores es plenamente decisión del diseñador, pues de él depende tener la habilidad para identificar cuál de los dos es más conveniente usar en cada caso. Por ejemplo: En la tabla 6 observamos una tabla de verdad donde en la salida (Y) tenemos seis 1 lógicos y dos 0 lógicos. En este caso es más conveniente obtener la función utilizando maxitérminos, pues haríamos uso de dos compuertas OR y una AND. En cambio, utilizando minitérminos tendríamos que usar 6 compuertas AND y una OR.

14


Tabla 6. Tabla de verdad para ejemplificar el uso de minitérminos y maxitérminos.

1.4 Álgebra Booleana

En algunas ocasiones al obtener la función lógica de una tabla de verdad|, ya sea utilizando maxitérminos o minitérminos, se obtienen funciones bastante grandes que al momento de la implementación implican principalmente el uso de mayor material y el gasto de mayor tiempo. En estos casos, existen diversos métodos para la reducción de funciones, pues con esto se busca facilitar tanto la implementación como el análisis, uno de ellos es el álgebra booleana.

El álgebra booleana o también conocida como álgebra de Boole, es un sistema matemático centrado en los valores 1 y 0 (verdadero y falso, respectivamente); que a su vez están relaciones por dos operaciones binarias llamadas suma (operación lógica OR) o producto (Operación lógica AND). Siendo así, se puede decir que el álgebra booleana está cerrada con dos operaciones binarias y una unitaria: AND (“ . “), OR (“ + ”) y NOT (“ ’ ”).

En la figura 7 se muestra la tabla de identidades para la reducción de funciones haciendo uso del álgebra booleana.

15


A•(B+C) = (A•B) + (A•C)

Ley distributiva

A+(B•C) = (A+B) • (A+C) (A•B) •C = A•(B•C) = A•B•C

Ley asociativa

(A+B) +C = A+(B+C) = A+B+C A•B = B•A

Ley Conmutativa

A+B = B+A A•B = A•B

Precedencia

A+B•C = A+(B•C) A•B+C = (A•B)+C ̅​̅​̅​̅​̅​̅​̅ ̅+B ̅ (NAND) A•B=A

Teorema de Morgan

̅​̅​̅​̅​̅​̅​̅ ̅•B ̅ (NOR) A+B=A

Tabla 7. Tabla de identidades.

Es posible probar todos los teoremas del álgebra booleana utilizando éstos postulados, además es buena idea familiarizarse con algunos de los teoremas, pues el uso de este método implica mucha práctica para poder utilizarlo con destreza. Entre los postulados más importantes podemos mencionar los siguientes:

Teorema 1: A + A = A Teorema 2: A · A = A Teorema 3: A + 0 = A Teorema 4: A · 1 = A Teorema 5: A · 0 = 0 Teorema 6: A + 1 = 1 Teorema 7: (A + B)’ = A’ · B’ Teorema 8: (A · B)’ = A’ + B’ Teorema 9: A + A · B = A Teorema 10: A · (A + B) = A Teorema 11: A + A’B = A + B 16


Teorema 12: A’ · (A + B’) = A’B’ Teorema 13: AB + AB’ = A Teorema 14: (A’ + B’) · (A’ + B) = A’ Teorema 15: A + A’ = 1 Teorema 16: A · A’ = 0

Es importante mencionar que los teoremas siete y ocho son conocidos como Teoremas de Morgan, en honor al matemático que los descubrió.

1.5 Minimización por Mapas de Karnaugh

La minimización de funciones a través de mapas de Karnaugh es otro método para la optimización de funciones, pero a diferencia del álgebra booleana, con este método siempre se llega a la mínima expresión, aunado a la facilidad que éste representa. Siendo una herramienta, un mapa K muestra al igual que la tabla de verdad la relación entre entradas y salidas usando notación tipo código Gray.

Figura 13. Mapas k, colocación de variables de entrada y código Gray.

Observando la figura 13 notamos como escribir las combinaciones de entrada entradas en un mapa K. Después colocamos las salidas dentro de la tabla, es decir 0 ó 1, respetando las combinaciones de la entrada y agrupamos dependiendo del métodos que deseemos utilizar la para la obtención de la expresión lógica (maxitérminos o mini 17


términos). Los agrupamientos pueden ser de 1, 2, 4 u 8, siempre buscando conseguir el grupo más grande posible, pues así la expresión será mínima. Es importante recalcar que los grupos deben ser rectangulares, es decir, no se permiten grupos en diagonal (véase figura 14).

Figura 14. Grupos en mapas K.

En la figura 15 se muestra un ejemplo de la utilización de mapas K para la obtención de una expresión mínima. Primeramente se parte de la tabla de verdad, posteriormente se colocan las salidas en un mapa K respetando el código Gray, así como las tres entradas. Finalmente se muestran dos ejemplos la función final ya minimizada, una a través de maxitérminos y la otra a través de minitérminos.

Se observa también, que este caso no existe ninguna ventaja, en cuanto al número total de compuertas utilizadas, por parte de minitérminos o maxitérminos; pues en ambos casos se utilizarían cuatro compuertas en total.

18


Figura 15. Ejemplo con mapas K.

Para esclarecer aún más la utilización de mapas K, se resolverá el siguiente ejemplo, donde se hará uso de lo visto con anterioridad.

-

Se desea automatizar la apertura de dos compuertas de una presa. Para ello se han instalado tres sensores situados verticalmente sobre la presa que indican el nivel de agua. Cuando se activan los tres sensores, se tienen que abrir las dos puertas, si sólo esta desactivado el más alto, se abrirá una de las dos compuertas, en caso de que sólo esté activado el sensor situado a mayor profundidad, no se abrirá ninguna compuerta. Diseñar el circuito combinacional que controle este sistema.

Primeramente estableceremos la notación a utilizar, así como la tabla de verdad correspondiente para cumplir con la función del sistema.

19


Notación: A – Sensor de menor profundidad. B – Sensor de media profundidad. C – Sensor de mayor profundidad. X – Compuerta 1 Y – Compuerta 2

A

B

C

X

Y

1

1

1

1

1

1

1

0

1

0

1

0

0

0

0

0

1

1

-

-

1

0

1

-

-

0

0

0

-

-

0

0

1

-

-

0

1

0

-

-

Tabla 8. Tabla de verdad de ejemplo. Las condiciones que no importan se denotaran con un guión (-).

Posteriormente se hace un mapa K para cada salida (X y Y).

A

B

0

C 0

1

0

-

-

0

1

-

-

1

1

1

1

1

0

0

-

Tabla 9. Mapa K para X.

20


Por minitérminos y utilizando el grupo sombreado de color naranja, obtenemos que X = B. A

B

0

C 0

1

0

-

-

0

1

-

-

1

1

0

1

1

0

0

-

Tabla 10. Mapa K para Y.

Por minitérminos y utilizando el grupo sombreado de color naranja, obtenemos que Y=C

De tal forma, que el esquemático quedaría de la siguiente manera:

Figura 16. Esquemático de ejemplo.

21


2. CIRCUITOS COMBINATORIOS DIGITALES

Comencemos por la definición de circuito combinatorio, el cual se define como el arreglo de compuertas lógicas con n número de entradas y m número de salidas, en el cual las salidas dependerán de la combinación binaria que se encuentre en la entrada (véase figura 17).

Figura 17. Circuito combinatorio digital.

2.1 Conceptos básicos de diseño de circuitos combinatorios con compuertas básicas

Para comenzar el diseño de un circuito combinacional podemos partir tanto de una tabla de verdad o de un diagrama de tiempo, los cuales representan la función que realizará el circuito. Tomando en cuenta lo anterior, podremos escribir la expresión algebraica que al ser implementada nos generará la función deseada. Esto lo podemos observar más claramente en la figura 18.

Figura 18. Ejemplo de proceso para la realización de un circuito combinatorio.

22


Para obtener la expresión algebraica a través de una tabla de verdad existen dos formas de hacerlo: 

Maxitérminos (POS): Combinación de entradas que produce en la salida un valor falso (un cero). La función se expresa por medio de productos de sumas (todo lógico).

Minitérminos (SOP): Combinación de entradas que produce en la salida un valor verdadero (un uno). La función se expresa por medio de una suma de productos (todo lógico).

Para dejar más claro todo lo anterior, se resolverá el siguiente ejemplo utilizando ambos métodos.

Ejemplo: A

B

C

Y

0

0

0

0

0

0

1

0

0

1

0

0

0

1

1

1

1

0

0

0

1

0

1

1

1

1

0

1

1

1

1

1

Tabla 11. Ejemplo.

En este caso, notamos que existe la misma cantidad de ceros y unos, por lo tanto, ningún método tiene ventaja sobre el otro en cuanto a facilidad de aplicarlo se refiere. Por ejemplo: si se llegara a dar el caso de que existieran más ceros que unos, lo lógico sería aplicar el método de minitérminos; pues con esto se facilitaría el trabajo. Y viceversa, en 23


caso de existir más unos que ceros, lo lógico sería utilizar el método de minitérminos. En base a esto, podemos resolver el ejemplo:

Maxitérminos:

Y = (A + C) (A + B) (C + B)

En la figura 19 se observa expresión anterior implementada con tres compuertas OR y una AND.

Figura 19. Circuito combinatorio a través de maxitérminos.

Minitérminos: Y = AC + AB + BC

En la figura 20 se observa expresión anterior implementada con tres compuertas AND y una OR.

Figura 20. Circuito combinatorio a través de minitérminos. 24


2.2 Diseño usando exclusivamente compuertas NAND

Sabemos que la estructura general del diseño con Minitérminos son las operaciones OR de un conjunto de AND. Si entre las dos operaciones lógicas de la estructura invertimos dos veces para no afectar la función es posible sustituir la compuerta AND por NAND y la OR con entradas invertidas también (véase figura 21).

Realizar un diseño con compuertas NAND puede resultar en ventajas para el diseñador, pues al utilizar solamente un tipo de compuertas se economiza el circuito así como la cantidad de cable utilizado, aunado al menor consumo de potencia que representar utilizar menos circuitos integrados.

Figura 21. Esquema de conversión de compuertas AND y OR a compuertas NAND. Símbolo de compuerta NAND.

25


Para explicar un poco lo anterior realizaremos el siguiente ejemplo: 

Implemente el siguiente circuito con compuertas NAND

Figura 22. Ejemplo de uso de compuertas NAND.

En la figura 23 se observa cómo invertimos la compuerta AND a su salida, así como las entradas de las compuertas OR.

Figura 23. Conversión a compuertas NAND.

En la figura 23 al convertir las compuertas AND y OR a NAND, notamos que restan dos compuertas NOT, para esto utilizamos la siguiente equivalencia (véase figura 24). 26


Figura 24. Relación entre compuertas NAND y NOT.

Entonces, el circuito finalmente quedaría de la siguiente manera (véase figura 25):

Figura 25. Solución de ejemplo de uso de compuertas NAND. 2.3 Circuitos combinatorios mediante dispositivos lógicos programables (PLD’s)

Ya definido el concepto de circuito combinatorio y en base a él, se puede afirmar que un PLD es un dispositivo que permite realizar circuitos combinacionales a través de un lenguaje de programación, es decir, un PLD no consiste en más que colocar muchos componentes lógicos básicos en un IC y controlar electrónicamente la interconexión de dichos componentes.

En la figura 26 se observa el esquema de los dispositivos que encontramos dentro de la lógica programable.

27


Figura 26. Lógica programable. El uso de PLD’s representa ciertas ventajas, entre las que encontramos las siguientes: 

Menor espacio en la tarjeta.

Menor consume de potencia (ahorro de energía).

Mayor confiabilidad.

Menor costo global.

Correcciones con facilidad.

Se evitan problemas de cableado.

La mayor parte del diseño es en software.

Los denominados compiladores lógicos, son los lenguajes de descripción de Hardware (HDL), los cuales describen la interconexión entre el hardware. A continuación se enlistan algunos de estos compiladores:

28


VHDL.

Verilog.

CUPL (Compilador Universal para Lógica Programable).

ABEL (Advanced Boolean Expression Language).

OPAL (Open Programmable Architecture Language).

PALSM (PAL enssambleer).

Para dar un ejemplo de PLD usaremos una GAL, dispositivo que significa Arreglo Lógico Genérico. En la figura 27 se muestra una GAL16V8, con la explicación las letras y números de su nombre, así como los diferentes tipos de integrados en la que la podemos encontrar en el mercado.

Figura 27. Descripción de un PLD: GAL16V8.

29


Para el uso de dispositivos como el anterior, se sigue el siguiente diagrama de flujo (véase figura 28):

Figura 28. Diagrama de flujo de diseño para un PLD.

En los compiladores lógicos podemos trabajar con tablas de verdad, funciones booleanas, diagramas de tiempo y diagramas esquemáticos. En el caso de este curso, se utilizó el lenguaje CUPL utilizado por el programa WinCUPL de la marca ATMEL. Este programa se constituye principalmente de 3 partes: 

Encabezado: Esta sección contiene los detalles de documentación e información que el compilador puede usar para programar.

Definición de entradas y salidas: Aquí se asignan los pines y nombres a las señales de entrada y salida.

Descripción: Es el cuerpo del programa, donde se describe el diseño en cualquiera de los modos anteriormente mencionados,

tales como funciones, tablas de

verdad, esquemático, diagrama de estados, entre otros.

30


Para aclarar un poco mรกs lo anterior, describiremos como realizar un de circuito secuencial en WinCUPL. Este circuito fue bastante utilizado en el curso, es por eso que se ha elegido a este como ejemplo.

Name

Name ;

PartNo 00 ; Date

21/09/2010 ;

Revision 01 ; Designer Engineer ; Company ITESM ; Assembly None ; Location ; Device gal16V8 ;

/* *************** INPUT PINS *********************/ PIN 1 = Q2

; /*

*/

PIN 2 = Q1

; /*

*/

PIN 3 = Q0

; /*

*/

/* *************** OUTPUT PINS *********************/ PIN 13 = a

; /*

*/

PIN 14 = b

; /*

*/

PIN 15 = c

; /*

*/

PIN 16 = d

; /*

*/

PIN 17 = e

; /*

*/

PIN 18 = f

; /*

*/

PIN 19 = g

; /*

*/

31


TABLE Q2, Q1, Q0 => a,b,c,d,e,f,g {

'b'000 => 'b'1111110; 'b'001 => 'b'0110000; 'b'010 => 'b'1101101; 'b'011 => 'b'1111001; 'b'100 => 'b'0110011; 'b'101 => 'b'1011011; 'b'110 => 'b'0000000; 'b'111 => 'b'0000000; }

En el primer segmento se distinguen los datos del encabezado, en el cual se aparecerá el nemónico del dispositivo que estamos utilizando, en este caso fue una GAL16V8. En el segundo segmento se definen las entradas (Q0, Q1 y Q2) y las salidas (a, b, c, d, e, f, g), asignándoles a cada una su respectivo número de pin, checando previamente que los números de pines coincidan con los del dispositivo. Posteriormente en el último segmento, se define la función del programa haciendo uso de una tabla de verdad, escribiéndola tal y como se muestra en el ejemplo.

2.4 Decodificadores y Multiplexores

Comenzaremos con el decodificador, el cual tiene como función básica detectar la presencia de una determinada combinación de bits en sus entradas y señalar la presencia de este código mediante un cierto nivel de salida. En su forma general, un decodificador posee n líneas de entrada para gestionar n bits y en una de las 2 n líneas de salida indica la presencia de una o más combinaciones de n bits.

Existe otro dispositivo que suele ser confundido con un decodificador, el codificador. Este dispositivo es un circuito lógico combinacional que realiza la función

32


inversa del decodificador, es decir permite que se introduzca en una de sus entradas un nivel activo que representa un dígito, como puede ser un dígito decimal y octal, y lo convierte en una salida codificada, como BCD o binario.

Figura 29. Decodificador y codificador.

En cambio, un multiplexor (MUX)

es un circuito combinacional

que tiene

varios canales de datos de entrada y uno de salida. Sólo un canal de la entrada pasará a la salida y este será el que haya sido escogido mediante las llamadas señales de control.

Figura 30. Multiplexor de cuatro entradas.

En la figura 30 se muestra como una de las cuatro señales es escogida por las señales de control. El número de líneas de control que debe tener un multiplexor depende del número de entradas, esto lo sabemos con la siguiente fórmula: Número de canales de entrada = 2n, donde n es el número de líneas de control.

Por ejemplo, si tenemos un multiplexor de 8 líneas de entrada, debemos tener 3 líneas de selección, debido a que 8 = 2n, por lo tanto n = 3

33


Por lo general los multiplexores mรกs utilizados son de 1 bit, tanto de entrada como de salida. Sin embargo, si se quiere mรกs de 1 bit, se conectan los multiplexores necesarios en paralelo.

Figura 31. Circuito de MUX 2-1.

34


3. CIRCUITOS SECUENCIALES DIGITALES

3.1 Conceptos básicos de circuitos secuenciales

Los circuitos secuenciales digitales pueden ser identificados por tener las siguientes características: 

La salida depende de las entradas actuales y las salidas pasadas.

Circuito de memoria y combinacional.

La salida puede cambiar aunque las entradas no se modifiquen.

Señales de reloj.

Figura 32. Circuito lógico secuencial.

A su vez, podemos dividir los circuitos lógicos secuenciales en dos tipos: 

Circuito síncrono: Varía su estado cuando la señal de reloj lo indica. Es decir, el reloj lleva la sincronía del circuito.

Circuito asíncrono: Varía su estado cuando una de las entradas es modificada.

35


El efecto de memoria se logra con el hecho de retroalimentar la salida con la entrada.

Figura 33. Efecto de memoria.

3.2 Latches, Flip-Flop’s.

El latch es un dispositivo de almacenamiento temporal de dos estados, es decir, biestable, que suele agruparse en una categoría diferente a la de los flip-flop´s. Los latches son similares a los flip-flop, pues también son dispositivos de dos estados que pueden permanecer en cualquiera de sus dos estados gracias a su capacidad de realimentación La principal diferencia entre ambos dispositivos está en el método empleado para cambiar de estado. Entre sus principales características encontramos las siguientes: 

La salida cambia cuando la entrada cambia.

En caso de contar con reloj (CLK), responde a niveles lógicos

Figura 34. Latch.

36


Existen diversos tipos de Latch, sin embargo sólo se mencionarán los más comunes: 

S - R: Este dispositivo tiene el siguiente comportamiento: 

La entrada Set pone la salida en 1.

La entrada Reset pone la salida en 0.

Si las 2 terminales están en 0 la salida permanece sin cambios.

La condición de 1 en ambas terminales no está permitida.

Figura 35. Latch S-R.

D: Este dispositivo tiene el siguiente comportamiento:

Mantiene a la salida el mismo valor que se tiene en la entrada.

Cuenta con CLK, que dependiendo la configuración responderá altos o bajos.

37


Figura 36. Latch D.

El Flip - Flop es un dispositivo, al igual que el Latch, de almacenamiento temporal de dos estados. A diferencia del Lacth, que es un dispositivo de memoria asíncrono, el Flip – Flop es un dispositivo síncrono, es decir, su salida cambiará de estado únicamente en el instante que recibe el pulso de disparo, denominado Clock. Entre sus principales características encontramos: 

La salida sólo cambia si existe una transición en la señal de CLK.

Responde a flancos positivos ↑ o negativo ↓.

Las entradas es el “CUAL” y el CLK es el “CUANDO”.

Figura 37. Flip – Flop.

38


Al igual que los Latch, existen diversos tipos de Flip - Flop, sin embargo sólo se mencionarán los más comunes: 

D. Este dispositivo tiene básicamente la misma función el Latch de tipo D, sin embargo, su diferencia radica en que éste responde a los flancos de la señal que proviene del Clock, mientras que el Latch responde a los niveles

Figura 38. Flip – Flop D. 

S-R: Este dispositivo, al igual que el Flip-Flop D y Latch D, tiene básicamente la misma función que un Latch de tipo S-R, siendo la misma característica la que los diferencia. El Flip-Flop RS responde a los flancos de la señal que proviene del Clock, mientras que el Latch responde a los niveles.

Figura 39. Flip – Flop RS.

39


J-K: En el caso de este dispositivo, su salida dependerá de la combinación de las entradas que se tienen en las entradas J y K, tal y como se muestra en su tabla de verdad de la figura 39.

Figura 40. Flip – Flop J-K. Esquema y tabla de verdad.

3.3 Análisis de circuitos secuenciales

Este tipo de circuitos pueden ser diseñados a través de las llamadas máquinas de estado finito (FSM), las cuales están constituidas por tres bloques, dos de ellos son circuitos combinacionales, que generan el estado siguiente y la salida; mientras que el tercero son memorias que almacenan los estados.

Este tipo de circuitos se clasifican en dos modelos: Maquinas de Mealy y de Moore. La principal diferencia que podemos encontrar entre ambas es que en las Maquinas de Moore las salidas sólo dependen los estados del sistema, en cambio en las Maquinas de Mealey las salidas dependen tantos de los estados del sistema como de las entradas. En el caso particular de este curso, nos enfocamos al uso de las Máquinas de Moore.

40


Figura 41. Máquina de Moore y Máquina de Mealy.

3.4 Síntesis de circuitos secuenciales síncronos

En este caso, para el diseño de circuitos síncronos con Máquinas de Moore se siguen los siguientes pasos:

1. Establecer el número de estados de la máquina, con ello se obtienen el número de circuitos de memoria.

2. Realizar diagrama de estados.

41


Figura 42. Diagrama de estados.

3. Realizar la tabla de excitaci贸n.

Tabla 12. Ejemplo de una tabla de excitaci贸n.

4. Dise帽o de circuitos combinacionales.

5. Dise帽o final.

42


Ejemplo: 

Diseñe un circuito secuencial que cuente de cero a 3 y comience de nuevo.

Paso 1: La cuenta está constituida por 4 estados, lo cual se puede obtener con dos bits, es decir 2 flip-flops. Para este diseño 2 flip-flop D.

Paso 2: Diagrama de estados (véase figura 43).

Figura 43. Diagrama de estados de ejemplo de Máquina de Moore.

Paso 3: Tabla de excitación.

Tabla 13. Tabla de excitación de ejemplo de Máquina de Moore.

Paso 4: Diseñar el circuito combinacional, de la forma ya conocida, para DA y DB, considerando A y B como las entradas.

Figura 44. Circuito combinacional de ejemplo de Máquina de Moore. Paso 5: Circuito final.

43


Figura 45. Circuito final de ejemplo de Máquina de Moore.

3.5 Circuitos secuenciales mediante PLD´s

Las Máquinas de Moore también pueden ser implementadas mediante el uso de PLD’s, pues apoyándonos en el software WinCUPL esta tarea resulta bastante más sencilla en el sowfware, utilizando por ejemplo una GAL, que si se trata de implementar como se vió en la sección anterior. El diseño de secuenciales mediante PLD’s sigue los pasos uno y dos vistos en la sección anterior, es decir, Diagrama de estados y tabla de excitación. Teniendo lo anterior, se pasa a WinCUPL donde el procedimiento será similar a lo visto anteriormente, es decir, se elige el dispositivo a utilizar (colocando el nemónico correcto), se declaran las variables de entrada y salida y posteriormente por medio de un comando llamado “sequence” se coloca la secuencia de la máquina. Esta secuencia se realiza en base a la tabla de excitación, colocando los estados actuales de la salida después de la palabra “present” (equivalente a estado actual) y los estados siguientes de las salidas después de la palabra “next” (equivalente a estado siguiente).

44


Por ejemplo:

Name Date

Name ; 15/10/2010 ;

Revision 01 ; Designer Engineer ; Company ITESM ; Assembly None ; Location ; Device g16v8a ;

/* *************** INPUT PINS *********************/ PIN

1 = clk

; /*

Sensor

*/

/* *************** OUTPUT PINS *********************/ PIN

12 = A

; /*

*/

PIN

13 = B

; /*

*/

PIN

14 = C

; /*

*/

/**************************************************/ Sequence [A,B,C] { present 'b' 000 next 'b' 001 ; present 'b' 001 next 'b' 010 ; present 'b' 010 next 'b' 011 ; present 'b' 011 next 'b' 100 ; present 'b' 100 next 'b' 101 ; present 'b' 101 next 'b' 110 ; present 'b' 110 next 'b' 111 ; present 'b' 111 next 'b'000 ; }

45


Aquí es importante recalcar que el pin 1 de la GAL16V8 será el único pin donde podremos conectar la señal del reloj, respetando así ese pin para esa entrada siempre. De igual forma, en la sección de descripción los estados de la máquina se pueden escribir tanto en formato binario como en formato hexadecimal.

46


4. LÓGICA INDUSTRIAL

4.1 Circuitos Lógicos Eléctricos

Actualmente sabemos que existen diversos tipos de dispositivos lógicos de control tanto comerciales o de uso más común como industriales, sin embargo, hace tiempo la lógica de los circuitos lógicos eléctricos implicaba solamente el uso de relevadores con los cuales, al activarse o desactivarse, se lograba la función deseada. En base eso, y al auge de nuevas tecnologías se han desarrollado y mejorado los llamados PLC, los cuales tienen una aplicación totalmente industrial y serán

descritos en este documento a

continuación.

4.2 Diagramas de escalera

Existen diversos lenguajes de programación de PLC, esto dependerá tanto del PLC como del fabricante. Entre estos lenguajes encontramos el denominado Nemónico, el cual se basa en instrucciones y es estructurado, otro es el de bloque de funciones, en el cual en cada bloque se definirá la función que se desea realizar y por último tenemos el lenguaje de escalera, el cual es quizá el más utilizado. Este lenguaje además de ser uno de los más utilizados en la programación de PLC, se desarrolla a partir de los sistemas antiguos basados en relés, los cuales al activarse o desactivarse realizaran la función requerida. Que se continúe este lenguaje, a pesar del tiempo que ya tiene en el mercado, se debe principalmente a dos razones: 

Los técnicos encargados en el mantenimiento de los PLC están acostumbrados este lenguaje.

Aunque los lenguajes de alto nivel se han desarrollado mucho, han sido pocos los que han podido cubrir de modo satisfactorio todos los requerimientos de control en tiempo real que incluyan la representación de los estados de los puntos de entrada y salida. 47


Como ya se mencionó el uso de este lenguaje en PLC’s permite representar circuitos lógicos eléctricos de una manera compacta a través de interruptores, tal y como se muestra en las figuras 48, 49 y 50.

Figura 46. Bobina en PLC con diagrama de escalera.

Figura 47. Contacto normalmente abierto.

Figura 48. Contacto normalmente cerrado.

En la figura 46 observamos una bobina, que en el diagrama de escalera representa una salida. En cambio, las figuras 47 y 48, representan entradas normalmente abierta y normalmente cerrada respectivamente.

Así como lenguajes de programación cambian conforme al fabricante, la manera de dirección tanto las entradas como las salidas también sufre cambios de un fabricante a otro, tal y como se muestra en la Figura 49. 48


Figura 49. Direccionamiento de entradas y salidas en las diferentes marcas de PLC.

A continuaci贸n se muestra un ejemplo resuelto, donde con push bottons se debe con controlar el encendido y apagado de un motor, con LEDs indicadores on/off.

Figura 50. Ejemplo resuelto con PLC.

49


Notación de figura 50: Entradas: I0.1 – Push botton de encendido I0.2 – Push Botton de apagado

Salidas: Q0.1 - Motor (1 – encendido. 0 – apagado) Q0.2 – LED indicador de motor apagado Q0.3 – LED indicador de motor encendido

4.3. El Controlador Lógico Programable (PLC)

Por definición un PLC es sistema electrónico de tipo digital usado en la industria, el cual almacena instrucciones, las cuales pueden generar funciones lógicas, temporizadores, contadores y/o operaciones, para realizar control. Entre las principales ventajas de utilizar PLC’s encontramos las siguientes: 

Aplicación específica en industria (red ASI)

Dispositivo modular (entradas-salidas).

Todas las señales.

Programación simple y orientada.

Facilidad de comunicación con otros PLCs o PCs.

Son reprogramables.

Facilidad en la instalación y mantenimiento

Solución de problemas con facilidad.

Costo (dependiendo la aplicación).

50


Figura 51. Diagrama a bloques de un PLC.

El PLC es un dispositivo con aplicaci贸n principalmente industrial. En la siguiente figura se muestra las partes de un PLC-222.

Figura 52. Partes de un PLC.

51


4.3 Estándar IEC 1131 para programación de PLC’s

La Comisión Nacional de Electrotécnica (IEC), ha definido y aprobado normas con las cuales se busca estandarizar el uso de lenguajes de programación para PLC’s, que dependiendo del PLC y el fabricante utilizarán alguno de los lenguajes que observan en la figura 53.

Figura 53. Estándar IEC 1131-3 para programación de PLC’s.

4.4 Temporizadores y contadores, conjunto de instrucciones, funciones y bloques de datos

Dentro del lenguaje de escalera podemos hacer uso de dispositivos lógicos que nos pueden ayudar a realizar alguna función específica, como es el caso de los contadores y temporizadores. En el caso de los temporizadores, estos nos permiten realizar cierta función en función del tiempo, es decir, mediante este dispositivo podemos controlar el tiempo en que otro dispositivo se encienda y se apaga después de cierto tiempo, o viceversa.

52


A continuación describiremos dos tipos de temporizador: TON y TOF. 

TON: Tiene la función de encender un dispositivo después de determinado tiempo, es decir, mantiene en cero una salida hasta cumplir el tiempo establecido. En estos bloques se pueden definir escalas de tiempo diferentes y de eso depende el bloque que se usará.

Figura 54. Temporizador TON.

Notación: IN – Entrada con la cual se iniciará la cuenta del tiempo. PT - Indica el número de escalas de tiempo, es decir, el número que se establezca en PT será el número que multiplicará al número que se establezca en la parte inferior a la derecha. 

TOF: Tiene la función de apagar un dispositivo después de determinado tiempo, es decir, mantiene en alto una salida hasta cumplir el tiempo establecido. En estos bloques, al igual que en los TON, se pueden definir escalas de tiempo diferentes y de eso depende el bloque que se usará. En este caso, las entradas y el esquema son básicamente los mismos que en el temporizador TON.

En el caso de los contadores, tienen la función de contar hasta un número determinado, para posteriormente realizar alguna función, es decir, se establece una cantidad, y al llegar a esa cantidad realizará una acción. A continuación describiremos tres tipos de contadores: CTD, CTU y CTUD.

53


Figura 55. CTD.

Notación de figura 55: CD – Cuenta abajo. LD – Reset. PV – Número al cual debe contar, es decir, límite de cuenta. CTD – Contador hacia abajo.

Figura 56. CTU.

Notación de figura 56: CU – Cuenta arriba. LD – Reset. PV – Número al cual debe contar, es decir, límite de cuenta. CTU – Contador hacia arriba.

54


Figura 57. CTUD.

Notación de figura 57: CU – Cuenta arriba. CD – Cuenta abajo. R – Reset. PV – Número al cual debe contar, es decir, límite de cuenta. CTUD – Contador ascendente y descendente.

EJEMPLO: En la figura 59 se muestra el programa con código de escalera para implementar una función específica. En el diseño se quiere llevar el registro de las personas que entran y salen de una sala, indicando con una luz verde que pueden ingresar más personas y con una luz roja en el momento en el que ya no se puede ingresar. Cuando se supere el límite de personas que es igual a 6, sonará una alarma.

55


Figura 58. Ejemplo resuelto.

En el network 1 se observa el contador para las personas que ingresan a la sala, en la network 2 se observa el arreglo de interruptores para encender el led rojo. En la network 3 se observa el contador para cuando se supera el lĂ­mite de personas. En la network 4 se observa el arreglo de interruptores para encender el led rojo, y por Ăşltimo en la network 4 se observa el arreglo de interruptores para activar la alarma.

56


4.5 Técnicas de programación de PLC’s. En el caso de la programación de PLC’s se utilizamos el software Step7, en el cual al realizar el diagrama de escalera, este archivo debe ser compilado para, en dado caso, detectar errores de sintaxis.

Aunado al Step7, se utilizó otro software para simular lo diseñado en el Step7, este programa se llama S7-200 (véase Figura 59). Con base a estas dos herramientas se puede realizar un programa con la seguridad de que funcionará correctamente, pues si en el primero creemos que funcionará correctamente, no habrá mejor manera de comprobarlo que simulándolo y en base a eso, hacer las modificaciones necesarias.

Figura 59. Captura de Pantalla en simulación de PLC, S7-200.

57


5. CONCLUSIONES

Este trabajo me ayudó a recopilar y estudiar lo aprendido en el curso, reafirmé mis conocimientos y aclaré algunas dudas que en algún momento me dejaron fuera de la jugada.

Aprendí la base de la electrónica digital, saber que con unos y ceros puedo resolver problemas me deja muy satisfecho. La práctica con PLC’s me gustó mucho ya que este dispositivo lo encontraré durante toda mi carrera; además es mi primer materia relacionada con la Electrónica por lo que me gustó mucho cursarla.

Con esta clase al ver varios dispositivos que uso en la vida cotidiana recordaré la materia de Automatismos Lógicos ya que la base para el funcionamiento de dichos dispositivos se logra a partir de lo que aprendí en el curso.

58


6. REFERENCIAS

Floyd, Thomas L. “Digital Fundamentals”, 9th edition, Prentice Hall, 2005 Histand, Michael B. “Introducción a la Mecatrónica y los sistemas de medición”,3th edición, McGrawHill, 2007 Boylestad, T. L., & Nashelsky, L. “Electrónica: Teoría de circuitos y dispositivos electrónicos”. Prentice Hall, 2003. Tocci, R. J., Widmer, S. N., Sistemas Digitales: Principios y Aplicaciones, 8th edición, Prentice Hall, 2003.

Artigas, J. I.; Barragán, L. A.; Orrite C.; Urriza I.; ELECTRÓNICA DIGITAL. Aplicaciones y problemas con VHDL, Pearson Education, 2002.

59


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.