MULTITAREA

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 6

1

Instituto Tecnológico Superior


de Coatzacoalcos
Ingeniería Eléctrica

CONTROL LOGICO PROGRAMABLE

DOCENTE:

ING.JESUS ALBERTO CRUZ TOY

ALUMNO (A):

Delaurens Alvarez Jorge Oriol

GRADO Y GRUPO:

8° SEMESTRE - GRUPO C

PERIODO:

Febrero – junio 2020

COATZACOALCOS, VERACRUZ
Introducción.
En temas anteriores se han discutido las configuraciones de la unidad central de
proceso, CPU, y de las interfaces específicas de entrada/salida, y se ha comentado su
carácter de soporte hardware para la interpretación y ejecución de las órdenes de
usuario, codificadas e introducidas en forma de programa. Ya entonces, se comentaba
la posibilidad de escribir estos programas según estructuras mono y multitarea.
Definiendo la tarea como el conjunto de instrucciones ejecutables que describen un
tratamiento limitado y completo sobre variables de proceso, una aplicación en
estructura monotarea es aquella desarrollada sobre una tarea única, que contiene el
total del programa con todas sus variables de entrada y salida y sentencias de
operación, mientras que, por contra, una aplicación multitarea será aquella que divide
el programa en subconjuntos, independientes o no, que forman tareas aisladas,
normalmente en correspondencia con tratamientos particulares de a aplicación
(vigilancia, programa secuencial, comunicaciones, etc.).
En estructuras monotarea el programa o tarea única se ejecuta periódicamente,
siguiendo un único ciclo de operación, mientras que las estructuras multitarea
desarrollan simultáneamente múltiples ciclos durante la ejecución, uno por cada tarea.
Estas tareas, además, pueden o no ejecutarse periódicamente.
Obsérvese cómo, en cualquier caso, •el ciclo de operación de la tarea sea única o una
más dentro de la aplicación, recorre la conocida secuencia de cuatro pasos:
• • adquisición de entradas,
• • escrutinio del programa (de la tarea),
• • actualización de salidas.
• • servicio a periféricos o terminales de explotación.

Así pues, la tarea constituye una entidad de programación completa, con sus propias
entradas, salidas, variables internas y sentencias de control.
Esta circunstancia, que permite optimizar la ejecución utilizando estructuras multitarea
si se dispone de un hardware multiprocesador con procesadores adaptados a los
distintos tipos de tratamientos (booleano, regulación, tratamiento de textos, etc.),
obliga, sin embargo, a utilizar un gestor de recursos en estas aplicaciones para
eliminar la conflictividad en el acceso a los medios (recursos).
El gestor, un ente software que el usuario puede parametrizar para asignar las
prioridades a las tareas de su programa, puede correr sobre una CPU específica o
coordinadora (por ejemplo. la unidad 923 A de Siemens), o sobre la misma CPU
principal (por ejemplo, en el autómata TSX 87-40 de Telémecanique.

Dado que los procesadores periféricos montados en bastidor se consideran como


parle de una misma unidad de control, los programas que corren sobre ellos, con
lectura y generación de señales de planta sin intervención de la CPU principal, se
consideran también como parte de un tratamiento multitarea.
La clasificación de las estructuras de programación en mono y multitarea, muy
dependientes como se ha visto de la configuración hardware de la unidad de control,
no debe confundirse con las metodologías de programación que vayan a utilizarse. En
efecto, una vez asignada a la aplicación una estructura mono o multitarea para su
programación, cada una de las tareas resultantes debe ser programada según una
secuencia de instrucciones.
La programación es lineal si las instrucciones de un proceso o automatismo industrial
están ordenadas una tras otra, en el mismo orden en que se van a consultar y,
eventualmente, a ejecutar.
Por contra, la programación estructurada cuando la tarea de control está dividida en
subprogramas o módulos que se corresponden con distintas funciones dentro del
mando general, y cuya ejecución puede ser ordenada varias veces dentro de un
mismo ciclo de operación del autómata.
Aunque, en general, la programación estructurada de una tarea resulta más eficiente
cuando se utiliza sobre autómatas con coprocesadores en su CPU, especializados en
las funciones particulares de cada módulo, es también posible su empleo sobre
autómatas de CPU simple, que se encarga de ejecutar uno tras otro los módulos en el
orden en que sean llamados por el programa raíz.
En esta unidad se discuten estas diferentes estructuras y metodologías de
programación, y se comenta la particular programación de módulos pregrabados por el
fabricante para ejecutar tareas concretas o gobernar interfaces específicas, módulos
que sólo necesitan del usuario la parametrización que los adapte a su aplicación
concreta.

Tema 5.3: Programación multitarea.


En estructuras monotarea, el programa o tarea única se ejecuta periódicamente de
forma cíclica. Si este programa principal es capaz de acceder a subprogramas o
módulos, con intercambio o no de variables, se dice que está estructurado. En caso
contrario, el programa será lineal.
Los autómatas con coprocesadores en la unidad central, o de unidad de control
multiprocesador. pueden admitir la especialización de las sentencias incluidas en las
subrutinas o módulos (tratamiento de textos, comunicaciones, operaciones aritméticas,
etc.), de forma que su ejecución queda reservada a alguna de las CPU disponibles,
especialmente adaptadas para obtener la máxima precisión y rapidez en el
tratamiento.
Los sistemas de control más complejos, que suelen exigir operaciones entre las
variables independientes entre sí en el tiempo, se programan con tratamientos
multitarea, donde cada tarea se compone de un programa principal, ejecutado de
forma cíclica periódicamente o no y, eventualmente, subprogramas locales (es decir,
en programación estructurada o lineal).
Cada tarea constituye una entidad de programación completa, con sus propias
entradas, salidas, sentencias y ciclo de operación, siendo el programa de usuario el
conjunto de todas las tareas previstas para su ejecución.
Estas tareas parciales, que funcionan de forma independiente entre sí. intentan actuar
de forma concurrente sobre los recursos del sistema, por lo que debe existir un
elemento planificador o supervisor que asigne dichos recursos.
Dependiendo de la estructura hardware de la unidad de control, mono o multiproceso,
este supervisor puede actuar de dos formas:
• • Decidiendo, en cada instante, qué tarca estará activa y tendrá acceso a todos
los recursos.
• • Gestionando el acceso a buses de los distintos procesadores, que estarán
ejecutando simultáneamente en el tiempo (en paralelo) las tareas que tienen
asignadas.

Sea una u otra la acción desencadenada por el supervisor, son posibles varios
métodos de planificación o decisión, aunque los más utilizados en autómatas son el
prioritario y el de gestión de tiempos.
En el primer caso, a cada tarea se le asigna una prioridad, y el supervisor activa la
tarea más prioritaria de entre todas las que lo soliciten y estén habilitadas. Este
método es típico para sistemas de tiempo real industriales, donde existen subprocesos
con constantes de tiempo distintas, e interesa fijar las prioridades de atención según la
criticidad en el tiempo de respuesta que exige cada subproceso.
El método de gestión de tiempo o tiempo compartido («time sharing») consiste en
asignar unidades de tiempo a cada tarea, unidades que constituirán el tiempo de ciclo
deseado para ella.
Una vez arrancado, el autómata irá ejecutando las tareas según esta plantilla de
tiempos, resolviendo las simultaneidades que se presenten en atención a la mayor o
menor prioridad establecida para las tareas involucradas. De esta forma, se asegura el
cumplimiento del tiempo de ciclo lijado para la tarea más prioritaria, siendo en las
demás tanto menos probables de cumplirse conforme se va descendiendo hacia las
tareas definidas como menos prioritarias.
Así, por ejemplo, los autómatas de la serie TSX 7 de Telémecanique pueden ejecutar
«en paralelo» (casi en paralelo, ya que no existe simultaneidad en el tiempo), las
siguientes tres tareas periódicas, ordenadas de mayor a menor prioridad (figura 1):
• • 1 tarea rápida (de 15 a 20 ms).
• • 1 tarea maestra que contiene el tratamiento secuencia! y combinacional de la
aplicación (de 20 a 100 ms).
• • 3 tareas auxiliares, que contienen las sentencias definidas como menos
críticas: diálogo con el operador, tratamiento de textos, salida a impresora, salida
analógica a registradores, etc. (de 100 a 300 ms).

Además de las tareas periódicas, estos autómatas pueden ejecutar una tarea
interrupción no periódica muy rápida (< 1 ms), asíncrona y prioritaria a todas las
demás, cuya ejecución se desencadena bajo una señal que proviene de sucesos
externos: posicionamiento de ejes, contaje rápido, etc.
Esta tarea se tratará de nuevo en el apartado dedicado a interrupciones, er este
mismo capítulo.
La tarea maestra es una tarea periódica y obligatoria, que ejecuta los tratamientos
combinacionales y secuenciales generales de la aplicación. Se activa
sistemáticamente desde el supervisor, y permite habilitar/deshabilitar desde ella a las
otras tareas.
La tarea rápida es la de mayor prioridad de entre todas las periódicas. El tratamiento
de esta tarea debe ser lo más corto posible, tanto para permitirle cortos tiempos de
respuesta y alta frecuencia de escrutinio desde el supervisor, como para no perjudicar
innecesariamente a las tareas menos prioritarias.
Las tareas auxiliares son tareas periódicas dedicadas a la atención de los tratamientos
más lentos o menos críticos, como la regulación sobre largas constantes de tiempo, el
intercambio de datos y estadísticas con un PLC maestro u ordenador, etc.
Cada una de estas tareas se procesa, si no es interrumpida por otra de mayor
prioridad, según la conocida secuencia de adquisición de estados tratamiento del
programa y actualizado de salidas, pero intercalado en la secuencia un reloj que fija el
periodo o tiempo de ciclo de escrutinio fijado en la plantilla de tiempos, según se
muestra en la figura 2.

El tratamiento de esta estructura de programación por parte de la unidad de control es


el siguiente (figura 3):
• • Ejecución de la tarea maestra, desde que se pone el autómata en RUN, y
según la frecuencia (periodo) fijada.
• • Ejecución completa de la tarea rápida (si no hay tarea interrupción), durante
su tiempo de ciclo y a la frecuencia fijada, siempre y cuando se haya habilitado la
ejecución desde la tarea maestra.
• • Ejecución de las tareas auxiliares, a las frecuencias fijadas, siempre que se
haya validado su activación desde la tarea maestra, y si las tareas mas prioritarias
demandantes han terminado su ciclo.
La estructura anterior se define sobre un autómata mono proceso, que sólo ejecuta, en
cada instante de tiempo, una de las tareas programadas, la más prioritaria de entre las
que demandan atención.
En autómatas multiproceso, un procesador coordinador asigna a cada CPU el acceso
a buses internos de la unidad de control, según una cierta ordenación, prioritaria o no.
Cuando un procesador tiene el control de los buses, intercambia información a través
de ellos con los demás procesadores (por ejemplo, para actualizar alguna de sus
variables de cálculo) y con las memorias imagen de entradas/salidas, si son comunes
a la unidad. Mientras, cada procesador ejecuta, simultáneamente en el tiempo con los
demás, la tarea que tenga introducida en su memoria de programa, independiente de
las otras que forman el programa. De esta forma, y dado que un tratamiento multitarea
en multiproceso no presenta interrupciones ni interferencias entre unas tareas y otras,
se obtiene la mayor velocidad de ejecución posible para el conjunto de la aplicación
del usuario.
En una aplicación multitarea, y dependiendo de la unidad de programación utilizada,
podría programarse además cada tarea en un lenguaje de programación diferente
(gráfico o literal), buscando el más adaptado al tratamiento definido en ella. De esta
forma podrían darse, para una optimización del trabajo de programación y ejecución,
tratamientos multitarea escritos en multilenguaje y corriendo sobre autómatas
multiproceso.

Conclusión.
Concluimos que la diferencia en el procesamiento de estos dos tipos de programas
estructurados radica en que el primero funcionando con microprocesadores mono
tarea, ejecutan los diversos módulos o bloques de programación según un
procesamiento secuencial, es decir. uno a continuación del otro. mientras que el
procesador multifunción además del procesamiento secuencial puede ejecutar el
programa estructurado independientemente si se ejecutó el bloque anterior. Esto
significa, que si en algún momento durante el proceso de barrido del programa en el
sistema de control se origina una contingencia. puede ejecutarse una tarea de
interrupción sin tener que esperar el barrido total del programa
Los PLCs multifunción desarrollados en base a microprocesadores multitarea se
caracterizan por su mayor velocidad para atender diferentes programas a la vez y en
tiempo real. además, por su mayor capacidad de memoria para ejecutar varios
programas simultáneamente sin originar conflictos. Así también, en estos
procesadores la concepción del tratamiento secuencial es en base a la división en
bloques de programas. algo así como subrutinas, que es básicamente el concepto de
la programación estructurada.

También podría gustarte