CN109983411A - 程序模块的流程控制 - Google Patents

程序模块的流程控制 Download PDF

Info

Publication number
CN109983411A
CN109983411A CN201780069786.4A CN201780069786A CN109983411A CN 109983411 A CN109983411 A CN 109983411A CN 201780069786 A CN201780069786 A CN 201780069786A CN 109983411 A CN109983411 A CN 109983411A
Authority
CN
China
Prior art keywords
control device
program module
control
program
operating system
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.)
Granted
Application number
CN201780069786.4A
Other languages
English (en)
Other versions
CN109983411B (zh
Inventor
亨宁·霍伊特格尔
罗尔夫·克莱诺
安德里亚斯·魏歇尔特
斯塔凡·豪斯曼
延斯·弗列文
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Phoenix Electric Manufacturing Co
Original Assignee
Phoenix Electric Manufacturing Co
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Phoenix Electric Manufacturing Co filed Critical Phoenix Electric Manufacturing Co
Publication of CN109983411A publication Critical patent/CN109983411A/zh
Application granted granted Critical
Publication of CN109983411B publication Critical patent/CN109983411B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • G05B19/0426Programming the control sequence
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical 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 programme data in numerical form
    • G05B19/414Structure of the control system, e.g. common controller or multiprocessor systems, interface to servo, programmable interface controller
    • G05B19/4148Structure 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/25Pc structure of the system
    • G05B2219/25343Real time multitasking
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/32Operator till task planning
    • G05B2219/32247Real time scheduler
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/34Director, elements to supervisory
    • G05B2219/34411Handling time critical and time non critical program sequences
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]

Abstract

本发明涉及一种程序模块21,31,32,41的流程控制方法。此方法包括:提供控制装置50,提供具有用于控制程序流程的配置的描述文件。此外,此方法还包括:提供多个程序模块21,31,32,41,其能够由实时操作系统执行,其中,程序模块21,31,32,41在使用一种或不同种编程语言的条件下创建。此外,此方法还包括通过借助控制装置50执行描述文件内的设定而触发所选的程序模块21,31,32,41。

Description

