Automatización: diseño simple

En éste caso vamos a aprender a diseñar e implementar sistemas secuenciales y combinacionales mediante métodos tradicionales (es decir, complejos y largos, por lo que tampoco se puede hacer grandes cosas).

Funciones booleanas

Las variables booleanas son aquellas que tienen dos estados: si o no, verdadero o falso, alto o bajo. En definitiva, 1 o 0, como el lenguaje digital de toda la vida.

Éstas variables se pueden tratar mediante funciones, siguiendo las leyes del álgebra de Boole. Las funciones básicas son:

  • NOT: la salida es el contrario de la entrada.
  • AND: salida 1 si ambas entradas son 1.
  • OR: salida 1 si alguna de las entradas es 1.

Para más información véase Digital: introducción.

Modelado

Se trata de obtener un modelo matemático que describa el funcionamiento del sistema. En el caso de los sistemas combinacionales o secuenciales, por suerte, se trata de eventos discretos con variables binarias, por lo que se modelizan como funciones booleanas. Las variables provienen de entradas digitales desde captadores o variables de estado del sistema (necesarias para saber en qué punto se encuentra).

  • En un sistema combinacional la salida depende sólo de las entradas, no hay ningún tipo de memoria que haga que una acción pasada afecte en un futuro. Su diseño tradicional se da mediante las tablas de Karnaugh.
  • Un sistema secuencial se modeliza mediante dos ecuaciones, una que define el estado actual y otra que define el estado siguiente cuando pase un tiempo o se den ciertas condiciones. En éste caso, lo que ha ocurrido antes condiciona lo que ocurrirá más adelante. Se modeliza mediante tablas de fases.

Modelado de sistema combinacional

Para hallar las funciones lógicas se utiliza el método explicado en Digital: introducción.

La representación gráfica de las funciones lógicas se lleva a cabo mediante unos símbolos normalizados:

NEMA

En nuestro caso utilizamos los NEMA. Con ésto representamos funciones de ésta forma:

NEMA2

Lo mejor es que si tu pones éstas representaciones en ciertos programas de ordenador, te los reconoce y puede programar el autómata programable conforme a lo que le hayas puesto.

Modelado de sistema secuencial

Hay una metodología basada en los siguientes puntos:

  • Análisis del problema
  • Construcción del diagrama de flujo
  • Construcción de la tabla de fases
  • Simplificación de la tabla de fases
  • Asignación de estados internos
  • Obtención de las funciones de cambio de estados
  • Obtención de las funciones de salida

Es un proceso largo y complejo.

Ejemplo: encendido y apagado de una lámpara

Queremos que una lámpara se encienda cuando se pulse el botón A, y se mantenga encendida hasta que se pulse el botón B.

  • Representación gráfica: un diagrama de estados viene siendo tal que así:

boole

Los circulitos representan los estados, y dentro de ellos está el estado de la variable salida. Las transiciones, indicadas mediante flechas, indican en qué estado deben estar B y A para cambiar de estado, y contemplan todas las posibilidades de combinaciones para todos los estados. El programa siempre empieza en Q0: 1X significa que si el pulsador B está siendo pulsado, no importa el estado de A, siempre va a estar en el estado Q0; si no se pulsa ningún botón (00), se mantendrá también. Sólo cambia a Q1 cuando se pulsa A pero B está sin pulsar. En el estado Q1 se mantiene si se pulsa A independientemente del estado de B (X1), o cuando no se pulsa ningún botón. Sólo será capaz de volver a Q0 si se pulsa B sin pulsar A (10).

  • Tabla de fases: ¿en qué estado estoy y a qué estado voy según las entradas y el estado actual?

boole2

  • Ahora ésto se puede resolver por Karnaugh: el estado de la salida, A y B son las variables de entrada, y la salida en el estado siguiente es el resultado:

boole3

Cuando se resuelve ésto hallamos que:

S = (!B*S)+(A*S)+(!B*A)

Ya se puede ver que un poco más complicado sería estupendamente difícil de hacer a mano. Para ello se usa el programa Boole-Deusto que podéis encontrar aquí.

Leave a comment