Domóticas - Conceptos Básicos de Programación Con Microcontroladores

107
Conceptos básicos de programación con microcontroladores Domótica Domótica

Transcript of Domóticas - Conceptos Básicos de Programación Con Microcontroladores

Conceptos bsicos de programacin conmicrocontroladoresDomtica DomticaLos autmatas programables, o PLC, se disearon para el control deinstalaciones industriales, con unos grandes requerimientos en cuanto arapidez y capacidad de realizar automatizaciones muy complejas. En losltimos tiempos, gracias al rpido progreso de la electrnica y a la ampliacin de lasaplicaciones de la electricidad en casi todos los campos, se han venido desarrollandoversiones ms sencillas de estos PLC para aplicaciones especficas menoscomplejas. Son los microcontroladores o rels programables.En muchas instalaciones domticas nos vamos a encontrar con la necesidad derealizar automatismos sencillos para controlar subsistemas integrados en lainstalacin que, por sus caractersticas, se automatizan de una forma muyconveniente mediante pequeos cuadros con elementos de lgica cableada, o inclusocon rels programables. Entre estos sistemas se encuentran, por ejemplo: sistemascomplejos de alumbrado tanto en interiores como en exteriores, instalaciones deventilacin, sistemas de bombeo para extraccin de pozos, controles de acceso,puertas automatizadas, garajes, instalaciones complejas de generacin y gestin decalor y fro, aparcamientos, control de pequea maquinaria, instalaciones agrcolas,adems de las instalaciones domticas propiamente dichas, para las que tambin sonmuy vlidos, etctera.La automatizacin de estos sistemas se realiza de forma natural y muy apropiada conla tecnologa de automatizacin industrial aplicada a este entorno domtico. Por ello,en la presente unidad se va a estudiar la tecnologa de automatizacin industrial,aprendiendo a desarrollar, desde el punto de vista de la lgica cableada y de laprogramacin, pequeos sistemas automatizados que den respuesta a estanecesidad.Los rels programables presentan una facilidad de montaje, de uso y de mantenimientomuy considerables, siendo muy compactos y ocupando muy poco espacio; presentantambin una programacin relativamente sencilla. Estas caractersticas los hacen muyadecuados para los usos externos a la actividad industrial.IntroduccinEsquema de contenidoCONCEPTOS BSICOS DE PROGRAMACIN.LGICA BSICAVariable binaria y lgebra de Boole de aplicacin alinstalador. Sistemas de numeracinSistemas combinacionales y secuenciales bsicos.Ejercicios resueltosPROGRAMACIN CON GRAFCET. EJERCICIOS RESUELTOSREL PROGRAMABLE ZELIO DE SCHNEIDER ELECTRICY LOGO DE SIEMENSRel programable Zelio de Schneider ElectricRel programable Logo de SiemensVariable binaria y lgebra de Boole de aplicacin al instalador. Sistemas de numeracinExisten un gran nmero de dispositivos de aplicacin en instalaciones auto-matizadas que presentan slo dos estados estables en su funcionamiento. Porejemplo, un receptor genrico, tal como una lmpara, un motor, un actuador,etc., pueden estar encendidos (estado de funcionamiento que asociaremos alestadolgico1),oapagados(estadodefuncionamientoqueasociaremos al estado lgico 0).En general, realizaremos las siguientes asociaciones lgicas con respectoa los estados de funcionamiento de los siguientes elementos de instalacionesautomatizadas:Este carcter binario (slo 2 estados posibles) de la mayora de los dispo-sitivos de instalaciones automatizadas hace posible que las asociaciones entrelos mismos para formar una instalacin concreta se puedan traducir en opera-ciones matemticas sencillas entre variables que irn asociadas una a una concada elemento de la instalacin. En otras palabras, la lgica binaria define laforma de relacionarse entre s de los elementos de automatizacin que slo tie-nen dos estados de funcionamiento.Por lo tanto, la lgica binaria es una herramienta muy poderosa para definiry entender los sistemas de automatizacin de todo tipo, ya sea bajo la formaCONCEPTOS BSICOS DE PROGRAMACIN CON MICROCONTROLADORES6ElementoEstado lgico Estado de funcionamientoEstado lgico Estado de funcionamientoInterruptor 1 accionado10 sin accionar1Lmpara 1 encendida 0 apagadaMotor 1 con tensin de alimentacin 0 sin tensin de alimentacinElectrovlvula 1 con tensin de mando 0 sin tensin de mandoVlvula neumtica 1 con presin de pilotaje 0 sin presin de pilotajePulsador 1 accionado10 sin accionar1Tabla 1. Asociaciones lgicascon respecto a los estados defuncionamiento.1Nota: es un error muy comn el confundir, como ms 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,adems, si el contacto elctrico del elemento que se est usando es del tipo normalmente abierto o del tipo normalmente cerrado.CONCEPTOS BSICOS DE PROGRAMACIN.LGICA BSICAde lgica cableada, o de los diferentes lenguajes de programacin de micro-controladores e incluso de autmatas programables, de gran aplicacin en lasinstalaciones domticas y automatizadas.Las reglas matemticas que definen las operaciones que se pueden hacersobrelasvariablesbinariassedenominan,enconjunto,ellgebradeBoole,querealizaoperacionessolamenteconlosdosvaloresposibles:0y1,ylosresultados slo pueden ser, tambin, o bien 0 o bien 1.Ya has estudiado las reglas del lgebra de Boole y sus propiedades en launidad dedicada a la electrnica, por lo que no las repetiremos en esta unidad.S vamos a desarrollar, sin embargo, sus aplicaciones en el campo de las ins-talacionesautomatizadasenbaseacircuitoslgicoscableadosyprograma-cin de microcontroladores.Sistemas de numeracinMatemticamente,podemosrepresentarcantidades(nmeros)deformasmuy diferentes, que llamaremos sistemas de numeracin. Emplearemos unsistema u otro en funcin de la utilidad que nos proporcione para una determi-nada aplicacin.Son ejemplos de sistemas de numeracin:CONCEPTOS BSICOS DE PROGRAMACIN. LGICA BSICA7Cantidad (nmero)Sistema decimalCdigo binario naturalCdigo reflejado de GrayCero 0 0000 0000Uno 1 0001 0001Dos 2 0010 0011Tres 3 0011 0010Cuatro 4 0100 0110Cinco 5 0101 0111Seis 6 0110 0101Siete 7 0111 0100Ocho 8 1000 1100Nueve 9 1001 1101Diez 10 1010 1111Once 11 1011 1110Doce 12 1100 1010Trece 13 1101 1011Catorce 14 1110 1001Quince 15 1111 1000Tabla 2. Sistemas de numeracin.Nos fijaremos en que aunque hemos llegado a representar el nmero quin-ce, en realidad hemos representado diecisis nmeros, puesto que el primerode ellos es el cero.En la tabla anterior nos resulta muy familiar la representacin de las canti-dades en sistema decimal y sistema binario (estudiados en la unidad 4), mien-tras que, seguramente, no ser tan familiar la representacin en el cdigo refle-jadodeGray.LoscdigosbinarionaturalyreflejadodeGraysondegranaplicacin en programacin de sistemas de naturaleza binaria, dado que todossus dgitos pueden tomar tan slo los valores 0 1, como los estados de fun-cionamiento de la mayora de elementos de automatizacin.En cuanto al cdigo binario natural, ya estudiaste en la unidad dedicada a la elec-trnica que para construir el nmero siguiente en dicho cdigo a partir del anterior,hay que ir haciendo aparecer los unos en la posicin ms a la derecha que estn ocu-padas por cero y si dichas posiciones ya estn ocupadas por unos, entonces se pon-dr un cero a la izquierda de la fila de unos, sustituyendo los anteriores por ceros.Sin embargo, no hay una regla tan sencilla para construir el cdigo refleja-do de Gray, como se ver prximamente.Sistema decimal y cdigo binario naturalEl sistema decimal de numeracin es el que nos resulta ms familiar, dadoque es el que empleamos en nuestra vida cotidiana. Emplea diez smbolos odgitos: 0, 1, 2, 3, 4, 5, 6, 7, 8 y 9. A partir de estos diez dgitos se construyencantidades ms grandes unindolos en grupos de dos, tres, cuatro, etc., con-siguiendo representar cantidades tan altas como sea necesario.Por ejemplo, el nmero 2.437 se compone de cuatro dgitos unidos y cada unode los mismos tiene un valor que depende de s mismo (de qu dgito se trata deentre los diez posibles), y de su posicin dentro del nmero (su valor se ver mul-tiplicado por 10 con cada posicin que nos movamos a la izquierda).Enotraspalabras,stenmerosepuedeexpresarcomolasumadelossiguientes:2.437 = 2.000 + 400 + 30 + 7 = 2 x 1000 + 4 x 100 + 3 x 10 + 7 x 1Recordaremosquecualquiernmero,exceptoelpropiocero,elevadoacero da como resultado el 1.Enelcdigobinario,comorecordarsenlaunidad4,seempleannica-mente dos dgitos: 0 y 1, con los que se construyen cantidades ms grandesCONCEPTOS BSICOS DE PROGRAMACIN CON MICROCONTROLADORES8unindolos en grupos de dos, tres, cuatro, etc., con lo que tambin se consi-gue representar cantidades tan altas como sea necesario. Son nmeros en sis-tema binario, por ejemplo, los siguientes: 1110001, 1001, 11110, 10, etc.De la misma forma que en el sistema decimal, en el cdigo binario los dgi-tos toman su valor dependiendo de cul de ellos se trate y de la posicin en laque vaya colocado dentro del nmero. En este caso, cada vez que nos move-mos una posicin a la izquierda representa una potencia creciente de dos (aligual que en el sistema decimal representaba una potencia creciente de 10).Conversin de un nmero en cdigo binario a su equivalente en sistema decimalPara pasar un nmero expresado en cdigo binario a su equivalente en elsistema digital, multiplicaremos cada uno de los dgitos del mismo por el pesocorrespondientealaposicinqueocupaysumaremostodoslosresultados,como se realiza a continuacin con el nmero binario 1011101:Porlotanto,elnmeroqueencdigobinarionaturalseexpresacomo1011101, equivale al 93, expresado en sistema decimal (recuerda, de nuevo,que cualquier nmero, excepto el propio cero, elevado a cero da como resul-tado el 1).Conversin de un nmero en sistema decimal a su equivalente en cdigo binarioParapasarunnmeroexpresadoensistemadecimalasuequivalenteencdigo binario hay que dividir el nmero por 2 sucesivamente hasta que el lti-mo cociente sea 1. Para formar el nmero en cdigo binario equivalente al deci-mal inicial, se colocar en la posicin ms a la izquierda el ltimo cociente y asu derecha se irn colocando los restos de las divisiones sucesivas subiendopor la operacin de divisin desde el ltimo cociente hasta el primero.CONCEPTOS BSICOS DE PROGRAMACIN. LGICA BSICA9Dgitos binarios del nmero 1 0 1 1 1 0 1Posicin del dgito 6 5 4 3 2 1 0Peso de la posicin (la base de la potencia es 2 porque es sistema binario)26252423222120Peso en sistema decimal 64 32 16 8 4 2 1Dgito binario x peso decimal 1 x 64 0 x 32 1 x 16 1 x 8 1 x 4 0 x 2 1 x 1Valor decimal de cada posicin binaria 64 0 16 8 4 0 1RESULTADO = Suma de todos los valores decimales93Tabla 3. Conversin de unnmero binario en decimal.Veamos el 93 del ejemplo anterior:Cdigo reflejado de GrayEn lgica binaria (recuerda que es una herramienta muy potente para defi-niryentenderlossistemasbinariosdeautomatizacin)tieneungraninterspara ciertas operaciones el cdigo binario de Gray. Vamos a ver a continuacincmo se forma el mismo.Para formar el cdigo reflejado de n dgitos (bits), partimos del cdigo refle-jado correspondiente a un dgito menos (n-1), y a continuacin trazamos unalnea debajo de la tabla que servir de eje de reflexin (como en un espejo). Pordebajo de esta lnea escribiremos el mismo cdigo que existe por encima peroen orden inverso, de forma que cada nmero quede a la misma distancia de lalnea por debajo de la misma que tena el nmero original por arriba. Despusdeestocompletaremoslatablarellenandoconunceroalaizquierdaparatodoslosnmerosporencimadelalneayconununoalaizquierdaparatodos los nmeros por debajo de la misma. Veamos algunos ejemplos empe-zando desde el ms sencillo:Formacindelcdigoreflejadodedosdgitosapartirdelcdigoreflejado de uno:El cdigo reflejado de un dgito es el ms sencillo posible, puesto quesolamente tiene dos nmeros, de un dgito cada uno:01Apartirdelmismo,trazamosunalneapordebajoyreflejamoslosnmeros existentes como en un espejo:Y finalmente completamos con ceros a la izquierda por encima de lalnea y con unos a la izquierda por debajo de la misma, con lo quequeda completo el cdigo reflejado de dos dgitos:CONCEPTOS BSICOS DE PROGRAMACIN CON MICROCONTROLADORES10Funciones lgicas. SimplificacinFormaremos ahora el cdigo reflejado de Gray de tres dgitos a partirdel cdigo de 2 que acabamos de hacer. Primero reflejar hacia abajo:Y por ltimo completar con ceros a la izquierda por encima de la lneay con unos a la izquierda por debajo de la lnea:Y as sucesivamente se van formando los cdigos reflejados de ms dgitos.El cdigo reflejado de Gray tiene la propiedad de que al pasar de un nme-ro al siguiente (de una fila a la siguiente dentro del cdigo reflejado), solamen-te cambia un dgito. En la tabla 2, del principio del apartado, puedes observarcmo esto se cumple para el cdigo reflejado de cuatro dgitos, pero no parael correspondiente cdigo binario natural. Ms adelante veremos su utilidad enla simplificacin de funciones lgicas mediante las tablas de Karnaugh.En este apartado vamos a estudiar las relaciones entre los elementos quecomponen un sistema automtico con elementos binarios (de funcionamientotodo-nada), desde los elementos lgicos ms bsicos (funciones lgicas bsi-cas), hasta la combinacin de los mismos para montar sistemas automticosmscomplejos,aplicadasalossistemasautomatizadosquesebasanenesquemas cableados y programacin de microautmatas.Imaginemos, por ejemplo, el diseo del automatismo que gobierna la aper-tura y cierre de una puerta automtica comandada por dos clulas detectorasdemovimientoyconunasetadeemergencia(elcasotpicodelaspuertasautomticasdeloscentroscomerciales).SernecesariodefinirlarelacinCONCEPTOS BSICOS DE PROGRAMACIN. LGICA BSICA11entre las entradas del sistema automtico (las clulas detectoras de movimien-to y la seta de emergencia) y la salida del sistema (el contactor que comandael motor de accionamiento de la puerta), lo cual nos definir inequvocamenteel funcionamiento del automatismo en cuestin.Por lo tanto, llamamos funcin lgica a la relacin entre las diversas varia-bles del sistema automtico que nos definir el funcionamiento de las salidasdelmismo.Ennuestroejemplo,lafuncinlgicanosdircmohemosdeconectarloscontactoselctricosquenosdanlosdetectoresdemovimiento,entresyconelcontactodelasetadeemergencia,paraquelatensinquellega desde la alimentacin del sistema automtico llegue a la bobina del con-tactor que comanda el motor justo cuando queremos (cuando uno de los dosdetectores o los dos simultneamente detecten movimiento y la seta de emer-gencia no est pulsada).Con esta relacin (funcin lgica que se puede expresar indistintamenteconcualquieradeloscuatromtodosmencionados),podremosrealizarelautomatismo que nos solucione la necesidad que se pueda presentar.Lossistemasautomticosconelementosbinariossepuedenrealizarcontecnologas diferentes, entre las que se encuentran (no siendo las nicas):El mtodo tradicional de la lgica cableada (fuentes de tensin,contactores, rels y sus contactos principales y auxiliares).El mtodo matemtico de las tablas de verdad.El diagrama lgico de bloques.Las ecuaciones lgicas.Losmtodosmencionadossonlosmsinteresantesalahoraderealizarlosautomatismossencillosquevamosanecesitarenmuchasaplicacionesdomticas.Cualquier relacin, por compleja que sea, entre los elementos de las insta-lacionesautomatizadas(lgicadeautomatismos)paradefinirelcompor-tamiento de la instalacin en conjunto se puede expresar como la unin de lasrelacionesmsbsicasentredoselementos(funcioneslgicasbsicas),ampliadaalnmerototaldeelementosqueseannecesarios.Deestaformaconseguimos definir un sistema automatizado con un funcionamiento tan com-plejo como queramos.Es muy interesante conocer los cuatro mtodos de expresin de las funcio-nes lgicas, dado que para los pequeos automatismos an se emplean habi-tualmente, por su sencillez y economa, pequeos circuitos de lgica cableadabasadosenrelsycontactores,alavezquemuchosmicrocontroladoressepueden programar con un lenguaje prcticamente idntico a los esquemas delgica cableada, llamado lenguaje de contactos.Asimismo, el diagrama lgico de bloques y las ecuaciones lgicas constitu-yen otros dos lenguajes de programacin de microcontroladores, tambin lla-madoslenguajedeprogramacinporbloqueslgicosylenguajedecoman-dos o lista de instrucciones.CONCEPTOS BSICOS DE PROGRAMACIN CON MICROCONTROLADORES12Por ltimo, el mtodo de expresin de las funciones lgicas mediante tablasde verdad ser til a la hora de disear sistemticamente pequeos automatis-mos que respondan a pequeas necesidades, en funcin de los estados quedeben tomar las salidas del sistema automtico a partir de los estados de lasentradas del mismo.Partiendodelastablasdeverdadseremoscapaces,comoveremosmsadelante, de aplicar procedimientos de simplificacin de las funciones lgicasque nos puedan salir, con objeto de obtener los circuitos de lgica cableada olos programas de automatizacin de microcontrolador del tamao ms peque-o posible que nos permitan solucionar la necesidad de automatizacin de laforma ms sencilla y por tanto ms econmica posible.Funciones lgicas bsicasA continuacin vamos a estudiar las funciones lgicas bsicas, y cmo secombinan para formar funciones lgicas ms complejas, expresadas simult-neamente con los cuatro mtodos que hemos mencionado.FUNCIN NOT, NEGACIN o INVERSINLafuncinNOTeslamssencilla.Devuelveensusalidalavariablequeencuentra en su entrada, pero negada.Expresada con su tabla de verdad queda:Como puedes observar, la tabla de verdad se compone de dos partes dife-renciadas: a la izquierda se colocan las columnas de las entradas, en este casola de a, que representa la variable de entrada a la funcin, que puede tomarlos valores expresados en su columna (0 y 1), y la columna de la salida, quesiempre designaremos como S y que representa la variable de salida de lafuncin. En las columnas de las entradas colocaremos siempre todos los valo-res posibles que puedan tomar las variables de entrada de la funcin lgica.Como vemos, la salida de la funcin NOT o NEGACIN es un 1 cuando laentrada es un 0 y un 0 cuando la entrada es un 1.Expresada mediante la lgica cableada queda:CONCEPTOS BSICOS DE PROGRAMACIN. LGICA BSICA13a representa la variable de entrada a la funcin lgica, representada en estecaso como un pulsador. Tomar el valor 1 si el pulsador est accionado y 0 sino lo est. La salida est representada en este esquema por el piloto de sea-lizacin S. Para realizar esta funcin en lgica cableada es necesario interca-lar un rel intermedio que denominamos en este caso K.Elfuncionamientoeselsiguiente:pulsamosa(establecemosun1enlavariable a de entrada a la funcin lgica), y la tensin V, existente en la lneahorizontalsuperior,apareceenelbornedelabobinadelrelintermedioK.Como el rel intermedio est conectado en su otro borne (el inferior) a 0 voltios,la bobina del rel se encuentra ahora sometida a su diferencia de tensin nomi-nalV(diremossolamentetensinenadelante),conloquesuscontactoscambiandeestadoyelcontactonormalmentecerradorepresentadoporKnegada (la negacin se expresa con una lnea horizontal encima de la letra querepresenta a la variable), ahora se abre.En resumen: si no pulsamos a entonces a = 0 y como el contacto K nega-do est cerrado, S = 1, dado que s le llega tensin. Y al contrario, cuando pul-samos a, a = 1 y S = 0, dado que K recibe tensin y K negado se abre, yano recibe tensin, por lo que S = 0.La funcin NOT se puede expresar en lgica cableada de forma ms sencilla siqueremos negar solamente la entrada de un pulsador, escogiendo en el pulsadorun contacto que sea normalmente cerrado con la salida conectada directamente al. La ventaja de expresarla mediante un rel intermedio y un contacto normalmen-te cerrado de este rel reside en que de esta forma podremos negar cualquier fun-cin lgica que se encuentre en la lnea de mando del rel intermedio.A partir del esquema elctrico cableado es muy sencillo deducir las ecua-ciones lgicas que expresan la funcin lgica: tendremos en cuenta que tantolasbobinasdelosrels/contactorescomolospilotosdesealizacin(ascomo cualquier consumo elctrico que se coloque directamente sobre la lneade 0 V del esquema), se tratarn como salidas en las ecuaciones lgicas e irnrepresentadas a la izquierda del igual de la ecuacin.Porotraparte,lascondicioneslgicas(asociacionesserie-paraleloymix-tas) que vayan cableadas por encima de los consumos se representarn a laderecha del igual, con las condiciones:Las ramas en paralelo equivalen a la funcin suma en la ecua-cin lgica.Los elementos (o conjuntos de elementos) en serie irn repre-sentados como multiplicaciones en la ecuacin lgica.Por lo tanto, en el esquema anterior, tendremos dos salidas: K y S. La ecua-cin lgica para K es:K = aDado que encima del consumo de la bobina de K slo est el contacto del pul-sador que representa a la variable de entrada a. Para S, la ecuacin lgica es:S = KCONCEPTOS BSICOS DE PROGRAMACIN CON MICROCONTROLADORES14En donde la barra horizontal encima de K indica que la variable est nega-da (cuando K valga cero, K valdr 1, y viceversa).Y como K = a segn la ecuacin anterior, podemos sustituir en esta ltima,y donde dice K poner a, con lo que queda la ecuacin lgica final:S = aYaslonosquedarepresentarlafuncinlgicanegacinsegnelcuartomtodo: el diagrama lgico de bloques. Veamos; para la negacin se utilizael smbolo siguiente:El crculo que va a la derecha del bloque de la funcin es el que denota lanegacin.En resumen, la funcin lgica bsica NEGACIN nos quedara expresadasegn los cuatro mtodos de esta forma:FUNCIN OR O SUMA LGICALa funcin OR tiene como entradas, al menos, a dos variables binarias. Susalida es 0 si todas las variables binarias de entrada son 0, siendo 1 siemprequealmenosunadeellassea1(sifuesen1dosomsdelasvariablesdeentrada tambin sera 1 la salida). Veamos cmo se expresa esta funcin lgi-ca bsica segn los cuatro mtodos.Tabla de verdad de la funcin OR:CONCEPTOS BSICOS DE PROGRAMACIN. LGICA BSICA15Tabla de verdad Diagrama elctrico cableado Ecuacin lgicaDiagrama lgico de bloquesS = aEn donde se ve que ahora las entradas son dos, a y b, y la salida es S. Sescerosolamentecuandoaybsoncerolasdossimultneamente,yesunocuando cualquiera de las dos o ambas simultneamente son uno, como se defini.En el diagrama elctrico cableado, recordemos que la suma correspondea colocar dos ramas en paralelo, con lo que tendremos que conectar los contac-tos que representan las dos entradas elctricamente en paralelo. Veamos:Las variables de entrada, a y b, se han representado por los contactoselctricosdedospulsadores.Lasalida,dadoqueestafuncinnoincluyelanegacin, se puede representar directamente por el piloto de sealizacin S,sin necesidad de un rel o contactor auxiliar K, como en la funcin lgica bsi-ca anterior.Como puedes observar, la salida (el piloto S) es 1 (recibe tensin y por lotanto se enciende) cuando uno cualquiera de los contactos se cierra (el valorde su variable de entrada es 1) o cuando lo hacen los dos a la vez.Segn la ecuacin lgica, recordemos que la funcin lgica OR equivalea la suma binaria, por lo tanto la ecuacin lgica quedara:S = a + bY por ltimo, segn el esquema lgico de bloques, el bloque lgico quecorresponde a la funcin lgica OR es el siguiente:Resumiendo,lafuncinlgicabsicaORserepresentasegnloscuatromtodos como se muestra en la tabla siguiente:CONCEPTOS BSICOS DE PROGRAMACIN CON MICROCONTROLADORES16Tabla de verdad Diagrama elctrico cableado Ecuacin lgicaDiagrama lgico de bloquesS = a + bFUNCIN AND O PRODUCTO LGICOLa funcin AND tiene como entradas, al menos, a dos variables binarias. Susalida es cero cuando una de las entradas, al menos, sea cero. Su salida ser1solamentecuandotodaslasvariablesdeentradaseantambin1,simult-neamente.Tabla de verdad de la funcin AND:Vers que la variable de salida S es 1 solamente cuando las dos variablesde entrada a y b son 1 simultneamente.En el diagrama elctrico cableado, colocaremos los dos contactos querepresentanalasdosvariablesdeentradaelctricamenteenserie,deformaquelalgicacoincida:solamentepasarlatensinalasalida(elpilotodesealizacin)cuandoamboscontactosestncerradossimultneamente,esdecir, cuando ambas entradas sean 1 simultneamente (ambas accionadas).Quedara como sigue:En cuanto a la ecuacin lgica, la funcin AND equivale a la multiplicacin,de forma que si alguna de las variables que se multiplican son cero, el resultado(la variable de salida), tambin ser cero. Solamente cuando todas las variablesque se multiplican son uno la variable de salida tambin lo ser. Quedara:S = a x bY segn el esquema lgico de bloques, el bloque lgico que correspon-de a la funcin AND es el siguiente:CONCEPTOS BSICOS DE PROGRAMACIN. LGICA BSICA17Resumiendo, para la funcin AND:FUNCIN NOR O SUMA LGICA NEGADALa funcin NOR o suma negada se consigue aplicando primeramente lafuncin OR o suma y despus la funcin NOT o negacin. Consecuentemen-te, desarrollaremos su tabla de verdad a partir de las tablas de verdad de laOR y de la NOT como sigue:Como la funcin lgica que estamos representando, la NOR, se componede otras dos, la OR y la NOT, por este orden, primeramente calculamos en lacolumna OR el resultado de aplicar esta funcin a las dos entradas a y b yluegoaestacolumnaleaplicamoslafuncinNOT,dandocomoresultadolasalidafinaldelafuncinenlacolumnaS.Puedesobservarfcilmentequeconsiste justamente en la funcin opuesta de la OR.Para obtener el diagrama elctrico cableado correspondiente a la funcinNOR recordaremos que el esquema elctrico correspondiente a la OR se con-sigue poniendo las entradas en paralelo y el esquema elctrico correspondien-te a la NOT se consigue con un contacto normalmente cerrado de un rel inter-medio; por lo tanto, combinando los dos para obtener la NOR tendremos:CONCEPTOS BSICOS DE PROGRAMACIN CON MICROCONTROLADORES18Tabla de verdad Diagrama elctrico cableado Ecuacin lgicaDiagrama lgico de bloquesS = a x bSi te fijas en el funcionamiento del circuito comparado con la tabla de ver-dad,observarsquesoncoincidentes.Naturalmente,cuandoaobsonuno (simultneamente o por separado), la bobina del contactor K se activa, yel contacto normalmente cerrado de la columna siguiente se abre, con lo queel piloto S se apaga (la salida de la tabla de verdad es cero en esos tres casos).Solamente es uno cuando a y b son ambos cero, simultneamente, pues sloen este caso la bobina de K no recibe tensin (porque a y b estn abiertos), ypor tanto el contacto normalmente cerrado K permanece cerrado, llegando latensin al piloto de salida (valor de la salida 1).La ecuacin lgica de la funcin NOR es la siguiente:S = a + bEn donde puedes observar que la suma corresponde a la funcin OR y labarra horizontal superior indica la negacin posterior a la suma.En cuanto al diagrama lgico de bloques, si partimos del bloque corres-pondientealafuncinORyleaadimosalasalidaelcrculoqueindicalanegacin posterior, tendremos el bloque asociado a la funcin NOR.Enresumen,lascuatroformasdeexpresindelafuncinlgicabsicaNOR son:FUNCIN NAND O PRODUCTO LGICO NEGADODeformasimilarqueconlafuncinNOR,lafuncinNANDseconstruyeaplicando primero la funcin AND a las entradas y despus la funcin NOT alresultado.CONCEPTOS BSICOS DE PROGRAMACIN. LGICA BSICA19Tabla de verdad Diagrama elctrico cableado Ecuacin lgicaDiagrama lgico de bloquesS = a + bLa tabla de verdad, la deducimos como en el caso anterior:En cuanto al diagrama elctrico cableado, necesitaremos tambin un relintermedio dado que hay que negar el producto una vez realizado:Sicomparaselfuncionamientodelesquemaelctricocableado,verscmo coincide: la salida (el piloto S), solamente es cero (se apaga), cuando elcontacto normalmente cerrado K se abre; es decir, cuando la bobina de K reci-be tensin, lo que sucede nicamente cuando a y b estn accionados simult-neamente (cuando los dos son simultneamente 1 en la tabla de verdad).La ecuacin lgica de la funcin NOR queda:S = a bY su diagrama de bloques es, lgicamente:Enresumen,lascuatroformasdeexpresindelafuncinlgicabsicaNAND son:CONCEPTOS BSICOS DE PROGRAMACIN CON MICROCONTROLADORES20Tabla de verdad Diagrama elctrico cableado Ecuacin lgicaDiagrama lgico de bloquesS = a x bFunciones lgicas generalesEn el apartado anterior has aprendido a expresar las funciones lgicas bsi-cas en las cuatro formas de representacin que ms interesan para la solucinde los problemas de instalaciones automatizadas:Tabla de verdad.Diagrama elctrico cableado.Ecuacin lgica.Diagrama lgico de bloques.Cualquier problema de automatizacin va a requerir relacionar los estadosde los elementos de entrada (captadores de informacin) entre s para obtenerel estado que debe tener un elemento de salida como respuesta a dicha com-binacin. Esta relacin, que puede ser cualquiera, dependiendo del problemade automatizacin que se nos presente, consiste en una funcin lgica gene-ral,quepodremosexpresarcomocombinacindelasfuncioneslgicasbsicas vistas en el apartado anterior. Con una aplicacin concreta entende-remos mejor esta dinmica.Ejercicio resuelto 1APERTURA AUTOMTICA DE UNA PUERTAImaginemos, por ejemplo, una instalacin automatizada sencilla. Tenemosunapuertaautomticaaccionadaporunmotorelctricoyqueremoscoman-dar la apertura de la misma (solamente la apertura en esteejercicio) en base a un detector de presencia prximo a lapuertaconparadaporfinaldecarrera.Cadavezqueseaproximeunapersonaalapuerta,elcilindrodebeabrirlamismaycuandolapersonayahayapasado,elsistemadebevolveracerrarla,quedandoenesperadeunnuevociclo. El esquema sera el mostrado en el margen izquierdo.En donde S es la variable de salida, la orden que tene-mos que definir para mandar al motor la apertura de la puer-ta. Cuando S sea 1, la puerta estar abrindose y cuando Ssea0,permanecerparada(fjatequenodecimosnadapara el cierre de la misma; en este primer ejercicio de intro-duccin nos ocupamos solamente de la apertura).Asimismo, a es la variable asociada al detector de presencia de la perso-naqueseacercaalapuerta:cuandohayunapersonaprximaalapuerta a = 1 y cuando no hay nadie a = 0. Para que la puerta se abra, ser condicinindispensable que haya una persona delante de la misma; es decir, que a = 1.Y b es el final de carrera que detecta cundo la puerta ha llegado al finalde su recorrido de apertura. Cuando la puerta haya llegado al final y est com-CONCEPTOS BSICOS DE PROGRAMACIN. LGICA BSICA21pletamente abierta entonces pisar el final de carrera b y ste tomar el valor b=1.Paraquelapuertaestabrindosesercondicinindispensableque b = 0. Y cuando b = 1 se deber parar.Este ejemplo es de sencilla solucin, veamos: la funcin lgica que solu-ciona nuestro problema debe expresar que para que S = 1 (es decir, que elmotorsepongaenmarchayquelapuertaseabra)debercumplirseque a = 1 (es decir, que el detector de presencia est detectando que hay una per-sona delante de la puerta) y que b = 0 (es decir, que la puerta no haya llega-do an al final de su recorrido, puesto que cuando est en el final ser b = 1).Veamos cmo se expresa esta funcin lgica con su forma de tabla de verdad:Fjatecmoalaizquierdadelatabladeverdadhemoscolocadounacolumna que refleja el nmero de estado por el que va pasando el sistema. Lasdos columnas siguientes corresponden a las variables de entrada (detector depresencia y final de carrera) y la columna final al valor que tiene que tomar lasalida en funcin de las variables de entrada.Veamos qu significa cada estado. El primer estado ser siempre el estadoinicial; es decir, qu valor toman las variables, tanto de entrada como de sali-da,enelprimermomentosinqueaparezcananrdenesenelsistema(sinque aparezca la persona delante del detector de presencia). La salida deberser cero porque el sistema estar siempre en reposo en el estado inicial.En el segundo estado observamos que lo siguiente que pasa es que la per-sona aparece frente a la puerta y el detector de presencia se activa, es decir, a = 1. Como la puerta an no se ha movido, no ha podido llegar al final de surecorrido y el valor del final de carrera ser, consecuentemente, b = 0. En estascondiciones, la salida cambiar a S = 1; es decir, se dar orden de marcha almotor y la puerta se empezar a mover.El siguiente estado que sucede consiste en que la puerta llega al final de surecorrido y el final de carrera b lo detecta, con lo que su valor cambia a b = 1.En este momento el motor deber parar, lo que se refleja en el mismo estadoen el valor de S, que ahora es S = 0.Con este ltimo paso (estado), hemos completado el ejemplo de automati-zacin que se propona; la puerta ya ha llegado al final de su apertura al detec-tar una persona en sus inmediaciones. Y hemos deducido cul es la tabla deverdad que corresponde a la funcin lgica que lo soluciona:CONCEPTOS BSICOS DE PROGRAMACIN CON MICROCONTROLADORES22Apartirdelatabladeverdadessencillodeducirlaecuacinlgicaquecorrespondealamismafuncinlgica,siseguimoselprocedimientodelosMINTERM.Este procedimiento consiste en que por cada 1 que aparece en la colum-na de las salidas obtendremos un trmino compuesto por tantas variables quese multiplican como variables tenga el sistema. Todos los trminos que aparez-can deducidos de los unos de la columna de las salidas se suman entre s paradar la funcin lgica expresada como ecuacin lgica. Por ejemplo, en la tablade verdad del ejemplo, slo hay un 1 en la columna de salidas, por lo que enla ecuacin lgica aparece solamente un trmino compuesto por dos variables(las dos variables de entrada de la tabla de verdad) que se multiplican. Enton-ces, la ecuacin lgica queda como sigue:S = a bComo puedes observar, la ecuacin lgica satisface el funcionamiento delejemplosolamentecuandoa=1(cuandoeldetectordetectapresenciadepersona cerca de la puerta) y simultneamente b = 0 (cuando la puerta no esten su posicin de apertura total y por tanto no acciona el final de carrera), y portanto b = 1 ser 1 el valor de la salida S por lo que el motor de accionamientose pondr en marcha.A partir de esta ecuacin lgica es sencillo desarrollar el esquema elctricoen lgica cableada que corresponde a esta funcin lgica; recuerda que la mul-tiplicacin corresponde a colocar los contactos auxiliares en serie y la negacinde una variable de entrada corresponde a escoger el contacto auxiliar asociadoaesavariabledeentradacomonormalmentecerrado.Aspues,elesquemaelctrico cableado correspondiente a la funcin lgica del ejemplo, quedara:Observaquetambinelesquemaelctricosatisfacelosrequisitosdelalgicadelaautomatizacin:solamentecuandoa=1(cuandoeldetectordetecte presencia) el contacto a cambiar su posicin a cerrado y dejar pasarla tensin V a la entrada del contacto b. Simultneamente, debe ser b = 0 (lapuerta no llega al final de su recorrido y no pisa el final de carrera b) para queel contacto normalmente cerrado b no se abra y comunique la tensin V a labobina del contactor S, que arrancar el motor para que se abra la puerta.Aunquelavariabledeentradabaparecenegadaenlaecuacinlgica,vers que en el esquema elctrico cableado no se coloca esta negacin en elnombredelcontactob,dadoqueestanegacinyavieneespecificadaenelsmbolo que expresa que b es un contacto normalmente cerrado.CONCEPTOS BSICOS DE PROGRAMACIN. LGICA BSICA23E, igualmente, el diagrama lgico de bloques quedara como sigue:Como en los casos anteriores, se trata de la misma funcin lgica, que tam-binsatisfacelosrequisitosdefuncionamientodeestesencilloejemplodeautomatizacin.Obtencin de la funcin lgica para una aplicacin concreta.Resolucin de problemas de automatizacin. Ejercicios resueltos En el ejemplo anterior hemos descrito el procedimiento usual para disearun sistema automtico sencillo mediante los siguientes pasos:1. Deduccindelatabladeverdadapartirdeladefinicindelfuncio-namiento del sistema automtico.2. Obtencin de la ecuacin lgica con MINTERM o MAXTERM a partir dela tabla de verdad.3. Obtencin del esquema elctrico cableado y del diagrama lgico de blo-ques a partir de la ecuacin lgica.Para la deduccin de la tabla de verdad a partir del funcionamiento delsistema, debemos tener en cuenta las siguientes condiciones:Representaremosenprimerlugarelestadoinicial,enelquean no se da la orden de marcha del sistema y las salidas per-manecen en reposo.Unestado(queintuitivamentevieneaseraproximadamenteunadeterminadasituacindefuncionamientodelsistemaautomtico)vienedefinidoporunadeterminadacombina-cin de variables de entrada. Y cada estado se correspondecon una fila de la tabla de verdad.El paso de un estado al siguiente lo determina el cambio deuna sola de las variables de entrada. Por tanto, de un esta-do al siguiente (de una fila de la tabla de verdad a la siguien-te)solamentepodrcambiarunasoladelasvariablesdeentrada.Ms adelante, cuando definamos los sistemas combinacionales y secuen-ciales, iremos aadiendo condiciones a la formacin de la tabla de verdad.A la formacin de la tabla de verdad le sigue la obtencin de la ecuacinlgica con MINTERM. La ecuacin lgica se puede expresar tambin en formade MAXTERM, como vers a continuacin.CONCEPTOS BSICOS DE PROGRAMACIN CON MICROCONTROLADORES24TantoelmtodoMINTERMcomoelMAXTERMsedenominanFORMASCANNICASDEEXPRESINDELAECUACINLGICA,porquetodoslos trminos en ambas formas van a contener a todas las variables de entradade la funcin lgica. Veamos.Con el mtodo MINTERM, la ecuacin lgica se va a componer de trmi-nos que se suman entre s, cada uno correspondiente a un uno de la columnadelassalidas.Cadaunodeestostrminos,asuvez,secompondrdeunamultiplicacin de todas las variables de entrada, negadas o no en funcin dequesuvalorenlafilacorrespondienteseaceroouno,respectivamente.Lovemos con un ejemplo:Tenemos la tabla de verdad:El trmino correspondiente al 1 de la columna de la salida de la segunda filase corresponde con las variables a, b y c igual a 0 y d igual a 1, con lo que nosdar: a b c d, y el trmino correspondiente al 1 de la cuarta fila tienelas variables a y b igual a 0 y las c y d igual a 1, con lo que nos dar: a b c d.Lasotrasdosfilasnoaportanningntrminoalaecuacinporqueelvalor de su salida es 0. La ecuacin lgica expresada como MINTERM queda-r:S = a b c d + a b c dCon el mtodo MAXTERM, la ecuacin lgica se va a componer de trmi-nos que se multiplican entre s, dentro de sus respectivos parntesis, cada unocorrespondiente a un cero de la columna de las salidas. Cada uno de estos tr-minos, a su vez, se compondr de una suma de todas las variables de entra-da, negadas o no en funcin de que su valor en la fila correspondiente sea unoo cero, respectivamente. Veamos en el caso de la tabla de verdad anterior.El trmino correspondiente al 0 de la columna de salida de la primera fila secorresponde con todas las variables a, b, c y d iguales a 0, con lo que nos dar:a + b + c + d, y el trmino correspondiente al 0 de la tercera fila tiene las varia-bles a, b y d iguales a 0 y la variable c igual a 1, con lo que nos dar:a + b +c + d. La ecuacin lgica expresada como MAXTERM quedar:S = (a + b + c + d) (a + b + c + d)Yelltimopasocorresponderalaobtencindelesquemaelctricocableado y del diagrama lgico de bloques a partir de la ecuacin lgica,recordando las condiciones siguientes:Las variables de entrada, que se expresan directamente en laCONCEPTOS BSICOS DE PROGRAMACIN. LGICA BSICA25ecuacin lgica, en el esquema elctrico se representan concontactosauxiliaresyeneldiagramalgicodebloquesconlneas que transportarn las tensiones correspondientes a losniveles lgicos 0 y 1.La operacin de suma lgica de la ecuacin lgica es equiva-lenteacolocarloscontactosauxiliaresenparaleloenelesquema elctrico y al bloque OR en el diagrama de bloques.Laoperacindeproductolgicodelaecuacinlgicaesequivalenteacolocarloscontactosauxiliaresenserieenelesquema elctrico y al bloque AND en el diagrama lgico.La negacin (inversin), que se expresa con una barra horizon-tal colocada sobre la variable negada en la ecuacin lgica, serepresenta con un contacto normalmente cerrado en el esque-ma elctrico y con el bloque lgico NOT en el diagrama lgico.Ejercicio resuelto 2Expresar la funcin lgica dada por la tabla de verdad siguiente en las otrastres formas de expresin de funciones lgicas (ecuacin lgica, esquema elc-trico cableado y diagrama lgico de bloques).La tabla de verdad es:SOLUCIN:Para obtener la ecuacin lgica asociada a esta funcin lgica podemosemplear, por ejemplo, el mtodo de los MINTERM, con lo que nos quedara unaecuacin lgica:S = a b + a bQue se podra simplificar haciendo factor comn de b, es decir:S = b (a + a)Y como segn las reglas del lgebra de Boole (las puedes recordar consul-tando la unidad didctica 4) es a + a = 1, nos queda:S = bQue es la ecuacin lgica ms simplificada correspondiente a esta funcinlgica. Si la funcin lgica fuese ms complicada (expresada en una tabla deCONCEPTOS BSICOS DE PROGRAMACIN CON MICROCONTROLADORES26verdad con ms columnas y ms trminos igual a 1 en la columna de las sali-das), la simplificacin hubiese sido mucho ms compleja, con lo que tendra-mos que aplicar uno de los procedimientos de simplificacin existentes, comoel que se expone en el siguiente apartado.Una vez disponemos de la ecuacin lgica, el esquema elctrico cableadoes sencillo:En cuanto al diagrama lgico de bloques es el ms sencillo posible:En donde el bloque que hemos empleado, el ms sencillo posible, el blo-que identidad, ofrece a su salida la misma variable que le llega a la entrada. Esequivalente a conectar con una lnea la salida con la entrada.Ejercicio resuelto 3Expresar la funcin lgica dada por la tabla de verdad siguiente en las otrastres formas de expresin de funciones lgicas (ecuacin lgica, esquema elc-trico cableado y diagrama lgico de bloques).Obtenemoslafuncinlgica,denuevo,medianteelmtododelosMIN-TERM, resultando:S = a b c + a b c + a b cCONCEPTOS BSICOS DE PROGRAMACIN. LGICA BSICA27El esquema elctrico cableado quedara (si no realizamos ninguna simplifi-cacin):Con lo que vemos que conforme se va complicando un poco la funcin lgi-ca a representar, tanto la ecuacin lgica como el esquema elctrico cablea-do, como el diagrama lgico de bloques (que a continuacin se va a represen-tar), se complican enormemente.El diagrama lgico de bloques quedara:En donde hemos empleado bloques funcionales sumadores y multiplicado-res de tres entradas.Simplificacin de las funciones lgicas. Ejercicios resueltos Las ecuaciones lgicas que se obtienen a partir de las tablas de verdad conlosmtodosMINTERMyMAXTERMsonmuygrandes,porloquesurealiza-cinenformadeesquemaelctricocableadoydiagramalgicodebloquessera excesivamente complicada y costosa. Es muy conveniente emplear algnmtododesimplificacindefuncioneslgicasparaexpresarlasolucindenuestro problema de instalacin automatizada con ecuaciones lgicas, esque-mas elctricos y diagramas lgicos de bloques que sean lo ms sencillos posi-ble, proporcionndonos un ahorro mximo en tiempo y coste.UnodeestosmtodosconsisteenelempleodelasTABLASDEKAR-NAUGH una vez expresada nuestra funcin lgica en forma de tabla de verdad.El mtodo de Karnaugh parte de la tabla de verdad y para cada variable desalida, construye una tabla de Karnaugh en la que se representan los ceros ylos unos de la variable de salida. Las tablas de Karnaugh correspondientes afunciones lgicas de dos, tres, cuatro y cinco variables seran como sigue:CONCEPTOS BSICOS DE PROGRAMACIN CON MICROCONTROLADORES28CONCEPTOS BSICOS DE PROGRAMACIN. LGICA BSICA29Tabla de Karnaugh de 2 variables: Tabla de Karnaugh de 3 variables:Tabla de Karnaugh de 4 variables: Tabla de Karnaugh de 5 variables:Para funciones lgicas que impliquen ms de 5 variables el mtodo de simpli-ficacin por tablas de Karnaugh no es funcional, por lo que no se suele aplicar.Observa que al representar en la primera fila y en la primera columna de latablatodaslasposiblescombinacionesdelasvariablesdeentrada,nolohemos hecho segn el cdigo binario natural, sino segn el cdigo reflejadode Gray, que estudiamos al principio de la unidad. Esto es porque las casillasde la tabla de Karnaugh deben ser adyacentes para que el mtodo de simpli-ficacin sea vlido.Que las casillas de la tabla sean adyacentes quiere decir que al cambiar deuna casilla a otra que est contigua los valores de la combinacin de variablesde entrada que corresponden a ambas casillas slo cambien en una sola varia-ble.ConseguimosasegurarestosiutilizamoselcdigoreflejadodeGray,como se acaba de exponer, ya que este cdigo tiene la propiedad de que deun nmero expresado en l al siguiente correlativo solamente cambia el valorde una variable.El primer paso para realizar la simplificacin consiste en pasar la informa-cin de la tabla de verdad a la tabla de Karnaugh. Si nuestra tabla de verdadtiene ms de una variable de salida (en la tabla de verdad estaramos aprove-chandolasmismasentradasparaexpresardosfuncioneslgicasdistintas),formaremos una tabla de Karnaugh para cada una de ellas.EncadacasilladelatabladeKarnaughiremoscolocandolosunosylosceros que encontremos en nuestra tabla de verdad. Por ejemplo, a la siguien-te tabla de verdad:Ejercicio resuelto 4Simplificar la funcin lgica dada por la tabla de verdad siguiente.SOLUCIN:Le correspondera la siguiente tabla de Karnaugh:UnavezrepresentadalainformacindelatabladeverdadenlatabladeKarnaugh, agruparemos los unos que nos salgan siguiendo las siguientes con-diciones:Se agruparn solamente las celdas que contengan los unos.Todos los unos deben quedar agrupados en algn grupo.Iremoshaciendolosgruposdesdeelmsgrandeposiblehasta el ms pequeo (si queda algn uno sin que se puedaagruparenungrupoconotrosunos,formarungrupoelsolo).Las celdas se pueden agrupar siempre que sean adyacentesentre s; es decir, de una celda a otra celda contigua en verti-caluhorizontalsolamentepuedevariarunadelasvariablesde entrada que la definen.El nmero N de unos que pueden formar un grupo debe seruna potencia de dos, es decir, debe ser 2 elevado a un nme-roentero(N=2n).Portanto,losgrupospuedenestarcom-puestospor1,2,4,8,16...celdasenlasqueaparezcaununo.Los grupos que se formen deben ser cuadrados o rectangu-lares,nopuedentenerformadeesquina,oagruparceldaslejanas con ceros por medio.Entonces, para el caso de la tabla de Karnaugh del ejemplo, se puede rea-lizar solamente un grupo, formado por los dos unos de la misma. Veamos:CONCEPTOS BSICOS DE PROGRAMACIN CON MICROCONTROLADORES30Una vez obtenidos los grupos, deduciremos la ecuacin lgica simplificadaen base a las reglas siguientes:1. La ecuacin lgica simplificada est compuesta por una suma de trmi-nos.2. Cada trmino que se suma est compuesto a su vez por una multiplica-cin de variables de entrada y se deduce de cada grupo de celdas quehemos sealado en la tabla de Karnaugh.3. Para obtener el trmino que corresponde a un grupo nos fijaremos en lasvariables que corresponden a cada uno dentro del grupo, individualmen-te de variable en variables, de la forma siguiente:a) Si una variable no vara para ningn uno de nuestro grupo (la variablequecorrespondeatodoslosunostieneelmismovalor),entoncesaparecer en el trmino correspondiente. Y si adems 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 (lavariableencuestinnoeslamismaparatodoslosunosdelgrupo),entonces no aparecer en el trmino correspondiente.Veamos cmo se calcula en el ejemplo que estamos resolviendo:Tenemos un solo grupo, con lo que la ecuacin lgica se compondr de unsolotrmino.Dentrodeltrmino,observamoscadavariableindividualmentepara todos los unos del grupo:Variable a (sus valores aparecen en la primera fila de la tabla,en su parte superior): toma valor 0 para el primer uno del grupoy valor 1 para el segundo uno de grupo, por lo que ha variadode una celda a otra del grupo: LA VARIABLE a NO APARECEEN EL TRMINO CORRESPONDIENTE AL GRUPO.Variable b (sus valores aparecen en la primera columna dela tabla, en su parte izquierda): toma valor 1 para el primer unodelgrupoytambintomavalor1paraelsegundounodelgrupo:SAPARECEENELTRMINOCORRESPONDIENTEALGRUPO.Ycomoelvalorquetomalavariablees1,LAVARIABLE b APARECE SIN NEGAR.Por lo tanto, la ecuacin lgica de nuestro ejemplo es:S = bEjercicio resuelto 5Vamos a desarrollar otro ejemplo con una funcin lgica compuesta por tresvariables. Su tabla de verdad es la siguiente (se pide simplificar la funcin lgica):CONCEPTOS BSICOS DE PROGRAMACIN. LGICA BSICA31SOLUCIN:La tabla de Karnaugh que corresponde a esta funcin lgica (de tres varia-bles) es como sigue:En donde podemos hacer un grupo de cuatro unos (cuatro es un nmeropermitido de celdas porque 22= 4). La forma del grupo es cuadrada, sin esqui-nas.Ytodoslosunoscontiguosdelgruposonadyacentes.Elgrupoquehemos formado es entonces vlido.Comotenemossolamenteungrupo,enlaecuacinlgicaobtendremosnicamente un trmino. Para obtener el trmino, nos fijamos de una en una encmo vara el valor de las variables para todos los unos del grupo. Veamos:Variable a (sus valores aparecen en el primer dgito de los dosqueaparecenencadaceldadelafilasuperiordelatabla):toma el valor cero para el uno de la celda superior izquierda yel valor uno para el uno de la celda superior derecha del grupo,porlotantohavariadodeunaceldaaotradelgrupo.Yanohace falta seguir con el anlisis: LA VARIABLE a NO APARE-CE EN EL TRMINO CORRESPONDIENTE AL GRUPO.Variable b (sus valores aparecen en el segundo dgito de losdos que aparecen en cada celda de la fila superior de la tabla):toma el valor uno para los cuatro unos del grupo, por lo que suvalor no cambia dentro del grupo: S APARECE EN EL TRMI-NOCORRESPONDIENTEALGRUPO.Ycomoelvalorquetoma la variable es 1, LA VARIABLE b APARECE SIN NEGAR.Variable c (sus valores aparecen en cada celda de la colum-na de ms a la izquierda de la tabla): toma el valor 0 para eluno de la celda superior izquierda del grupo y toma el valor 1paraelunodelaceldainferiorizquierdadelgrupo,porlotantohavariadodeunaceldaaotradelgrupo.Yanohacefalta seguir con el anlisis: LA VARIABLE c NO APARECE ENEL TRMINO CORRESPONDIENTE AL GRUPO.CONCEPTOS BSICOS DE PROGRAMACIN CON MICROCONTROLADORES32Por lo tanto, la ecuacin lgica de nuestra funcin lgica se compone de unsolo trmino (solo hemos formado un grupo), que tiene una sola variable (lasotras han variado de una posicin a otra del grupo). Y es, de nuevo, la funcin:S = bEjercicio resuelto 6Veamos otro ejemplo con una funcin lgica de tres variables. La tabla deverdad de la funcin lgica sigue a continuacin (se pide simplificarla):SOLUCIN:Y su tabla de Karnaugh asociada es:En la que hemos realizado dos grupos: uno horizontal de cuatro unos y otrovertical con dos unos para incluir el uno de la fila inferior en un grupo. Fjate quehay 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 ms grande (dos trminos y noslouno),conloquelaecuacinlgicasermssimplificada(cuantomsgrandes sean los grupos que hagamos, ms simplificado ser el trmino queobtengamos del mismo y, por tanto, ms simplificada la ecuacin lgica).La ecuacin lgica que corresponde a esta funcin lgica se obtiene de laforma:TRMINOCORRESPONDIENTEALGRUPOROJO:vamosanalizando las variables celda a celda para todos los unos delgrupo: Variable a (sus valores aparecen en el primer dgito delos dos que aparecen en cada celda de la fila superiorde la tabla): para el uno de la izquierda del grupo tomael valor 0, para el segundo uno del grupo toma tambinCONCEPTOS BSICOS DE PROGRAMACIN. LGICA BSICA33el valor 0, para el tercer uno del grupo toma el valor 1;la variable ha cambiado. Ya no hace falta seguir con elanlisis: LA VARIABLE a NO APARECE EN EL TRMI-NO CORRESPONDIENTE AL GRUPO ROJO. Variable b (sus valores aparecen en el segundo dgitode los dos que aparecen en cada celda de la fila supe-riordelatabla):paraelunodelaizquierdadelgrupotoma el valor 0, para el segundo uno del grupo toma elvalor 1; por lo tanto, el valor de la variable ha cambiado.Ya no hace falta seguir con el anlisis: LA VARIABLE bNOAPARECEENELTRMINOCORRESPONDIENTEAL GRUPO ROJO. Variable c (sus valores aparecen en cada celda de lacolumna de ms a la izquierda de la tabla): toma el valor0 para todos los unos del grupo rojo, por lo que su valornocambiadentrodelgruporojo:SAPARECEEN ELTRMINOCORRESPONDIENTEALGRUPOROJO.Y como el valor que toma la variable c es cero, APA-RECE NEGADA EN EL TRMINO. Porlotanto,eltrminocorrespondientealgruporojoes: c.TRMINO CORRESPONDIENTE AL GRUPO VERDE: analiza-mos las variables celda a celda para todos los unos del grupoverde. Variable a: para los dos unos del grupo verde la varia-bleatomaelvalor1,porlotanto,nocambiadentrodel grupo verde: LA VARIABLE a S APARECE EN ELTRMINODELGRUPOVERDE.Ycomoelvalorquetoma la variable a es 1, APARECE SIN NEGAR. Variable b: para los dos unos del grupo verde la varia-bleatomaelvalor1,porlotanto,nocambiadentrodel grupo verde: LA VARIABLE b S APARECE EN ELTRMINODELGRUPOVERDE.Ycomoelvalorquetoma la variable b es 1, APARECE SIN NEGAR. Variablec:tomaelvalor0paraelunodelaceldasuperior del grupo verde y toma el valor 1 para el uno dela celda inferior del grupo verde, por lo tanto s ha varia-do dentro del grupo: LA VARIABLE c NO APARECE ENEL TRMINO DEL GRUPO VERDE. Entonces, el trmino correspondiente al grupo verde es:a b.La ecuacin lgica que corresponde a esta funcin lgica quedara entonces:S = c + a bCONCEPTOS BSICOS DE PROGRAMACIN CON MICROCONTROLADORES34Que es la ecuacin lgica simplificada. Cmo hubiese quedado la ecua-cin lgica sin simplificar? Si la obtenemos segn los MINTERM, como apren-dimos anteriormente, sera:S = a b c + a b c + a b c + a b c + a b cEsfcildeducirquelasimplificacinquehemosconseguidoalaplicarelmtododelastablasdeKarnaughesconsiderable.Imaginacmoseraelesquema elctrico cableado o el diagrama lgico de bloques que nos resolvie-sen esta funcin lgica para poder realizar la instalacin automatizada. Cun-to tiempo y coste nos hemos ahorrado al simplificar?Ejercicio resuelto 7Veamosahoraunejemploconunafuncinlgicadecuatrovariables.Latabla de verdad es la mostrada en el margen (realizar la simplificacin):SOLUCIN:La tabla de Karnaugh que corresponde a esta funcin lgica es:En donde hemos hecho dos grupos de cuatro unos, el grupo verde del cen-tro y el grupo rojo que rene los cuatro unos de las esquinas. Fjate que aunquelos cuatro unos de las esquinas parece que no estn juntos dentro de la tabla deKarnaugh, sin embargo s que son unos contiguos, dado que de un uno a otroen vertical y horizontal slo cambia el valor de una variable (lo puedes compro-bar fcilmente). Por lo tanto, los podemos agrupar en un solo grupo.La ecuacin lgica que corresponde a esta funcin lgica tendr dos trmi-nosquesesuman,unoprocedentedelgrupoverdeyelotroprocedentedelgrupo rojo. Se obtienen como sigue:TRMINO CORRESPONDIENTE AL GRUPO VERDE: analiza-mos las variables celda a celda para todos los unos del grupoverde. Variable a: para el uno de la celda superior izquierdadel grupo verde, toma el valor 0 y para el uno de la celdasuperior derecha del grupo verde, toma el valor 1. Por lotanto, la variable ha cambiado dentro del grupo. No esnecesarioseguirconelanlisis:LAVARIABLEaNOAPARECE EN EL TRMINO DEL GRUPO VERDE.CONCEPTOS BSICOS DE PROGRAMACIN. LGICA BSICA35 Variable b: para el uno de la celda superior izquierda delgrupo verde, toma el valor 1. Para el uno de la celda supe-rior derecha, tambin toma el valor 1. Para los dos unosde la parte inferior de la tabla, la variable b tambin tomael valor 1. Por lo tanto, la variable b no cambia dentro delgrupo verde: LA VARIABLE b S APARECE EN EL TR-MINO DEL GRUPO VERDE. Y adems, como el valor quetoma la variable b es 1, APARECE SIN NEGAR. Variablec:tomaelvalor0paraelunodelaceldasuperior izquierda del grupo verde y toma el valor 1 paraelunodelaceldainferiorizquierdadelgrupo;porlotanto,shavariadodentrodelgrupo.Nohacefaltaseguirconelanlisis:LAVARIABLEcNOAPARECEEN EL TRMINO DEL GRUPO VERDE. Variabled:tomaelvalor1enlascuatroceldasdelgrupoverde.Porlotanto,nohavariadodentrodelgrupo verde: LA VARIABLE d S APARECE EN EL TR-MINODELGRUPOVERDE.Yadems,comosuvalores 1, APARECE SIN NEGAR. Por lo tanto, el trmino correspondiente al grupo verde es:b d.TRMINO CORRESPONDIENTE AL GRUPO ROJO: Variablea:paraelunodelapartesuperiorizquierdade la tabla, la variable a toma el valor 0, para el uno delapartesuperiorderechadelatabla,lavariableatomaelvalor1;porlotanto,shavariadodentrodelgrupo: LA VARIABLE a NO APARECE EN EL TRMINODEL GRUPO ROJO. Variable b: se puede observar que para las cuatro cel-das del grupo rojo la variable b no cambia, por lo que:LAVARIABLEbSAPARECEENELTRMINODELGRUPO ROJO. Y adems, como la variable b toma elvalor cero dentro del grupo, APARECER NEGADA ENEL TRMINO DEL GRUPO. Variablec:tomaelvalor1paraelunodelapartesuperiorizquierdadelgrupoytomaelvalor0paraeluno de la parte inferior izquierda del grupo; por tanto, scambia dentro del grupo, por lo que: LA VARIABLE cNO APARECE EN EL TRMINO DEL GRUPO ROJO. Variabled:tomaelvalor0paraloscuatrounosdelgruporojo;porlotanto,nocambiadentrodelgruporojo,porloque:LAVARIABLEdSAPARECEENELTRMINO DEL GRUPO ROJO. Y adems, como toma elvalor 0 dentro del grupo, APARECER NEGADA EN ELTRMINO DEL GRUPO.CONCEPTOS BSICOS DE PROGRAMACIN CON MICROCONTROLADORES36Sistemas combinacionales y secuenciales bsicos. Ejercicios resueltos Por lo tanto, el trmino correspondiente al grupo rojo es:b d.Y la ecuacin lgica simplificada que corresponde a esta funcin lgica es:S = b d + b dComoejerciciopuedesobtenerdelatabladeverdaddeesteejemplolafuncin lgica segn su forma cannica MINTERM. Compara si realmente hahabido una gran simplificacin al utilizar el mtodo de la tabla de Karnaugh.Los sistemas combinacionales se caracterizan porque una determinadacombinacin de las variables de entrada da como resultado siempre la mismacombinacin de las variables de salida. En otras palabras, el valor de las sali-dasenlossistemascombinacionalesdependesolamentedelvalordelasentradasynodelpropiovalorquelassalidashayanpodidopresentarenmomentos anteriores.En cambio, los sistemas secuenciales se caracterizan porque el valor desus salidas depende tanto del valor de las entradas en ese momento como delvalor que las propias salidas hayan tenido en momentos anteriores.Veamos un ejemplo sencillo de sistema combinacional, plantendolo desdeel inicio con los pasos que ya hemos estudiado para su resolucin:Ejercicio resuelto. EXTRACCIN DE AGUAS DE UN POZO DE RECOGIDA CON DOS BOMBAS Y ALARMATenemoselpozoderecogidadeaguasdelafigurasiguiente:El pozo de recogida de aguas dispone de dos bombasde extraccin de agua, B1 y B2, de un piloto rojo de alar-maH1,ydetresdetectoresdeniveldeagua(boyasdenivel), denominados n1, n2 y n3.El funcionamiento de la extraccin de agua debe cum-plir las siguientes condiciones:Sielniveldeaguaseencuentrapordebajo del detector n1, las bombas esta-rn paradas.Si el nivel de agua alcanza al detector n1,arrancar la bomba B1.CONCEPTOS BSICOS DE PROGRAMACIN. LGICA BSICA37Si el nivel de agua alcanza al detector n2, una sola bomba notienelafuerzasuficienteparaevacuarelcaudaldeaguaentrante y arrancaremos tambin la bomba B2.Si el nivel de agua alcanza al detector n3, o bien el caudal deaguaesexcesivamentegrandeohayalgnfalloenelsiste-ma, por lo que se encender un piloto rojo de alarma H1.SOLUCIN:Tenemos tres entradas (los tres detectores de nivel) y tres salidas (las tresbombas y el piloto rojo de alarma).En primer lugar se confeccionan las tablas de verdad de nuestro problemasegn los condicionantes del mismo:Solamente se han utilizado cuatro filas de la tabla de verdad, las correspon-dientes a las cuatro situaciones de funcionamiento de la extraccin de aguasdel pozo.En realidad, dado que hemos empleado tres columnas, una para cada sali-da, tenemos tres tablas de verdad, que nos darn lugar a tres tablas de Kar-naugh, como sigue:AlllevarlainformacindelastablasdeverdadalastablasdeKarnaugh,hemos colocado todos los ceros y los unos, y dado que slo contemplbamoslassituacionesdefuncionamientoquecorrespondenalejemplo,senoshanquedadovacascuatroceldasencadatabladeKarnaugh.Estoquieredecirque los valores que puedan tomar las salidas en las celdas vacas (los valoresde las salidas para esas combinaciones de variables de entrada) son indiferen-tes para la resolucin de nuestro problema. Como son combinaciones que ennuestro sistema no se van a dar, rellenaremos las celdas vacas con X y con-sideraremos este valor como cero o como uno conforme ms nos convenga ala hora de realizar los agrupamientos que ms nos simplifiquen las ecuacionesde la funcin lgica.CONCEPTOS BSICOS DE PROGRAMACIN CON MICROCONTROLADORES38Esdecir,rellenaremosloshuecosconXhastaobtenerlassiguientestablas de Karnaugh:LasagrupacionesquesehanrealizadoincluyenlasXnecesariasparapoder reunir todos los unos en los grupos ms grandes posible (mayor simpli-ficacin); por tanto, estas X incluidas en los grupos se han considerado comosi fuesen unos. Las X que no aportan ninguna ventaja al formar los grupos sehan dejado fuera de los mismos y, por tanto, se han considerado como ceros.Veamos las ecuaciones lgicas que corresponden a las funciones lgicasde cada salida:B1 = n1B2 = n2H1 = n3Conloquelasfuncioneslgicasexpresadascomoesquemaelctricodemando quedaran:Ejercicio resuelto. TALADRADO CON FIJACIN DE PIEZA EN CICLO CONTINUOTenemoselsistemadetaladroconfijacindepieza de la figura siguiente:Elsistemadebefuncionarsegnuncicloconti-nuo.ElcilindroC1avanzaraladerecha(C1=1)hasta que llegue al final de su carrera y la pieza a tala-drarquedefijada(Fc2=1).EntonceselcilindroC2bajar el taladro (C2 = 1) hasta el final de su carrera(Fc4 =1). Tras realizar el taladro, el cilindro C1 avan-zar a la izquierda (C1 = 0) hasta llegar a su posicininicial (Fc1 = 1). Y por ltimo, el cilindro C2 subir eltaladro (C2 = 0), hasta su posicin inicial (Fc3 = 1).Trasesto,elciclocomenzardenuevoindefinida-mente.CONCEPTOS BSICOS DE PROGRAMACIN. LGICA BSICA39SOLUCIN:Elprimerpasoconsisteenreflejarelciclodefuncionamientodelsistemacomo funcin lgica con su tabla de verdad. Cada una de las filas de la tablade vedad representar un estado de funcionamiento del sistema. En el paso deun estado a otro solamente puede variar una de las variables de entrada.ESTADO1:representaelestadoinicialdelsistema,conlosdoscilindrosreplegados. En este estado el cilindro C1 debe tener orden de salida (C1 = 1),y el cilindro C2 debe seguir replegado (C2 = 0).ESTADO 2: C1 se ha empezado a mover (su orden se dio en el estado ante-rior), y por tanto el final de carrera de replegado cambia su valor, siendo Fc1 = 0.Recuerda que el cambio de un estado al siguiente lo determina la variacin de unasola de las variables de entrada (de los detectores). En este estado las rdenestienen que seguir siendo las mismas, C1 = 1, para que siga saliendo, y C2 = 0,para que contine replegado.ESTADO 3: lo determina el siguiente detector que cambia (Fc2) cuando C1llega al final; entonces Fc2 = 1. En este estado las rdenes son: C1 = 1, paramantener la posicin y sujetar la pieza, y C2 = 1 para que el taladro comiencea bajar.ESTADO 4: la siguiente variable de entrada que cambia es el detector Fc3,cuando el taladro empieza a bajar. Las rdenes se deben mantener: C1 = 1,sujetando la pieza, y C2 = 1, con el taladro bajando.ESTADO 5: la siguiente variable de entrada que cambia es el detector Fc4,cuando el taladro llega a su posicin final de taladrado, hacindose Fc4 = 1.En este estado el cilindro C1 debe empezar a replegarse (C1 = 0), mientras eltaladro permanece en la posicin inferior (C2 = 1).ESTADO 6: la siguiente variable de entrada que cambia es el detector Fc2,cuando el cilindro C1 inicia su movimiento, Fc2 = 0. En este estado las rde-nes no tienen que cambiar, C1 = 0, para que se siga replegando, y C2 = 1 per-maneciendo el taladro en la posicin inferior.ESTADO 7: la siguiente variable de entrada que cambia es el detector Fc1,cuando el cilindro C1 llega a su posicin inicial, Fc1 = 1. En este momento C1CONCEPTOS BSICOS DE PROGRAMACIN CON MICROCONTROLADORES40tienequepermanecerensuposicindereplegado(C1=0)yC2tienequeempezar a retirar el taladro de la pieza (C2 = 0).ESTADO 8: la siguiente variable de entrada que cambia es el detector Fc4,cuando el taladro empieza a subir. En este estado las rdenes tienen que per-manecerigual,C1=0,permaneciendoreplegado,yC2=0paracontinuarcon su movimiento de subida.ESTADO 9: la siguiente variable de entrada que cambia es el detector Fc3,cuandoeltaladroalcanzasuposicininicialsuperior.Enesteestadoelciclodebecomenzardenuevo,porloqueC1debecomenzarasalirdenuevo (C1 = 1) y el taladro debe permanecer en su posicin superior (C2 = 0). Tantolasvariablesdeentrada(captadoresdeinformacin)comolasdesalida(lasrdenes del sistema) coinciden en este estado con las del estado 1, por lo quehemos completado el ciclo (el 9 y el 1 son en realidad el mismo estado), y elproceso vuelve a comenzar, siguiendo con el estado 2.Una vez expresadas las funciones lgicas del ciclo de funcionamiento delsistemacomotablasdeverdad(tenemosdostablasdeverdadenrealidad,dado que tenemos dos variables de salida: C1 y C2), el siguiente paso consis-te en simplificarlas mediante las tablas de Karnaugh.Tabla de Karnaugh para la salida C1Para obtener la ecuacin lgica simplificada:Trmino correspondiente al grupo verde: Fc1 Fc4Trmino correspondiente al grupo rojo: Fc3Ecuacin lgica simplificada:C1 = Fc3 + Fc1 Fc4Tabla de Karnaugh para la salida C2CONCEPTOS BSICOS DE PROGRAMACIN. LGICA BSICA41Ecuacin simplificada:Trmino correspondiente al grupo verde: Fc1 Fc3Trmino correspondiente al grupo rojo: Fc2C2 = Fc2 + Fc1 Fc3Por lo tanto, la funcin lgica expresada como esquema elctrico cableadoqueda:Mientras que expresada como diagrama lgico de bloques quedara:Como se expuso anteriormente, lossistemas secuenciales se caracteri-zan porque el valor de sus salidas depende tanto del valor de las entradas enese momento como del valor que las propias salidas hayan tenido en momen-tos anteriores.Parapoderrecordarelvalorqueunaciertavariabletuvoenelmomentoanterioresnecesariaunaestructuradenominadaclulabsicadememoriaque realiza esta funcin. Expresada como esquema elctrico cableado, la clu-la bsica de memoria quedara como sigue:Veamos cmo acta esta estructura. Al pulsar el pulsador a la tensin llegaalabobinadelcontactorKysucontactonormalmenteabiertoKsecierra,con lo que al dejar de pulsar a la tensin seguir llegando a la bobina del con-tactor. Es decir, el valor de la salida del sistema K depende no solamente delCONCEPTOS BSICOS DE PROGRAMACIN CON MICROCONTROLADORES42valor de la entrada a, sino tambin del valor que la propia salida del sistematuvoenunmomentoanterior,mediantesucontactonormalmenteabiertoK.Muestra de ello es que si dejamos de pulsar a entonces la salida no retornarasuvalororiginal,sinoqueseguirensuestadoactivado,manteniendolamemoria de que en un momento anterior se activ por medio del pulsador.Como ejercicio puedes expresar la clula bsica de memoria en su formade diagrama lgico de bloques. Cuando lo hayas realizado, puedes observarla solucin en la figura siguiente:Dado que en los sistemas secuenciales debemos tener en cuenta el valorde las salidas en el estado anterior para deducir el valor actual de las salidas,nuestromtododeresolucindelosproblemassencillosdeautomatizacinmediante la funcin lgica como tabla de verdad y su simplificacin mediantetablas de Karnaugh se debe adaptar a ello.Al representar la evolucin de los estados en la tabla de verdad, se sabrquenosencontramosanteunsistemasecuencialynocombinacionalsisellegaaunestadoenelquelacombinacindevariablesdeentradacoincidecon alguna de las combinaciones de variables de entrada anteriores y ademslas salidas son diferentes entre los dos estados en cuestin, no habiendo lle-gado al final del ciclo de funcionamiento del sistema.Al llegar a este punto habr que aadir en la tabla de verdad dos columnasnuevas correspondientes a una nueva variable ficticia o interna:Una columna en la parte de las entradas, que representar elvalor de dicha variable interna en el estado anterior. Se marca-renminsculasconladenominacindelapropiavariableinterna y el subndice e.Unacolumnaenlapartedelassalidas,querepresentarelvalor de esta variable interna en el estado actual. Se marcarenmaysculasconladenominacindelapropiavariableinterna y el subndice S.En este momento se ha de recordar que para ir expresando la evolucin denuestro sistema estado a estado en la tabla de verdad se han de seguir respe-tando las reglas que enumeramos anteriormente al comienzo de la pgina 24.Recordemos:Para la deduccin de la tabla de verdad a partir del funcionamiento del sis-tema, debemos tener en cuenta las siguientes condiciones:Representaremosenprimerlugarelestadoinicial,enelquean no se da la orden de marcha del sistema y las salidas per-manecen en reposo.Unestado(queintuitivamentevieneaseraproximadamenteunadeterminadasituacindefuncionamientodelsistemaCONCEPTOS BSICOS DE PROGRAMACIN. LGICA BSICA43automtico) viene definido por una determinada combinacindevariablesdeentrada.Ycadaestadosecorrespondeconuna fila de la tabla de verdad.El paso de un estado al siguiente lo determina el cambio deuna sola de las variables de entrada. Por tanto, de un esta-do al siguiente (de una fila de la tabla de verdad a la siguiente)solamente podr cambiar una sola de las variables de entrada.Unavezhayamosaadidolavariableinternatalcomosehaexpresado,debemosresolverlaindeterminacinqueproducetenerdosestadosconlamisma combinacin de variables de entrada y de variables de salida, lo que sehar de la siguiente forma (supongamos que llamamos X a la variable internaque hemos aadido):CompletaremoslosvaloresdelavariableXe(enelladodelas entradas) con un 0 desde el estado inicial hasta el ltimoestado expresado en la tabla (el que nos produce la indeter-minacin).EnelltimoestadoexpresadoenlatabladaremosaXeelvalor 1. Con esto habremos resuelto la indeterminacin: ya notenemosenlatabladeverdaddosestadosconlamismacombinacindevariablesdeentrada,dadoqueloshemosdiferenciado con nuestra nueva variable Xe.Sin embargo, en este momento se nos presenta un problema: desde el penl-timo estado al ltimo resulta que nos cambian simultneamente el valor de dosdelasvariablesdeentrada(laquecambiabaoriginalmentealdefinirelnuevoestado ms la de la variable interna que acabamos de aadir). Esto no puede ser,debemos seguir respetando la regla que dice que en el cambio de un estado alsiguiente solamente puede cambiar una de las variables de entrada.Laformaderesolverestenuevoproblemaeslasiguiente:aadiremosunnuevo estado entre el ltimo y el penltimo en donde cambiaremos solamenteel valor de la variable interna y dejaremos igual todas las dems. De esta formaya se respetar la regla recin infringida. Es un estado ficticio, porque no res-ponde a un paso real en la evolucin fsica de nuestro sistema, sino que es unanecesidad matemtica de nuestro mtodo para poder resolver el problema.LosvaloresdelavariableXsnoloscompletaremoshastaquelatabladeverdad refleje ya todos los estados del ciclo de funcionamiento del sistema.Lo mejor en este momento es poner en prctica este mtodo de resolucinde pequeos problemas secuenciales de automatizacin con un ejemplo.Ejercicio resuelto. ENCENDIDO Y APAGADO DE UN PILOTO CON DOS PULSADORESTenemos un piloto H que pretendemos activar con la pulsacin de un pul-sador S1. Al dejar de pulsar S1 el piloto debe permanecer encendido. Con laCONCEPTOS BSICOS DE PROGRAMACIN CON MICROCONTROLADORES44pulsacin de otro pulsador S2 el piloto se debe apagar y si dejamos de pulsareste segundo pulsador el piloto debe permanecer apagado.SOLUCIN:El primer paso, como de costumbre, consiste en expresar la idea de funcio-namiento de nuestro sistema de forma rigurosa en la evolucin de estados quereflejaremos en la tabla de verdad, respetando las reglas expresadas anterior-mente. Veamos:ESTADO 1: en el estado inicial no est pulsado ninguno de los dos pulsa-dores y el piloto est apagado.ESTADO 2: pulsamos S1, variable cuyo cambio define el paso a este esta-do. El piloto se debe encender.ESTADO3:dejamosdepulsarS1.Alcambiardenuevoestavariablesedetermina el paso al nuevo estado. En esta situacin el piloto debe permane-cer encendido.Alllegaralestado3nosdamoscuentaquelacombinacindevariablesdeentrada son iguales entre los estados 1 y 3 (en ambos estados S1 = 0 y S2 = 0),pero la salida es diferente en ambos (en el estado 0 es H = 0 y en el estado 3 esH = 1). Estamos, pues, ante un problema secuencial y no combinacional.Fjate que en este problema la salida H no depende solamente del valor delasvariablesdeentrada,sinotambindecuntovalalasalidaenunestadoanterior, definicin de los sistemas secuenciales.En este momento debemos aadir dos columnas a la tabla de verdad: unaen la parte de las entradas y otra en la parte de las salidas.Se completa el valor de Xe dando ceros a los estados 1 y 2 y dando un unoal estado 3 (el primero en que se produce la indeterminacin). Veamos:CONCEPTOS BSICOS DE PROGRAMACIN. LGICA BSICA45Se ha resuelto la indeterminacin entre los estados 1 y 3, ya que la combi-nacin de variables de entrada (teniendo en cuenta ahora la nueva variable deentrada interna Xe) es distinta en los dos estados.Sin embargo, como se seal anteriormente, ahora en el paso del estado 2al 3 cambian dos variables de entrada, la S1, que pasa de 1 a 0 y la nueva Xe,que pasa de 0 a 1. Debemos resolver este problema aadiendo entre el estado2yelestado3unnuevoestadoficticio(quemarcaremoscomo2),yquenocorresponde a un estado real dado que al cambiar del 2 al 2 solamente ha cam-biado la variable interna Xe y no una variable fsica real del sistema. Es decir:ESTADO 2: se mantendr el valor de la variable de salida H tal como esta-ba en el estado 2; es decir, igual a 1 en el ejemplo.En este momento se realizarn las dos comprobaciones:Entodalatabladeverdad,alpasardeunestadoalsiguientesolamente cambia el valor de una variable interna: VERDADERO.Nohayningnestadocuyacombinacindevariablesdeentrada coincida con la de ningn estado anterior, siendo dis-tintas las variables de salida: VERDADERO (no lo hay).Una vez hechas estas comprobaciones, se continuar expresando la evolu-cin de nuestro sistema en los estados representados como filas de la tabla deverdad(losvaloresdelavariableXslosdefiniremoscuandoyatengamostodos los estados expresados en la tabla de verdad y el ciclo comience a repe-tirse). En adelante, al expresar un nuevo estado de funcionamiento del sistemaen cualquier problema, realizaremos siempre estas dos comprobaciones.ESTADO 4: pulso S2 y el piloto se debe apagar. Mantendremos el valor de lavariable Xe en 1 mientras no sea necesario que lo volvamos a variar (podramosnecesitar ms adelante volver a diferenciar otros dos estados). Comprobaciones:Cambia solamente una variable de entrada del estado 3 al 4:VERDADERO, solamente cambia S2.CONCEPTOS BSICOS DE PROGRAMACIN CON MICROCONTROLADORES46Lacombinacindevariablesdeentradadelestado4noesigualaningunaotradelatabladeverdad,siendodistintalasalida H: VERDADERO; de hecho, no hay ninguna otra com-binacin igual de variables de entrada en toda la tabla.ESTADO5:dejodepulsarelpulsadorS2yelpilotoHdebepermanecerapagado. Comprobaciones:Cambia solamente una variable de entrada del estado 4 al 5:VERDADERO, solamente cambia S2.Lacombinacindevariablesdeentradadelestado5noesigualaningunaotradelatabladeverdad,siendodistintalasalida H: en este caso es FALSO, dado que el estado 3 tienela misma combinacin de variables de entrada, siendo distin-ta su variable de salida H (H = 1 en el estado 3 y H = 0 en elestado 5). Debemos resolver esta nueva indeterminacin.Como ya hemos aadido una variable interna X, vamos a intentar resolveresta nueva indeterminacin volviendo a cambiar el valor de esta variable y, siestonofueseposible,nosveramosobligadosaaadirunanuevavariableinterna Y. Veamos:Si damos el valor 0 a Xe en el estado 5, nos damos cuenta que, aunque lacombinacin de variables de entrada en el estado 5 es igual a la del estado 1,la salida H ahora tambin es igual, con lo que no se infringe la regla de tenerdosestadosconigualescombinacionesdevariablesdeentradaydistintavariable de salida. Hemos resuelto la nueva indeterminacin de esta forma.Sin embargo, ahora al cambiar del estado 4 al 5 nos cambian dos variablesde entrada simultneamente: S2 de 1 a 0 y Xe de 1 a 0. Lo resolvemos, comoanteriormente, aadiendo un estado ficticio 4 en el que cambiamos solamen-te el valor de la variable interna Xe.CONCEPTOS BSICOS DE PROGRAMACIN. LGICA BSICA47Como anteriormente, se ha dejado igual la variable de salida H en el esta-do 4 que en el estado 4. Si volvemos a hacer las comprobaciones:Cambia solamente una variable de entrada del estado 4 al 4 ydel 4 al 5: VERDADERO.Lacombinacindevariablesdeentradanoesigualenesta-dosdistintossiendodistintaslassalidas:VERDADERO.Lacombinacin de variables de entrada es igual en el estado 5 yenelestado1,peroahoralassalidasnosondistintas,soniguales. Esto no infringe la regla, sino que muestra que hemosllegado al fin del ciclo.Ahora queda por asignar los valores a la variable de salida Xs. Seguiremoslas siguientes reglas:Siestamosenunestadorealyelsiguienteestadoesreal,daremos a Xs el mismo valor que a Xe del mismo estado real.Si estamos en un estado real y el siguiente estado es ficticio,daremos a Xs el mismo valor que tiene Xe en el siguiente esta-do ficticio.Si estamos en un estado ficticio, Xs tomar el valor que tengaXe en el mismo estado ficticio.En el caso del ejemplo:ESTADO1:esunestadorealyelsiguienteestado,el2,estambinreal;entonces Xs toma el mismo valor que la Xe del propio estado 1. Xs = 0.ESTADO 2: es un estado real y el siguiente estado, el 2, es un estado ficti-cio; entonces Xs toma el valor de la Xe del estado ficticio 2. Xs = 1.ESTADO 2: es un estado ficticio. Entonces Xs toma el mismo valor que laXe del propio estado ficticio 2. Xs = 1.ESTADO3:esunestadorealyelsiguienteestado,el4,estambinreal;entonces Xs toma el mismo valor que la Xe del propio estado 3. Xs = 1.ESTADO 4: es un estado real y el siguiente estado, el 4, es un estado ficti-cio; entonces Xs toma el valor de la Xe del estado ficticio 4. Xs = 0.ESTADO 4: es un estado ficticio. Entonces Xs toma el mismo valor que laXe del propio estado ficticio 4. Xs = 0.CONCEPTOS BSICOS DE PROGRAMACIN CON MICROCONTROLADORES48ESTADO 5: es el mismo estado que el 1, dado que es el que cierra el ciclo.Xs vale lo mismo que en el estado 1.Yaestcompletalafuncinlgicaquedescribecomotabladeverdadlaevolucin del problema secuencial de automatizacin. El siguiente paso con-siste en realizar tantas tablas de Karnaugh como salidas tiene el sistema y sim-plificar para obtener las ecuaciones lgicas.Como los valores de ambas salidas coincidan, lo hacen tambin sus tablasdeKarnaughy,consecuentemente,tambinloharnsusecuacioneslgicassimplificadas.Observa que hemos dado los valores de indeterminacin X a las combina-ciones de las entradas que no vienen especificadas en la tabla de verdad queexpresa la evolucin de nuestro sistema. Recuerda que esto nos permite utili-zarloscomo01segnnosconvengaparaconseguirunasimplificacinmayordelaecuacinlgica;esdecir,paraconseguirgruposmsgrandesdentro de la tabla de Karnaugh.La ecuacin lgica simplificada es:H = Xs = S1 + S2 XeQue corresponde al esquema elctrico de mando:Dado que las dos variables de salida, Xs y H, presentan la misma ecua-cin lgica, el circuito elctrico que llega a cada una de ellas es exactamen-teelmismo,porloquepodemossustituireldeHporuncontactonormal-menteabiertodeXs,obteniendolamismafuncionalidadymayorsimplificacin.Comoejercicio,puedesobtenerlamismafuncinlgicaexpresadacomodiagrama lgico de bloques.CONCEPTOS BSICOS DE PROGRAMACIN. LGICA BSICA49Tabla de Karnaugh para la variable H Tabla de Karnaugh para la variable XsComprobacin del funcionamiento del esquema obtenidoEs fcil observar que el circuito cumple los requisitos del ejemplo. Si pulsa-mos S1, la tensin llega al contactor Xs y su contacto Xe se cierra, iluminndo-se el piloto H. Al dejar de pulsar S1 la tensin sigue llegando al contactor a tra-vs de Xe que est cerrado y de S2, con lo que el contactor se mantiene activoyelpilotoencendido.SipulsamosentoncesS2,cortaremoslatensinalabobina de Xs y sus contactos volvern a su posicin de reposo (posicin nor-mal, que es abierta), con lo que el piloto se apagar.Este esquema elctrico de mando se denomina MARCHA-PARO CON PRIO-RIDAD A LA MARCHA, dado que si se mantienen pulsados simultneamente elpulsador de paro (S2) y el pulsador de marcha (S1), se observa que la tensinsigue llegando a la bobina del contactor, que se mantiene activo (en marcha).Variacin del ejercicioCuandorealizamoslasagrupacionesenlatabladeKarnaughdelejemplo,consideramos las X como unos porque nos ayudaban a realizar grupos mayores.EstasXnospermitenrealizarunavariacin:silasconsideramoscomo0estaremosimponiendoalsistemalacondicindequecuandoS1yS2seansimultneamente 1 (la columna de las X en la tabla de Karnaugh correspondea esta combinacin de S1 y S2), la salida del sistema debe ser cero; es decir,el piloto debe estar apagado. En este caso llegaramos a la solucin del pro-blema denominada MARCHA-PARO CON PRIORIDAD AL PARO, dado que sisepulsanambospulsadoresalavezelpilotoestaraapagado.Lasolucinsera entonces:Tabla de Karnaugh para las variables Xs y HCon lo que nos quedara la ecuacin lgica simplificada:H = Xs = S1 S2 + S2 XeQuesepuedesimplificarunpocomssisacamosfactorcomndeS2,quedando:H = Xs = S2 (S1 + Xe)Fjate que aunque las tablas de Karnaugh nos dan una ecuacin con un altogrado de simplificacin (ya las has comparado antes con las que se obtenandeformacannicaMAXTERMyMINTERM),esposiblequenonosdenlamayor simplificacin posible.CONCEPTOS BSICOS DE PROGRAMACIN CON MICROCONTROLADORES50El circuito elctrico de mando correspondiente a esta funcin lgica sera:En donde se ve que, efectivamente, si mantenemos pulsados simultnea-mente S1 y S2, se corta la tensin que llega a Xs y no luce la salida H.Quedacomoejerciciolaobtencindelosdosesquemaslgicosdeblo-ques asociados al ejemplo.Ejercicio resuelto. ACCIONAMIENTO DE PRENSA POR UN SLO PULSADORTenemoselsistemadelafigura,querepresentaunaprensaaccionada por un solo pulsador:La prensa debe realizar el siguiente ciclo: al pulsar S1 el cilindrobajar y realizar su accin sobre la pieza colocada, tocando a lavez el final de carrera Fc1. En este momento el cilindro comenzara subir hasta que llegue a su posicin original, cuando el operariodeja de accionar el pulsador, finalizando el ciclo de funcionamiento.Se piden las ecuaciones lgicas de funcionamiento del sistemaysurepresentacinenesquemaelctricocableadoydiagramalgico de bloques.SOLUCIN:El sistema tiene dos variables de entrada: S1 y Fc1, y una variable de salida: P.Expresin del ciclo de funcionamiento en la tabla de verdad:ESTADO 1: estado inicial, an no se pulsa S1 y el cilindro no est tocandoFc1. Por tanto, S1 = 0 y Fc1 = 0. El cilindro no debe recibir an la orden demarcha, por lo que P = 1.CONCEPTOS BSICOS DE PROGRAMACIN. LGICA BSICA51ESTADO 2: el operario acciona el pulsador de marcha (S1 = 1); por tanto,el cilindro debe recibir la orden de marcha (P = 1).ESTADO 3: el cilindro llega a su posicin extrema; por tanto, toca el final decarrera(Fc1=1),momentoenquedebedesaparecersuordendemarchapara que comience su movimiento de retroceso (P = 0).ESTADO 4: la siguiente variable de entrada que cambia es Fc1, dado queal iniciar el movimiento de retroceso (la orden de retroceder se dio a P en elestado 3), el cilindro deja de tocar el final de carrera Fc1. Por tanto, S1 = 1,Fc1 = 0. En este momento la orden de P debe continuar siendo 0, para queel cilindro contine con su movimiento de retroceso.Se comprobar ahora que los estados 4 y 2 tienen la misma combinacindevariablesdeentrada(S1=1yFc1=0),peroconvariabledesalidacondistinto valor (P = 1 para el estado 2 y P = 0 para el estado 4). Tenemos unaindeterminacinenelsistemaquenosdemuestraquenuestrosistemaesSECUENCIAL. Por tanto, se debe aadir una variable interna X, desdoblada enla parte de las entradas (Xe) y en la parte de las salidas (Xs), para que las sali-das en un determinado estado puedan tener en cuenta el valor de las mismasen un estado anterior.Se ha dado a Xe el valor 0 en todos los estados excepto en el que se pre-senta la indeterminacin, el estado 4, en que le hemos dado Xe = 1. La inde-terminacin queda resuelta.Sinembargo,ahoradelestado3al4cambiandosvariablesdeentradasimultneamente, Fc1 de 1 a 0, y Xe de 0 a 1. Para resolver este problema seaadir el estado ficticio 3, como sigue:ESTADO 3: estado ficticio; hemos cambiado la variable interna Xe solamen-te, con lo que ahora de un estado a otro solamente cambia una variable inter-na en todos los pasos. Si comprobamos en toda la tabla, veremos que ya nose repiten las combinaciones de variables de entrada con valores de la salidadistintos ni hay pasos entre estados en los que cambien ms de una variablede entrada. Por consiguiente, seguimos con la resolucin del ciclo.CONCEPTOS BSICOS DE PROGRAMACIN CON MICROCONTROLADORES52ESTADO 5: al llegar el cilindro a la posicin inicial, el operario deja de pul-sar S1 y el movimiento se detiene. En este estado S1 = 0 y P se mantiene en0. Si nos fijamos en la combinacin de entradas del estado 5, no es igual quela combinacin del estado 1 (estado inicial), aunque el ciclo se haya completa-do. Necesitamos crear otro nuevo estado ficticio 5 para que esto se cumpla ypoder asignar a Xs sus valores correctamente.ESTADO 5: cambiamos el valor de la variable Xe sin alterar lo dems paracerrar el ciclo (combinacin de variables de entrada de 5 igual que la del esta-do 1 con los valores de la salida iguales), y poder asignar los valores adecua-dos a Xs.Ahora el ciclo s est cerrado y podemos asignar los valores a Xs:ESTADO 1: estado real seguido de estado real; entonces Xs es igual a supropia Xe. Xs = 0.ESTADO 2: estado real seguido de estado real; entonces Xs es igual a supropia Xe. Xs = 0.ESTADO 3: estado real seguido de estado ficticio; entonces Xs es igual a laXe del estado ficticio que le sigue. Xs = 1.ESTADO 3: estado ficticio; entonces Xs es igual a su propia Xe. Xs = 1.ESTADO 4: estado real seguido de estado real; entonces Xs es igual a supropia Xe. Xs = 1.ESTADO 5: estado real seguido de estado ficticio; entonces Xs es igual a laXe del estado ficticio que le sigue. Xs = 0.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 paraCONCEPTOS BSICOS DE PROGRAMACIN. LGICA BSICA53cumplir precisamente esta condicin, que TODAS las variables de entrada fue-sen iguales entre el estado que cierra el ciclo y el estado inicial, con la variablede salida tambin igual.Elsiguientepasoconsisteenobtenerlasfuncioneslgicassimplificadassegn las tablas de Karnaugh:Tabla de Karnaugh para la salida PEn este caso solamente se ha podido hacer un grupo de un solo 1. La ecua-cin lgica de la salida P queda pues:P = S1 Fc1 XePara la variable Xs:Tabla de Karnaugh para la salida XsLa ecuacin lgica de la salida Xs queda:Xs = Fc1 + S1 XePor tanto, el esquema elctrico que soluciona el problema queda:Ejercicio resuelto.ACCIONAMIENTO DE PRENSA CON UNA SOLA PULSACINSi a la prensa del ejercicio de la pgina 51 le aadimos un segundo final decarrera para la deteccin de la posicin de cilindro retrado, nos quedara comose muestra en la figura.CONCEPTOS BSICOS DE PROGRAMACIN CON MICROCONTROLADORES54Laprensadeberealizarahoraelsiguienteciclo:alpulsarS1debe comenzar su movimiento de bajada. Al dejar de pulsar inme-diatamente el pulsador, la prensa continuar con su ciclo. Cuandolleguealfinaldesumovimiento,yportantohayarealizadolaaccin requerida sobre la pieza, accionar el final de carrera Fc2ycomenzarautomticamentesumovimientodereplegado.Cuando est totalmente replegada, tocar el final de carrera Fc1ylaprensaquedardispuestaparalarealizacindelsiguienteciclo al pulsar brevemente el pulsador S1.Sepidenlasecuacioneslgicasdefuncionamientodelsiste-ma y su representacin en esquema elctrico cableado y diagra-ma lgico de bloques.SOLUCIN:Elsistematienetresvariablesdeentrada:elpulsadorS1ylosfinalesdecarrera Fc1 y Fc2. Y tiene una salida: el accionamiento P del cilindro.Elprimerpasoconsisteenlaexpresindelciclodefuncionamientodelaprensa en la forma de relacin de estados que componen la tabla de verdad:ESTADO 1: estado inicial; no se pulsa el pulsador S1, el cilindro se encuen-tra en su posicin de reposo; es decir, totalmente replegado y por tanto tocan-do el final de carrera Fc1; por tanto, Fc1 = 1. Consecuentemente, Fc2 = 0. Eneste estado la prensa debe permanecer en reposo; es decir, con P = 0.Recuerda que al escribir los valores de todas las variables correspondien-tes a cada estado debes realizar las dos comprobaciones:Cambian ms de una variable de entrada de un estado a otro?Se repiten dos combinaciones de variables de entrada entredos estados siendo distintas sus salidas?Y actuar en consecuencia en funcin de las respuestas (consulta el conte-nido terico del apartado correspondiente).ESTADO 2: el operario pulsa S1 (S1 = 1). El ciclo debe comenzar y C1 deberecibir la orden de marcha (C1 = 1).ESTADO 3: al iniciarse el movimiento del cilindro se deja de pisar Fc1; porlo tanto, pasa a ser Fc1 = 0. La orden del cilindro debe mantenerse para queCONCEPTOS BSICOS DE PROGRAMACIN. LGICA BSICA55contine su recorrido de avance. Este suceso es automtico y, por tanto, muyrpido. Por ello consideramos que va antes del siguiente estado.ESTADO 4: el operario deja de pulsar S1; por lo tanto, pasa a ser S1 = 0.El cilindro debe continuar su recorrido y el sistema debe completar su ciclo. Portanto P = 1 tambin.ESTADO 5: el cilindro llega a su posicin extrema, la prensa realiza su accinsobrelapiezaysetocaelfinaldecarreraFc2.Portanto,pasaaser Fc2 = 1. En este momento el cilindro debe dejar de recibir su orden de marchapara que comience su movimiento de replegado; por tanto, pasar a ser P = 0.ESTADO 6: el cilindro ha iniciado su movimiento de retroceso y por tanto sedejadepisarFc2,siendoFc2=0.Elcilindrodebepermanecersinrecibirorden de marcha, para que contine su movimiento de replegado.En este momento, al realizar las dos comprobaciones que se han recorda-do tras el estado 1, nos damos cuenta de que la combinacin de variables deentradadelestado6coincideconladelestado4,siendolasalidadiferente (P = 1 para el estado 4 y P = 0 para el estado 6). Por tanto, nuestro sistemaes SECUENCIAL.Consecuentemente, debemos aadir una variable interna con la que reflejarla dependencia del valor de nuestras salidas en el estado actual del valor quepresentaban en estados anteriores. La tabla de verdad queda:En donde ya hemos dado el valor 0 a Xe en los estados del 1 al 5 y el valor1 en el estado 6, en el que se presenta primeramente la indeterminacin. Conesto la indeterminacin queda resuelta pero vemos que del estado 5 al 6 ahoracambian dos variables de entrada, infringiendo la regla de cambio de