Sie sind auf Seite 1von 23

booblUnidad Didáctica 1.

PROGRAMACIÓN DE PLC¨s: CONCEPTOS


GENERALES Y ALGEBRA DE BOOLE.

Introducción a la estructura de un PLC

PLC: equipo electrónico de control con un hardware interno que es


independiente del proceso que pretende controlar. Dichos procesos se
controlan mediante un software que contiene las operaciones a realizar para
el control.

La secuencia de operaciones que realiza se define sobre las señales de


entrada y salida que obtenemos del proceso. Dichas entradas y salidas, van
cableadas directamente al PLC.

El autómata genera las señales de salida a partir del estado de las señales
de entrada y según el programa de control que tenga almacenado en su
memoria. Dicho programa es introducido a través de la unidad de
programación.

La configuración del autómata se desarrolla alrededor de una unidad central


o de control que por medio de buses internos une las interfaces de entrada,
salida y las memorias.

Estructura de un autómata.

Bloques esenciales para el funcionamiento de un autómata


Unidad central de proceso (CPU)

La CPU: se encarga de ejecutar el programa que tenga almacenado el PLC.


Gestiona y ordena las transferencias de información entre las entradas y las
salidas y de establecer la comunicación con los periféricos externos.

Estructura y elementos de la CPU.

Memoria del autómata.

En ella se almacenan:

- Datos del procesador: Entradas y salidas, señales que se generen en


la planta, variables internas o constantes que se usen durante el
proceso.
- Datos de control: Programa de usuario o configuración del autómata.

Tipos de memorias de un autómata:

- Memorias internas: donde se almacenan el estado de las variables


con las que trabaja el autómata. Están formadas por relés internos
y/o auxiliares, las memorias imagen de E/S, temporizadores,
contadores, registros internos, etc…
- Memorias de programa: Suelen ser externas y están conectadas a la
CPU. En ellas se almacena el programa que controla la aplicación,
que ha sido escrito por el programador. También pude contener
textos variables, información sobre el sistema o datos alfanuméricos.

Interfaces de entrada y salida.

Comunican la unidad central con el proceso. Se encargan de filtrar, adaptar


y codificar de forma adecuada para dicha unidad, las señales de entrada y
decodificar y amplificar las señales de ejecución antes de enviarlas a los
elementos conectados a la salida.
Fuente de alimentación

Se encargan de proporcionar las tensiones necesarias a partir de una


tensión exterior.

Por lo general necesitaremos al menos 2, ya que la CPU, y las memorias por


un lado y los emisores de señal y actuadores de salida por otro, necesitan
una tensión de funcionamiento distinta.

La mayoría de PLC´s pueden incluir una batería extra para asegurar la


alimentación en caso de fallo o desconexión.

La mayoría de fabricantes con el fin de evitar incompatibilidades y poder


simplificar la aplicación de sus dispositivos proporcionan módulos de
alimentación con varias tensiones de salida y niveles de potencia adecuados
para poder cubrir los requerimientos del sistema.

1. Conceptos generales de programación.

Desde el punto de vista del procesador, se denomina programa a un conjunto


de instrucciones o proposiciones definidas correctamente que le dicen lo que
tiene que hacer.

Cada instrucción indica:

- Qué operación realizará a continuación.


- De donde obtendrá los datos que necesita para realizarla.
- Dónde guardará los resultados de la operación.

Desde el punto de vista del procesador, se denomina programa a un conjunto


de instrucciones o proposiciones definidas correctamente que le dicen lo que
tiene que hacer.
Un programa se escribe en un lenguaje de programación. Estos lenguajes
permiten simplificar la creación de programas debido a s fácil descripción de
las instrucciones que ha de ejecutar el procesador; agrupando varias
instrucciones y dando un solo nombre al conjunto, de tal forma que la lista
de operaciones se reduce considerablemente haciendo más fácil la
compresión y elaboración de programas.

Programación: elaboración de un programa.

En el PLC existen dos tipos principales de programas:

- Programa de aplicación de usuario: Es el programa que elabora el


usuario para ejecutar una determinada tarea que necesita automatizar.
- Programa del sistema: Son los programas ya escritos por el fabricante
del PLC, que permiten procesar los programas del usuario.

Nota:

Programa de aplicación:

Hace referencia al conjunto de instrucciones o proposiciones que el usuario programa,