程序模块的流程控制
技术领域
本发明基于自动化技术领域,尤其工业自动化技术领域,并且涉及一种程序模块的流程控制方法。此外,本发明还涉及一种实时操作系统,一种控制单元,一种控制设备以及一种计算机程序产品。
背景技术
在自动化技术中,预计会出现从使用传统编程语言到使用通用语言的变化。
例如,到目前为止,标准IEC 61131规定了可编程控制器的编程语言的语法和语义。在此,提出了一套统一的、用于可编程控制器的编程语言。该套编程语言具有两种文本语言(指令列表和结构化文本)以及两种图形语言(梯形图和功能框图)。此外,在标准IEC61131中还定义了简化程序控制器与自动化系统的其他部件之间通信的特征。
当前的主题,如工业4.0,物联网或VDI的Agenda CPS,表明未来自动化设备将以高比例的联网和软件为特征。在此,将从传统的IEC 61131-3编程转变为现代通用语言。到2018年,所使用的代码应大约70%都并非IEC定义的语言。在此,除了现有的要求、例如实时能力和一致性以外,还需要更大的灵活性,更高的安全性和更好的可维护性。
因此,在可编程逻辑控制器和/或运行时环境的生产中,未来也存在技术变化。
EP 2 504 738 B1描述了一种控制方法以及一种用于在多个并行工作的处理设备上执行多个程序的方法。在此,多个并行工作的处理设备中的每一个都配有时间信号发生器,在其到期时,在所分配的处理设备上执行用于执行程序的控制方法。
但是,使用时间信号发生器具有以下缺点,可能降低实时操作系统中的数据处理速度。
发明内容
本发明的目的在于,提供一种解决方案,以改善实时操作系统的流程控制。
根据本发明,此目的通过权利要求1的特征实现。此外,此目的还通过根据权利要求13的一种实时操作系统、根据权利要求14的一种控制装置、根据权利要求15的一种控制设备以及根据权利要求16的一种计算机程序产品实现。其他设计方案由从属权利要求给出。
在根据本发明的程序模块流程控制方法中包括,提供控制装置并且提供描述文件,描述文件具有用于控制程序流程的描述文件的配置。此外,该方法还包括提供多个程序模块,其能够由实时操作系统执行,其中,程序模块在使用一种或者不同编程语言的条件下创建。此外,该方法还包括通过借助控制装置执行描述文件内的设定而触发所选的程序模块。
控制装置优选作为控制设备固件的局部提供,其中,控制设备尤其构造为用于控制自动化系统的控制工具。例如,控制设备用于读取传感器数据并用于根据传感器数据控制执行器。为此目的,在控制设备上执行控制应用。控制应用、即整体应用的执行包括多个程序模块的执行。程序模块的流程控制通过控制装置进行,该控制装置为此目的通过执行描述文件内的设定而触发所选的程序模块。
程序模块的触发表示程序模块的执行的开始或启动,其中,程序模块尤其作为保存在存储器内的、能够由实时操作系统执行的程序代码提供。为了触发程序模块,由控制装置优选调取操作系统的相应功能。哪些程序模块以何种顺序并且根据哪种事件、或者以何种时间间隔由控制装置触发,这通过描述文件中的内容预先设定。为此目的,描述文件例如包含用于辨认程序模块的信息以及对应的信息,该对应的信息例如设定了循环的执行以及对应的周期。有利地,在描述文件中也可定义任务,其配有程序模块。
描述文件尤其以文本文件的形式在控制设备的存储器内提供,并且在控制设备开启或接通时由作为控制设备固件的局部的控制装置读取。在描述文件中预先设定的程序模块流程由控制装置通过调取相应的操作系统功能而控制。
控制装置可设计为执行和同步管理器,或者说Execution and SynchronisationManager(ESM)。
通过使用此种控制装置能够同等地处理或执行不同编程领域的程序。
可例如执行分别至少以根据标准IEC 61131的编程语言其中一种、以Matlab/Simulink、C++、C#或JAVA或Python编程的程序模块。其他编程语言同样为可能的。根据标准IEC 61131(版本3.0,2013-02),规定了两种文本语言(textual languages),即指令列表(IL)和结构化文本(ST),以及两种图形语言(graphical languages),即梯形图(LD)和功能框图(FBD)。这些编程语言能够与编程通用语言一同用于流程控制中。
控制装置允许对类似于IEC 61131-3的任务的简单配置,这实现了将不同编程语言的程序机构结合。为此,控制装置使用一系列操作系统进程以及线程,从而实现向下级实时操作系统的高性能集成。
因此,可以为所有程序模块使用唯一的编程语言。也可以为两个或多个程序模块使用不同的编程语言。
触发程序模块时,描述文件不再产生作用,该描述文件也可称为配置文件。这样的产生作用将花费太多时间并且减慢处理速度。相反,(一个或多个)配置文件在系统启动时被读取,并仅在执行阶段执行。在此,控制设备规定来自描述文件的信息的执行。因此,通过描述文件的内容得出执行程序模块的设定。该设定通过描述文件的配置提供。因此,程序模块在执行在描述文件中定义的配置的条件下触发。
在描述文件中定义的配置针对所选的程序模块例如分别包括一个标识,例如名字,程序模块存储在该名字下,以及用于执行相应标识的程序模块的对应信息,即,例如应循环地还是事件控制地执行该程序模块。控制装置构造用于分析描述文件中所包含的信息,并且根据在描述文件中提供的配置信息执行所选的程序模块,其中,在描述文件中分别包含的标识适用于借助操作系统功能触发、即执行相应的程序模块。
程序模块例如借助编程界面、尤其借助API(API=application programminginterface,应用程序编程接口)控制。描述文件可例如作为XML文件(XML=ExtensibleMarkup Language Datei,可扩展标记语言文件)提供,其用于配置何时产生作用并因此执行程序。可借助控制装置执行程序模块并获取用于程序流程、例如任务运行时间的状态信息。
控制装置本身可由PLC管理器(PLC=Programmable Logic Controller,可编程逻辑控制器)初始化并控制。PLC管理器例如将控制装置置于运行/停止(RUN/STOP)并执行重启。在运行期间,控制装置通过事件(软件或硬件)循环触发以处理执行逻辑。
也可将多个描述文件或配置文件用于流程控制。其他描述文件可包含额外任务的配置及其对应的程序模块。例如,例如XML文件形式的一个描述文件可能描述主任务(Task-Main),另一描述文件描述控制任务(Task-Ctrl)并且另一描述文件描述同步任务(Task-Sync)。配置文件可简单地合并到一个配置中,如果这不会产生冲突的话。因此,控制装置或者具有主设备(ESM主设备)功能的控制装置应识别并读取所有配置。
在一个优选的实施形式中,该方法包括,通过控制装置多次地触发程序模块的至少其中之一。
为此,不需要描述文件产生作用,从而能够使处理时间保持得短。例如事件和空闲任务等其他任务类型或Task类型同样能够得到支持。描述文件或者多个描述文件有利地仅被读取用于初始化配置,但不在执行期间被读取。
在该方法的另一优选的实施形式中规定,控制装置构造用于触发程序模块中的至少一些,使其能够在由实时操作系统管理的不同进程中执行。
由此方式实现了仅使用必须的程序模块,并且也使多个进程并行执行,以高效地利用时间资源。
在该方法的一种扩展方案中规定,实时操作系统构造用于根据预先确定的优先等级执行进程和/或程序模块。
通过设置优先等级,能够根据其重要性或者紧急性处理控制任务。
此外,在该方法的一种实施形式中,还可以通过实时操作系统设置流程控制的记录和分析。
为了实现记录和分析,可以额外地一同记录引入的标记点并构成统计。
在另一设计形式中,该方法可以通过额外的程序模块设置流程控制的扩展,而无须执行控制系统的重启。
涉及流程控制的控制系统通常能够在程序模块中加载、启动、纠错、停止和卸载。控制系统安装在实时操作系统上。
有利的是,可以扩展控制系统,而无须中断控制系统以重启。由此方式,能够连续地继续运行。
在另一实施形式中,该方法中,流程控制可以分成不同的进程。
此种分布可以更好地利用实时操作系统的不同进程、例如存储器保护机构的优点。
此外,在该方法的另一实施形式中,可以在使用剖析信息的条件下创建统计学分析。
在此,可以在控制装置内引入符号或标记,从而生成剖析信息。剖析信息理解为用于分析软件运行时间表现的信息。因此,可以分析统计数据以改善流程控制并用于统计学目的。
在另一设计形式中,该方法包括向程序模块内引入至少一个记录标记以提供应用诊断。
记录标记可理解为程序模块中的位置,该位置实现了通过程序模块的特定部分获得关于其执行的信息。根据该信息,能够继续创建诊断,从而评价执行的应用。在此,可涉及控制任务的单个应用或者整体应用。
在另一实施形式中,该方法包括将控制装置用作主设备,并且提供至少一个另外的控制装置作为从设备,该从设备从属于作为主设备的控制装置。
如果程序模块应在另外的进程中执行,那么则可有利地使用从设备的该利用。如果整体应用在单个进程中运行,则可省却从设备。
任务或Task为用于程序的执行的组织单元。OS进程和OS线程(OS=OperatingSystem或操作系统)可以用于此组织管理单元的技术实施。在此期望的是,实现任务的跨OS进程界限的同步处理。对于主设备通常无法实现的是在其他OS进程中创建OS线程。因此,这可由从设备在每个参与的OS进程中负责。程序或程序模块的执行可以由主设备负责。如果相反只使用一个OS进程,则可以在不使用从设备的条件下执行所有程序和线程。
如果主设备和从设备在同一工具上运行,则主设备和从设备可例如通过进程间通信进行通信。通信有利地在最下层借助操作系统的基础功能实现。
此外,该方法还可以在另一优选的设计形式中包括通过控制装置将在描述文件中定义的各个任务指派给程序模块。
因此,控制装置可以将各个任务在控制系统内部分配,从而例如改善控制系统的负荷程度。一个或多个任务或Task可以为在一个控制任务内的进程的子集。
此外,本发明的目的还借助包括控制装置的、用于程序模块流程控制的实时操作系统实现。在此,该实时系统具有保存在存储器装置内的描述文件,其定义程序流程。此外,设置多个能够由实时操作系统执行的程序模块,其在使用一种或多种不同的编程语言的条件下创建,其中,控制装置构造用于在执行描述文件的设定的情况下触发程序模块。
实时操作系统(RTOS=real-time operating system)为一种操作系统,其有能力满足应用的实时要求。在此,特别重要的是遵守在自动化技术范围内定义的响应时间,从而避免对所安装于的并进行控制的设备的损伤。
本发明的目的借助一种用于对一种或不同种编程语言的程序模块进行实时操作系统内的流程控制的控制装置实现。为此,控制装置构造用于执行根据本发明的方法。
控制装置可设计为执行和同步管理器或者说Execution and SynchronisationManager(ESM)的形式。控制装置可以区分控制的中央任务的优先次序,将其分配给存在的程序模块并从各个程序模块接收信息并分析此信息。
此外,本发明的目的还通过一种用于对不同编程语言的程序模块进行实时操作系统内的流程控制的控制设备实现。为此,控制设备具有根据本发明的控制装置、处理器、存储器和至少一个与自动化装置的接口。
在此,控制设备可以是控制工具,其安装在自动化设备中。在此,根据本发明的控制装置为根据本发明的控制设备的局部。控制装置向多个计算机内核或多核处理器的内核的机构化分布或机构化也是可能的。
此外,本发明的目的还借助一种计算机程序产品实现。为此,该计算机程序产品具有用于执行根据本发明的方法的程序代码媒介,其中,该计算机程序产品在实时操作系统内的计算机系统上运行。
该计算机程序产品可例如为数据载体,其在自动化设备中提供,从而执行根据本发明的方法。
整体上,提出的控制技术提供了一种灵活的解决方案,其能够动态地在自动化技术领域内适应于未来的发展。提出的控制结构实现了通过其相比于迄今为止封闭系统的开放性而完全独立地实施期望的应用,并且仍旧基础稳定。这不仅能够为通用语言程序员的目标群体、而且能够为迄今为止已经安装的IEC 61131-3环境下的自动化设备确保编程。
附图说明
在附图中纯示意性地示出了本发明的一些实施例并在下文中进一步阐述。其中示出了:
图1根据本发明的、用于控制自动化设备内的整体应用的一个实施例;
图2本发明的一个实施例的示意性结构,其具有作为主设备的控制装置以及作为从设备的两个另外的控制装置;
图3通过控制装置控制程序流程的、根据本发明的一个实施例;
图4具有控制装置的本发明的一个实施例的示意性结构。
具体实施方式
图1示出了根据本发明的、自动化设备中的整体应用10的控制装置的实施例。
就此而言,整体应用理解为对在控制工具上的执行所必须的所有程序或程序模块、任务或Task以及配置调节。在此,控制工具或控制装置是唯一的还是多个工具其中之一,不是关键的。
典型的自动化为程序或程序模块的循环执行。在此循环范围内,通常不向用户或User给出反馈。
在图1中示出了三个任务20,30,40或Task的示意性结构,其同步地执行IEC61131-3,C++和Matlab/Simulink领域的总共四个程序或程序模块21,31,32,41。程序模块21为CPP过滤器并且以编程语言C++编程。程序模块31为IEC准备程序并且以根据IEC标准的编程语言其中之一编程。程序模块32为SIM-CTRL程序,即控制程序,并且以编程语言Matlab/Simulink编程。程序模块41为IEC-Sync程序,即同步程序,并且以根据IEC标准的编程语言其中之一编程。就此而言,概念“程序”和“程序模块”可以替换地使用。
在程序模块30的步骤结束或进程结束之后,通过接口33并通过通信连接34促使借助程序模块41开始任务40。
图1中的任务20,30,40对于整体应用10的执行具有不同的优先等级,其中,任务20作为主任务或Main Task具有最低的优先等级,任务30作为控制任务或Ctrl-Task具有中等的优先等级,并且任务40作为具有同步任务的事件任务或Event-Task具有最高的优先等级。此外,任务20还具有5ms的周期或Cycletime(ms=毫秒),并且任务30具有30ms的周期或Cycletime。任务40执行一次,并且在程序模块41或程序模块中的程序完成执行(event:proc_end)时结束。
图2示出了本发明的一个实施例的示意性结构,其具有作为主设备的控制装置50,主设备下级的作为第一从设备的控制装置60以及主设备下级的另一个作为第二从设备的控制装置70。在此,使用主设备部件和从设备部件50,60,70,从而在不同进程中协调不同编程领域的程序模块。此外,图2中示出了不同的操作系统进程或OS进程11,12,13,其分别具有OS线程14,15,16,17,18。
根据本发明的实施方式实现了对异类任务内容的组合。在此,一个任务内的执行顺序可以自由地选择,而不是根据系统预先设定,并且能够在程序机构之间不断地进行数据交换。
主设备50的配置及其任务20,30,40通过一个或多个在此呈一个或多个XML文件形式的描述文件进行,其替代编程而实现配置。在此,可以在运行时间改变设备的功能,而无须重新编译各个应用部分。基于描述文件或XML文件的配置也允许用户直接在控制装置上进行调整,或者使用本身外部的工具或工具链(Toolchain)。
尤其呈XML文件形式的描述文件的结构在此能够通过明确定义的Schema文件设定,其实现了对配置的快速校验。任务目录以及多个描述文件或XML配置文件中对应的程序机构实现了将整体应用10划分为多个功能性模块,该模块能够由不同的研发组或者供应商创建。这不仅简化了复杂设备控制的研发,而且也简化了运行的设备的逐步扩展。因此,无须从一开始就提供整体应用10,而可以由局部模块组成该整体应用。
每个任务20,30,40能够额外地通过对描述文件或XML文件内的参数进行定义而分配给一个处理器内核、控制装置的一组或者所有处理器内核。
由主设备部件以及从设备部件50,60,70组成的灵活的系统还为用户实现了超越进程界限的程序执行。这对于在封装存储器区域内执行的不同用户的程序的分割是有利的前提条件。作为对此的基础,可使用从属的实时操作系统的存储器保护机构。因此,出于安全原因,可以根据用户权限限制对程序或程序模块的访问。
在图2中,主设备50通过有效连接51,52分别配置从设备60,70的程序模块21,41。在此,该配置与通过主设备50对优先等级信息的提供相关。此外,在图2中存在通信连接53,54,57,58,从而在各个程序模块21,31,32,41以及任务20,30,40之间交换指令和信息或者反馈。在此,在主设备和从设备机构之间往返地发送或分别接收信息。指令例如为由任务20,40对程序模块21,41的触发指令(“触发”)。反馈例如从程序模块21,41发送到任务20,40(“通知”)。此外,触发指令(“触发”)也由任务30分别通过通信连接55,56发送至程序模块31,32,其中,通信在OS线程内部进行。
借助提出的实施方式实现了将已知的任务从IEC标准改写到通用语言世界。因此,控制装置支持映射到实时操作系统的优先等级受控的进程和线程上的当前的周期性任务、空闲任务和基于事件的任务。除了此优先等级受控的执行以外,控制装置也实现了作为对出现特殊事件的反应而执行任务。因此,借助能够任意配置的此系统能够混合一个任务内部的不同编程领域的程序机构并共同地进行执行。因此,由IEC61131-3已知的流程模式也对于其他领域开放。
但是,由于借助控制装置50提供任务执行的自由度,配置和分析时的复杂性也有所增加。因此,控制装置50为基于实时操作系统的可用扩展进行的详细剖析提供集成的机构。因此,用户可以观察、分析和记录任务执行和操作系统的不同特性。此特性还包括任务的执行时间以及程序机构、任务取代的频率、延迟和抖动、系统负荷程度或Watchdog监测。此信息还可在故障情况之后事后地借助动态环形缓冲器评价以进行分析。
此外,控制装置50的剖析信息的中央存储提供了以下可能性,即执行统计分析或者将此信息提供用于通过远程的服务器业务进行的其他分析。
图3示出了通过控制装置50控制程序流程的、根据本发明的一个实施例。控制装置50也可访问辅助机构以执行自动化任务,例如一个从设备或多个从设备,如图2中所示。
图3以简化的示图示出了通过例如图2中所示的控制装置50对控制任务的协调或控制。在此,图1的所述任务20,30,40通过控制装置50控制。在此控制或其分析中可明确地理解,各个程序和任务何时由更高的进程取代。该更高的进程为操作系统保留并在图3中示作OS进程19。
图3在x坐标上示出了时间,并且在y坐标上示出了进程或进程的优先等级。因此,如已经针对图1所述的,任务20具有最低的优先等级,并且任务40具有最高的优先等级。借助RTOS表示实时操作系统(RTOS)的具有最高的优先等级的高优先级线程90。高优先级线程90或高优先级OS线程90因此为实时操作系统的一部分。
因此,时间上,首先借助程序模块21执行第一任务20,然而,这通过操作系统的实时进程19打断。之后,借助程序模块31和32进行任务30的处理。接着,借助程序模块41处理任务40。在此也存在通过实时进程19对程序模块时间上的中断。在完成更高值的优先等级之后,任务20重新开始,接着执行任务30,从而在图3中表示了任务的循环处理。
整体上,根据本发明,实现了作为新的固件结构的组成部分的功能性,在其基础上实现新的工业控制。该结构首先实施用于在工具或控制工具上使用。但是,该结构设计得能够扩展到多个工具上。这例如用于冗余系统中,在该冗余系统中,两个控制装置彼此同步运行。
在此,期望对控制装置的传统编程进行补充以支持通用语言。为此,努力实现在IEC 61131-3与通用语言世界之间的平滑过渡。其前提条件在于,除了支持此种语言以外,也支持对不同编程领域的无缝结合。这还包括Matlab/Simulink,C++,C#,JAVA,Python和IEC61131-3的语言。为了此种无缝结合,控制装置应能够将由IEC61131-3已知的借助程序机构的流程以及任务或Task改写为其他编程领域的流程。尽管这对技术实施的要求更复杂,但是确保了数据安全、可用性、灵活性以及最重要的效率的这些额外的方面。
图4示出了具有控制装置50的示意结构的本发明的一个实施例。在此实施例中示出了操作系统进程或OS进程11,其具有OS线程14,15,16。
根据本发明的实施方式实现了对异类任务内容的组合。在此,在一个任务内部的处理顺序能够任意选择,并不是根据系统而预先设定的,并且能够在程序机构之间进行连贯的数据交换。
控制装置50的配置及其任务20,30,40通过一个或多个描述文件进行,在此,该描述文件呈一个或多个XML文件的形式,并且替代编程而实现配置。因此,能够在运行时间改变设备的功能,而无须重新编译各个应用部分。基于描述文件或XML的配置也允许用户直接在控制装置上进行调整,或者使用本身外部的工具或工具链。
尤其呈XML文件形式的描述文件的结构在此能够通过明确定义的Schema文件设定,其实现了对配置的快速校验。任务目录以及多个描述文件或XML配置文件中对应的程序机构实现了将整体应用10划分为多个功能性模块,该模块能够由不同的研发组或者供应商创建。这不仅简化了复杂设备控制的研发,而且也简化了运行的设备的逐步扩展。因此,无须从一开始就提供整体应用10,而可以由局部模块组成该整体应用。
每个任务20,30,40能够额外地通过对描述文件或XML文件内的参数进行定义而分配给控制装置的一个处理器内核、一组或者所有处理器内核。由任务30通过通信连接55,56分别向程序模块31,32发送触发指令(“触发”),其中,通信在一个OS线程内进行。
图4中所示的实施例有利地实现了在唯一的、共同的OS进程内执行多个程序模块,其中,这些程序模块能够以不同的编程语言创建。
除了涉及主设备/从设备方面的部分以外,上述结合图2所示实施例说明的优点和设计方案同样适用于图4中所示的实施例。
下文中示例性地给出了XML格式的描述文件的一种可能的内容:
附图标记说明
10 整体应用
11 OS进程
12 OS进程
13 OS进程
14 OS线程
15 OS线程
16 OS线程
17 OS线程
18 OS线程
19 OS进程
20 任务或Task
21 程序模块
30 任务或Task
31 程序模块
32 程序模块
33 步骤结束
34 通信接口
40 任务或Task
41 程序模块
50 控制装置或ESM
51 有效连接
52 有效连接
53 通信连接
54 通信连接
55 通信连接
56 通信连接
57 通信连接
58 通信连接
60 作为第一从设备的控制装置或ESM
70 作为第二从设备的控制装置或ESM
80 OS进程
90 高优先级OS线程

