ES2913636T3 - Control de secuencia de módulos de programa - Google Patents
Control de secuencia de módulos de programa Download PDFInfo
- Publication number
- ES2913636T3 ES2913636T3 ES17794752T ES17794752T ES2913636T3 ES 2913636 T3 ES2913636 T3 ES 2913636T3 ES 17794752 T ES17794752 T ES 17794752T ES 17794752 T ES17794752 T ES 17794752T ES 2913636 T3 ES2913636 T3 ES 2913636T3
- Authority
- ES
- Spain
- Prior art keywords
- control
- program modules
- control equipment
- program
- execution
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Program-control systems
- G05B19/02—Program-control systems electric
- G05B19/04—Program control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/042—Program control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
- G05B19/0426—Programming the control sequence
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Program-control systems
- G05B19/02—Program-control systems electric
- G05B19/18—Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of program data in numerical form
- G05B19/414—Structure of the control system, e.g. common controller or multiprocessor systems, interface to servo, programmable interface controller
- G05B19/4148—Structure of the control system, e.g. common controller or multiprocessor systems, interface to servo, programmable interface controller characterised by using several processors for different functions, distributed (real-time) systems
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/25—Pc structure of the system
- G05B2219/25343—Real time multitasking
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/32—Operator till task planning
- G05B2219/32247—Real time scheduler
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/34—Director, elements to supervisory
- G05B2219/34411—Handling time critical and time non critical program sequences
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Human Computer Interaction (AREA)
- Manufacturing & Machinery (AREA)
- Programmable Controllers (AREA)
- Stored Programmes (AREA)
Abstract
Procedimiento para el control de secuencia de módulos de programa (21, 31, 32, 41), en el que los módulos de programa se ejecutan en un aparato de control en una instalación de automatización, y en el que los módulos de programa son parte de una aplicación de control para la ejecución en el aparato de control, y en el que el aparato de control está conformado para controlar un sistema de automatización mediante la ejecución de la aplicación de control, en el que la ejecución de la aplicación de control comprende la ejecución de los módulos de programa, que comprende facilitación de un equipamiento de control (50), en el que el equipamiento de control forma una parte del firmware del aparato de control, facilitación de varios módulos de programa (21, 31, 32, 41) que se pueden ejecutar por un sistema operativo en tiempo real, facilitación de un archivo de configuración, que presenta una configuración para controlar una secuencia de programa, en el que la configuración para módulos de programa seleccionados comprende respectivamente una identificación e información asignada para ejecutar el módulo de programa identificado respectivamente, evaluación de la información contenida en el archivo de configuración mediante el equipamiento de control, y control de secuencia de los módulos de programa seleccionados mediante la ejecución de los módulos de programa seleccionados (21, 31, 32, 41) mediante el equipamiento de control (50) dependiendo de la información especificada en el archivo de configuración, en el que los contenidos del archivo de configuración predeterminan cuál de los módulos de programa seleccionados en qué orden y dependiendo de qué evento o en qué intervalos de tiempo se ejecutan por el equipamiento de control.
Description
DESCRIPCIÓN
Control de secuencia de módulos de programa
La presente invención se encuentra en el campo de la tecnología de automatización, en particular de la tecnología de automatización industrial, y se refiere a un procedimiento para el control de secuencia de módulos de programa. Además, la presente invención se refiere a un sistema operativo en tiempo real, una unidad de control, un dispositivo de control y un producto de programa informático.
En la tecnología de automatización se puede prever un cambio, que se realiza desde el uso de lenguajes de programación clásicos al uso de lenguajes de alto nivel.
Hasta ahora, por ejemplo, la norma IEC 61131 regula la sintaxis y la semántica de los lenguajes de programación para controladores programables. Aquí se propone un conjunto unificado de lenguajes de programación para controladores programables. Este conjunto presenta con dos lenguajes de texto (lista de instrucciones y texto estructurado) y dos lenguajes gráficos (diagrama en escalera y diagrama de bloques de funciones). Además, en la norma IEC 61131 se definen las características que simplifican la comunicación entre los controladores de programa y otros componentes de un sistema automatizado.
Mediante temas actuales tal como, por ejemplo, la Industria 4,0, el Internet de las cosas o la agenda CPS de la VDI se muestra que en el futuro las instalaciones automatizadas se caracterizarán mediante una alta proporción de integración en red y software. A este respecto, habrá un cambio de la programación clásica IEC 61131-3 a modernos lenguajes de alto nivel. Hasta el año 2018, alrededor del 70 % del código utilizado debe estar fuera de los lenguajes definidos de acuerdo con IEC. A este respecto, los requisitos existentes, tal como, por ejemplo, la capacidad de funcionamiento en tiempo real y la consistencia, se complementan con una mayor flexibilidad, más seguridad y mejor capacidad de mantenimiento.
En consecuencia también resultan cambios técnicos en el futuro en la producción de controles lógicos programables y/o entornos de tiempo de ejecución.
El documento EP 3076297 A2 describe un control que está conformado para ejecutar programas de control en paralelo en ciclos más cortos utilizando un procesador multinúcleo, en el que se evitan las colisiones de comunicación porque la secuencia temporal de la comunicación de los programas de control se realiza dependiendo de las prioridades que se asignan a los programas de control.
En el documento WO 2009/037198 A1 se describe un sistema de control para una instalación técnica y un procedimiento para operar un sistema de control, en el que está previsto un entorno de secuencia, en el que se pueden utilizar diferentes administradores de tareas o programadores, en particular parametrizables diferentes, en el que está previsto usar, alejándose del principio establecido del uso del tiempo real como un parámetro de desencadenamiento firmemente anclado en el módulo de control, un parámetro de desencadenamiento editable o modificable por el usuario para el control de secuencia a través del módulo de control.
El documento WO 2013/010159 A1 describe un procedimiento para la ejecución en paralelo de una aplicación de control en un procesador multinúcleo, en el que se lleva a cabo un análisis de dependencia de datos para identificar tareas que se pueden ejecutar en paralelo (D3, Resumen).
El documento EP 2504738 B1 describe un procedimiento de control y un procedimiento para ejecutar varios programas en varios dispositivos de procesamiento que trabajan en paralelo. En este caso, se asigna un generador de señales de tiempo a cada uno de varios dispositivos de procesamiento que trabajan en paralelo, y durante su secuencia en el dispositivo de procesamiento asignado se ejecuta un procedimiento de control para la ejecución de programas.
No obstante, el uso de un generador de señales de tiempo tiene la desventaja de que se puede reducir la velocidad de procesamiento de datos en un sistema operativo en tiempo real.
Un objeto de la presente invención es especificar una solución para mejorar controles de secuencia para sistemas operativos en tiempo real.
Este objetivo se consigue de acuerdo con la invención mediante las características de la reivindicación 1. Además, el objetivo se consigue mediante un aparato de control de acuerdo con la reivindicación 12, un producto de programa informático de acuerdo con la reivindicación 13 y un soporte de datos de acuerdo con la reivindicación 14. Otras configuraciones resultan de las reivindicaciones dependientes.
En el procedimiento de acuerdo con la invención para el control de secuencia de módulos de programa se prevé una facilitación un equipamiento de control y una facilitación de un archivo de descripción que presenta la configuración del archivo de descripción para controlar una secuencia de programa. Además, el procedimiento comprende una facilitación de varios módulos de programa que se pueden ejecutar por un sistema operativo en tiempo real, en el que los módulos
de programa se crean usando uno o diferentes lenguajes de programación. Además, el procedimiento presenta un desencadenamiento de módulos de programa seleccionados mediante la ejecución de especificaciones en el archivo de descripción mediante el equipamiento de control.
El equipamiento de control se proporciona como parte del firmware de un dispositivo de control, en el que el dispositivo de control está conformado en particular como un aparato de control para controlar un sistema de automatización. Por ejemplo, el dispositivo de control sirve para leer datos de sensores y para controlar actuadores dependiendo de los datos de sensores. Con esta finalidad se ejecuta una aplicación de control en el dispositivo de control. La ejecución de la aplicación de control, es decir, la aplicación global, comprende la ejecución de varios módulos de programa. El control de secuencia de los módulos de programa se realiza mediante el equipamiento de control, que desencadena los módulos de programa seleccionados con esta finalidad mediante la ejecución de especificaciones en el archivo de descripción.
El desencadenamiento de un módulo de programa designa la ejecución o el inicio de la ejecución de un módulo de programa, en el que el módulo de programa se proporciona en particular como código de programa depositado en una memoria, ejecutable por un sistema operativo en tiempo real. Para desencadenar un módulo de programa, por el equipamiento de control se llama preferentemente una función correspondiente del sistema operativo. Qué módulos de programa en qué orden y dependiendo de qué evento o en qué intervalos de tiempo se desencadenan por el equipamiento de control se predetermina mediante los contenidos del archivo de descripción. Con esta finalidad, el archivo de descripción comprende, por ejemplo, información para identificar un módulo de programa e información asignado que, por ejemplo, predetermina una ejecución cíclica y un tiempo de ciclo asignado. Las tareas a las que están asignadas los módulos de programa también se pueden definir ventajosamente en el archivo de descripción.
El archivo de descripción se proporciona en particular en forma de archivo de texto en una memoria de un dispositivo de control y se lee por el equipamiento de control como parte del firmware del dispositivo de control en la puesta en funcionamiento o encendido del dispositivo de control. La secuencia de los módulos de programa predeterminada en el archivo de descripción se controla por el equipamiento de control mediante llamada a las funciones apropiadas del sistema operativo.
El equipamiento de control puede estar configurado como un administrador de ejecución y sincronización o un Execution and Synchronisation Manager (ESM).
Mediante el uso de un equipamiento de control semejante se posibilita una manipulación o ejecución equivalentes de programas de diferentes dominios de programación.
Por ejemplo, se pueden realizar módulos de programa que estén programados respectivamente al menos en uno de los lenguajes de programación de acuerdo con la norma IEC 61131, en Matlab/Simulink, C++, C# o JAVA o Python. Igualmente son posibles otros lenguajes de programación. De acuerdo con la norma IEC 61131 (edición 3.0, 2013-02) se especifican dos lenguajes de texto (textual languages), a saber, lista de instrucciones (IL) y texto estructurado (ST) y dos lenguajes gráficos (graphical languages), a saber, diagrama en escalera (LD) y diagrama de bloques de funciones (FBD). Estos lenguajes de programación se pueden aplicar junto con lenguajes de programación de alto nivel en un control de secuencia.
El equipamiento de control permite una configuración sencilla de tareas similar a IEC 61131-3, que permite la integración de instancias de programa de diferentes lenguajes de programación. Para ello, el equipamiento de control utiliza una serie de procesos y subprocesos del sistema operativo para posibilitar una integración de alto rendimiento en el sistema operativo subyacente en tiempo real subyacente.
Por lo tanto, se puede usar un único lenguaje de programación para todos los módulos de programa. También es posible que se usen diferentes lenguajes de programación para dos o más módulos de programa.
Al desencadenar los módulos del programa, el archivo de descripción, que también se puede designar como archivo de configuración, ya no se direcciona. Una respuesta semejante tomaría demasiado tiempo y ralentizaría el procesamiento. Más bien, el/los archivo(s) de configuración se leen cuando en el inicio del sistema y solo se ejecutan durante la fase de procesamiento. En este caso, se prevé una ejecución de la información del archivo de descripción mediante el equipamiento de control. Por tanto, las especificaciones para la ejecución de los módulos del programa resultan mediante el contenido del archivo de descripción. Estas especificaciones se proporcionan mediante una configuración del archivo de descripción. En consecuencia, los módulos del programa se desencadenan ejecutando la configuración definida en el archivo de descripción.
La configuración definida en el archivo de descripción comprende, por ejemplo, respectivamente una identificación para los módulos de programa seleccionados, por ejemplo, un nombre bajo el cual está almacenado el módulo de programa, así como información asignada para ejecutar el módulo de programa identificado respectivamente, es decir, por ejemplo, si el módulo de programa se debe ejecutar de forma cíclica o controlada por eventos. El equipamiento de control está conformado para evaluar la información contenida en el archivo de descripción y ejecuta los módulos de programa seleccionados dependiendo de la información de configuración especificada en el archivo de descripción, en el que la
identificación contenida respectivamente en el archivo de descripción es adecuada para desencadenar, es decir, ejecutar el módulo de programa respectivo con la ayuda de una función del sistema operativo.
Los módulos de programa se controlan, por ejemplo, con la ayuda de una interfaz de programación, en particular con una API (API = interfaz de programación de aplicaciones). El archivo de descripción, que se puede proporcionar, por ejemplo, como un archivo XML (XML = archivo de lenguaje de marcado extensible), sirve para configurar cuándo se direccionan los programas y, por lo tanto, se ejecutan. Con la ayuda del equipamiento de control se pueden ejecutar módulos de programa y registrarse información de estado sobre la secuencia del programa, por ejemplo, tiempos de ejecución de tareas.
El propio equipamiento de control se puede inicializar y controlar por un administrador de PLC (PLC = controlador lógico programable). Esto pone el control en RUN/STOP, por ejemplo, y lleva a cabo reinicios. Durante el funcionamiento, el equipamiento de control se dispara cíclicamente por eventos (software o hardware) para procesar una lógica de ejecución. También se pueden utilizar una pluralidad de archivos de descripción o archivos de configuración para el control de secuencia. Los otros archivos de descripción pueden contener una configuración de tareas adicionales y sus módulos de programa asignados. Por ejemplo, un archivo de descripción, por ejemplo, en forma de archivo XML, podría describir una tarea principal (Task-Main), otro archivo de descripción podría describir una tarea de control (Task-Crtl) y otro archivo de descripción podría describir una tarea de sincronización (Task-Sync). Los archivos de configuración se pueden fusionar fácilmente en una configuración si de ello no resulta ninguna contradicción. Por esta razón, el equipamiento de control o un equipamiento de control en la función de un maestro (maestro ESM) debe conocer y leer todas las configuraciones. En un modo de realización preferente, el procedimiento comprende el desencadenamiento múltiple de al menos uno de los módulos de programa por parte del equipamiento de control.
Para ello no es necesario direccionar el archivo de descripción, de modo que los tiempos de procesamiento se pueden mantener cortos. También se pueden asistir igualmente otros tipos de tareas o tipos de task, como eventos y tarea inactiva. Ventajosamente, el archivo de descripción o la pluralidad de archivos de descripción solo se leen para la configuración inicial, pero no durante la ejecución.
En otro modo de realización preferente del procedimiento está previsto que el equipamiento de control esté conformado para desencadenar al menos algunos de los módulos de programa, de tal manera que se puedan ejecutar en diferentes procesos gestionados por el sistema operativo en tiempo real.
De esta manera, es posible usar solo los módulos de programa que se requieren y también ejecutar procesos en paralelo para utilizar los recursos de tiempo de forma eficiente.
En un perfeccionamiento del procedimiento está previsto que el sistema operativo en tiempo real esté conformado para ejecutar los procesos y/o módulos de programa dependiendo de prioridades predeterminadas.
Mediante el establecimiento de prioridades, las tareas de control se pueden procesar de acuerdo con su importancia o urgencia.
Además, en un modo de realización del procedimiento, mediante el sistema operativo en tiempo real se puede prever un registro y evaluación del control de secuencia.
Para el registro y la evaluación también se pueden registrar puntos de marcado incorporados adicionalmente y se pueden generar estadísticas.
En otro modo de realización, el procedimiento puede prever una ampliación del control de secuencia mediante un módulo de programa adicional sin que se lleve a cabo un reinicio de un sistema de control.
Un sistema de control designa un control de secuencia en el que los módulos del programa típicamente se pueden cargar, iniciar, depurar, detener y descargar. El sistema de control se basa en el sistema operativo en tiempo real.
Es ventajoso que sea posible una ampliación del sistema de control sin que se tenga que interrumpir el sistema de control para un reinicio. De esta manera, la operación se puede seguir continuamente.
En otro modo de realización, el procedimiento puede presentar una división del control de secuencia en distintos procesos. Una distribución semejante puede aprovechar mejor las ventajas de los diferentes procesos del sistema operativo en tiempo real, por ejemplo, los mecanismos de protección de la memoria.
Además, en otro modo de realización del procedimiento se puede prever una creación de una evaluación estadística usando información de perfilado.
En este caso, se pueden incorporar marcas o marcados en el equipamiento de control para generar la información de perfilado. Bajo la información de perfilado se entiende información para analizar el comportamiento del tiempo de ejecución del software. Por lo tanto, los datos estadísticos se pueden evaluar para mejorar el control del proceso y utilizarse con finalidades estadísticas.
En otro modo de realización, el procedimiento comprende una incorporación de al menos una marca de registro en un módulo de programa para la facilitación de un diagnóstico de aplicación.
Una marca de registro se puede entender como una ubicación en un módulo de programa que posibilita obtener información sobre una parte determinada de un módulo de programa en relación con su ejecución. En base a esta información se puede crear a continuación un diagnóstico con el fin de evaluar la aplicación ejecutada. En este caso, se puede tratar de una sola aplicación o la aplicación global de la tarea de control.
En otro modo de realización, el procedimiento comprende un uso del equipamiento de control como maestro y la facilitación de al menos otro equipamiento de control como esclavo, que está subordinado al equipamiento de control como maestro.
Entonces, el uso de un esclavo se puede utilizar ventajosamente cuando un módulo de programa se debe ejecutar en otro proceso. Si la aplicación global se ejecuta en un solo proceso, no se puede prescindir de un esclavo.
Las tareas o tasks son una unidad organizativa para ejecutar programas. Los procesos del OS y los subprocesos del OS (OS = Operating System o sistema operativo) se pueden utilizar para la implementación técnica de estas unidades de gestión organizativas. En este caso, es deseable posibilitar un procesamiento sincronizado de tareas a través de los límites de proceso del OS. En general, no es posible que el maestro cree subprocesos del OS en otros procesos del OS. Por esta razón, esto se puede asumir por un esclavo en cada proceso del OS involucrado. El maestro puede asumir la ejecución de los programas o módulos de programa. Si, por otro lado, solo se usa un proceso del OS, todos los programas y subprocesos se pueden ejecutar sin esclavos.
Por ejemplo, el maestro y el esclavo se pueden comunicar a través de la comunicación entre procesos si se ejecutan en el mismo dispositivo. La comunicación se implementa ventajosamente al nivel más bajo con funcionalidades básicas del sistema operativo.
Además, en otro modo de realización preferente, el procedimiento puede presentar una asignación de tareas individuales, definidas en el archivo de descripción en los módulos de programa mediante el equipamiento de control.
Por lo tanto, el equipamiento de control puede distribuir tareas individuales dentro del sistema de control para mejorar así, por ejemplo, la utilización del sistema de control. Una tarea o task o una pluralidad de las mismas puede ser un subconjunto de un proceso dentro de una tarea de control.
Un sistema en tiempo real a modo de ejemplo para el control de secuencia de módulos de programa, que comprende un equipamiento de control, presenta un archivo de descripción depositado en un dispositivo de almacenamiento, que define una secuencia de programa. Además, están previstos varios módulos de programa ejecutables por el sistema operativo en tiempo real, que se crean utilizando uno o diferentes lenguajes de programación, en los que el equipamiento de control está conformado para desencadenar los módulos de programa ejecutando especificaciones del archivo de descripción.
El sistema operativo en tiempo real (RTOS = real-time operating system) es un sistema operativo que es capaz de cumplir con los requisitos en tiempo real de las aplicaciones. En este caso, el cumplimiento de los tiempos de respuesta definidos en el campo de la tecnología de automatización es de particular importancia para evitar daños a una instalación instalada y controlada.
El equipamiento de control puede estar configurado en forma de un administrador de ejecución y sincronización o un Execution and Synchronisation Manager (ESM). El equipamiento de control puede priorizar tareas centrales de control, distribuirlas a módulos de programa presentes y recibir información de los módulos de programa individuales y analizar esta información.
Además, el objetivo de la presente invención se logra mediante un dispositivo de control para el control de secuencia de módulos de programa de lenguajes de programación diferentes en un sistema operativo en tiempo real. Para ello, el dispositivo presenta un dispositivo de control de acuerdo con la invención, un procesador, una memoria y al menos una interfaz a un dispositivo de automatización.
En este caso, un dispositivo de control puede ser un aparato de control que está instalado en una instalación de automatización. En este caso, el equipamiento de control de acuerdo con la invención es parte del dispositivo de control de acuerdo con la invención. También es posible una distribución instanciadora o instanciación del equipamiento de control a varios núcleos de cálculo o núcleos de un procesador multinúcleo.
Además, el objetivo de la presente invención se consigue con un producto de programa informático. Para ello, el producto de programa informático presenta medios de código de programa para llevar a cabo el procedimiento de acuerdo con la invención, en el que el producto de programa informático se ejecuta en un sistema informático en un sistema operativo en tiempo real.
El producto de programa informático puede ser, por ejemplo, un soporte de datos que se pone a disposición en un sistema de automatización para llevar a cabo el procedimiento de acuerdo con la invención.
En conjunto, la tecnología de control propuesta ofrece una solución flexible que se puede adaptar dinámicamente a futuros desarrollos en el campo de la tecnología de automatización. Debido a su apertura, la arquitectura de control propuesta, en contraste con los sistemas cerrados hasta ahora, permite que las aplicaciones deseadas se implementen individualmente y aún se apliquen sobre una base estable. Esto se puede garantizar no solo para el grupo objetivo de programadores de lenguajes de alto nivel, sino también para instalaciones de automatización instaladas hasta ahora en el entorno de programación IEC 61131-3.
Algunos ejemplos de modo de realización de la invención se representan de forma puramente esquemática en los dibujos y se describen con más detalle a continuación. Muestra:
la fig. 1 un ejemplo de modo de realización para controlar una aplicación global en una instalación de automatización de acuerdo con la presente invención;
la fig. 2 un ejemplo de modo de realización de la presente invención de una estructura esquemática con un equipamiento de control como maestro y otros dos equipamientos de control como esclavos;
la fig. 3 un ejemplo de modo de realización de acuerdo con la presente invención de un control de una secuencia de programa mediante un equipamiento de control;
la fig. 4 un ejemplo de modo de realización de la presente invención de una estructura esquemática con un equipamiento de control.
La fig. 1 muestra un ejemplo de modo de realización para controlar una aplicación global 10 en una instalación de automatización de acuerdo con la presente invención.
En este contexto, bajo una aplicación global se entienden todos los programas o módulos de programa, tareas o tasks y ajustes de configuración que se requieren para el modo de realización en un aparato de control. A este respecto, no es relevante si el aparato de control o el control es el único o es uno de varios aparatos.
El procesamiento cíclico de programas o de módulos de programa es típico de la automatización. Típicamente no se da una retroalimentación al usuario o user en el marco de estos ciclos.
En la fig. 1 está representada una estructura esquemática de tres tareas 20, 30, 40 o tasks que ejecutan en conjunto cuatro programas o módulos de programa 21, 31, 32, 41 de los dominios IEC 61131-3, C++ y Matlab/Simulink de forma sincronizada. El módulo de programa 21 es un filtro CPP y está programado en el lenguaje de programación C++. El módulo de programa 31 es un programa de preparación IEC y está programado en uno de los lenguajes de programación de acuerdo con el estándar IEC. El módulo de programa 32 es un programa SIM-CTRL, es decir, un programa de control, y está programado en el lenguaje de programación Matlab/Simulink. El módulo de programa 41 es un programa de sincronización IEC, es decir, un programa de sincronización, y está programado en uno de los lenguajes de programación de acuerdo con el estándar IEC. En este contexto, los términos "programa" y "módulo de programa" se usan de forma intercambiable.
Después del final del procedimiento o el final del proceso del módulo de programa 30, la tarea 40 con el módulo de programa 41 se inicia motivada a través de una interfaz 33 a través de una de comunicación 34.
Las tareas 20, 30, 40 de la fig. 1 tienen diferentes prioridades para ejecutar la aplicación global 10, en la que la tarea 20 como tarea principal o Main Task presenta la prioridad más baja, la tarea 30 como tarea de control o Ctrl-Task presenta una prioridad media y la tarea 40 como tarea de evento o Event-Task con tareas de sincronización presenta la máxima prioridad. Además, la tarea 20 presenta un tiempo de ciclo o Cycle Time de 5 ms (ms = milisegundos) y la tarea 30 de 30 ms. La tarea 40 se ejecuta una vez y finaliza cuando se ha procesado el módulo de programa 41 o el programa en el módulo de programa (evento: proc_end).
La figura 2 muestra un ejemplo de realización de la presente invención de una estructura esquemática con un equipamiento de control 50 como maestro, un equipamiento de control 60 subordinado al maestro como primer esclavo y otro equipamiento de control 70 subordinado al maestro como segundo esclavo. En este caso, el componente maestro y los componentes esclavos 50, 60, 70 se utilizan para coordinar módulos de programa de diferentes dominios de programa en diferentes procesos. Además, en la fig. 2 están representados diferentes procesos del sistema operativo o procesos del OS 11, 12, 13, que presentan respectivamente subprocesos del OS 14, 15, 16, 17, 18.
El modo de proceder de acuerdo con la invención permite la composición de contenidos de tarea heterogéneos. A este respecto, la secuencia de procesamiento dentro de una tarea se puede seleccionar libremente, no predeterminada por el sistema, y es posible un intercambio de datos consistente entre instancias del programa.
La configuración del maestro 50 y sus tareas 20, 30, 40 se realiza mediante uno o varios archivos de descripción, aquí en forma de uno o varios archivos XML, que permiten la configuración en lugar de la programación. Por consiguiente, la función de una instalación se puede cambiar en tiempo de ejecución sin tener que compilar nuevamente las partes individuales de la aplicación. El archivo de descripción o la configuración basada en XML también le permite al usuario efectuar adaptaciones directamente en el control o utilizar sus propias herramientas y cadenas de herramientas externas.
A este respecto, la estructura del archivo de descripción, en particular en forma de un archivo XML, se puede predeterminar mediante archivos de esquema claramente definidos, que posibilita una comprobación rápida de la configuración. La especificación de tareas y las instancias de programa correspondientes en varios archivos de descripción o archivos de configuración XML permite dividir la aplicación total 10 en módulos funcionales que se pueden crear por diferentes grupos de desarrolladores o proveedores. Esto no solo facilita el desarrollo de un control de instalación complejo, sino también la ampliación gradual de una instalación en funcionamiento. Por tanto, la aplicación global 10 no debe estar disponible desde el principio, sino que se puede componer de submódulos.
Cada tarea 20, 30, 40 también se puede asignar a un núcleo de procesador, a un grupo o a todos los núcleos de procesador del control mediante la definición de parámetros en el archivo de descripción o archivo XML.
Un sistema flexible de componentes maestro y esclavo 50, 60, 70 también permite al usuario ejecutar programas a través de los límites del proceso. Este es un requisito previo ventajoso para la separación de programas de diferentes usuarios, que se ejecutan en áreas de memoria encapsuladas. Los mecanismos de protección de la memoria del sistema operativo en tiempo real subyacente pueden servir como base para esto. Por razones de seguridad es posible restringir el acceso a programas o módulos de programas correspondiente a los derechos de los usuarios.
En la fig. 2, el maestro 50 configura respectivamente un módulo de programa 21, 41 de un esclavo 60, 70 a través de conexiones activas 51, 52. En este caso, configurar se refiere a la facilitación de información de prioridad mediante el maestro 50. Además, las conexiones de comunicación 53, 54, 57, 58 están presentes en la fig. 2 para intercambiar comandos e información o retroalimentaciones entre los módulos de programa individuales 21, 31, 32, 41 y una tarea 20, 30, 40. En este caso, la información se envía y devuelve entre las instancias de maestro y esclavo o se recibe respectivamente. Los comandos son, por ejemplo, comandos de desencadenamiento ("desencadena") de la tarea 20, 40 al módulo de programa 21, 41. Se envían ("informan") retroalimentaciones, por ejemplo, desde los módulos de programa 21, 41 a las tareas 20, 40. Además, los comandos de desencadenamiento ("desencadena") también se envían desde la tarea 30 respectivamente a los respectivos módulos de programa 31, 32 a través de las conexiones de comunicación 55, 56, en la que la comunicación tiene lugar dentro de un subproceso OS.
Con el modo de proceder propuesto es posible transferir las tareas conocidas de la estandarización IEC al mundo del lenguaje de alto nivel. Por lo tanto, el equipamiento de control actualmente admite tareas cíclicas, tareas inactivas y tareas basadas en eventos, que se reproducen en los procesos y subprocesos controlados por prioridad del sistema operativo en tiempo real. Además de esta ejecución controlada por prioridad, el equipamiento de control también permite la ejecución de tareas en respuesta a la ocurrencia de un evento especial. Por lo tanto, con este sistema libremente configurable es posible mezclar instancias de programas de diferentes dominios de programación dentro de una tarea y ejecutarlos conjuntamente. Esto significa que los modelos de proceso conocidos de IEC 61131-3 también están abiertos para otros dominios.
No obstante, debido a los grados de libertad que ofrece la ejecución de tareas con el equipamiento de control 50, también aumenta la complejidad en la configuración y análisis. Por lo tanto, el equipamiento de control 50 proporciona mecanismos integrados para una elaboración de perfiles detallada en base a las ampliaciones disponibles del sistema operativo en tiempo real. El usuario obtiene por tanto la posibilidad de observar, evaluar y registrar diferentes propiedades de la ejecución de la tarea y del sistema operativo. A estas propiedades pertenecen, entre otras cosas, los tiempos de ejecución de las tareas e instancias del programa, frecuencia de los desplazamientos de tareas, latencia y jitter, aprovechamiento del sistema o la supervisión de perro guardián. Con la ayuda de búferes circulares dinámicos, esta información también se puede evaluar para análisis postmortem después de un caso de error.
Además, el depósito central de la información de perfilado ofrece al equipamiento de control 50 la posibilidad de llevar a cabo evaluaciones estadísticas o poner a disposición estos datos para análisis posteriores a través de servicios de servidor remoto.
La fig. 3 muestra un ejemplo de modo de realización de acuerdo con la presente invención de un control de una secuencia de programa mediante un equipamiento de control 50. Para llevar a cabo una tarea de automatización, el equipamiento de control 50 también puede acceder a instancias auxiliares, como un esclavo o varios esclavos, como se muestra en la fig. 2.
La fig. 3 muestra una representación simplificada de una coordinación o control de tareas de control mediante un equipamiento de control 50, como está representado, por ejemplo, en la fig. 2. En este caso, las tareas 20, 30, 40 descritas de la fig. 1 se controlan mediante el equipamiento de control 50. Con este control y su evaluación, se puede entender claramente cuando los programas y tareas individuales se desplazan por procesos superiores. Estos procesos superiores están reservados para el sistema operativo y están representados como procesos del OS 19 en la fig. 3.
La fig. 3 muestra el tiempo en la coordenada x y los procesos o la prioridad del proceso en la coordenada y. Por tanto, como ya se explicó en relación con la fig. 1, la tarea 20 tiene la prioridad más baja y la tarea 40 la prioridad más alta. Con RTOS está representado un subproceso de alta prioridad 90 del sistema operativo en tiempo real (RTOS) que presenta la prioridad más alta. El subproceso de alta prioridad 90 o el subproceso del OS de alta prioridad 90 es, por lo tanto, parte del sistema operativo en tiempo real.
Por tanto, la primera tarea 20 con el módulo de programa 21 se ejecuta primero en términos de tiempo, pero esto se interrumpe mediante un proceso en tiempo real 19 del sistema operativo. Luego, se realiza el procesamiento de la tarea 30 con los módulos de programa 31 y 32. A continuación, la tarea 40 se procesa entonces con el módulo de programa 41. Aquí también hay interrupciones temporales de los módulos del programa mediante los procesos en tiempo real 19. Después del procesamiento de las prioridades más altas, la tarea 20 comienza de nuevo y a continuación se ejecuta la tarea 30, de modo que en la fig. 3 se indica un procesamiento cíclico de las tareas.
En conjunto, de acuerdo con la invención, se posibilita una funcionalidad como parte de una nueva arquitectura de firmware, en base a la cual se implementan nuevos controles industriales. Esta arquitectura está implementada en primer lugar para el uso en un aparato o aparato de control. No obstante, la arquitectura está diseñada de modo que es posible una ampliación de varios aparatos. Esto es el caso, por ejemplo, en un sistema de redundancia en el que dos controles se ejecutan de forma sincronizada entre sí.
En este caso, se pretende apoyar la compleción de lenguajes de alto nivel a la programación clásica de controles. Para ello, se busca una transición suave entre IEC 61131-3 y el mundo de los lenguajes de alto nivel. Además de apoyar dichos lenguajes, el requisito previo para esto es la integración perfecta de los diferentes dominios de programación. Entre ellos figuran entre otros Matlab/Simulink, C++, C#, JAVA, Python y los lenguajes IEC 61131-3. Para tal integración perfecta, el control debería ser capaz de transferir el proceso conocido de IEC 61131-3 con instancias de programa y tareas al proceso de los otros dominios de programación. A pesar de estos requisitos más complejos para la implementación técnica se garantizan adicionalmente aspectos de seguridad de datos, usabilidad, flexibilidad y, sobre todo, rendimiento.
La fig. 4 muestra un ejemplo de modo de realización de la presente invención de una estructura esquemática con un equipamiento de control 50. En este ejemplo de modo de realización está representado un proceso de sistema operativo o proceso del OS 11, que presenta subprocesos del OS 14, 15, 16.
El modo de proceder de acuerdo con la invención permite la composición de contenidos de tarea heterogéneos. A este respecto, la secuencia de procesamiento dentro de una tarea se puede seleccionar libremente, no predeterminada por el sistema, y es posible un intercambio de datos consistente entre instancias del programa.
La configuración del equipamiento de control 50 y sus tareas 20, 30, 40 se realiza mediante uno o varios archivos de descripción, aquí en forma de uno o varios archivos XML, que permiten la configuración en lugar de la programación. Por consiguiente, la función de una instalación se puede cambiar en tiempo de ejecución sin tener que compilar nuevamente las partes individuales de la aplicación. El archivo de descripción o la configuración basada en XML también le permite al usuario efectuar adaptaciones directamente en el control o utilizar sus propias herramientas y cadenas de herramientas externas.
A este respecto, la estructura del archivo de descripción, en particular en forma de un archivo XML, se puede predeterminar mediante archivos de esquema claramente definidos, que posibilita una comprobación rápida de la configuración. La especificación de tareas y las instancias de programa correspondientes en varios archivos de descripción o archivos de configuración XML permite dividir la aplicación total 10 en módulos funcionales que se pueden crear por diferentes grupos de desarrolladores o proveedores. Esto no solo facilita el desarrollo de un control de instalación complejo, sino también la ampliación gradual de una instalación en funcionamiento. Por tanto, la aplicación global 10 no debe estar disponible desde el principio, sino que se puede componer de submódulos.
Cada tarea 20, 30, 40 también se puede asignar a un núcleo de procesador, a un grupo o a todos los núcleos de procesador del control mediante la definición de parámetros en el archivo de descripción o archivo XML. Por la tarea 30 se envían comandos de desencadenamiento ("desencadena") respectivamente a los módulos de programa 31,32 a través de las conexiones de comunicación 55, 56, en la que la comunicación tiene lugar dentro de un subproceso del OS.
El ejemplo de modo de realización representado en la fig. 4 posibilita ventajosamente la ejecución de los módulos de programa en un único proceso del OS común, en el que se pueden crear los módulos de programa con diferentes lenguajes de programación.
Las ventajas y configuraciones especificados anteriormente en relación con el ejemplo de modo de realización representado en la fig. 2, además de aquellas que se refieren al aspecto maestro/esclavo, también se aplican al ejemplo de modo de realización representado en la fig. 2.
A continuación se especifica a modo de ejemplo un posible contenido de un archivo de descripción en formato XML:
Lista de referencias
10 Aplicación global
11 Proceso del OS
12 Proceso del OS
13 Proceso del OS
14 Subproceso del OS
15 Subproceso del OS
16 Subproceso del OS
17 Subproceso del OS
18 Subproceso del OS
19 Proceso del sistema operativo
Tarea o task
Módulo de programa
Tarea o task
Módulo de programa
Módulo de programa
Fin del procedimiento
Interfaz de comunicación
Tarea o task
Módulo de programa
Equipamiento de control o ESM
Conexión efectiva
Conexión efectiva
Conexión de comunicación
Conexión de comunicación
Conexión de comunicación
Conexión de comunicación
Conexión de comunicación
Conexión de comunicación
Equipamiento de control o ESM como primer esclavo Equipamiento de control o ESM como segundo esclavo Proceso del sistema operativo
Subproceso de sistema operativo de alta prioridad
Claims (14)
1. Procedimiento para el control de secuencia de módulos de programa (21, 31, 32, 41), en el que los módulos de programa se ejecutan en un aparato de control en una instalación de automatización, y en el que los módulos de programa son parte de una aplicación de control para la ejecución en el aparato de control, y en el que el aparato de control está conformado para controlar un sistema de automatización mediante la ejecución de la aplicación de control, en el que la ejecución de la aplicación de control comprende la ejecución de los módulos de programa, que comprende
facilitación de un equipamiento de control (50), en el que el equipamiento de control forma una parte del firmware del aparato de control,
facilitación de varios módulos de programa (21, 31, 32, 41) que se pueden ejecutar por un sistema operativo en tiempo real,
facilitación de un archivo de configuración, que presenta una configuración para controlar una secuencia de programa, en el que la configuración para módulos de programa seleccionados comprende respectivamente una identificación e información asignada para ejecutar el módulo de programa identificado respectivamente, evaluación de la información contenida en el archivo de configuración mediante el equipamiento de control, y control de secuencia de los módulos de programa seleccionados mediante la ejecución de los módulos de programa seleccionados (21, 31, 32, 41) mediante el equipamiento de control (50) dependiendo de la información especificada en el archivo de configuración, en el que los contenidos del archivo de configuración predeterminan cuál de los módulos de programa seleccionados en qué orden y dependiendo de qué evento o en qué intervalos de tiempo se ejecutan por el equipamiento de control.
2. Procedimiento de acuerdo con la reivindicación 1,
además que presenta
ejecución múltiple de al menos uno de los módulos de programa (21, 31, 32, 41) mediante el equipamiento de control (50).
3. Procedimiento de acuerdo con la reivindicación 1 o la reivindicación 2,
caracterizado por que
el equipamiento de control (50) está conformado para ejecutar al menos algunos de los módulos de programa (21, 31, 32, 41), de tal manera que se pueden ejecutar en diferentes procesos gestionados por el sistema operativo en tiempo real.
4. Procedimiento de acuerdo con la reivindicación 3,
caracterizado por que
el sistema operativo en tiempo real está conformado para ejecutar los procesos y/o módulos de programa (21, 31, 32, 41) dependiendo de prioridades predeterminadas.
5. Procedimiento de acuerdo con la reivindicación 4,
además que presenta
registro y evaluación del control de secuencia mediante el sistema operativo en tiempo real.
6. Procedimiento de acuerdo con una de las reivindicaciones anteriores,
además que presenta
cambio del control de secuencia mediante agregación o retirada de módulos de programa sin que se lleve a cabo un reinicio de un sistema de control.
7. Procedimiento de acuerdo con una de las reivindicaciones anteriores,
además que presenta
división del control de secuencia en distintos procesos.
8. Procedimiento de acuerdo con una de las reivindicaciones anteriores,
además que presenta
creación de una evaluación estadística utilizando información de perfilado.
9. Procedimiento de acuerdo con una de las reivindicaciones anteriores,
además que presenta
incorporación de al menos una marca de registro en un módulo de programa (21, 31, 32, 41) para proporcionar un diagnóstico de aplicación.
10. Procedimiento de acuerdo con una de las reivindicaciones anteriores,
además que presenta
uso del equipamiento de control (50) como maestro y
facilitación de al menos otro equipamiento de control (60, 70) como esclavo, que está subordinado al equipamiento de control (50) como maestro.
11. Procedimiento de acuerdo con una de las reivindicaciones anteriores,
además que presenta
asignación de tareas individuales definidas en el archivo de configuración a módulos de programa (21, 31, 32, 41) mediante el equipamiento de control (50).
12. Aparato de control para controlar un sistema de automatización, que presenta un procesador,
una memoria,
al menos una interfaz a un dispositivo de automatización, y un firmware, que comprende un equipamiento de control (50),
en el que el equipamiento de control (50) está conformado para
evaluar la información contenida en un archivo de configuración, en el que el archivo de configuración para varios módulos de programa (21, 31, 32, 41) ejecutables por un sistema operativo en tiempo real comprende respectivamente una identificación e información asignada para ejecutar el módulo de programa identificado respectivamente, y en el que los contenidos del archivo de configuración predeterminan cuál de los módulos de programa seleccionados en qué orden y dependiendo de qué evento o en qué intervalos de tiempo se ejecutan por el equipamiento de control, y
ejecutar un control de secuencia de los módulos de programa mediante ejecución de los módulos de programa (21, 31, 32, 41) dependiendo de la información especificada en el archivo de configuración, en el que los módulos de programa se ejecutan en el aparato de control en una instalación de automatización, y en el que los módulos de programa son parte de una aplicación de control para la ejecución en el aparato de control, y en el que el archivo de configuración está depositado en la memoria del aparato de control, y en el que el aparato de control está conformado para controlar el sistema de automatización mediante la ejecución de la aplicación de control, en el que la ejecución de la aplicación de control comprende la ejecución de los módulos del programa.
13. Producto de programa informático con medios de código de programa que provocan que el aparato de control de acuerdo con la reivindicación 12 lleva a cabo el procedimiento de acuerdo con una de las reivindicaciones 1 a 11.
14. Soporte de datos, en el que está almacenado el producto de programa informático de acuerdo con la reivindicación 13.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| LU93299A LU93299B1 (de) | 2016-11-10 | 2016-11-10 | Ablaufsteuerung von Programmmodulen |
| PCT/EP2017/078931 WO2018087314A1 (de) | 2016-11-10 | 2017-11-10 | Ablaufsteuerung von programmmodulen |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| ES2913636T3 true ES2913636T3 (es) | 2022-06-03 |
Family
ID=57960771
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES17794752T Active ES2913636T3 (es) | 2016-11-10 | 2017-11-10 | Control de secuencia de módulos de programa |
Country Status (7)
| Country | Link |
|---|---|
| US (1) | US11307550B2 (es) |
| EP (1) | EP3538960B1 (es) |
| CN (1) | CN109983411B (es) |
| DK (1) | DK3538960T3 (es) |
| ES (1) | ES2913636T3 (es) |
| LU (1) | LU93299B1 (es) |
| WO (1) | WO2018087314A1 (es) |
Families Citing this family (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| DE102019121376A1 (de) * | 2019-08-07 | 2021-02-11 | Lenze Se (Societas Europaea) | Mosaiq |
| DE102019217848A1 (de) * | 2019-11-20 | 2021-05-20 | Robert Bosch Gmbh | Dynamische Koordination und Ausführung unabhängiger heterogener Programmeinheiten |
| CN112034764A (zh) * | 2020-09-08 | 2020-12-04 | 广东电网有限责任公司肇庆供电局 | 一种动环及隐患点检测系统 |
| CN112416552B (zh) * | 2020-11-19 | 2025-01-07 | 中国建设银行股份有限公司 | 主任务处理方法、装置、服务器和存储介质 |
| EP4012516A1 (de) * | 2020-12-10 | 2022-06-15 | Schneider Electric Industries SAS | Ausführungsumgebung für eine speicherprogrammierbare steuerung |
| CN112558949B (zh) * | 2020-12-21 | 2024-05-28 | 长沙树根互联技术有限公司 | 程序构造方法、装置、电子设备及存储介质 |
| CN114756243B (zh) * | 2022-05-05 | 2025-08-05 | 节卡机器人股份有限公司 | 自定义模块控制系统、方法、设备及存储介质 |
| CN116775038B (zh) * | 2023-06-26 | 2024-06-04 | 国电南京自动化股份有限公司 | 支持iec和c++任务同时或独立运行的运行时系统 |
Family Cites Families (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8108543B2 (en) * | 2000-09-22 | 2012-01-31 | Axeda Corporation | Retrieving data from a server |
| US7028225B2 (en) * | 2001-09-25 | 2006-04-11 | Path Communications, Inc. | Application manager for monitoring and recovery of software based application processes |
| US7787978B2 (en) * | 2006-10-03 | 2010-08-31 | Honeywell International Inc. | Apparatus and method for controller performance monitoring in a process control system |
| DE102007043795A1 (de) * | 2007-09-13 | 2009-04-02 | Siemens Ag | Leittechniksystem für eine technische Anlage und Verfahren zum Betreiben eines leittechnischen Systems |
| CN101645009A (zh) | 2009-08-25 | 2010-02-10 | 中国科学院计算技术研究所 | Web服务集成开发系统和方法 |
| DE102009047024A1 (de) | 2009-11-23 | 2011-05-26 | Beckhoff Automation Gmbh | Parallelisierte Programmsteuerung |
| EP2710468A1 (en) | 2011-05-18 | 2014-03-26 | Telefonaktiebolaget LM Ericsson (PUBL) | Smartphone apps in a cloud |
| WO2013010159A1 (en) * | 2011-07-14 | 2013-01-17 | Siemens Corporation | Reducing the scan cycle time of control applications through multi-core execution of user programs |
| CN104503779A (zh) | 2014-12-09 | 2015-04-08 | 北京奇虎科技有限公司 | 一种运行应用程序的方法和装置 |
| JP6488830B2 (ja) * | 2015-03-31 | 2019-03-27 | オムロン株式会社 | 制御装置 |
-
2016
- 2016-11-10 LU LU93299A patent/LU93299B1/de active IP Right Grant
-
2017
- 2017-11-10 EP EP17794752.0A patent/EP3538960B1/de active Active
- 2017-11-10 US US16/349,003 patent/US11307550B2/en active Active
- 2017-11-10 ES ES17794752T patent/ES2913636T3/es active Active
- 2017-11-10 CN CN201780069786.4A patent/CN109983411B/zh active Active
- 2017-11-10 DK DK17794752.0T patent/DK3538960T3/da active
- 2017-11-10 WO PCT/EP2017/078931 patent/WO2018087314A1/de not_active Ceased
Also Published As
| Publication number | Publication date |
|---|---|
| US11307550B2 (en) | 2022-04-19 |
| US20190286089A1 (en) | 2019-09-19 |
| EP3538960A1 (de) | 2019-09-18 |
| WO2018087314A1 (de) | 2018-05-17 |
| CN109983411B (zh) | 2023-01-24 |
| LU93299B1 (de) | 2018-06-13 |
| CN109983411A (zh) | 2019-07-05 |
| DK3538960T3 (da) | 2022-05-23 |
| EP3538960B1 (de) | 2022-03-23 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| ES2913636T3 (es) | Control de secuencia de módulos de programa | |
| US8984131B2 (en) | Real-time run-time system with an administrative module to configure functional modules of the system | |
| US20060268967A1 (en) | Supplying instruction to operational stations | |
| EP2672388A1 (en) | Multi-processor parallel simulation method, system and scheduler | |
| EP2943877B1 (en) | Method and apparatus for exploiting data locality in dynamic task scheduling | |
| KR102294177B1 (ko) | 컨트롤 장치 | |
| US20070130569A1 (en) | Method, apparatus and program storage device for providing a no context switch attribute that allows a user mode thread to become a near interrupt disabled priority | |
| US20160224001A1 (en) | Processing device and method for configuring an automation system | |
| Brinkmann et al. | Task debugging with temanejo | |
| CN105467857A (zh) | 电站仿真方法 | |
| US20080141213A1 (en) | Flexible interconnection system | |
| Casini et al. | Addressing analysis and partitioning issues for the Waters 2019 challenge | |
| Buonocunto et al. | Real-time multitasking in Arduino | |
| JP6874706B2 (ja) | アプリケーションプログラムを生成する方法、装置、プログラム | |
| WO2020075351A1 (ja) | コントロール装置 | |
| Vulgarakis et al. | Task synthesis for control applications on multicore platforms | |
| Lu et al. | A UML profile to model safety-critical embedded real-time control systems | |
| CN120958431A (zh) | 用于在实时平台上生成控制应用程序的系统和方法 | |
| JP6455096B2 (ja) | コントロールシステム、その支援装置、プログラマブルコントロール装置 | |
| Lindgren et al. | Real-time execution of function blocks for internet of things using the rtfm-kernel | |
| CN119376874B (zh) | 一种基于角色的多任务软件系统的构建、监测方法和系统 | |
| Saito et al. | A distributed real-time operating system built with aspect-oriented programming for distributed embedded control systems | |
| Al-Obaidi et al. | Safetykube: Towards orchestration at the edge for critical production systems | |
| Sigrist | Implementation and Evaluation of Mixed-Criticality Scheduling Algorithms for Multi-core Systems | |
| John et al. | State-of-the-art plc configuration |
