¿Qué son las tareas de PLC (continua, periódica y de evento)?
Los PLC más viejos corrían un solo barrido eterno: leer entradas, resolver todo el programa, escribir salidas, repetir tan rápido como pudieran. Los controladores modernos organizan la ejecución en tareas en su lugar, dejando que distintas partes de un programa corran en distintos agendados. Una tarea continua corre siempre que nada más urgente esté pendiente, las tareas periódicas corren en intervalos de tiempo fijos, y las tareas de evento corren cuando un disparador se activa. Esta estructura le da a un ingeniero control sobre qué corre cuándo, para que los cálculos críticos en tiempo se ejecuten en un agendado predecible en lugar de derivar con lo que el barrido general esté haciendo.
Tareas y agendado de PLC en una línea: Las tareas de PLC son contenedores agendados para el código de programa en los controladores modernos. Una tarea continua corre repetidamente siempre que ninguna tarea de mayor prioridad necesite la CPU, las tareas periódicas corren en intervalos de tiempo fijos para una ejecución determinista, y las tareas de evento corren en respuesta a un disparador. La prioridad de tarea decide cuál corre primero cuando más de una está lista.
Tareas continua, periódica y de evento
La tarea continua es lo más cercano al viejo barrido único. Corre una y otra vez en el fondo, consumiendo el tiempo de CPU que quede después de que las tareas más urgentes han tenido su turno. Típicamente hay una tarea continua, y es donde vive el grueso de la lógica de propósito general - la secuenciación, los permisivos y las labores de mantenimiento que necesitan correr con regularidad pero no demandan una tasa precisa y fija. Cuando una tarea de mayor prioridad vence, la tarea continua se pausa y se reanuda después.
Una tarea periódica corre en un intervalo fijo - cada tantos milisegundos - sin importar qué más esté haciendo el controlador, lo que la hace determinista. Esta es la herramienta para cualquier cosa que debe ejecutarse a una tasa conocida y estable: lazos PID que asumen un tiempo de muestreo fijo, matemática de integración y totalización, y cálculos de medición que dependen de un temporizado consistente para ser exactos. Como una tarea periódica se activa por reloj en lugar de cuando el barrido llegue a ella, su lógica se ejecuta a una tasa con la que se puede contar en lugar de una que se estira conforme el resto del programa crece.
Una tarea de evento corre en respuesta a que algo ocurra en lugar de por un temporizador - una transición de entrada específica, la llegada de una pieza de dato consumida, u otro disparador que la plataforma soporte. Esto conviene a la lógica que debe reaccionar de inmediato a una ocurrencia discreta, como capturar datos en el instante en que un evento se activa o responder a una señal externa rápida sin esperar el siguiente barrido de una tarea continua. Las tareas de evento permiten al controlador responderle al mundo cuando este llama en lugar de solo cuando el controlador se asoma.
Prioridad, traslape y mantener honesto el agendado
Cuando más de una tarea está lista para correr, la prioridad decide el orden. Las tareas de mayor prioridad interrumpen a las de menor prioridad, corren hasta completarse, y luego devuelven la CPU. Una tarea periódica de alta prioridad pausará la tarea continua en el momento en que su intervalo venza, se ejecutará, y dejará que la tarea continua retome donde quedó. Esta preferencia es cómo un controlador garantiza que su código crítico en tiempo corra a tiempo aun mientras un gran cuerpo de lógica de fondo trabaja debajo de él.
El peligro a vigilar es el traslape. Si una tarea periódica se agenda cada pocos milisegundos pero su propia lógica tarda más que ese intervalo en ejecutarse, el siguiente disparador llega antes de que la corrida previa haya terminado, y la tarea se traslapa consigo misma. El controlador reporta esto como una falla o condición de traslape, y señala que se le ha pedido a una tarea más trabajo del que su intervalo permite. El arreglo es aligerar la tarea, alargar el intervalo, o reconsiderar el esquema de prioridad para que el agendado siga siendo alcanzable.
Diseñar la estructura de tareas es por lo tanto un ejercicio de presupuesto. Cada tarea consume tiempo de CPU, y la suma de las tareas críticas en tiempo, a sus tasas configuradas, más suficiente holgura para la tarea continua, debe caber dentro de lo que el controlador puede realmente entregar. Poner solo lo que verdaderamente necesita temporizado fijo en las tareas periódicas y de evento, y dejar todo lo demás en la tarea continua, mantiene ligeras las rutas rápidas y honesto todo el agendado. Sobrecargar una tarea periódica rápida es una de las formas más comunes en que un programa por lo demás sólido empieza a arrojar fallas de traslape.
Matemática oportuna de transferencia de custodia con tareas periódicas
La medición de flujo es donde el agendado determinista justifica su costo en petróleo y gas. Los cálculos de transferencia de custodia y de asignación integran un caudal en el tiempo, y la exactitud de esa integración depende de que el cálculo corra en un intervalo consistente y conocido. Si la matemática de medición está enterrada en una tarea continua cuyo tiempo de barrido deambula conforme otra lógica se ejecuta, el intervalo de muestreo efectivo deriva, y pequeñas inconsistencias de temporizado se acumulan en error de medición a lo largo de un turno. El dinero cambia de manos sobre estas cifras, así que el temporizado tiene que ser correcto.
Colocar la matemática rápida de medición e integración en una tarea periódica resuelve esto limpiamente. El cálculo se activa a una tasa fija independiente de todo lo demás, así que cada paso de integración abarca una rebanada de tiempo consistente y conocida y el volumen totalizado se mantiene confiable. Mientras tanto el trabajo más lento - comunicaciones, actualizaciones de HMI, secuenciación y diagnóstico - vive en la tarea continua, donde una tasa de ejecución variable no hace daño. Separar lo sensible al temporizado de lo tolerante al temporizado es exactamente para lo que sirven las tareas.
Cuando estos resultados alimentan una plataforma SCADA de nube, la disciplina rinde en ambos extremos. La tarea periódica produce totales bien temporizados y exactos dentro del controlador, y una plataforma como Merobix historiza y reporta esos totales de sitios remotos sin haber introducido el error de temporizado en primer lugar. Un ingeniero que revisa cifras de custodia en un tablero está viendo valores que se calcularon en un agendado determinista en el pozo o la estación de medición, que es lo que hace defendible en lugar de solo conveniente la medición remota. Un buen diseño de tareas en el controlador es el fundamento sobre el que se construye el monitoreo remoto.
Preguntas frecuentes
¿Cuál es la diferencia entre una tarea continua y una periódica?
Una tarea continua corre repetidamente en el fondo siempre que ninguna tarea de mayor prioridad necesite la CPU, así que su tasa de ejecución varía con qué tan ocupado esté el controlador. Una tarea periódica corre en un intervalo de tiempo fijo sin importar otra actividad, dando temporizado determinista. Las tareas continuas convienen a la lógica general y de mantenimiento, mientras que las periódicas convienen a cualquier cosa que necesite una tasa estable, como lazos PID y matemática de medición.
¿Qué pasa si una tarea periódica tarda más que su intervalo?
El siguiente disparador agendado llega antes de que la ejecución actual termine, causando que la tarea se traslape consigo misma, lo que el controlador reporta como una falla de traslape. Significa que a la tarea se le ha dado más trabajo del que su intervalo permite. El remedio es reducir la carga de la tarea, alargar su intervalo, o ajustar la estructura de prioridad para que el agendado siga siendo alcanzable dentro de la capacidad de la CPU.
¿Por qué poner la matemática de medición de flujo en una tarea periódica?
Porque integrar un caudal en un total requiere un paso de tiempo consistente y conocido para ser exacto, y una tarea periódica provee exactamente ese intervalo fijo. Si la misma matemática corriera en una tarea continua, su tasa de ejecución derivaría conforme otra lógica corre, introduciendo error de temporizado que se acumula a lo largo de un turno. Correr la matemática de transferencia de custodia y totalización en un agendado periódico determinista mantiene confiables los volúmenes.
Servicios de automatización
¿Necesita convertir esta información en un sistema que funcione?
Merobix integra SCADA, programa PLC Allen-Bradley y Siemens, y diseña y fabrica tableros de control industrial.
Las solicitudes de reunión se revisan antes de confirmarse.