Claims (15)

1.程序模块(21,31,32,41)的流程控制方法,此方法包括:
提供控制装置(50),
提供描述文件,所述描述文件具有用于控制程序流程的配置,
提供多个程序模块(21,31,32,41),所述程序模块能够由实时操作系统执行,其中,所述程序模块(21,31,32,41)在使用一种或不同种编程语言的条件下创建,并且
通过借助所述控制装置(50)执行所述描述文件内的设定而触发所选的程序模块(21,31,32,41)。
2.根据权利要求1所述的方法,
进一步包括:
通过所述控制装置(50)多次地触发所述程序模块(21,31,32,41)中的至少一个。
3.根据权利要求1或权利要求2所述的方法,
其特征在于,
所述控制装置(50)构造用于触发所述控制模块(21,31,32,41)中的至少一些,从而使其能够在由所述实时操作系统管理的不同进程中执行。
4.根据权利要求3所述的方法,
其特征在于,
所述实时操作系统构造用于根据预先设定的优先等级执行所述进程和/或所述程序模块(21,31,32,41)。
5.根据权利要求4所述的方法,
进一步包括:
通过所述实时操作系统记录并分析流程控制。
6.根据前述权利要求中任一项所述的方法,
进一步包括:
通过添加或删除程序模块而改变流程控制,而不对控制系统执行重启。
7.根据前述权利要求中任一项所述的方法,
进一步包括:
将所述流程控制分割为不同进程。
8.根据前述权利要求中任一项所述的方法,
进一步包括:
在使用剖析信息的条件下创建统计学分析。
9.根据前述权利要求中任一项所述的方法,
进一步包括:
向程序模块(21,31,32,41)引入至少一个记录标记,以提供应用诊断。
10.根据前述权利要求中任一项所述的方法,
进一步包括:
将所述控制装置(50)用作主设备,并且提供至少一个另外的控制装置(60,70)作为从设备,所述另外的控制装置从属于作为主设备的所述控制装置(50)。
11.根据前述权利要求中任一项所述的方法,
进一步包括:
通过所述控制装置(50)将在所述描述文件中定义的各个任务指派给所述程序模块(21,31,32,41)。
12.用于程序模块(21,31,32,41)流程控制的实时操作系统,所述实时操作系统包括:
控制装置(50)。
保存在存储器装置内的描述文件,所述描述文件定义了程序流程,
能够由所述实时操作系统执行的多个程序模块(21,31,32,41),所述程序模块在使用一种或不同种编程语言的条件下创建,其中,所述控制装置(50)构造用于通过执行所述描述文件内的设定而触发所述程序模块(21,31,32,41)。
13.用于对一种或多种编程语言的程序模块(21,31,32,41)进行在实时操作系统内的流程控制的控制装置(50),所述控制装置构造用于执行根据权利要求1至11中任一项所述的方法。
14.用于对一种或不同种编程语言的程序模块(21,31,32,41)进行在实时操作系统内的流程控制的控制设备,所述控制设备具有:
根据权利要求14所述的控制装置(50);
处理器,
存储器,以及
至少一个与自动化装置的接口。
15.计算机程序产品,所述计算机程序产品具有用于执行根据权利要求1至11中任一项所述的方法的程序代码媒介,其中,所述计算机程序产品在实时操作系统内的计算机系统上运行。
CN201780069786.4A 2016-11-10 2017-11-10 程序模块的流程控制 Active CN109983411B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
LU93299 2016-11-10
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 (2)

