Ejecución de programas de usuario



Existen dos formas de ejecutar ó hacer correr el programa que son:

                                   La ejecución cíclica de programas
                                   La ejecución controlada por alarmas

Ejecución cíclica de programas

Es la ejecución "normal" en autómatas programables, es decir, el sistema operativo se ejecuta en un bucle llamado ciclo. Cada vez que se recorre un ciclo, el sistema operativo llama al bloque de organización OB 1 en el programa principal. Por consiguiente, el programa de usuario se trata cíclicamente en el OB 1 como se puede comprobar en la siguiente figura:

La tabla siguiente muestra las fases de la ejecución cíclica del programa:

   

Para garantizar que la CPU disponga de una imagen coherente de las señales del proceso durante la ejecución cíclica del programa, al activarse las áreas de operandos entradas (E) y salidas (A), la CPU no accede directamente a los módulos de señales, sino a un área de memoria interna de la CPU que contiene una imagen de las entradas/salidas.


Ejecución controlada por alarmas

En esta forma de controlar la ejecución la ejecución cíclica del programa es interrumpida por determinados eventos de arranque (alarmas). Si se presenta un evento de arranque tal, se interrumpe el bloque actualmente en tratamiento en el límite de una instrucción y se trata el bloque de organización asignado al evento de arranque. Luego se continúa ejecutando el programa cíclico a partir del punto de interrupción. Este proceso se puede apreciar en la figura siguiente:

De este modo existe la posibilidad de ejecutar sólo en caso necesario aquellas partes del programa de usuario que no deben procesarse cíclicamente. El programa de usuario se puede dividir en programas parciales y distribuir en diferentes bloques de organización. 

Si el programa de usuario debe reaccionar a una señal importante que se presente con poca frecuencia (p.ej., si el indicador de nivel de un tanque indica que se ha alcanzado el nivel de llenado), el programa parcial que deba correr cuando se emita la señal se puede depositar en un OB que se ejecute de forma controlada por eventos.