Método de control de multitareas de controlador programable y controlador programable multitarea
Descripción general
 Reduzca el tiempo requerido para cambiar tareas y aumentar la velocidad de procesamiento. ] Información Cada tarea X1 Xn recibe una instrucción de arranque desde el programa de sistema SP (S3), y comienza la ejecución del procesamiento, cuando se recibe una parada instrucción b después de un cierto tiempo T (S4), para ser salvo Continúa la ejecución hasta el punto donde no hay más. Si la información para ser salvo desaparece deja de funcionar y da salida a una tarea de conmutación solicitud c para el programa del sistema SP (S5), el programa de sistema SP Al recibir una tarea de conmutación solicitud c de la tarea X1 Xn dio indicación b de la parada Enseña la activación de la siguiente tarea (S 6, S 2).
Campo técnico
Campo técnico La presente invención se refiere a un método de control multitarea y a un controlador programable multitarea de un controlador programable que procesa un programa de secuencia de manera multitarea.
Antecedentes de la técnica
Convencionalmente, se ha propuesto un controlador programable (en lo sucesivo denominado secuenciador) que procesa programas de secuencia de manera multitarea. Es decir, el programa de secuencia se puede dividir en una pluralidad de tareas (o un programa de secuencia se puede ejecutar simultáneamente como una tarea única) o una parte del programa del sistema (sistema operativo) Instruyendo la ejecución y la detención de cada tarea por el programa de control, que es el programa de control que ejecuta el programa de control para procesar al ejecutar las tareas de ejecución y procesar cada tarea en paralelo en apariencia. Cada tarea está controlada en un intervalo de tiempo y la tarea de ejecución se fuerza en un intervalo de tiempo relativamente corto (generalmente un tiempo fijo) para que una tarea no ocupe la unidad de procesamiento central (CPU) durante un largo período de tiempo. . Las instrucciones para tal procesamiento se pueden describir en un lenguaje dedicado del secuenciador (actualmente usando un BASIC dedicado).
La figura 3 (a) muestra un procedimiento de procesamiento en la unidad de procesamiento central de tipo multitarea descrita anteriormente (es decir, programa de sistema). Supongamos que la cantidad de tareas es my el número de tareas es n. Además, el orden de procesamiento de cada tarea es fijo, y el tiempo de ejecución de cada tarea es un tiempo fijo. Cuando se inicia el procesamiento del programa de secuencia, el número de tarea n se inicializa a 0 (S1). A continuación, el número de tarea se incrementa, el número de tarea se establece en 1 (S2) y la tarea cuyo número de tarea es 1 se instruye para que se ejecute y se activa (S3). A continuación, cuando haya transcurrido un cierto período de tiempo, indique detenerse en la tarea con la tarea número 1 (S4). En este momento, dado que la tarea instruida para detenerse se detiene forzosamente incluso cuando se está ejecutando, la información que se está ejecutando se guarda temporalmente en una memoria, registro (en lo sucesivo, memoria) Tengo que esperar Es decir, la información que se está ejecutando se guarda en la memoria (S5), y cuando se activa a continuación, la información guardada se lee y el procesamiento se reanuda desde el estado en el momento de la ejecución anterior.
A partir de entonces, se determina si o no realiza todas las tareas (S6), si la tarea restante incrementa el número de tarea n (S2), se inicia la tarea como se ha descrito anteriormente se repite paradas, el ahorro de información . Después de ejecutar todas las tareas una vez de esta manera, se juzga si el programa de secuencia ha finalizado o no. Si no se completa, el número de tarea n se inicializa de nuevo (S1) y se repite el proceso anterior.
Si cada tarea se conmuta y se ejecuta secuencialmente como se describió anteriormente, cada tarea X 1 Xn se ejecuta en el orden que se muestra en la figura 3 (b). En la figura 3 (b), una instrucción para iniciar la tarea X 1 X n se indica con a, y una instrucción de detención se indica mediante b, y el tiempo desde el inicio hasta la detención es el tiempo de procesamiento T por tarea X 1 X n. En la figura, α indica el tiempo para guardar información en la memoria después de cada tarea X 1 Xn se detiene. Además, como se indica por las flechas en la figura 3 (b), cada tarea X1 Xn recibe unilateralmente una instrucción para iniciar y detener desde el programa del sistema SP.
Tarea de solución
Como resulta evidente de la descripción anterior, la tarea X1 Xn son el tiempo en rodajas controlada por un tiempo predeterminado, y a partir unilateralmente de un programa del sistema, ya que está destinado a recibir una instrucción para parar, entonces la ejecución durante la parada de tareas X1 Xn En preparación para la reanudación, es necesario guardar la información en el momento de detenerse en la memoria. En otras palabras, cada tarea X1 Xn Cada vez que la parada, allí que se necesita tiempo para guardar información α antes de la ejecución de las siguientes tareas X1 Xn, cada α tiempo hasta el inicio de tareas Detiene X1 Xn Se produce un retraso, y el tiempo de ejecución del programa de secuencia aumenta en consecuencia. Como resultado, el rendimiento por unidad de tiempo disminuye, y se producen problemas como la imposibilidad de aplicarlo al equipo que requiere control en tiempo real, por ejemplo.
La presente invención se ha realizado en vista de las circunstancias anteriores, y su objeto es mediante la reducción del tiempo requerido para la conmutación de tareas, método de control de multitarea controlador programable que más que nunca el rendimiento por unidad de tiempo Y un controlador programable multitarea.
Solución
En la invención de la reivindicación 1, cuando se procesa un programa de secuencia que tiene una pluralidad de tareas, las tareas de ejecución se conmutan instruyendo el inicio y la detención de cada tarea desde el programa del sistema, y ​​una pluralidad de tareas aparentemente se realizan en paralelo. en el controlador programable de manejar, cuando cada tarea es detenido por el programa del sistema se indica después de comenzar, se emite una petición de conmutación de tarea después de continuar funcionando hasta el momento en que la información que se guarda y después, cuando el tope es instruido se elimina en el programa del sistema El programa del sistema indica la activación de la siguiente tarea al recibir una solicitud de cambio de tarea de la tarea que instruyó el paro.
En la invención de la reivindicación 2, ejecuta una memoria de programa para almacenar un programa de secuencia que tiene una pluralidad de tareas, una memoria de sistema para almacenar un programa de sistema, un programa de secuencia almacenado en la memoria de programa de acuerdo con un programa de sistema almacenado en la memoria del sistema Cuando el programa del sistema comprende una unidad de instrucción de inicio que ordena el inicio de cada tarea del programa de secuencia, una unidad de instrucción de detención ordena detener la tarea de ejecución después de un tiempo predeterminado desde una instrucción de activación por la unidad de instrucción de activación. y una unidad de conmutación de tareas para activar la siguiente tarea por la unidad de instrucción de inicio después de especificar la tarea petición de conmutación se emite a partir de la tarea de ejecución en respuesta a la instrucción de parada por la sección de instrucción de interrupción de las siguientes tareas a realizar tareas, cada una , Cuando la parada se instruye desde el programa del sistema, la parada Que comprende una unidad de control de parada para emitir una petición de conmutación de tareas para el programa del sistema después continuar funcionando hasta el momento la información que desee guardar y más tarde, cuando la indicada se elimina.
De acuerdo con la invención de la reivindicación 1, 2, después de la instrucción de parada del programa de tareas del sistema, emite una petición de conmutación de tareas para el programa de sistema después continuar funcionando hasta el momento en que la información sea guardada se pierde, la tarea en el programa del sistema Al recibir la solicitud de cambio, indica a la siguiente tarea que se inicie. Por lo tanto, la tarea de ejecución no necesita guardar la información a continuación, reanudar la ejecución de la tarea a la hora de dar salida a la petición de conmutación de tareas, el tiempo que tarda el ahorro de la información no es necesaria en el método convencional. Como resultado, se acorta el tiempo requerido para cambiar entre tareas, lo que conduce a una mejora en la velocidad de procesamiento como un todo.
Aquí, para continuar funcionando hasta el momento en que la información que se ha salvado se elimina generalmente es necesario almacenar la información en el momento de parada para reanudar la ejecución de la misma tarea siguiente, cuando la fuerza de tareas Detiene Esto significa que la ejecución continúa hasta el descanso donde la información para reanudar la ejecución se vuelve innecesaria, y después de que se recibe la instrucción de detener la tarea, el proceso hasta el punto en que la información de reanudación se vuelve innecesaria Y luego detiene la ejecución. En otras palabras, la tarea puede no detener inmediatamente la ejecución de acuerdo con una instrucción para detenerse desde el programa del sistema, sino que detiene la ejecución después de alcanzar el corte, entrega la solicitud de cambio de tarea al programa del sistema y pasa a la siguiente tarea Lo es
Ejemplos
La Figura 2 muestra la configuración básica del secuenciador. Como es bien sabido, el secuenciador está provisto de una unidad de procesamiento central (CPU) 1 compuesto por un microprocesador, el programa de sistema y el sistema almacena el (sistema operativo) de memoria (ROM y RAM) 2, una memoria de programa (ROM para almacenar un programa de secuencia Una memoria de datos (RAM) 4 para almacenar temporalmente los datos intercambiados entre el objetivo de control y el objetivo de control, una E / S de entrada / salida 5 que es una interfaz con el objeto controlado, una fuente de alimentación (no mostrada) . Además, se proporciona una interfaz de conexión de dispositivo de soporte 6 para conectar un dispositivo de soporte para crear y modificar programas de sistema y programas de secuencia, y para supervisar el funcionamiento del secuenciador.
Para ejecutar un programa de secuencia de forma multitarea, el programa de secuencia se describe en unidades de tareas, y el programa del sistema se describe utilizando un lenguaje dedicado (aquí se usa un BASIC dedicado). La presente invención se caracteriza porque el control de la división en el tiempo se realiza mediante el procedimiento que se muestra en la figura 1 (a). Aquí, el número de tarea n se asigna a cada tarea, y se supone que el número de tareas es m. Es decir, cuando se inicia el procesamiento del programa de secuencia, como en el método convencional, el número de tarea n se inicializa a 0 (S1), y el número de tarea n se incrementa a 1 (S2). A continuación, el programa del sistema instruye a la tarea cuyo número de tarea es 1 (S3) y ejecuta la tarea con el número de tarea 1. Después de eso, cuando ha transcurrido un cierto período de tiempo, el programa del sistema solicita que la tarea que tiene la tarea número 1 se detenga (S4). El procesamiento hasta ahora es el mismo que el método convencional. Sin embargo, en la presente invención, incluso si hay una solicitud para detener la tarea desde el programa del sistema, la tarea no se detiene inmediatamente sino que continúa la ejecución hasta que no haya más información para guardar en el lado de la tarea. Si la información que se guarda en el lado tarea se desvanece solicitud de conmutación de tareas se produce a partir de la tarea en el programa del sistema (S5), al recibir una solicitud de conmutación de tareas por el programa del sistema, se determina si o no realizar todas las tareas (S6) Si las tareas que no se ejecutan permanecen, el número de tarea n se incrementa (S2) y se inicia la siguiente tarea (S3). Después de ejecutar todas las tareas, se determina si el programa de secuencia ha finalizado o no (S 7). Si el programa de secuencia no ha finalizado, el número de tarea n se inicializa nuevamente y se repite el proceso anterior.
Por cierto, la información que se guardará en el lado de la tarea significa la información necesaria para reiniciar la ejecución de la tarea a continuación. Si pregunte por lo tanto detener la tarea cuándo decir que delimita º tarea, no sólo no hay necesidad de almacenar la información en preparación para la reanudación de la ejecución de las tareas, la información también durante la ejecución de las tareas que se intercambiará entre las tareas A un lugar predeterminado, como una memoria, un registro, un dispositivo de almacenamiento externo, etc. Eventualmente, no es necesario guardar información en el momento de detener la tarea.
Es decir, como se muestra en la Fig. 1 (b) detener, cuando el programa de sistema SP ordena el inicio para cada tarea X1 Xn, tarea X1 Xn se lleva a cabo, después de un tiempo T predeterminado a partir de la instrucción de una bota B. En este momento, entre la información de la tarea X1 Xn ser salvado en preparación para reiniciar la próxima ejecución habrá continuará funcionando, una tarea de conmutación petición c para el programa del sistema SP desde el Xn X1 tarea Si la información que se guarda es desvanece . Como la tarea X 1 Xn se detiene en el momento en que se produce la petición de conmutación de tareas c, no hay información que guardar, de modo que solo la instrucción a para comenzar la siguiente tarea se realiza en el programa del sistema SP. De esta forma, cada tarea X 1 Xn se ejecuta secuencialmente sin guardar información cada vez que se detiene la tarea X 1 Xn. Aquí, si el tiempo desde la instrucción b de tareas Detiene X1 Xn hasta que se indique el comienzo de la siguiente tarea se genera X1 y Xn .beta.n ß1, el tiempo de cada tarea X1 Xn ocupa la ejecución de una sola vez, T + .beta.i (I = 1, 2, ..., n). En el método convencional, porque el tiempo era T + alfa, si .beta.i ≒ alfa, tarea de tiempo X1 Xn ocupa la ejecución de uno no causa mucha diferencia, el tiempo .beta.i es sobre todo realizar tareas X1 Xn Y el tiempo α es el tiempo utilizado para evacuar la información. Por lo tanto, en comparación con el método convencional, el método de la presente invención requiere un período de tiempo más largo para usar la unidad de procesamiento central 1 para ejecutar el programa de secuencia, Significa que la velocidad de procesamiento aumenta sustancialmente. En otras palabras, si se realiza el mismo procesamiento que el método convencional al mismo tiempo, la carga por unidad de tiempo de la unidad de procesamiento central 1 (programa del sistema) se reduce, de modo que incluso si se realiza el mismo procesamiento que antes. Se hace posible usar la unidad de procesamiento central 1 que tiene una capacidad de procesamiento inferior a la unidad convencional. Además, si la capacidad de procesamiento de la unidad de procesamiento central 1 es aproximadamente la misma que la convencional, el control en tiempo real es más fácil de realizar que el método convencional.
Efecto de la invención
La invención como se ha descrito anteriormente, cuando se recibe una instrucción para detener de un programa del sistema en cada tarea, emite una petición de conmutación de tarea después continúe funcionando hasta el momento en que la información se guarda después de recibir una instrucción de parada es eliminado en el programa del sistema y, puesto que el programa del sistema da una instrucción para iniciar al recibir una solicitud de conmutación de tareas a la siguiente tarea, la tarea de ejecución no necesita guardar la información a continuación, reanudar la ejecución de la tarea a la hora de dar salida a la petición de conmutación de tareas, En el método convencional, el tiempo requerido para guardar información se vuelve innecesario, y el tiempo requerido para cambiar de tarea se acorta, lo que conduce a una mejora en la velocidad de procesamiento como un todo.
Muestra la realización de la figura 1 la presente invención es una vista explicativa del funcionamiento que muestra un (a) es un diagrama de flujo que muestra el procedimiento de procesamiento, (b) el estado de ejecución de la tarea.
La figura 2 es un diagrama de bloques que muestra una configuración esquemática del secuenciador.
3 (a) es un diagrama de flujo que muestra un procedimiento de procesamiento, y la figura 3 (b) es un diagrama explicativo de operación que muestra el estado de ejecución de una tarea.
1 unidad de procesamiento central
2 memoria del sistema
3 memoria de programa
4 memoria de datos
5 I / O I / O
6 Interfaz de conexión de interfaz de soporte
una instrucción de lanzamiento
b Indicación de parada
c Solicitud de cambio de tareas
Programa del sistema SP
Tarea X1 Xn
Reclamo
Controlador programable cuando se procesa un programa de secuencia que tiene la reivindicación 1 una pluralidad de tareas, el cambio de tarea de ejecución instruyendo al inicio y parada para cada tarea del programa de sistema, para el procesamiento en paralelo con las aparentes múltiples tareas en el, ya que cada tarea se detiene por el programa del sistema se indica después del inicio, y la salida después continuar funcionando hasta el momento en el que la información se guarda y después, cuando el tope se instruye elimina la solicitud de cambio de tarea para el programa del sistema, un programa del sistema En el que cuando se recibe una solicitud de cambio de tarea de una tarea que recibió instrucciones de detenerse, se instruye un comando para iniciar una próxima tarea.
Una memoria de programa para almacenar un programa secuencia que tiene la reivindicación 2 múltiples tareas, y la memoria del sistema para almacenar un programa de sistema, una unidad central de procesamiento para ejecutar un programa de secuencia almacenado en la memoria de programa de acuerdo con un programa de sistema almacenado en la memoria del sistema que comprende un programa de sistema, una sección de instrucción de inicio para instruir el inicio para cada tarea en el programa de secuencia, una sección de instrucción de parada para instruir a la parada de la tarea de ejecución de instrucción de inicio por la unidad que da instrucciones de activación después de un cierto tiempo, la sección de instrucción de parada cuando la petición de conmutación de tarea se emite desde la tarea de ejecución en respuesta a una instrucción de parada por la sección de instrucción de inicio después de especificar las siguientes tareas para realizar una tarea y una unidad de conmutación de tareas para activar la siguiente tarea, cada tarea, el programa del sistema Cuando se instruye a la parada, cuando se instruye a la parada Tratamiento o controlador programable, caracterizado porque comprende una unidad de control de parada para emitir una tarea solicitud al programa de sistema después de continuar funcionando hasta que el tiempo de la información para ser salvado se elimina más tarde de conmutación.
Dibujo :
Application number :1997-034514
Inventors :松下電工株式会社
Original Assignee :吉田卓弘