Publication Number Publication Date
CN109983411A true CN109983411A (zh) 2019-07-05
CN109983411B CN109983411B (zh) 2023-01-24

Family

ID=57960771

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780069786.4A Active CN109983411B (zh) 2016-11-10 2017-11-10 程序模块的流程控制

Country Status (7)

Country Link
US (1) US11307550B2 (zh)
EP (1) EP3538960B1 (zh)
CN (1) CN109983411B (zh)
DK (1) DK3538960T3 (zh)
ES (1) ES2913636T3 (zh)
LU (1) LU93299B1 (zh)
WO (1) WO2018087314A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023213295A1 (zh) * 2022-05-05 2023-11-09 节卡机器人股份有限公司 自定义组件控制系统、方法、设备及存储介质

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102019121376A1 (de) * 2019-08-07 2021-02-11 Lenze Se (Societas Europaea) Mosaiq
CN112034764A (zh) * 2020-09-08 2020-12-04 广东电网有限责任公司肇庆供电局 一种动环及隐患点检测系统
EP4012516A1 (de) * 2020-12-10 2022-06-15 Schneider Electric Industries SAS Ausführungsumgebung für eine speicherprogrammierbare steuerung
CN112558949A (zh) * 2020-12-21 2021-03-26 长沙树根互联技术有限公司 程序构造方法、装置、电子设备及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101645009A (zh) * 2009-08-25 2010-02-10 中国科学院计算技术研究所 Web服务集成开发系统和方法
US20110029140A1 (en) * 2007-09-13 2011-02-03 Carsten Jordan Central control and instrumentation system for a technical installation and method for operating a central control and instrumentation system
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
CN103649919A (zh) * 2011-05-18 2014-03-19 瑞典爱立信有限公司 云中的智能电话应用程序
CN104503779A (zh) * 2014-12-09 2015-04-08 北京奇虎科技有限公司 一种运行应用程序的方法和装置
CN106020008A (zh) * 2015-03-31 2016-10-12 欧姆龙株式会社 控制装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
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
DE102009047024A1 (de) 2009-11-23 2011-05-26 Beckhoff Automation Gmbh Parallelisierte Programmsteuerung

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110029140A1 (en) * 2007-09-13 2011-02-03 Carsten Jordan Central control and instrumentation system for a technical installation and method for operating a central control and instrumentation system
CN101645009A (zh) * 2009-08-25 2010-02-10 中国科学院计算技术研究所 Web服务集成开发系统和方法
CN103649919A (zh) * 2011-05-18 2014-03-19 瑞典爱立信有限公司 云中的智能电话应用程序
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 北京奇虎科技有限公司 一种运行应用程序的方法和装置
CN106020008A (zh) * 2015-03-31 2016-10-12 欧姆龙株式会社 控制装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023213295A1 (zh) * 2022-05-05 2023-11-09 节卡机器人股份有限公司 自定义组件控制系统、方法、设备及存储介质

