Un computador para un solo proceso:
En la década de lo sesenta la complejidad y prestaciones de los sistemas de control se incrementan gracias
al empleo de circuitos integrados y en particular los microprocesadores.
El desarrollo en la década de los 70 del microprocesador permite que llegue a ser rentable el dedicar un
computador para el control de un solo proceso. Aplicaciones del ordenador al control de procesos que antes
no eran rentables instalarlas, dado que el control analógico era mucho más barato, se vuelven competitivas.
Incluso esta reducción de costes permite que se empiecen a desarrollar sistemas de control por computador
encargados de controlar una sola máquina eléctrica.
Además de la razón económica, una de las razones que impedía que se implantará los controles digitales
sobre máquinas eléctricas era la excesiva rapidez de los accionamientos electromecánicos, con constantes de
tiempo en muchos casos bastante inferiores al segundo (comparemos con los procesos químicos). Esto hacia
imposible que un computador calculará el algoritmo de control en el período de muestreo marcado por el
diseño del controlador.
Los primeros controles digitales se implantan sobre máquinas de corriente continua, que presentan un
modelo matemático muy sencillo de tratar. Los esfuerzos se vuelcan en el desarrollo de controles digitales
sobre motores síncronos y asíncronos que permitieran obtener a los accionamientos prestaciones de precisión
y dinámica de par comparables a los de continua, con el objeto de utilizar un motor mucho más barato
(asíncrono) que no presentará los problemas de los motores de continua.
Los primeros controles digitales consistían en la simple emulación programada de los algoritmos de control
clásicos, pero la aplicación de las modernas técnicas del control ha permitido desarrollar aplicaciones de
control vectorial, las cuales, en accionamientos de motores asíncronos proporcionan una calidad en la
respuesta dinámica superior a los accionamientos de motores de corriente continua. En el momento actual
existe toda una amplia gama de microcontroladores especializados en el control de máquinas eléctricas.
Control en tiempo real:
Los requisitos del control de tiempo real se manifiestan en una de sus características principales: las
restricciones temporales a que esta sometido. Estas son inherentes al funcionamiento de los sistemas de
tiempo real. Para tareas periódicas de control, vienen impuestas por el período de muestreo con que se debe
ejecutar el algoritmo de control. Para otro tipo de tareas periódicas como pueden ser tareas de tratamiento de
datos, tareas gráficas o de supervisión, tareas de comunicación los restricciones temporales no son tan
estrictas y muchas veces el diseñador de las aplicaciones dispone de un margen donde elegir.
Estas restricciones temporales también implican prioridad de ejecución, siendo comúnmente las tareas
dedicadas al control las más frecuentes y por lo tanto las que se deben ejecutar con mayor prioridad,
interrumpiendo en el caso de los sistemas monoprocesadores a todas las demás tareas. También pueden existir
tareas de control que se ejecuten con períodos grandes como en las aplicaciones de control de variables lentas
como la temperatura, existiendo algunas otras tareas con períodos de ejecución menor. Pero la tarea de control
es la más crítica dado que es la que actúa de interface con el proceso y debe garantizar su correcto
funcionamiento.
Para las tareas activada como respuesta a eventos, las restricciones vienen impuestas por los márgenes de
seguridad y buen funcionamiento del proceso a controlar. Por ejemplo las acciones que se deben producir ante
la aparición de una parada de emergencia, deberán producirse en un tiempo mínimo que intente garantizar al
máximo la seguridad de los operarios en primer lugar y del proceso controlado en segundo lugar.
Las aplicaciones de control militar, misiles, sistemas de tiro, sistemas anti-misiles se pueden considerar
igual o más críticas que algunas aplicaciones industriales (no olvidemos las centrales nucleares). Por lo cual
se establece también la necesidad de que los sistemas de control de tiempo real incorporen mecanismos que
garanticen una alta tolerancia a fallos.
Se puede establecer una nueva clasificación entre sistemas de tiempo real críticos y acríticos. Los sistemas
de tiempo real críticos son aquellos en que los plazos de respuesta de todas las tareas deben respetarse bajo
cualquier circunstancia. En estos sistemas el incumplimiento de un plazo de respuesta, podría acarrear un mal
funcionamiento o un accidente en el proceso o aplicación militar controlada. En los sistemas de tiempo real
acríticos se puede incumplir ocasionalmente el plazo de respuesta de alguna tarea.
Hilando más fino, en un sistema de tiempo real se debe distinguir entre tareas críticas (control,
emergencia…) y acríticas (representación gráfica, tratamiento de datos)
Hardware y software de los sistemas de tiempo real:
Todo estas consideraciones conllevan que el hardware y el software de los sistemas de tiempo real deban
cumplir una serie de condiciones. En el hardware conduce al desarrollo de los elementos adecuados que
sirvan de interface con el proceso y de gestión de las restricciones temporales. Así se van desarrollando
periféricos especializados como tarjetas de adquisición de datos con conversores analógico/digitales y
digitales/analógicos. Tarjetas con relojes de alta precisión que unidos a sistemas de interrupciones
evolucionados permiten atender correctamente los requisitos temporales de las aplicaciones de control en
tiempo real.
En los años 70 se desarrollan nuevos sistemas de computación repartidos que podían adoptar estructuras
centralizadas o distribuidas. En los sistemas centralizados las decisiones del control las toma el computador
central, pero alrededor de él se acoplan una serie de periféricos, algunos de ellos especializados capaces de
realizar determinadas tareas. Estos periféricos intercambian datos con y reciben ordenes del ordenador central
por medio de una red de comunicaciones.
Los sistemas descentralizados o distribuidos consisten en un conjunto de unidades de control que pueden
tomar decisiones autónomas, intercomunicándose por medio de una red de comunicaciones.
Desde el punto de vista del software los lenguajes y también las metodologías de desarrollo de las
aplicaciones deben suministrar las herramientas y mecanismos necesarios para que los sistemas de control de
tiempo real cumplan todas las características de restricciones temporales, tolerancia a fallos y seguridad de
funcionamiento.
Los primeros programadores utilizaban directamente el lenguaje ensamblador, dado que permitían un uso
eficiente de los muy limitados recursos disponibles entonces. Visto desde la perspectiva de los medios
actuales su empleo hace costosa la programación y prácticamente imposible la modificación. Además es un
lenguaje demasiado dependiente de la máquina en concreto.
Los siguientes pasos consistieron en añadir extensiones a los lenguajes de programación clásicos de los
años 70 como el Fortran (Process Fortran), el Basic y el Algol. Estos cuentan con la ventaja de poseer un
nivel de abstracción más alto, pero dependen del sistema operativo para las funciones de concurrencia y
temporización, además suele ser necesario realizar algunas funciones en ensamblador. A estos lenguajes se le
añade una serie de funciones y mecanismos:
• Funciones para ejecución en tiempo real ( run time system, tareas…)
• Bibliotecas de funciones software que dan al programador un cierto nivel de comodidad a la hora
de trabajar con la interface del proceso o con el control del tiempo de ejecución.
• Compiladores que generen un código eficaz.