con la finalidad de solucionar tareas de automatización específica. Para ello, el usuario
escribe el programa de acuerdo a la representación del lenguaje de programación en
el Cuál tenga un mejor dominio. Es necesario tener en cuenta que hay fabricantes
que no utilizan todos los tipos de representaciones disponibles de los lenguajes de
programación, pero, a pesar de ello, el usuario tendrá que adaptarse a la
representación que se disponga.

Los programas del sistema, proporcionan servicios vitales a los programas


del usuario. Incluyen traductores de lenguaje de alto nivel a nivel de máquina
y realizan funciones operativas internas del controlador. Son el S. O. del PLC.

Los programas de aplicación son estructurados en función de la forma en la


que se procesan los programas (tareas). Pueden ser de dos tipos.

Cuando el autómata se sitúa en el ciclo de ejecución, también conocido como


ejecución cíclica, la CPU realiza un barrido del programa contenido en
memoria de usuario desde la dirección o línea 0000 hasta la última posible.

Dependiendo de cómo se realice la ejecución o barrido del programa, se


diferencia las siguientes estructuras:

- Ejecución cíclica lineal.


- Ejecución con salto condicional.
- Ejecución con salto a subrutinas o programación estructurada.
A. Salto condicional

Se puede considerar una variante de la programación lineal, con la única


diferencia de que en el ciclo de ejecución de un programa tiene la posibilidad
de alterar la secuencia línea a línea y dar un salto a otras líneas del programa
dejando un número “x” de líneas sin ejecutar. Esto es el salto condicional.

Su funcionamiento es el siguiente.

Si al llegar, en el proceso de ejecución del programa a la instrucción U, tal


como se puede apreciar en la figura siguiente, se cumple la condición en ella
indicada, se salta a V, continuando el barrido en V+1 hasta n. Si por el contra,
al llegar a U no se cumple la condición, el programa se ejecuta de forma lineal
continuando en U+1.

Esta facultad que tiene gran número de autómatas permite reducir el


tiempo de ejecución del ciclo, siendo aplicable en aquellos casos en que las
instrucciones contenidas en el salto sólo son precisas cuando se dan
determinadas condiciones impuestas por el propio programa
B. Programación estructurada

Cuando se quieren programar tareas de automatización que son muy


complejas, sería conveniente dividir el problema de manera parcial en
bloques y, al final, unir el conjunto de programas obtenidos en uno solo,
resultando la programación significativamente más fácil tanto para el usuario
programador como para los usuarios mantenedores.

Las funciones de automatización que son muy complejas se procesan mejor


cuando se dividen en pequeñas tareas correspondientes a las funciones
tecnológicas del proceso de automatización o si se van a utilizar
frecuentemente. Estas tareas parciales están representadas (programación
estructurada) en el programa de usuario mediante bloques.

Esta filosofía utilizada para la programación se denomina “Programación


Estructurada”, y consiste en dividir el programa de aplicación en varios
bloques que se caracterizan por poseer una independencia de tipo funcional,
donde cada bloque del programa lleva a cabo una tarea específica claramente
definida.

Cuando se realiza la programación de manera estructurada, se optimiza el


tiempo de escaneo porque no hay que ejecutar todos los bloques en cada uno
de los ciclos de barrido, ejecutándose sólo los que están en actividad en el
momento dado.

Las principales ventajas que se obtienen cuando se programa de forma


estructurada son las siguientes:

- La compresión, la solución, la simulación y las pruebas son fáciles si


cuando el problema es muy complejo se trata por partes.

- El diagnóstico de los fallos y su solución también es más fácil. Esto se


debe a que cuando y ase ha identificado el bloque del programa en el
que está el fallo, su corrección es más rápida que si se afronta el
problema de manera global.

- Los programas parciales se pueden ejecutar de manera inmediata por


equipos de programadores si cada uno elabora bloques individuales;
también se pueden usar de manera reiterada durante el escaneo del
programa o formar parte de otro programa de aplicación.
- Se utiliza con mayor eficacia la capacidad de la memoria, ya que se
pueden llamar los bloques de programas todas las veces que sea
necesario sin que haya que programar varias veces.

- Optimización del tiempo de barrido.

Jerarquía de llamadas: es la secuencia y anidamiento de las llamadas de


bloques. La profundidad del anidamiento o número de bloques depende el
fabricante de la CPU.

Ejemplo de la familia de autómatas de Siemens. Secuencia y profundidad de


anidamiento de las llamadas de bloques dentro de un ciclo de ejecución.

La figura siguiente ilustra el desarrollo de la llamada de un bloque dentro del


programa de usuario: el programa llama el segundo bloque, cuyas
operaciones se ejecutan luego hasta el final. Una vez que finaliza el
tratamiento del bloque llamado, se sigue con el procesamiento del bloque
invocante mediante la operación subsiguiente a la llamada del bloque.
Bloque o módulo de Organización (OB)

La ejecución cíclica de programas es la ejecución "normal" en los sistemas


de automatización. El sistema operativo llama de manera cíclica al OB 1 y se
arranca la ejecución cíclica del programa de usuario.

Funciones:

Son bloques programables. Se denomina función a un bloque lógico "sin


memoria". Las variables de las FCs que son temporales se memorizan en la
pila de datos locales. Estos datos se pierden tras el tratamiento de las FCs.
Para fines de memorización de datos, las funciones pueden utilizar bloques
de datos globales (BD).

La FC contiene un programa que se ejecuta cada vez que la FC es llamada


por otro bloque lógico. Las funciones se pueden utilizar para:

- Devolver un valor de función al bloque invocante (funciones


matemáticas)
- Ejecutar una función tecnológica (control individual con combinación
binaria)

Bloque de función (FB)

Los bloques de función son denominados bloques programables. Un FB es


un bloque "con memoria". El cual contiene un bloque de datos asignado como
memoria llamado bloque de datos de instancia (DBinst). Tanto los parámetros
que se transfieren al FB, como las variables estáticas, son memorizados en
el DB de instancia; mientras que las variables temporales se memorizarán en
la pila de datos locales.

Los datos que han sido memorizados en el DB de instancia, no se perderán


cuando termine el tratamiento del FB. Mientras que los datos que se han
memorizado en la pila de datos locales sí se pierden cuando termina el
tratamiento del FB.

Un FB está compuesto por un programa que siempre se ejecuta cuando el


FB es llamado por otro bloque lógico. Los bloques de función simplifican la
programación de funciones complejas de uso frecuentado.
DB Módulo de Datos

Al contrario de los bloques lógicos, los bloques de datos no contienen


instrucciones. En cambio, sirven para guardar datos de usuario, esto quiere
decir que los bloques de datos tienen datos que pueden variar con los que
trabaja el programa de usuario. Los bloques de datos globales contienen
datos de usuario utilizables desde otros bloques.

Bloques de función de sistema (SFB) y funciones del sistema (SFC)

No es necesario programar cada función. Algunos fabricantes ofrecen


bloques pre-programados que se pueden llamar desde el programa de
usuario.

Un SFB es un bloque de funciones integrado. Al igual que los FBs, los SFBs
son bloques "con memoria". Para los SFBs se deben crear también bloques
de datos de instancia, además de cargarlos en la CPU como parte integrante
del programa.

Una función del sistema SFC es una función pre programada integrada en
la CPU. La SFC se puede llamar desde el programa. Teniendo en cuenta que
las SFCs forman parte del sistema operativo, no se cargarán como parte
integrante del programa. Igual que las FCs, las SFCs son bloques que no
tienen memoria.
Representación de los lenguajes de programación y la norma IEC
61131-3.

En la actualidad cada fabricante diseña su propio lenguaje de programación.

Las diferentes formas que adopta el lenguaje de programación utilizado para


realizar programas se llama representación del lenguaje de
programación.

Hay cuatro tipos de representaciones, que son las más difundidas a nivel
mundial, y son:

- Lista de instrucciones.
- Plano de funciones o diagrama lógico.
- Diagrama de contactos o plano de contactos.
- Diagrama algorítmico.

La gran variedad de lenguajes de programación, hace que cada fabricante


tenga su representación propia.

En la siguiente tabla se presentan lenguajes de uso común bajo nombres


distintos asignados por el fabricante:
A. Norma IEC 61131-3

Supone el primer esfuerzo real para la estandarización de los lenguajes de


programación usados en la automatización industrial.

La norma IEC 61131-3 supone el primer esfuerzo real para la


estandarización de los lenguajes de programación utilizados en la
automatización industrial.

Esta parte de la programación, es la tercera del estándar 61131.

Hay muchas formas de ver esta parte del estándar. Algunas son:

 Es el resultado de la fuerza de trabajo del IEC TC65 SC65B.


 Es el resultado del trabajo de 7 compañías internacionales que
han sumado muchos años de experiencia en el sector de la
automatización industrial.
 Son aproximadamente 200 páginas de texto, con unas 60 tablas.
 Es la especificación tanto de la sintaxis como de la semántica de
un conjunto unificado de lenguajes de programación, donde también
se incluye el modelo general del software y su estructura como
lenguaje.
Algunas de las ventajas que ofrece son:
 Reducción del esfuerzo humano para entrenamiento,
depuración, consultoría y mantenimiento
 Permite crear un software reutilizable, lo que minimiza el
esfuerzo a la hora de codificar, el tiempo para el desarrollo del sistema
y los errores que surjan de la compilación
 Permite incluir técnicas de programación usadas en entornos
distintos al industrial
 Conectividad aumentada para facilitar la distribución del control.
Para que todo esto se cumpla y la norma sea estable debe de cumplir que:
 El software se desarrolla basándose en proyectos, diseño,
tareas, bloques y programas.
 Tiempo un fuerte tipado de datos. Esto se debe a que para cada
operación del lenguaje solo se le pueden aplicar un tipo de datos.
 La ejecución la controlamos a través de tareas
La norma nos permite dos caminos de desarrollo para el programado:

- Hacia abajo: definimos los tipos de datos y posteriormente el software


que trabaje mejor con esos tipos de datos.
- Hacia arriba: selecciona un software de programación mejor para el
proceso y después define los tipos de datos con los que este software
se adecue mejor.

Estas dos modalidades también las podemos definir como de elementos


comunes y de lenguajes de programación respectivamente.

Lenguajes de programación

Se definen cuatro lenguajes de programación normalizados, lo que significa


que se han definido tanto la sintaxis como la semántica, y no se permiten
particularidades distintivas (dialectos). Cuando ya han sido aprendidos s
podrá usar una amplia variedad de sistemas basados en esta norma:

Los lenguajes consisten en dos tipos:

 Literales:
 Lista de instrucciones (Instruction List, IL).
 Texto estructurado (Structured Text, ST).
 Gráficos:
 Diagrama de contactos (Diagram Ladder, LD).
 Diagrama de bloques funcionales (Function Block
Diagram, FBD).
Los cuatros programas describen la misma acción.

La elección del lenguaje de programación depende de:

 Los conocimientos del programador.


 El problema a trata.
 El nivel de descripción del proceso.
 La estructura del sistema de control.
 La coordinación con otras personas o departamentos.
Estos cuatro lenguajes están relacionados entre sí, y se pueden utilizar para
resolver de forma conjunta un problema común en función de la experiencia
del usuario.

 El Diagrama de contactos (LD): se basa en la presentación


gráfica de la lógica de relés.
 Lista de Instrucciones (IL): es el modelo de lenguaje
ensamblador que se basa en un acumulador simple.
 El Diagramas de Bloques Funcionales (FBD): se suele
utilizar en aplicaciones que requieren un flujo de información o datos
entre los componentes de control. Tanto las funciones como los
bloques funcionales se presentan como circuitos integrados.
 El lenguaje Texto estructurado (ST): es un lenguaje de alto
nivel con orígenes en el Ada, Pascal y ́C ́; puede ser utilizado para
codificar expresiones complejas e instrucciones anidadas; es un
lenguaje que dispone de estructuras para bucles (REPEAT-UNTIL;
WHILE-DO), una ejecución condicional (IF-THEN-ELSE; CASE), y
funciones (SQRT, SIN, etc.).

Algebra de Boole.

Tanto en sistemas digitales de grandes dimensiones como en ordenadores,


los procesos son operaciones simples realizadas por una gran cantidad de
circuitos digitales que veremos a continuación. Todos se denominan puertos
o circuitos lógicos, ya que emplean ecuaciones del álgebra de Boole. Es un
sistema de análisis matemático de la lógica.

Sistema digital: funciona de forma binaria. Emplea dispositivos en los que


solo son posibles dos estados. Un elemento puede tener tensión alta, por
ejemplo 4V, o baja de unos 0,2V, pero ningún otro valor. Dichos estados son
1 para alta, y 0 para baja. La aritmética binaria se maneja más cómodamente
con la clasificación de 0 y 1.

Para explicar el sistema binario se utiliza el sistema décimas, Base 10 (del 0,


al 9).

La representación en base 10 se basa en potencias de base 10. Estas las


podemos denotar como A X 10^B.

 A sería el número en la posición de las unidades, decenas,


centenas etc...
 Y B la posición que ocupa siendo la posición de las unidades la 0
y las siguientes 1 valor numérico por encima de la anterior posición.
Si usamos de ejemplo el número 1524 tendríamos la siguiente
descomposición.

1524 = 1x10^3 + 5x10^2 + 2x10^1 + 4x10^0 = (1 x 1000) + (5 x 100)


+ (2 x 10) + (4 x 1)

En el sistema binario de representación, la base es 2 en vez de 10, e igual


que en el sistema decimal la potencia tendrá la estructura de A x 2^B Con
la diferencia de que en el sistema decimal A solo puede tomar un
valor (0 ó 1). Veremos ejemplos de obtener el número decimal de un
binario y viceversa.

Por ejemplo el número 10011 podríamos representarlo


como

10011 = 1 x 2^4 + 0 x 2^3 + 0 x 2^2 + 1 x 2^1 + 1 x 2^0 = (1 x 16) +


(0 x 8) + (0 x 4) + (1 x 2) + (1 x 1) = 16 + 2 +1 = 19

Esta sería el paso de un número binario a su equivalente decimal, la acción


contraria es algo más larga. Consiste en ir dividiendo consecutivamente el
número por 2 e ir guardando los resultados. Hagamos el ejemplo con 19:

 19:2 = 9, y de resto nos da 1


 9:2 = 8, y de resto nos da 1
 8:2 = 4, y de resto nos da 0
 4:2 = 2, y de resto nos da 0
 2:2 = 1 y de resto nos da 0

El número binario final estaría representado por el resto de la última


operación, a continuación el resultado de la última operación y los demás
restos de las demás operaciones. En nuestro caso 010011 = 10011; que es
el número que previamente habíamos comprobado que daba 19 en binario.

Un digito binario se denomina bit. Un grupo de bit que tenga un


determinado significado se denominará información, palabra o código.

Se define el álgebra de Boole como la clase o conjunto de elementos


que pueden tomar dos valores perfectamente diferenciados, designados por
0 y 1 y que se relacionan entre sí mediante operaciones binarias, la suma y
el producto.
Operaciones en el álgebra de Boole

Operación OR:

La operación Suma o Adición que se aplica a las variables A y B y se define


de la siguiente manera:

Las tres primeras operaciones resultan obvias, son iguales a la suma


aritmética que conocemos de las operaciones básicas, sin embargo 1+1=1
resulta extraña. La explicación es que el resultado es igual a 1 siempre que
alguno de los bits sumados sea igual a 1. O lo que es lo mismo, el resultado
será 0 si los dos bits que estamos sumando son iguales a 0.

La función o puerta que representa esa tabla de verdad es la OR:

Puerta OR básica con su tabla de verdad.

Operación AND:

La operación producto se define por la siguiente tabla de verdad:

 0*0=0.
 0*1=0.
 1*0=0.
 1*1=1.

A la vista de los resultados, podemos decir que solo es 1 cuando los dos
bits están a 1, o el resultado es 0 cuando alguno de los bits es 0.
La Tabla de la Verdad que representa esta operación es la de la puerta o
función AND.

Puerta And con su tabla de verdad

Ejemplo de aplicación de la función AND:

Por ejemplo, imaginemos unas caja de seguridad de un banco que solo se


abre cuando se han introducido dos llaves diferentes, una está en manos del
director y la otra del jefe de seguridad.

Si solo se introduce una de ellas, la caja no se abrirá. Modelaremos el


problema así. Utilizaremos la variable A para referirnos a una de las llaves (0
no introducida, 1 introducida) y la variable B para la otra llave con el mismo
significado. Con la variable F expresamos el estado de la caja de seguridad
(0 cerrada y 1 abierta). El estado de la caja lo podemos expresar con la
ecuación:

F= A*B

Lo que indica que la caja se va abrir (F=1) solamente si A=1 (una llave
introducida) y B=1 (la otra llave introducida), en cualquiera de los demás
casos F=0 y por tanto la caja no se abrirá.

Operación NOT:

La operación de implementación, la cual puede denominarse de negación,


nos permite obtener el estado complementario del bit o variable booleana al
que se lo aplicamos. Se define de la siguiente manera:

Operación
Es decir, que si lo aplicamos a 0 obtenemos 1 y si lo aplicamos a 1
obtenemos 0. Esta operación nos permite cambiar el estado de una variable
booleana. La función o puerta que representa es la NOT.

Puerta NOT

Puerta not básica con su tabla de verdad.