Also Published As

Publication number Publication date
DK3538960T3 (da) 2022-05-23
US20190286089A1 (en) 2019-09-19
EP3538960B1 (de) 2022-03-23
WO2018087314A1 (de) 2018-05-17
LU93299B1 (de) 2018-06-13
US11307550B2 (en) 2022-04-19
EP3538960A1 (de) 2019-09-18
CN109983411B (zh) 2023-01-24
ES2913636T3 (es) 2022-06-03

Similar Documents

Publication Publication Date Title
CN109983411A (zh) 程序模块的流程控制
US8327316B2 (en) Compilation model
CN106062646B (zh) 控制装置
EP3256915B1 (en) Extending a programmable logic controller with apps
US9188964B2 (en) Safety controller for controlling an automated installation and method for generating a user program for a safety controller
CN105930270B (zh) 一种实现算法在线组态、运行和调试的方法
US20060268967A1 (en) Supplying instruction to operational stations
US20110029140A1 (en) Central control and instrumentation system for a technical installation and method for operating a central control and instrumentation system
CN102073538B (zh) 实时运转时间系统以及此运转时间系统功能性模块
CN103052923A (zh) 安全控制装置及安全控制方法
WO2017129242A1 (en) Deterministic concurrent test program executor for an automated test equipment
Wang et al. Constructing reconfigurable software for machine control systems
CN110192159A (zh) 控制装置
Vieira et al. Low-cost industrial controller based on the raspberry pi platform
US9389604B2 (en) Method and system for the dynamic allocation of program functions in distributed control systems
US20160094158A1 (en) Method for power station simulation
EP2040204A1 (en) System and method for handling a dependency between two procuct segments of a process modeling a production system
CN104597832B (zh) 一种基于amba总线的plc程序调度器ip核
CN106527335A (zh) 一种支持协程功能的plc控制器
US20120022669A1 (en) Automation system having framework based controller
Prayati et al. A methodology for the development of distributed real-time control applications with focus on task allocation in heterogeneous systems
CN102306109A (zh) 一种实现通讯管理机内部逻辑可编程方法
Lu et al. A UML profile to model safety-critical embedded real-time control systems
Leitão et al. Petri net based methodology for the development of collaborative production systems
US20220171636A1 (en) Control device and method for deployment of software

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant