Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Conceptos básicos
de programación con
microcontroladores
Introducción
Por lo tanto, la lógica binaria es una herramienta muy poderosa para definir
y entender los sistemas de automatización de todo tipo, ya sea bajo la forma
1Nota: es un error muy común el confundir, como más adelante se explicará, el estado "accionado" o "sin accionar" del interruptor o del pul-
sador con que sus contactos dejen pasar la corriente o no, puesto que para determinar si la corriente pasa o no tendremos que conocer,
además, si el contacto eléctrico del elemento que se está usando es del tipo normalmente abierto o del tipo normalmente cerrado.
6
CONCEPTOS BÁSICOS DE PROGRAMACIÓN. LÓGICA BÁSICA
Las reglas matemáticas que definen las operaciones que se pueden hacer
sobre las variables binarias se denominan, en conjunto, el álgebra de Boole,
que realiza operaciones solamente con los dos valores posibles: 0 y 1, y los
resultados sólo pueden ser, también, o bien 0 o bien 1.
Sistemas de numeración
7
CONCEPTOS BÁSICOS DE PROGRAMACIÓN CON MICROCONTROLADORES
Sin embargo, no hay una regla tan sencilla para construir el código refleja-
do de Gray, como se verá próximamente.
Por ejemplo, el número 2.437 se compone de cuatro dígitos unidos y cada uno
de los mismos tiene un valor que depende de sí mismo (de qué dígito se trata de
entre los diez posibles), y de su posición dentro del número (su valor se verá mul-
tiplicado por 10 con cada posición que nos movamos a la izquierda).
8
CONCEPTOS BÁSICOS DE PROGRAMACIÓN. LÓGICA BÁSICA
uniéndolos en grupos de dos, tres, cuatro, etc., con lo que también se consi-
gue representar cantidades tan altas como sea necesario. Son números en sis-
tema binario, por ejemplo, los siguientes: 1110001, 1001, 11110, 10, etc.
Tabla 3. Conversión de un
número binario en decimal.
Por lo tanto, el número que en código binario natural se expresa como
1011101, equivale al 93, expresado en sistema decimal (recuerda, de nuevo,
que cualquier número, excepto el propio cero, elevado a cero da como resul-
tado el 1).
9
CONCEPTOS BÁSICOS DE PROGRAMACIÓN CON MICROCONTROLADORES
Para formar el código reflejado de n dígitos (bits), partimos del código refle-
jado correspondiente a un dígito menos (n-1), y a continuación trazamos una
línea debajo de la tabla que servirá de eje de reflexión (como en un espejo). Por
debajo de esta línea escribiremos el mismo código que existe por encima pero
en orden inverso, de forma que cada número quede a la misma distancia de la
línea por debajo de la misma que tenía el número original por arriba. Después
de esto completaremos la tabla rellenando con un cero a la izquierda para
todos los números por encima de la línea y con un uno a la izquierda para
todos los números por debajo de la misma. Veamos algunos ejemplos empe-
zando desde el más sencillo:
0
1
A partir del mismo, trazamos una línea por debajo y reflejamos los
números existentes como en un espejo:
10
CONCEPTOS BÁSICOS DE PROGRAMACIÓN. LÓGICA BÁSICA
En este apartado vamos a estudiar las relaciones entre los elementos que
componen un sistema automático con elementos binarios (de funcionamiento
todo-nada), desde los elementos lógicos más básicos (funciones lógicas bási-
cas), hasta la combinación de los mismos para montar sistemas automáticos
más complejos, aplicadas a los sistemas automatizados que se basan en
esquemas cableados y programación de microautómatas.
11
CONCEPTOS BÁSICOS DE PROGRAMACIÓN CON MICROCONTROLADORES
entre las entradas del sistema automático (las células detectoras de movimien-
to y la seta de emergencia) y la salida del sistema (el contactor que comanda
el motor de accionamiento de la puerta), lo cual nos definirá inequívocamente
el funcionamiento del automatismo en cuestión.
Por lo tanto, llamamos función lógica a la relación entre las diversas varia-
bles del sistema automático que nos definirá el funcionamiento de las salidas
del mismo. En nuestro ejemplo, la función lógica nos dirá cómo hemos de
conectar los contactos eléctricos que nos dan los detectores de movimiento,
entre sí y con el contacto de la seta de emergencia, para que la tensión que
llega desde la alimentación del sistema automático llegue a la bobina del con-
tactor que comanda el motor justo cuando queremos (cuando uno de los dos
detectores o los dos simultáneamente detecten movimiento y la seta de emer-
gencia no esté pulsada).
12
CONCEPTOS BÁSICOS DE PROGRAMACIÓN. LÓGICA BÁSICA
13
CONCEPTOS BÁSICOS DE PROGRAMACIÓN CON MICROCONTROLADORES
A partir del esquema eléctrico cableado es muy sencillo deducir las ecua-
ciones lógicas que expresan la función lógica: tendremos en cuenta que tanto
las bobinas de los relés/contactores como los pilotos de señalización (así
como cualquier consumo eléctrico que se coloque directamente sobre la línea
de 0 V del esquema), se tratarán como salidas en las ecuaciones lógicas e irán
representadas a la izquierda del igual de la ecuación.
S=K
14
CONCEPTOS BÁSICOS DE PROGRAMACIÓN. LÓGICA BÁSICA
S=a
Diagrama lógico
Tabla de verdad Diagrama eléctrico cableado Ecuación lógica
de bloques
S=a
15
CONCEPTOS BÁSICOS DE PROGRAMACIÓN CON MICROCONTROLADORES
En donde se ve que ahora las entradas son dos, “a” y “b”, y la salida es “S”.
S es cero solamente cuando a y b son cero las dos simultáneamente, y es uno
cuando cualquiera de las dos o ambas simultáneamente son uno, como se definió.
Las variables de entrada, “a” y “b”, se han representado por los contactos
eléctricos de dos pulsadores. La salida, dado que esta función no incluye la
negación, se puede representar directamente por el piloto de señalización “S”,
sin necesidad de un relé o contactor auxiliar K, como en la función lógica bási-
ca anterior.
S=a+b
Diagrama lógico
Tabla de verdad Diagrama eléctrico cableado Ecuación lógica
de bloques
S=a+b
16
CONCEPTOS BÁSICOS DE PROGRAMACIÓN. LÓGICA BÁSICA
Verás que la variable de salida “S” es 1 solamente cuando las dos variables
de entrada “a” y “b” son 1 simultáneamente.
S=axb
17
CONCEPTOS BÁSICOS DE PROGRAMACIÓN CON MICROCONTROLADORES
Diagrama lógico
Tabla de verdad Diagrama eléctrico cableado Ecuación lógica
de bloques
S=axb
18
CONCEPTOS BÁSICOS DE PROGRAMACIÓN. LÓGICA BÁSICA
S=a+b
Diagrama lógico
Tabla de verdad Diagrama eléctrico cableado Ecuación lógica
de bloques
S=a+b
19
CONCEPTOS BÁSICOS DE PROGRAMACIÓN CON MICROCONTROLADORES
S=a↔b
Diagrama lógico
Tabla de verdad Diagrama eléctrico cableado Ecuación lógica
de bloques
S=axb
20
CONCEPTOS BÁSICOS DE PROGRAMACIÓN. LÓGICA BÁSICA
Tabla de verdad.
Diagrama eléctrico cableado.
Ecuación lógica.
Diagrama lógico de bloques.
Ejercicio resuelto 1
APERTURA AUTOMÁTICA DE UNA PUERTA
Imaginemos, por ejemplo, una instalación automatizada sencilla. Tenemos
una puerta automática accionada por un motor eléctrico y queremos coman-
dar la apertura de la misma (solamente la apertura en este
ejercicio) en base a un detector de presencia próximo a la
puerta con parada por final de carrera. Cada vez que se
aproxime una persona a la puerta, el cilindro debe abrir la
misma y cuando la persona ya haya pasado, el sistema
debe volver a cerrarla, quedando en espera de un nuevo
ciclo. El esquema sería el mostrado en el margen izquierdo.
21
CONCEPTOS BÁSICOS DE PROGRAMACIÓN CON MICROCONTROLADORES
Veamos cómo se expresa esta función lógica con su forma de tabla de verdad:
Veamos qué significa cada estado. El primer estado será siempre el estado
inicial; es decir, qué valor toman las variables, tanto de entrada como de sali-
da, en el primer momento sin que aparezcan aún órdenes en el sistema (sin
que aparezca la persona delante del detector de presencia). La salida deberá
ser cero porque el sistema estará siempre en reposo en el estado inicial.
22
CONCEPTOS BÁSICOS DE PROGRAMACIÓN. LÓGICA BÁSICA
Este procedimiento consiste en que por cada “1” que aparece en la colum-
na de las salidas obtendremos un término compuesto por tantas variables que
se multiplican como variables tenga el sistema. Todos los términos que aparez-
can deducidos de los unos de la columna de las salidas se suman entre sí para
dar la función lógica expresada como ecuación lógica. Por ejemplo, en la tabla
de verdad del ejemplo, sólo hay un 1 en la columna de salidas, por lo que en
la ecuación lógica aparece solamente un término compuesto por dos variables
(las dos variables de entrada de la tabla de verdad) que se multiplican. Enton-
ces, la ecuación lógica queda como sigue:
S=a↔b
23
CONCEPTOS BÁSICOS DE PROGRAMACIÓN CON MICROCONTROLADORES
Como en los casos anteriores, se trata de la misma función lógica, que tam-
bién satisface los requisitos de funcionamiento de este sencillo ejemplo de
automatización.
24
CONCEPTOS BÁSICOS DE PROGRAMACIÓN. LÓGICA BÁSICA
S=a↔b↔c↔d+a↔b↔c↔d
S = (a + b + c + d) ↔ (a + b + c + d)
25
CONCEPTOS BÁSICOS DE PROGRAMACIÓN CON MICROCONTROLADORES
Ejercicio resuelto 2
Expresar la función lógica dada por la tabla de verdad siguiente en las otras
tres formas de expresión de funciones lógicas (ecuación lógica, esquema eléc-
trico cableado y diagrama lógico de bloques).
SOLUCIÓN:
Para obtener la ecuación lógica asociada a esta función lógica podemos
emplear, por ejemplo, el método de los MINTERM, con lo que nos quedaría una
ecuación lógica:
S=a↔b+a↔b
S = b ↔ (a + a)
Y como según las reglas del álgebra de Boole (las puedes recordar consul-
tando la unidad didáctica 4) es a + a = 1, nos queda:
S=b
26
CONCEPTOS BÁSICOS DE PROGRAMACIÓN. LÓGICA BÁSICA
verdad con más columnas y más términos igual a 1 en la columna de las sali-
das), la simplificación hubiese sido mucho más compleja, con lo que tendría-
mos que aplicar uno de los procedimientos de simplificación existentes, como
el que se expone en el siguiente apartado.
Ejercicio resuelto 3
Expresar la función lógica dada por la tabla de verdad siguiente en las otras
tres formas de expresión de funciones lógicas (ecuación lógica, esquema eléc-
trico cableado y diagrama lógico de bloques).
S=a↔b↔c+a↔b↔c+a↔b↔c
27
CONCEPTOS BÁSICOS DE PROGRAMACIÓN CON MICROCONTROLADORES
28
CONCEPTOS BÁSICOS DE PROGRAMACIÓN. LÓGICA BÁSICA
Que las casillas de la tabla sean adyacentes quiere decir que al cambiar de
una casilla a otra que esté contigua los valores de la combinación de variables
de entrada que corresponden a ambas casillas sólo cambien en una sola varia-
ble. Conseguimos asegurar esto si utilizamos el código reflejado de Gray,
como se acaba de exponer, ya que este código tiene la propiedad de que de
un número expresado en él al siguiente correlativo solamente cambia el valor
de una variable.
29
CONCEPTOS BÁSICOS DE PROGRAMACIÓN CON MICROCONTROLADORES
Ejercicio resuelto 4
Simplificar la función lógica dada por la tabla de verdad siguiente.
SOLUCIÓN:
Le correspondería la siguiente tabla de Karnaugh:
30
CONCEPTOS BÁSICOS DE PROGRAMACIÓN. LÓGICA BÁSICA
2. Cada término que se suma está compuesto a su vez por una multiplica-
ción de variables de entrada y se deduce de cada grupo de celdas que
hemos señalado en la tabla de Karnaugh.
a) Si una variable no varía para ningún uno de nuestro grupo (la variable
que corresponde a todos los unos tiene el mismo valor), entonces
aparecerá en el término correspondiente. Y si además tiene el valor 1,
aparecerá sin negar, y si tiene el valor 0, aparecerá negada.
b) Si una variable sí cambia de un uno a otro dentro de nuestro grupo (la
variable en cuestión no es la misma para todos los unos del grupo),
entonces no aparecerá en el término correspondiente.
S=b
Ejercicio resuelto 5
Vamos a desarrollar otro ejemplo con una función lógica compuesta por tres
variables. Su tabla de verdad es la siguiente (se pide simplificar la función lógica):
31
CONCEPTOS BÁSICOS DE PROGRAMACIÓN CON MICROCONTROLADORES
SOLUCIÓN:
La tabla de Karnaugh que corresponde a esta función lógica (de tres varia-
bles) es como sigue:
32
CONCEPTOS BÁSICOS DE PROGRAMACIÓN. LÓGICA BÁSICA
S=b
Ejercicio resuelto 6
Veamos otro ejemplo con una función lógica de tres variables. La tabla de
verdad de la función lógica sigue a continuación (se pide simplificarla):
SOLUCIÓN:
Y su tabla de Karnaugh asociada es:
En la que hemos realizado dos grupos: uno horizontal de cuatro unos y otro
vertical con dos unos para incluir el uno de la fila inferior en un grupo. Fíjate que
hay un uno que se ha empleado en dos grupos; esto es porque, de esta forma,
el grupo que incluye al 1 de la fila superior es más grande (dos términos y no
sólo uno), con lo que la ecuación lógica será más simplificada (cuanto más
grandes sean los grupos que hagamos, más simplificado será el término que
obtengamos del mismo y, por tanto, más simplificada la ecuación lógica).
33
CONCEPTOS BÁSICOS DE PROGRAMACIÓN CON MICROCONTROLADORES
Î Variable “a”: para los dos unos del grupo verde la varia-
ble “a” toma el valor 1, por lo tanto, no cambia dentro
del grupo verde: LA VARIABLE “a” SÍ APARECE EN EL
TÉRMINO DEL GRUPO VERDE. Y como el valor que
toma la variable “a” es 1, APARECE SIN NEGAR.
Î Variable “b”: para los dos unos del grupo verde la varia-
ble “a” toma el valor 1, por lo tanto, no cambia dentro
del grupo verde: LA VARIABLE “b” SÍ APARECE EN EL
TÉRMINO DEL GRUPO VERDE. Y como el valor que
toma la variable “b” es 1, APARECE SIN NEGAR.
Î Variable “c”: toma el valor 0 para el uno de la celda
superior del grupo verde y toma el valor 1 para el uno de
la celda inferior del grupo verde, por lo tanto sí ha varia-
do dentro del grupo: LA VARIABLE “c” NO APARECE EN
EL TÉRMINO DEL GRUPO VERDE.
Î Entonces, el término correspondiente al grupo verde es:
a ↔ b.
S=c+a↔b
34
CONCEPTOS BÁSICOS DE PROGRAMACIÓN. LÓGICA BÁSICA
S=a↔b↔c+a↔b↔c+a↔b↔c+a↔b↔c+a↔b↔c
Ejercicio resuelto 7
Veamos ahora un ejemplo con una función lógica de cuatro variables. La
tabla de verdad es la mostrada en el margen (realizar la simplificación):
SOLUCIÓN:
La tabla de Karnaugh que corresponde a esta función lógica es:
En donde hemos hecho dos grupos de cuatro unos, el grupo verde del cen-
tro y el grupo rojo que reúne los cuatro unos de las esquinas. Fíjate que aunque
los cuatro unos de las esquinas parece que no están juntos dentro de la tabla de
Karnaugh, sin embargo sí que son unos contiguos, dado que de un uno a otro
en vertical y horizontal sólo cambia el valor de una variable (lo puedes compro-
bar fácilmente). Por lo tanto, los podemos agrupar en un solo grupo.
La ecuación lógica que corresponde a esta función lógica tendrá dos térmi-
nos que se suman, uno procedente del grupo verde y el otro procedente del
grupo rojo. Se obtienen como sigue:
35
CONCEPTOS BÁSICOS DE PROGRAMACIÓN CON MICROCONTROLADORES
36
CONCEPTOS BÁSICOS DE PROGRAMACIÓN. LÓGICA BÁSICA
S=b↔d+b↔d
37
CONCEPTOS BÁSICOS DE PROGRAMACIÓN CON MICROCONTROLADORES
SOLUCIÓN:
Tenemos tres entradas (los tres detectores de nivel) y tres salidas (las tres
bombas y el piloto rojo de alarma).
En realidad, dado que hemos empleado tres columnas, una para cada sali-
da, tenemos tres tablas de verdad, que nos darán lugar a tres tablas de Kar-
naugh, como sigue:
38
CONCEPTOS BÁSICOS DE PROGRAMACIÓN. LÓGICA BÁSICA
Es decir, rellenaremos los huecos con “X” hasta obtener las siguientes
tablas de Karnaugh:
39
CONCEPTOS BÁSICOS DE PROGRAMACIÓN CON MICROCONTROLADORES
SOLUCIÓN:
El primer paso consiste en reflejar el ciclo de funcionamiento del sistema
como función lógica con su tabla de verdad. Cada una de las filas de la tabla
de vedad representará un estado de funcionamiento del sistema. En el paso de
un estado a otro solamente puede variar una de las variables de entrada.
ESTADO 1: representa el estado inicial del sistema, con los dos cilindros
replegados. En este estado el cilindro C1 debe tener orden de salida (C1 = 1),
y el cilindro C2 debe seguir replegado (C2 = 0).
40
CONCEPTOS BÁSICOS DE PROGRAMACIÓN. LÓGICA BÁSICA
Una vez expresadas las funciones lógicas del ciclo de funcionamiento del
sistema como tablas de verdad (tenemos dos tablas de verdad en realidad,
dado que tenemos dos variables de salida: C1 y C2), el siguiente paso consis-
te en simplificarlas mediante las tablas de Karnaugh.
41
CONCEPTOS BÁSICOS DE PROGRAMACIÓN CON MICROCONTROLADORES
Ecuación simplificada:
Para poder recordar el valor que una cierta variable tuvo en el momento
anterior es necesaria una estructura denominada célula básica de memoria
que realiza esta función. Expresada como esquema eléctrico cableado, la célu-
la básica de memoria quedaría como sigue:
Veamos cómo actúa esta estructura. Al pulsar el pulsador “a” la tensión llega
a la bobina del contactor “K” y su contacto normalmente abierto “K” se cierra,
con lo que al dejar de pulsar “a” la tensión seguirá llegando a la bobina del con-
tactor. Es decir, el valor de la salida del sistema “K” depende no solamente del
42
CONCEPTOS BÁSICOS DE PROGRAMACIÓN. LÓGICA BÁSICA
valor de la entrada “a”, sino también del valor que la propia salida del sistema
tuvo en un momento anterior, mediante su contacto normalmente abierto “K”.
Muestra de ello es que si dejamos de pulsar “a” entonces la salida no retornará
a su valor original, sino que seguirá en su estado activado, manteniendo la
“memoria” de que en un momento anterior se activó por medio del pulsador.
Al llegar a este punto habrá que añadir en la tabla de verdad dos columnas
nuevas correspondientes a una nueva variable “ficticia” o “interna”:
43
CONCEPTOS BÁSICOS DE PROGRAMACIÓN CON MICROCONTROLADORES
44
CONCEPTOS BÁSICOS DE PROGRAMACIÓN. LÓGICA BÁSICA
SOLUCIÓN:
El primer paso, como de costumbre, consiste en expresar la idea de funcio-
namiento de nuestro sistema de forma rigurosa en la evolución de estados que
reflejaremos en la tabla de verdad, respetando las reglas expresadas anterior-
mente. Veamos:
ESTADO 2: pulsamos S1, variable cuyo cambio define el paso a este esta-
do. El piloto se debe encender.
45
CONCEPTOS BÁSICOS DE PROGRAMACIÓN CON MICROCONTROLADORES
46
CONCEPTOS BÁSICOS DE PROGRAMACIÓN. LÓGICA BÁSICA
Sin embargo, ahora al cambiar del estado 4 al 5 nos cambian dos variables
de entrada simultáneamente: S2 de 1 a 0 y Xe de 1 a 0. Lo resolvemos, como
anteriormente, añadiendo un estado ficticio 4’ en el que cambiamos solamen-
te el valor de la variable interna Xe.
47
CONCEPTOS BÁSICOS DE PROGRAMACIÓN CON MICROCONTROLADORES
Ahora queda por asignar los valores a la variable de salida Xs. Seguiremos
las siguientes reglas:
48
CONCEPTOS BÁSICOS DE PROGRAMACIÓN. LÓGICA BÁSICA
Como los valores de ambas salidas coincidían, lo hacen también sus tablas
de Karnaugh y, consecuentemente, también lo harán sus ecuaciones lógicas
simplificadas.
H = Xs = S1 + S2 ↔ Xe
49
CONCEPTOS BÁSICOS DE PROGRAMACIÓN CON MICROCONTROLADORES
H = Xs = S1 ↔ S2 + S2 ↔ Xe
H = Xs = S2 ↔ (S1 + Xe)
Fíjate que aunque las tablas de Karnaugh nos dan una ecuación con un alto
grado de simplificación (ya las has comparado antes con las que se obtenían
de forma canónica MAXTERM y MINTERM), es posible que no nos den la
mayor simplificación posible.
50
CONCEPTOS BÁSICOS DE PROGRAMACIÓN. LÓGICA BÁSICA
SOLUCIÓN:
El sistema tiene dos variables de entrada: S1 y Fc1, y una variable de salida: P.
51
CONCEPTOS BÁSICOS DE PROGRAMACIÓN CON MICROCONTROLADORES
52
CONCEPTOS BÁSICOS DE PROGRAMACIÓN. LÓGICA BÁSICA
ESTADO 5’: es el estado que cierra el ciclo, el mismo que el estado inicial;
por lo tanto, la Xs es la misma. Xs = 0. Observa que este estado se creó para
53
CONCEPTOS BÁSICOS DE PROGRAMACIÓN CON MICROCONTROLADORES
cumplir precisamente esta condición, que TODAS las variables de entrada fue-
sen iguales entre el estado que cierra el ciclo y el estado inicial, con la variable
de salida también igual.
P = S1 ↔ Fc1 ↔ Xe
Xs = Fc1 + S1 ↔ Xe
54
CONCEPTOS BÁSICOS DE PROGRAMACIÓN. LÓGICA BÁSICA
SOLUCIÓN:
El sistema tiene tres variables de entrada: el pulsador S1 y los finales de
carrera Fc1 y Fc2. Y tiene una salida: el accionamiento P del cilindro.
55
CONCEPTOS BÁSICOS DE PROGRAMACIÓN CON MICROCONTROLADORES
56
CONCEPTOS BÁSICOS DE PROGRAMACIÓN. LÓGICA BÁSICA
Una vez reflejados todos los estados que completan el ciclo en la tabla de
verdad, es posible pasar a dar valores a la variable de salida Xs, según las
reglas expuestas anteriormente.
57
CONCEPTOS BÁSICOS DE PROGRAMACIÓN CON MICROCONTROLADORES
P = S1 + Fc1 ↔ Fc2 ↔ Xe
Xs = Fc2 + Fc1 ↔ Xe
58
RESUMEN
59
Gray, para que las celdas de la tabla que Si el sistema es secuencial se ha de
se encuentren al lado en horizontal y añadir una variable interna que se
vertical sean contiguas (sólo cambia una representa como variable de entrada en la
variable de una a otra), condición parte de las entradas y como variable de
indispensable para poder formar grupos. salida en la parte de las salidas de la tabla
de verdad, para solucionar la
La ecuación lógica que se obtenga de la indeterminación que presentará disponer
tabla de Karnaugh tendrá un grado de de dos estados con la misma
simplificación considerable, aunque no es combinación de variables de entrada y
necesariamente el máximo. Conviene distintas salidas.
observar si es posible simplificar un poco
más. Posteriormente nos aparecerá otro
problema al solucionar la indeterminación
Los sistemas combinacionales se anterior: nos encontraremos con que de
caracterizan porque el valor de las salidas un estado al siguiente nos cambian dos
depende únicamente del valor de las variables de entrada a la vez. Lo
entradas en ese momento. solucionaremos intercalando un estado
Al formar la tabla de Karnaugh de la salida ficticio en el que cambiaremos únicamente
en un sistema combinacional, cuando se la variable interna de entrada, dejando
han terminado de trasladar todos los igual la otra variable que cambia (la real).
ceros y unos de la tabla de verdad, Si el problema de automatización es
pueden quedar celdas vacías, que se relativamente sencillo: a partir de la
completarán con X, que representan que definición “en abstracto” del mismo,
estas posiciones se pueden interpretar traduciremos esta información a la
indistintamente como ceros o unos, como evolución del sistema según sus etapas,
más convenga, para obtener los grupos con unas reglas definidas. Después lo
de mayor tamaño y, consecuentemente, la plasmaremos en una tabla de verdad, de
mayor simplificación. la que extraeremos tablas de Karnaugh, la
Los sistemas secuenciales se caracterizan ecuación lógica simplificada y, a partir de
porque el valor de las salidas depende no ésta, la solución del problema en
sólo del valor de las entradas en ese esquema eléctrico cableado o en
momento sino también del valor de las diagrama lógico de bloques. La
salidas en estados anteriores. programación del microcontrolador es
entonces muy sencilla.
La unidad básica de memoria en los
sistemas secuenciales es el biestable RS. Para la deducción de la tabla de verdad a
En el esquema eléctrico cableado se partir de la evolución requerida del
emplea la realimentación a través de un sistema se ha de tener en cuenta: 1. Se
contacto abierto del relé o contactor en representará en primer lugar el estado
cuestión. inicial; 2. Un estado viene definido por una
determinada combinación de variables de
Los sistemas combinacionales también se entrada, identificándose con una fila de la
pueden resolver mediante la tabla de verdad, y 3. El paso de un estado
representación de sus etapas de al siguiente lo determina el cambio de una
evolución en la tabla de verdad, y su sola de las variables de entrada.
posterior simplificación mediante las
tablas de Karnaugh.
60
Ejercicios de autocomprobación
Rodea con un círculo la V si cada una de las siguientes afirmaciones es verdadera, o la F si es falsa.
3. Una FUNCIÓN LÓGICA establece la relación entre las variables del sistema automático que
definen el funcionamiento de las salidas del mismo. V F
4. Mediante las tablas de verdad se pueden expresar las funciones lógicas, y suponen una forma
muy útil de representar la evolución de los estados de pequeños automatismos. V F
6. Las formas canónicas de expresar la ecuación algebraica a partir de las tablas de verdad
(MINTERM y MAXTERM) nos proporcionan las ecuaciones más simplificadas que se pueden
obtener para esa función lógica. V F
10. El número de unos que puede contener un grupo en la tabla de Karnaugh debe ser potencia
de dos. V F
11. Es muy sencillo realizar simplificaciones de funciones lógicas de más de 5 variables median-
te las tablas de Karnaugh. V F
12. Al fijarnos en las variables de entrada correspondientes a los unos contenidos en un grupo de
la tabla de Karnaugh, si alguna variable cambia de un uno a otro del grupo, ésta no aparece-
rá en el término correspondiente de la ecuación algebraica. V F
14. Es posible expresar una función lógica en diagrama lógico de bloques a partir del esquema
eléctrico cableado de una forma sencilla. V F
61
15. Los sistemas combinacionales se caracterizan porque las variables de salida dependen de
una combinación de las variables de entrada con las propias variables de salida. V F
16. No es posible resolver los problemas sencillos de automatización secuenciales mediante las
tablas de verdad con su posterior simplificación por tablas de Karnaugh. V F
18. Al pasar los datos de la tabla de verdad de un sistema real a la tabla de Karnaugh, las posi-
ciones que me queden libres en esta última no se podrán incluir en los grupos que realice. V F
20. Crearé un estado ficticio siempre que quiera resolver el problema de que al pasar de un esta-
do al siguiente en la tabla de verdad me cambien simultáneamente más de una variable de
entrada. V F
Compara tus respuestas con las que te indicamos al final de la unidad. Si has cometido
errores, repasa la parte correspondiente del tema antes de proseguir tu estudio.
62
PROGRAMACIÓN CON GRAFCET. EJERCICIOS RESUELTOS
63
CONCEPTOS BÁSICOS DE PROGRAMACIÓN CON MICROCONTROLADORES
Entre dos etapas consecutivas del gráfico de GRAFCET, debe existir sola-
mente una condición de transición (una ecuación combinacional que puede
ser todo lo compleja que sea necesario, pero solo una).
64
PROGRAMACIÓN CON GRAFCET. EJERCICIOS RESUELTOS
SOLUCIÓN:
El GRAFCET DE NIVEL 1 quedaría
como se muestra al margen.
65
CONCEPTOS BÁSICOS DE PROGRAMACIÓN CON MICROCONTROLADORES
66
PROGRAMACIÓN CON GRAFCET. EJERCICIOS RESUELTOS
VARIABLES DE ENTRADA
GRAFCET Microcontrolador Comentario
a I1 Detector de presencia
b I2 Final de carrera de puerta abierta
c I3 Final de carrera de puerta cerrada
VARIABLES DE SALIDA
GRAFCET Microcontrolador Comentario
S- Q1 Mando del contactor para cierre de la puerta
S+ Q2 Mando del contactor para apertura de la puerta
BIESTABLES
GRAFCET Microcontrolador Comentario
E0 M1 Etapa 0 activa con M1 = 1
E1 M2 Etapa 1 activa con M2 = 1
E2 M3 Etapa 2 activa con M3 = 1
E3 M4 Etapa 3 activa con M4 = 1
E4 M5 Etapa 4 activa con M5 = 1
Se describen a continuación los pasos que hay que seguir para realizar el
diseño de cada una de las partes dentro del tercer nivel.
a) PARTE SECUENCIAL
67
CONCEPTOS BÁSICOS DE PROGRAMACIÓN CON MICROCONTROLADORES
En los biestables tienen prioridad las órdenes de Reset (puesta a cero), fren-
te a las de Set (puesta a uno), lo cual es importante para la ejecución de nues-
tro GRAFCET, dado que en muchas ocasiones nos encontraremos con que un
mismo biestable recibe las dos órdenes simultáneamente. Dado que la activa-
ción de la etapa siguiente requiere la desactivación de la etapa anterior, la prio-
ridad del Reset sobre el Set nos ayuda a conseguirlo.
CONDICIONES INICIALES
PARTE SECUENCIAL
Cada etapa viene representada por un biestable propio, cuyo bloque viene
marcado con la denominación RS.
Las entradas vienen representadas por los bloques marcados como “I”, que
corresponden a entradas digitales en bornes del microautómata.
68
PROGRAMACIÓN CON GRAFCET. EJERCICIOS RESUELTOS
Las marcas que se han empleado (los bloques marcados con la denomina-
ción “M” tras los biestables) corresponden a variables internas del microautó-
mata, utilizadas para evitar las referencias cruzadas directas entre salidas
(recursiones), situación no permitida en este lenguaje de programación (parti-
cularidad del Logo de Siemens).
69
CONCEPTOS BÁSICOS DE PROGRAMACIÓN CON MICROCONTROLADORES
PARTE COMBINACIONAL
ACCIONES DE LA ETAPA 1
70
PROGRAMACIÓN CON GRAFCET. EJERCICIOS RESUELTOS
ACCIONES DE LA ETAPA 2
ACCIONES DE LA ETAPA 3
ACCIONES DE LA ETAPA 4
Los pasos para la comprobación del funcionamiento del programa son los
siguientes, una vez hayas ejecutado el LOGOSOFT y hayas cargado el programa:
71
CONCEPTOS BÁSICOS DE PROGRAMACIÓN CON MICROCONTROLADORES
72
PROGRAMACIÓN CON GRAFCET. EJERCICIOS RESUELTOS
SOLUCIÓN:
El GRAFCET DE NIVEL 1 necesario para resolver este problema quedaría:
73
CONCEPTOS BÁSICOS DE PROGRAMACIÓN CON MICROCONTROLADORES
tización (que corresponderán en este caso a tres salidas físicas del microautó-
mata con las que alimentaremos las lámparas del semáforo).
VARIABLES DE ENTRADA
GRAFCET Microcontrolador Comentario
Sin variables de entrada: queremos activación automática al conectar la alimentación y ciclo continuo.
VARIABLES DE SALIDA
GRAFCET Microcontrolador Comentario
S1 Q1 Alimentación de la lámpara roja
S2 Q2 Alimentación de la lámpara verde
S3 Q2 Alimentación de la lámpara ámbar
BIESTABLES
GRAFCET Microcontrolador Comentario
E0 M1 Etapa 0 activa con M1 = 1
E1 M2 Etapa 1 activa con M2 = 1
E2 M3 Etapa 2 activa con M3 = 1
E3 M4 Etapa 3 activa con M4 = 1
74
PROGRAMACIÓN CON GRAFCET. EJERCICIOS RESUELTOS
75
CONCEPTOS BÁSICOS DE PROGRAMACIÓN CON MICROCONTROLADORES
76
PROGRAMACIÓN CON GRAFCET. EJERCICIOS RESUELTOS
SOLUCIÓN:
El GRAFCET DE NIVEL 1 necesario para resolver este problema quedaría:
77
CONCEPTOS BÁSICOS DE PROGRAMACIÓN CON MICROCONTROLADORES
VARIABLES DE ENTRADA
GRAFCET Microcontrolador Comentario
n1 I1 Detector de presencia
n2 I2 Final de carrera de puerta abierta
n3 I3 Final de carrera de puerta cerrada
VARIABLES DE SALIDA
GRAFCET Microcontrolador Comentario
B1 Q1 Bomba número 1
B2 Q2 Bomba número 2
H Q3 Alarma de nivel máximo
BIESTABLES
GRAFCET Microcontrolador Comentario
E0 M1 Etapa 0 activa con M1 = 1
E1 M2 Etapa 1 activa con M2 = 1
E2 M3 Etapa 2 activa con M3 = 1
E3 M4 Etapa 3 activa con M4 = 1
E4 M5 Etapa 4 activa con M5 = 1
- M6 Memoria para selección de bomba a arrancar
78
PROGRAMACIÓN CON GRAFCET. EJERCICIOS RESUELTOS
79
CONCEPTOS BÁSICOS DE PROGRAMACIÓN CON MICROCONTROLADORES
80
RESUMEN
81
En conclusión: si el problema de transiciones, y en último lugar definiremos
automatización es complejo y no es las acciones asociadas a las etapas. La
solucionable con el método de evolución programación del microcontrolador en
de etapas en la tabla de verdad y base a este gráfico de funcionamiento es
Karnaugh, entonces realizaremos los entonces muy sencilla, aunque no sea lo
gráficos de funcionamiento según el más simplificada posible, aspecto
método GRAFCET, estableceremos secundario si se dispone de
sistemáticamente los pasos en la microcontroladores.
evolución del sistema por etapas y
82
Ejercicios de autocomprobación
Rodea con un círculo la V si cada una de las siguientes afirmaciones es verdadera, o la F si es falsa.
21. El método GRAFCET para resolver problemas de automatización no es válido para los siste-
mas secuenciales. V F
23. El método GRAFCET es especialmente útil para obtener soluciones a los problemas de auto-
matización que sean lo más reducidas posibles y que, al realizarlas físicamente en lógica
cableada, nos den la mayor economía posible. V F
24. El método GRAFCET es válido y muy aplicable para obtener de forma sistemática las solucio-
nes de problemas muy complejos y para los que la solución más simplificada no es lo más
importante, dado que se van a programar en microcontrolador. V F
25. Si se cumple la receptividad de una transición (su condición lógica), y la etapa anterior a la tran-
sición estaba activa, entonces se activará la etapa posterior y se desactivará la etapa anterior. V F
26. Es necesario accionar un pulsador al comienzo de la operación del sistema para activar la
etapa inicial del GRAFCET. V F
29. La activación de una etapa en GRAFCET viene determinada por la activación de un bloque
funcional en el microcontrolador de tipo temporizador. V F
Compara tus respuestas con las que te indicamos al final de la unidad. Si has cometido
errores, repasa la parte correspondiente del tema antes de proseguir tu estudio.
83
CONCEPTOS BÁSICOS DE PROGRAMACIÓN CON MICROCONTROLADORES
Características principales
Schneider Electric dispone de un pequeño microcontrolador (también deno-
minados relés programables), denominado Zelio, que está diseñado para el
control de pequeños sistemas automatizados. Se viene comercializando desde
el año 2000. Su empleo está bastante extendido tanto en el sector industrial
como en el sector servicios (siendo este último el objeto principal de estudio
del presente curso).
Dentro del área de servicios-domótica son aplicaciones típicas las que se
relacionan a continuación:
Automatización de barreras, cortinas eléctricas, controles de
acceso, etcétera.
Automatización de sistemas de riego, bombeo, invernaderos,
etcétera.
Automatización de instalaciones de iluminación.
Automatización de compresores y sistemas de aire acondicio-
nado.
84
RELÉ PROGRAMABLE ZELIO DE SCHNEIDER ELECTRIC Y LOGO DE SIEMENS
Lenguajes de programación
Dispone de una programación sencilla, que se puede realizar mediante los
dos lenguajes siguientes:
85
CONCEPTOS BÁSICOS DE PROGRAMACIÓN CON MICROCONTROLADORES
Relés auxiliares.
Bloques funcionales.
Bobinas.
Bobinas set-reset.
Bobinas de telerruptor.
Reloj.
Contador.
Temporizador.
Bloque función analógico.
Relé auxiliar.
86
RELÉ PROGRAMABLE ZELIO DE SCHNEIDER ELECTRIC Y LOGO DE SIEMENS
El relé programable Zelio que lleve marcada una alimentación 100/240 Vca,
se deberá alimentar desde una línea de corriente alterna con una tensión de
entre 85 y 264 V. La línea debe ser capaz de suministrar una intensidad nominal
máxima a la entrada del relé de 46 mA con una tensión de 115 V y de 36 mA en
caso de que la tensión sea de 240 V.
Las entradas digitales del autómata trabajan con una intensidad de corrien-
te nominal de 11 mA y una tensión nominal de entre 100 y 240 Vca.
87
CONCEPTOS BÁSICOS DE PROGRAMACIÓN CON MICROCONTROLADORES
Ejercicios resueltos
SOLUCIÓN:
S=a
88
RELÉ PROGRAMABLE ZELIO DE SCHNEIDER ELECTRIC Y LOGO DE SIEMENS
89
CONCEPTOS BÁSICOS DE PROGRAMACIÓN CON MICROCONTROLADORES
S=a+b
90
RELÉ PROGRAMABLE ZELIO DE SCHNEIDER ELECTRIC Y LOGO DE SIEMENS
S=a↔b
91
CONCEPTOS BÁSICOS DE PROGRAMACIÓN CON MICROCONTROLADORES
S=a+b
92
RELÉ PROGRAMABLE ZELIO DE SCHNEIDER ELECTRIC Y LOGO DE SIEMENS
S=a↔b
93
CONCEPTOS BÁSICOS DE PROGRAMACIÓN CON MICROCONTROLADORES
SOLUCIÓN:
El diagrama eléctrico cableado que resolvía el problema era:
94
RELÉ PROGRAMABLE ZELIO DE SCHNEIDER ELECTRIC Y LOGO DE SIEMENS
SOLUCIÓN:
El diagrama eléctrico cableado que resuelve el problema es:
95
CONCEPTOS BÁSICOS DE PROGRAMACIÓN CON MICROCONTROLADORES
96
RELÉ PROGRAMABLE ZELIO DE SCHNEIDER ELECTRIC Y LOGO DE SIEMENS
SOLUCIÓN:
El diagrama eléctrico cableado que resuelve el problema es:
97
CONCEPTOS BÁSICOS DE PROGRAMACIÓN CON MICROCONTROLADORES
Características principales
98
RELÉ PROGRAMABLE ZELIO DE SCHNEIDER ELECTRIC Y LOGO DE SIEMENS
Lenguajes de programación
Temporizador a la conexión.
Temporizador a la desconexión.
Temporizador a la conexión-desconexión.
Temporizador a la conexión memorizable.
Relé de parada automática.
Relé de impulsos.
Relé disipador.
Relé disipador con activación por flancos.
Temporizadores semanal y anual.
Contador progresivo y regresivo.
Contador de horas de servicio.
Emisor de cadencias simétrico.
Generador de impulsos asíncrono.
Generador aleatorio.
Discriminador para frecuencias.
Discriminador analógico.
Comparador analógico.
Interruptor de alumbrado para escalera.
Pulsador de confort.
99
CONCEPTOS BÁSICOS DE PROGRAMACIÓN CON MICROCONTROLADORES
115 Vca/Vcc.
240 Vca/Vcc.
24 Vcc.
24 Vca.
12 Vcc.
Alimentación
La alimentación de los modelos de corriente continua se conectará como
sigue:
L+
M
El fusible será de 0,8 A para 12/24 V y modelos RC, y de 2,0 A para 24 V del
resto de modelos.
Se podrá colocar un varistor para proteger de picos de tensión con una ten-
sión de servicio como mínimo de un 20% superior a la tensión nominal.
Entradas
Las entradas en los modelos de corriente continua se conectarán:
100
RELÉ PROGRAMABLE ZELIO DE SCHNEIDER ELECTRIC Y LOGO DE SIEMENS
L+
M
L3
L2
L1
N
Salidas
Si el relé programable Logo dispone de la letra R en su designación de tipo,
es un modelo con salidas de relé, con lo que sus contactos están libres de
potencial con respecto a la tensión de alimentación y a las entradas. Hay que
conectar la fase (o el positivo en caso de corriente continua) a los bornes mar-
cados con un “2”, y los bornes marcados con un “1” se conectarán a la alimen-
tación de tensión de los receptores (borne A1 si se trata de relés o contacto-
res). El otro borne del receptor (borne A2 si se trata de relés o contactores), se
conectará al neutro (o a la masa si se trata de corriente continua).
L1/L+ DM8...R
Last Last
N/M
101
CONCEPTOS BÁSICOS DE PROGRAMACIÓN CON MICROCONTROLADORES
DM8 24
Carga Carga
102
RESUMEN
103
Ejercicios de autocomprobación
Rodea con un círculo la V si cada una de las siguientes afirmaciones es verdadera, o la F si es falsa.
31. Los microcontroladores o relés programables están diseñados para el control de pequeños
sistemas automatizados. V F
32. Los relés programables sustituyen convenientemente a los sistemas de lógica eléctrica cable-
ada, proporcionando ahorros en el diseño e instalación de los sistemas, así como mayor fle-
xibilidad a la hora de realizar cambios en el mismo. V F
33. Con las teclas de función del frontal del relé Zelio se puede actualizar la fecha y la hora del
reloj interno, borrar el esquema contenido en el relé programable, visualizar los parámetros de
los bloques de función, pero no se puede introducir el esquema de mando, operación que se
realizará mediante un PC. V F
34. El relé programable Zelio admite como lenguajes de programación el lenguaje LADDER, el len-
guaje FBD y la programación mediante tablas de verdad. V F
35. Zelio lleva incorporados bloques de función tales como reloj, contador, temporizador, bloques
de función analógicos y relés auxiliares. V F
36. Los relés programables Zelio pueden alimentarse únicamente a una tensión de corriente con-
tinua de 24 V. V F
37. Existen modelos de Zelio que admiten entradas analógicas, útiles para incorporar información
de parámetros que varíen en un rango continuo. V F
38. Mediante el software Zelio Logic se pueden realizar simulaciones del funcionamiento de los
programas que se realicen antes de su introducción en el relé programable. V F
39. Si queremos disponer de un biestable tipo RS durante la programación del Zelio, deberemos
programar el mismo en lenguaje LADDER mediante un contacto abierto de realimentación en
la línea de mando de su propia bobina. V F
40. El relé programable Zelio puede alimentar mediante sus salidas a contactores que funcionen
tanto en corriente continua como en corriente alterna. V F
Compara tus respuestas con las que te indicamos al final de la unidad. Si has cometido
errores, repasa la parte correspondiente del tema antes de proseguir tu estudio.
104
Soluciones a los ejercicios de autocomprobación
9. Falso. (No es posible, dado que seis no es poten- 23. Faso. (El objetivo del método GRAFCET no es
cia de dos; es decir, no es igual al número dos obtener soluciones lo más reducidas posibles,
elevado a ningún número entero y positivo.) puesto que no incluye procedimientos de simpli-
ficación. Su objetivo consiste en estructurar la
10. Verdadero. resolución del problema para llegar a una solu-
11. Falso. (Todo lo contrario. De hecho, para funcio- ción válida independientemente de que sea más
nes lógicas de más de 5 variables el método de o menos simplificada.)
las tablas de Karnaugh se hace prácticamente
24. Verdadero.
inabordable manualmente, habría que acudir a
procedimientos de simplificación por ordenador.) 25. Verdadero.
105
26. Falso. (No es necesario, se puede conseguir 31. Verdadero.
mediante marcas que se activan en el primer
32. Verdadero.
ciclo; por ejemplo, con Logo, o mediante estruc-
turas de control con contactos cerrados prove- 33. Falso. (Con las teclas de función del frontal del
nientes de los bloques RS del resto de las eta- relé Zelio sí se puede introducir el esquema de
pas.) mando, no es imprescindible hacerlo con el PC,
aunque también se puede.)
27. Verdadero.
28. Falso. (La TABLA DE ASIGNACIÓN DE VARIA- 34. Falso. (No admite la programación mediante
BLES no constituye el GRAFCET de segundo tablas de verdad.)
nivel. Lo constituye la “descripción técnica y ope- 35. Verdadero.
rativa”, también llamado “GRAFCET con senso-
res y accionamientos”. La tabla de asignación de 36. Falso. (También se pueden alimentar a una ten-
variables se emplea al trasladar la estructura del sión alterna de 230 V.)
GRAFCET al lenguaje concreto del autómata que 37. Verdadero.
se empleará.)
38. Verdadero.
29. Falso. (La activación de una etapa en GRAFCET
viene determinada por la activación de un bloque 39. Falso. (El biestable tipo RS es un bloque funcio-
funcional en el microcontrolador de tipo BIESTA- nal que ya viene definido en el lenguaje LADDER
BLE RS.) del Zelio, no es necesario programarlo.)
106
ÍNDICE
CONCEPTOS BÁSICOS DE PROGRAMACIÓN.
LÓGICA BÁSICA
Variable binaria y álgebra de Boole de aplicación al instalador.
Sistema de numeración . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Sistemas de numeración . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Funciones lógicas. Simplificación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Funciones lógicas básicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Funciones lógicas generales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Obtención de la función lógica para una aplicación concreta. Resolución de
problemas de automatización. Ejercicios resueltos . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Simplificación de las funciones lógicas. Ejercicios resueltos . . . . . . . . . . . . . . . . . . . 28
107