Funciones complementarias: Combinando las funciones vistas


anteriormente con la función NOT surgen las complementarias. La función
NOR es la combinación de conectar la entrada de una puerta NOT a la salida
de una puerta OR. Su tabla de verdad será.
 A=0,B=0, F=1
 A=0,B=1, F=0
 A=1, B=0, F=0
 A=1, B=1,F=0
La función NAND es la combinación de conectar la entrada de una puerta NOT
a la salida de una puerta NAND. Su tabla de verdad será.
 A=0,B=0, F=1
 A=0,B=1, F=1
 A=1, B=0, F=1
 A=1, B=1,F=0

La función XOR implementa la disyunción exclusiva. Es decir un 1 para


entradas distintas y un 0 para entradas iguales. Representa la operación.

función

Su tabla de verdad es la siguiente.


 A=0,B=0, F=0
 A=0,B=1, F=1
 A=1,B=0, F=1
 A=1,B=1, F=0
La función XNOR es la inversa de la puerta XOR.

Función xnor

Su tabla de verdad es la siguiente.


 A=0,B=0, F=1
 A=0,B=1, F=0
 A=1,B=0, F=0
 A=1,B=1, F=1

Postulados fundamentales del Álgebra de Boole aplicados a contactos


eléctricos.

Dentro del Álgebra de Boole, vamos a destacar seis postulados


fundamentales, con ellos y las funciones básicas booleanas se realiza de la
descripción básica de circuitos digitales:

Postulado 1. Definición

El álgebra booleana hace referencia a un sistema algebraico que se define


en un conjunto B, que contiene dos o más elementos y entre los que se
definen dos operaciones denominadas "suma u operación OR" (+) y "producto
o multiplicación u operación AND" ( ).

Postulado 2. Existencia de neutros

Existen en B el elemento neutro de la suma, llamado O y el neutro de la


multiplicación, llamado 1, de manera que para cualquier elemento x de s:

Elementos neutros

Postulado 3. Conmutatividad

Para cada x, y en B:

Conmutatividad
Postulado 4. Asociatividad

Para cada x, y, z en B:

Asociatividad

Postulado 5. Distributividad

Para cada x, y, z en B:

Distributividad

Postulado 6. Existencia de complementos

Para cada x en B existe un elemento único denotado x’, llamado


complemento de x tal que:

Existencia de complementos

Actividad.

Como actividad de ampliación se propone demostrar las siguientes


igualdades.

Ecuación 1: Se puede demostrar aplicando el elemento unidad.

Ecuación de álgebra de Boole

Ecuación 2: Se puede demostrar aplicando la ley distributiva

Ecuación de álgebra de Boole


Ecuación 3: Se puede demostrar mediante desarrollo y aplicación de lo
anterior

Ecuación del álgebra de Boole

Ecuación 4: Desarrollando mediante la propiedad distributiva

Ecuación del álgebra de Boole

Ecuación 5: Podemos resolverla teniendo en cuenta la primera ecuación y


desarrollando

Ecuación del álgebra de Boole

Ecuación 6: Desarrollando

Ecuación del álgebra de Boole

Teoremas de Morgan.

El teorema de Morgan nos afirma que las siguientes transformaciones son


posibles:

Teoremas de Morgan
Demostración del inciso (a):

Demostración del inciso (a)

Así, para la demostración del inciso (a) hay que demostrar que A+B es el
complemento de A • B, para ello se hará en dos partes:

Sumando:

Teoremas de Morgan sumativa


 Por conmutatividad
 Por cancelación.
 Propiedad del complemento
 Por Teorema 1.

Multiplicando:

Teoremas de Morgan en multiplicación


 Por distributividad.
 Propiedad del complemento.
 Idempotencia.
Teoremas de Morgan

El teorema de Morgan nos permite representar funciones complejas de


forma más simple. Un ejemplo sería el siguiente.

Ecuación objetivo de aplicación del teorema de Morgan


Podemos suponer que nuestro sistema necesita realizar esta función pero
solo disponemos de una puerta AND cuando la función requiere 3. Aplicando
el teorema de Morgan podemos redefinirla de la siguiente forma

Transformadas para el teorema de Morgan

Como vemos en la ecuación final solo usaríamos una puerta AND. Para el
cambio se ha realizado de forma adecuada debemos comprobar que la
función inicial y esta última tienen la misma salida para unas entradas dadas.

Das könnte Ihnen auch gefallen