En la siguiente sección se incluyen los distintos tipos de tarea disponibles para el programa, junto con una descripción de las características de los tipos de tarea.
A una tarea cíclica se le asigna un tiempo de ciclo fijo con el valor Intervalo de la sección Tipo de la subficha Configuración de esa tarea. Cada tipo de tarea cíclica se ejecuta así:
1. Leer entradas: Los estados de entrada física se escriben en las variables de memoria de entrada %I y se ejecutan otras operaciones del sistema.
2. Procesamiento de la tarea: se procesa el código de usuario (POU, etc.) definido en la tarea. Las variables de memoria de salida %Q se actualizan según las instrucciones del programa de aplicación pero no se escriben todavía en las salidas físicas durante esta operación.
3. Escribir salidas: Las variables de memoria de salida %Q se modifican con cualquier forzado de salida que se haya definido; sin embargo, la escritura de las salidas físicas depende del tipo de salida y de las instrucciones utilizadas.
Para obtener más información, sobre cómo definir la tarea de ciclo de bus, consulte EcoStruxure Machine Expert - Guía de programación y Configuración de Modicon M251 Logic Controller.
4. Tiempo restante del intervalo: El firmware del controlador lleva a cabo el procesamiento del sistema y otras tareas de menor prioridad.
NOTA: Si define un periodo demasiado corto para una tarea cíclica, se repetirá inmediatamente después de la escritura de las salidas y sin ejecutar otras tareas de prioridad inferior o sin ningún procesamiento del sistema. Esto afectará a la ejecución de todas las tareas y debido a que el controlador excederá los límites de watchdog del sistema, se generará una excepción de watchdog del sistema.
NOTA: Cuando el tiempo de ciclo de tarea se establece en un valor menor de 3 ms, la duración real de la tarea debe monitorizarse primero desde la pantalla Supervisión de tareas durante la puesta en marcha para asegurarse de que es considerablemente menor que el tiempo de ciclo de tarea configurado. Si es mayor, no se podrá cumplir el ciclo de tarea sin provocar un timeout del watchdog y una transición del controlador a un estado HALT. Para evitar esta condición hasta cierto punto, cuando el tiempo de ciclo de tarea se establece en un valor menor que 3 ms, se imponen límites reales de +1 ms en el caso de que, en un ciclo determinado, el tiempo de ciclo calculado supere ligeramente el tiempo de ciclo configurado.
NOTA: Obtenga y defina el intervalo de una tarea cíclica por aplicación mediante las funciones GetCurrentTaskCycle y SetCurrentTaskCycle (Consulte la Guía de la biblioteca Toolbox Advance para obtener más información).
Una tarea de ejecución libre no tiene duración fija. En la modalidad de ejecución libre, cada análisis de tareas empieza cuando se ha terminado el anterior análisis y después de un corto periodo de procesamiento del sistema. Cada tipo de tarea de ejecución libre se ejecuta así:
1. Leer entradas: Los estados de entrada física se escriben en las variables de memoria de entrada %I y se ejecutan otras operaciones del sistema.
2. Procesamiento de la tarea: se procesa el código de usuario (POU, etc.) definido en la tarea. Las variables de memoria de salida %Q se actualizan según las instrucciones del programa de aplicación pero no se escriben todavía en las salidas físicas durante esta operación.
3. Escribir salidas: Las variables de memoria de salida %Q se modifican con cualquier forzado de salida que se haya definido; sin embargo, la escritura de las salidas físicas depende del tipo de salida y de las instrucciones utilizadas.
Para obtener más información, sobre cómo definir la tarea de ciclo de bus, consulte EcoStruxure Machine Expert - Guía de programación y Configuración de Modicon M251 Logic Controller.
4. Procesamiento del sistema: El firmware del controlador lleva a cabo el procesamiento del sistema y cualquier otra tarea de prioridad inferior (por ejemplo, gestión de http, gestión de Ethernet o gestión de parámetros).
NOTA: Si desea definir el intervalo de tareas, consulte Tarea cíclica.
Este tipo de tarea está controlada por eventos y se inicia mediante una variable de programa. Se inicia en el flanco ascendente de la variable booleana asociada al evento activado, salvo que se le adelante una tarea de mayor prioridad. En ese caso, la tarea de eventos se iniciará según lo establecido en las asignaciones de prioridad de tareas.
Por ejemplo, si ha definido una variable denominada my_Var y quiere asignarla a un evento, siga estos pasos:
Paso |
Acción |
---|---|
1 |
Haga doble clic en TAREA, en Aplicaciones. |
2 |
Seleccione Evento en la lista Tipo de la ficha Configuración. |
3 |
Haga clic en el botón Accesibilidad Resultado: aparece la ventana Accesibilidad. |
4 |
Navegue por el árbol del cuadro de diálogo Accesibilidad para buscar y asignar la variable my_Var. |
NOTA: Cuando la tarea de evento se activa a una frecuencia demasiado alta, el controlador pasará al estado HALT (excepción). La tasa máxima de eventos aceptable es de 6 eventos por milisegundo. Si la tarea de eventos se activa a una frecuencia mayor que esta, se registra el mensaje "ISR Count Exceeded" en la página de registro de la aplicación.
Este tipo de tarea está controlada por eventos y se inicia mediante la detección de un evento de hardware o un evento de función relacionado con el hardware. Se inicia cuando se produce el evento, salvo que se le adelante una tarea de mayor prioridad. En ese caso, la tarea Evento externo se iniciará como lo indiquen las asignaciones de prioridad de tareas.
La tarea de evento externo se asocia con el evento de sincronización de CAN. Para asociar el evento CAN_1_SYNC a una tarea de evento externo, selecciónelo en la lista desplegable Evento externo de la ficha Configuración.
NOTA: La sincronización de CAN es un objeto de evento específico que depende de la configuración del Administrador CANopen.