Memoria Automatismos Lógicos
-
Upload
jonathan-mendoza -
Category
Documents
-
view
239 -
download
3
description
Transcript of Memoria Automatismos Lógicos
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
1
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.
2
ÍNDICE
Introducción. 1 1. Fundamentos teóricos de sistemas lógicos. 3 1.1. Introducción a los sistemas lógicos. 3 1.2. Sistemas Numéricos. 3 1.3. Funciones lógicas Básicas. 8 1.4. Algebra Booleana. 15 1.5. Minimización por Mapas de Karnaugh. 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. 36 3.2. Latches, Flip-Flop’s. 37 3.3. Análisis de circuitos secuenciales. 41 3.4. Síntesis de circuitos secuenciales síncronos. 42 3.5. Circuitos secuenciales mediante PLD´s. 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
3
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.
4
Los sistemas posicionales se pueden representar por medio polinomial:
𝑁ú𝑚𝑒𝑟𝑜 = 𝑋(𝑛−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:
𝑁ú𝑚𝑒𝑟𝑜 𝑑𝑒𝑐𝑖𝑚𝑎𝑙 = ∑ 𝑥𝑏𝑖
𝑛
𝑖=−𝑚
Ejemplo: Convertir 11102 a la base 10.
5
𝑁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.
6
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
7
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:
8
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.
9
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.
10
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.
11
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.
12
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.
13
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.
14
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.
15
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.
16
Ley distributiva A•(B+C) = (A•B) + (A•C)
A+(B•C) = (A+B) • (A+C)
Ley asociativa (A•B) •C = A•(B•C) = A•B•C
(A+B) +C = A+(B+C) = A+B+C
Ley Conmutativa A•B = B•A
A+B = B+A
Precedencia A•B = A•B
A+B•C = A+(B•C)
A•B+C = (A•B)+C
Teorema de Morgan A • B̅̅ ̅̅ ̅̅ ̅ = A̅ + B̅ (NAND)
A + B̅̅ ̅̅ ̅̅ ̅ = A̅ • B̅ (NOR)
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
17
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
18
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.
19
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.
20
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 C
0 1
0 0 - -
0 1 - -
1 1 1 1
1 0 0 -
Tabla 9. Mapa K para X.
21
Por minitérminos y utilizando el grupo sombreado de color naranja, obtenemos que
X = B.
A B C
0 1
0 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.
22
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.
23
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:
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
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
24
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.
25
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.
26
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).
27
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.
28
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:
29
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.
30
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.
31
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 ; /* */
32
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 2n 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
33
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
34
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.
35
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.
36
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.
37
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.
38
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.
39
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.
40
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.
41
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.
42
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.
43
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.
44
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).
45
Por ejemplo:
Name Name ;
Date 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 ;
}
46
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.
47
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.
48
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.
49
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.
50
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).
51
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.
52
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.
53
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.
54
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.
55
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.
56
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.
57
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.
58
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.
59
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.