CN109937404A - 程序模块之间的实时数据交换 - Google Patents

程序模块之间的实时数据交换 Download PDF

Info

Publication number
CN109937404A
CN109937404A CN201780069835.4A CN201780069835A CN109937404A CN 109937404 A CN109937404 A CN 109937404A CN 201780069835 A CN201780069835 A CN 201780069835A CN 109937404 A CN109937404 A CN 109937404A
Authority
CN
China
Prior art keywords
storage device
data storage
program module
data
variable
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
CN201780069835.4A
Other languages
English (en)
Other versions
CN109937404B (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 CN109937404A publication Critical patent/CN109937404A/zh
Application granted granted Critical
Publication of CN109937404B publication Critical patent/CN109937404B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • 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
    • 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/54Interprogram communication
    • G06F9/541Interprogram communication via adapters, e.g. between incompatible applications
    • 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/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues

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)
  • Stored Programmes (AREA)

Abstract

本发明涉及一种用于在程序模块11,12,13之间交换实时数据的方法。该方法包括:提供数据存储装置20,在数据存储装置20内存储元信息21‑31,其中,元信息21‑31具有至少一个变量。此外,该方法还包括:提供至少一个描述文件,借助描述文件配置数据存储装置20。此外,该方法还包括:提供至少一个连接者14,其中,借助该连接者14,能够根据描述文件内的请求在程序模块11,12,13之间通过数据存储装置20建立连接,并且其中,程序模块11,12,13在使用相同的或不同的编程语言的条件下创建并能够由实时操作系统执行。此外,该方法还包括在程序模块11,12,13其中之一与数据存储装置20之间通过连接者14交换至少一个变量21‑31。

Description

程序模块之间的实时数据交换
技术领域
本发明基于自动化技术领域,并涉及一种用于在程序模块之间进行实时数据交换的方法。此外,本发明还涉及一种数据存储装置,一种用于在程序模块之间进行数据交换的设备,一种实时操作系统以及一种计算机程序产品。
背景技术
当前的主题,如工业4.0,物联网或VDI的Agenda CPS,表明未来自动化设备将以高比例的联网和软件为特征。在此,将从传统的IEC 61131-3编程转变为现代通用语言。到2018年,所使用的代码应大约70%都并非IEC定义的语言。在此,除了现有的要求、例如实时能力和一致性以外,还需要更大的灵活性,更高的安全性和更好的可维护性。
在传感器联网中,整体系统的实时能力起到决定性作用。这尤其在具有时间严格的流程的工业环境中意义重大。因此,需要改善自动化设备中所有系统部件的实时能力。在此,由于未来的发展,存储装置以及访问其的程序模块特别重要,因为趋势上必须保存并处理增长的数量的数据。
发明内容
本发明的目的在于,提供一种解决方案,从而改善程序模块之间实时的数据交换。
此目的根据本发明通过权利要求1的特征实现。此外,此目的还通过根据权利要求12的数据存储装置,根据权利要求14的、用于在程序模块之间进行数据交换的设备,一种根据权利要求15的实时操作系统以及一种根据权利要求16的计算机程序产品实现。其他设计方案由从属权利要求给出。
在根据本发明的程序模块之间的实时数据交换方法中,包括提供数据存储装置以及在数据存储装置中储存元信息,其中,元信息具有至少一个变量。此外,该方法还包括提供至少一个描述文件并借助描述文件配置数据存储装置。此外,该方法还包括提供至少一个连接者,其中,借助该连接者能够根据描述文件内的请求在程序模块之间通过数据存储装置建立连接,并且其中,程序模块在使用相同或不同的编程语言的条件下建立并能够由实时操作系统执行。此外,该方法还包括在程序模块其中之一与数据存储装置之间通过连接者交换至少一个变量。
数据存储装置尤其包括软件部件,例如构造为控制设备固件的一部分,其中,控制设备尤其构造为用于控制自动化系统的控制工具。例如,控制设备可用于读取传感器数据并根据传感器数据控制执行器,其中,为此目的,在控制设备上执行多个程序模块。
数据存储装置包括存储器,程序模块能够通过该存储器交换数据。数据存储装置的称作连接者的功能提供从一个程序模块到另一程序模块的、通过数据存储装置的连接。数据存储装置可通过存储器提供用于在程序模块之间交换的工具本地的数据,并能够由所有进程同等地使用。
元信息尤其由数据存储装置读取,并能够分别分配给一个程序模块,其中,元信息尤其可包括用于程序模块中的变量的标识、以及额外的、对应于该变量的信息,例如数据类型。
描述文件定义数据存储装置的配置,其中,描述文件例如可包括元信息或例如文件路径形式的、关于待读取的元信息的信息。此外,描述文件还可包括定义应建立的连接者的信息。
描述文件例如以文本文件的形式在控制设备的存储器内提供,并例如在控制设备启动或接通时由作为控制设备固件一部分的数据存储装置读取。
描述文件内创建连接者的条目可视作对创建相应连接者的请求,也就是说,在数据存储装置内提供相应的功能。为此目的,描述文件例如包含应将一个程序模块的哪个接口或端口与另一程序模块的哪个接口或端口相连的信息。程序模块的接口或端口例如通过API(应用程序编程接口)提供。描述文件可理解为元描述文件,借助该元描述文件能够为每个接口或端口指定其相应的数据类型和数据方向。
数据存储装置因此尤其提供了存储器或全局数据空间,在其中可保存程序模块变量或变量数值,从而其他程序模块能够对其进行访问。
为此目的,通过数据存储装置的称作连接者的功能,在其中一个程序模块和数据存储装置之间交换至少一个变量或变量数值,也就是说,程序模块向数据存储装置发送保存在存储器或全局数据空间内的变量或变量数值,或者程序模块调取保存在存储器或全局数据空间内的变量或变量数值,其中,通过相应程序模块的接口进行通信,该程序模块通过连接者相连。
在自动化技术中可能存在从使用传统SPS编程语言到使用通用语言的转变。因此,根据本发明,在使用以不同的编程语言撰写的程序模块时也能够实时地访问共同的数据存储器或数据存储装置。
迄今为止,例如标准IEC 61131规定了用于可编程控制器的编程语言的句法和语义。在此,提出了一套统一的、用于可编程控制器的编程语言。该套编程语言具有两种文本语言(指令列表和结构化文本)以及两种图形语言(梯形图和功能框图)。此外,在标准IEC61131(版本3.0,2013-02)中还定义了简化程序控制器与自动化系统的其他部件之间通信的特征。
但是,根据本发明,也可使用其他编程语言,其脱离于当今根据IEC 61131的传统编程语言或者目前已经与其并行地使用。例如可使用分别以根据标准IEC 61131编程语言的编程语言、Matlab/Simulink,C++,C#或JAVA或Python至少其中之一编程的程序模块。其他编程语言同样可能。
因此,可以为所有程序模块使用唯一的编程语言。也可以为两个或更多的程序模块使用不同的编程语言。
程序模块例如借助编程界面、尤其借助API(API=application programminginterface,应用程序编程接口)控制。描述文件可例如作为XML文件(XML=ExtensibleMarkup Language Datei,可扩展标记语言文件)提供。
数据存储装置的编程界面或API为应用研发者实现了借助公开变量的元信息对其进行搜索并在运行时建立连接者。除了通过连接者进行静态连接以外,也可以通过连接者构建动态连接。这对数据访问在运行时改变的部件是必要的,例如OPC-UA服务器(OPC-UA=Open Platform Communications Unified Architecture,开放平台通信统一架构),其能够在每个时间点提供数据点的浏览。为了能够详细地分析并找错,编程界面或API还提供了对构建的所有连接者进行列表的可能性。
数据存储装置及其连接者的配置可通过例如一个或多个XML文件形式的一个或多个描述文件进行。该描述文件允许替代编程而进行配置。因此,能够在运行时改变设备的功能,而无须重新翻译各个应用部分。这也允许用户使用描述文件或者说基于XML的配置,直接针对控制装置进行调整,或者使用外部的工具或工具链(Toolchain)。描述文件或XML文件的结构在此通过明确定义的Schema文件设定,其实现了对配置的快速校验。
除了数据存储装置的配置以外,也可借助描述文件、尤其通过基于XML的描述文件定义程序模块或程序及其接口或端口。描述文件可理解为元描述文件,借助其能够为每个接口或端口指定其相应的数据类型和数据方向。额外地,也可给出为了实现数据存储装置内的动态搜索可以考虑的其他特性。例如,单位或固件特有的标签。为了能够实现不同编程领域的变量的连接,有利地使所有数据类型以同一语言定义。借助该共同的语言实现了,对使用了原始的、自定义的或者通过程序库或者说Library设定的数据类型的程序进行描述。该通用的描述语言有利于结构或该结构的各个元件的连接。
在多个描述文件或多个XML配置文件中对数据存储装置、连接者或程序元数据的详细说明实现了将整体应用分割为多个功能性模块,其可以由不同研发组或供应商创建。这不仅简化了复杂设备控制的研发,而且也简化了运行的设备的逐步扩展。因此,无须从一开始就提供整体应用,而可以由局部模块组成该整体应用。就此而言,整体应用理解为对在控制工具上的执行所必须的所有程序或程序模块、任务或Task以及配置调节。
就此而言,概念“程序”和“程序模块”可以替换地使用。
描述文件具有一个或多个元信息(Metainformation)。元信息描述变量和程序,例如哪个变量端口提供程序以及其为哪种数据类型。端口理解为构成程序或部件的输入处或输出处的变量,并且因此通过为其提供在数据存储装置中的存储位置而(有方向地)相连。元信息描述整个程序,即,元信息描述所有用于输入和输出的接口或端口的总和,变量的类型以及其结构如何,例如Bool、整数或复数、合成的数据类型。元信息的一个示例为布尔型(Typ Boolean)变量“释放”。连接者可传达变量,例如将“释放”向另一程序转达为Bit型变量“Go”。在此,变量的数值从布尔型转换为Bit型。
变量的数据可在数据存储装置的存储器内读写。这以何种方式发生,将借助连接者说明。为了说明程序借助端口提供哪些变量,需要元信息。例如,程序“A”可提供具有类型“布尔”的变量“释放”。该变量保存在数据存储装置的存储器中并且该变量的数值由程序“A”描述。另外的程序可通过连接者读取该数值,该连接者知道此变量在数据存储装置的存储器内保存在哪。
在一种优选的实施形式中,该方法还包括通过程序模块中的第一程序模块提供数据存储装置内的变量,通过数据存储装置使提供的变量对程序模块中的至少一个第二程序模块公开,并且至少第二程序模块访问数据存储装置内的该变量。
在该方法的另一设计方案中,提供至少一个缓冲机构,其用于储存数据存储装置内的元信息内的变量。
可使用不同的缓冲机构或存储机构,例如四通道缓冲器,或者作为单通道存储装置的单缓冲器。缓冲机构可例如为了缩放而适配于具有小内存的系统。
此外,另一设计方案的有利的方法包括在程序模块上使用编程界面,其中,编程界面能够搜索数据存储装置内的元信息。
此外,在该方法中可以有利地包括连接者的动态生成。
例如,元信息的搜索允许连接者的动态生成(Subscription,订阅),例如通过OPC-UA服务器。就此而言,动态意味着该连接不通过描述文件配置,而是在运行中能够通过数据存储装置的API产生和消除。
此外,在该方法中有利地包括,数据存储装置构造用于在描述文件的要求下为程序模块中的一些供应元信息,使得这些程序模块能够以不同的、由实时操作系统管理的进程执行。
在本方法的另一设计形式中,可以设置通过连接者将变量从第一数据类型转换为第二数据类型。
此外,本方法还可有利地借助连接者执行功能性操作。
连接者的另一选项在于,可以类似于类型转换器地也负责功能性操作。因此,可以例如在不进行额外编程的条件下将温度从华氏换算为摄氏。
在本方法的另一设计形式中,可以通过额外的程序模块扩展数据存储装置,而并不执行控制系统的重启。
控制系统通常表示能够在程序模块中加载、启动、纠错、停止和卸载的流程控制。控制系统安装在实时操作系统上。
有利的是,可以扩展控制系统,而无须中断控制系统以重启。由此方式,能够连续地继续运行。
此外,在该方法中可有利地包括,如果在设定的时间间隔内未进行公开的变量的更新,则通过连接者提供替换数值。
为了满足程序的不同要求,连接者可以具有不同特性。因此,用户能够在不同连接者间选择,这些连接者根据应用的设计目的而例如聚焦于实时能力、数据一致性、存储器消耗或者这些特性的结合。连接者可额外地承担以下任务,即,如果程序没有在定义的时间间隔内更新其公开的变量,则提供替换数值。
在另一有利的设计方案中,该方法还包括借助描述文件、通过定义接口、用于该接口的数据类型以及该接口的数据方向而配置数据存储器。
在此,概念“接口”应与表述“端口”等同。接口的数据方向可定义为输入(Inport)或输出(Outport)。公开的的程序的输出与订阅的程序的输入之间的连接借助连接者实现。连接者提供多种功能性。例如可通过连接者在参与的程序领域的不同数据类型之间进行可能的转换。因此,例如能够以简单的方式将INT从IEC 61131-3程序转换为C++程序的int16。
其他部件的数据、例如现场总线系统的数据也可以在数据存储装置中映射为可连接的端口。这为用户实现了以简单的方式将IO数据(IO=Input Output,输入输出)与不同编程领域的程序相连。例如,由此方式能够将现场总线的工具结构化地表示为变量并用户定义地命名。
此外,本发明的目的还通过一种用于在实时操作系统内的、相同或不同编程语言的程序模块之间进行数据交换的数据存储装置实现,其中,数据存储装置具有用于执行根据本发明的方法的存储器。
数据存储装置优选构造为全局数据存储装置(GDS)。此外,数据存储装置还可作为控制装置的中央执行的软件部件安装在自动化设备内。在此,数据存储装置可通过存储器提供工具本地的数据用于在程序间交换,并且能够由所有进程同等地使用。
在数据存储装置的一种设计方案中,在数据存储装置的存储器内设置交换区域,其中能够写入数据并读取数据,其中,程序模块能够通过接口访问数据存储装置。
数据存储装置及其连接者可支持一个任务或Task内部的、以及跨任务界限的变量的一致性交换。将传统IEC 61131-3的程序执行原理应用于任务执行。因此,为其他任务内的程序任务一致地提供了输入数据。此外,元信息或数据还可在一个任务内部的程序之间直接交换。
此外,本发明的目的还通过一种用于在实时操作系统内的相同或不同编程语言的程序模块之间进行数据交换的设备实现。在此,设备具有根据本发明的数据存储装置、至少一个处理器和至少一个到自动化装置的接口。
此外,本发明的目的还借助一种用于在相同或不同编程语言的程序模块之间进行数据交换的实时操作系统实现。在此,该实时操作系统具有数据存储装置,至少一个存储的描述文件,借助该描述文件能够配置数据存储装置,以及多个能够由实时操作系统执行的程序模块,其在使用相同或不同编程语言的条件下创建。在此,数据存储装置构造用于在使用连接者的条件下将程序模块彼此相连,从而在程序模块之间交换至少一个变量,其中,在数据存储装置中存储具有至少一个变量的元信息。
具有至少一个变量的元信息可以由连接者用于构建连接。此外,使用例如可设计为XML文件的一个或多个描述文件。在使用多个描述文件的情况下,其可组合为配置或总配置。这可通过多个描述文件上级的一个配置文件实现。
此外,本发明的目的还通过一种计算机程序产品实现,其具有用于执行根据本发明的方法的程序代码媒介,其中,该计算机程序产品在实时操作系统内的计算机系统上运行。
附图说明
本发明的一些实施例在附图中纯示意性地示出并且在下文中进行进一步阐述。其中示出了:
图1示出了用于在实时操作系统内的程序模块之间进行数据交换的设备的一个实施例;
图2示出了用于控制机器的、具有多个不同数据类型的端口的连接的一个实施例;并且
图3示出了用于借助实时操作系统内的不同程序模块执行任务的一个实施例。
具体实施方式
图1示出了用于实时操作系统内的程序模块11,12,13之间的数据交换的设备10的一个实施例。在此,程序模块11,12,13之间的实时数据交换通过数据存储装置20执行。具有程序CPP_Filter,IEC_Sync和SIM_CTRL的程序模块11,12,13能够通过用于数据交换的连接者彼此相连。示例性的连接者14、或者称作“智能连接者”在程序模块11和12之间以箭头表示,其可称作“智能连接者”。连接者14提供了程序模块11到程序模块12的通过数据存储装置20的连接。
在此,图1中示出了具有CPP_Filter的程序模块11到全局存储器20、并由那到具有IEC_Sync程序的程序模块12的连接的简化示图,数据如何得到访问或数据如何保存。连接者20定义了数据源(CPP_Filter)能够如何写入变量/数据并且数据接收器(IEC_Sync)如何将其读取。在此,“智能连接者”表示还能够一同指明关于数据转换的信息。
除了变量的名字以外,在数据存储装置20中还可以额外地保存其他元信息。这还包括最后一次更改的时间点、访问权、可视性、数据类型、用户定义的属性或者描述性文字。
除了由任意编程语言已知的基础数据类型以外,连接者14也可以使用户定义的数据类型彼此连接,例如结构、阵列或这两者的组合。在此,可以使用整体数据类型或者其局部的连接。
此外,在图1中还示意性地示出了其他部件,其例如实施为软件部件,如自动化设备的现场总线15、OPC-UA服务器16、网页服务器17和分别读写地访问数据存储装置20内提供的数据21-31的其他的任意部件18。
此外,数据存储设备10具有处理器32和到自动化装置的接口33。在所示示例中,数据存储装置20与处理器32以及与接口33相连。该连接可为有线或无线的。此外,在所示实施例中,接口33与现场总线15的部件相连。
图1中的数据存储装置11为用于保存数据的全局存储器,其中,数据21-31实施为元数据或元信息,并且包含至少一个变量。该变量可以在数据存储装置11中公开并且提供给其他程序模块11,12,13或部件15,16,17,18,方式是为其订阅变量或使其实时获得变量。
每个程序模块11,12,13、无论其出自哪个编程领域、都通过使用设定的API获得将变量保存在作为全局数据空间的数据存储装置20中的可能性。变量的保存和公开可以通过在系统启动时的静态配置以及运行时动态地进行。在此,变量获得明确的名字,借助该名字使其能够在数据存储装置20中被搜索。在公开后,其他程序模块可以订阅变量并因此使用其数值。公开的变量根据读取或写入的数据方向定义为输入(Inport)或输出(Outport)。
图2示出了用于控制机器、尤其用于控制机器的传动系的、具有不同数据类型的端口的连接的一个实施例。在此,连接41至46代表如图1所示的连接者。在图1中相连的端口并未在其他附图中示出。连接者41示出了从Bool到BIT的转换,连接者44示出了结构及其元素的互连,并且连接者46示出了矢量元素的互连,矢量元素包括字节变换(Byte-Swapping),缩放/偏差校正和类型转换。在此,连接可用于整体数据类型或其局部。
图3示出了借助实时操作系统中不同的程序模块11,12,13执行任务50,51的实施例。程序模块11,12,13从数据存储装置20获得其数据,尤其订阅变量,如图1所示以及所述的。
图3示出了在考虑流程控制的条件下的任务50,51或Task、程序和连接者的示例性结构。作为主循环任务(Main-Cyclic Task)任务的任务50与作为控制循环任务(Ctrl-Cyclic Task)或控制任务的任务51之间的任务一致的数据交换通过数据存储装置20的缓冲机构54实现。数据一致性与各个任务50,51或Task、其优先等级及其时间表现无关。
第一任务50具有带有程序CPP_Filter和IEC_Sync的程序模块11和12,其中,程序模块11,12的编程语言彼此不同。此外,第二任务51具有带有程序SIM_CTRL的程序模块13。程序模块13也以不同于程序模块11,12的编程语言的编程语言撰写。因此,所有这些程序模块都具有不同的编程语言。
图3示出了端口之间连接的结构示意图。在此,存在输入端口和输出端口,其表示为Inport 52和Outport 53,并且通过其发送输入数据或输出数据。
在图3中所示的任务50,51内部及外部的箭头为连接者。在此,连接者通过缓冲机构54、例如通过四通道存储器同步,以用于程序模块11,12,13之间不卡顿的、循环一致的数据交换。借助连接者定义数据随后以何种方式和方法针对目的进行复制。连接者的一个实施例为从任务51的输出端53到任务50的输入端52的、通过数据存储装置20的缓冲机构54的整个路径。
在图3中,在任务50内也存在从具有CPP_Filter的程序模块11到具有IEC_Sync的程序模块12的直接连接,而不使用经过其他所示连接者的路程。该连接在图1中未示出。
通过提供根据本发明的数据存储装置20作为全局数据存储器或Global DataSpace(GDS)并且作为数据存储设备10的一部分,实现了在不同编程领域的程序或程序模块11,12,13之间等值通信的可能性。可以在程序模块11,12,13或者说程序之间进行实时数据交换,该程序模块或程序也可以是以不同编程语言撰写的。在此,数据存储装置20担任数据池的功能,其实现了不同编程语言的原始(primitiv)以及合成(complex)数据类型的连接。在此,需要并且满足了对数据一致性以及数据交换时、尤其实时操作中的效率的高要求。数据存储装置20实现了对程序和元信息之间建立的数据连接的管理,该数据连接实现了对现有数据的浏览和动态连接。
整体上,根据本发明实现了一种作为新固件结构的组成部分的功能性,在该新固件结构的基础上能够实现新的工业控制。该结构首先设计用于在工具或控制工具上使用。
在此期望的是,完善控制装置的传统编程,以支持通用语言。为此,在IEC 61131-3和通用语言世界之间的平滑过渡是所要争取的。其前提条件在于,除了支持这些语言以外,不同编程领域还要无缝结合。这还包括Matlab/Simulink,C++,C#,JAVA,Python和IEC61131-3的语言。为了实现此种无缝结合,控制装置应能够将由IEC61131-3已知的、具有程序机构和任务或Task的流程转化为其他编程领域的流程。尽管对技术实现的该复杂要求,但额外地确保了数据安全、可用性、灵活度以及最重要的效率性能的方面。
下文中示例性地以XML格式给出了用于数据存储装置配置的描述文件的一种可能的内容:
下文中示例性地以XML格式给出了具有程序模块元信息的数据的一种可能的内容:
附图标记说明
10 设备
11 程序模块
12 程序模块
13 程序模块
14 连接者
15 现场总线或英文Fieldbus
16 OPC-UA服务器
17 数据存储装置
18 部件
20 数据存储装置
21-31 数据
32 处理器
33 接口
41-46 连接者
50 任务
51 任务
52 输入或Inport
53 输出或Outport
54 缓冲机构

Claims (16)

1.用于在程序模块(11,12,13)之间交换实时数据的方法,该方法包括:
提供数据存储装置(20),
在所述数据存储装置(20)内存储元信息(21-31),其中,所述元信息(21-31)具有至少一个变量,
提供至少一个描述文件,
借助所述描述文件配置所述数据存储装置(20),
提供至少一个连接者(14),其中,借助该连接者(14),能够根据所述描述文件内的请求在所述程序模块(11,12,13)之间通过所述数据存储装置(20)建立连接,
其中,所述程序模块(11,12,13)在使用相同的或不同的编程语言的条件下创建并能够由实时操作系统执行,并且
在所述程序模块(11,12,13)其中之一与所述数据存储装置(20)之间通过所述连接者(14)交换至少一个所述变量(21-31)。
2.根据权利要求1所述的方法,
进一步包括:
通过所述程序模块(11,12,13)中的第一程序模块在所述数据存储装置(20)内提供变量,
通过所述数据存储装置(20)将所提供的变量向所述程序模块(11,12,13)中的至少一个第二程序模块公开,并且
通过至少所述第二程序模块访问数据存储装置(20)内的所述变量。
3.根据权利要求1或权利要求2所述的方法,
进一步包括:
提供至少一个缓冲机构(34)用于存储所述数据存储装置(20)内的变量(21-31)。
4.根据前述权利要求中任一项所述的方法,
进一步包括:
在程序模块(11,12,13)上使用编程界面,其中,所述编程界面能够搜索所述数据存储装置(20)内的元信息(21-31)。
5.根据前述权利要求中任一项所述的方法,
进一步包括:
动态地生成所述连接者(14)。
6.根据前述权利要求中任一项所述的方法,
其特征在于,
所述数据存储装置(20)构造用于,作为对所述描述文件的响应而为所述程序模块(11,12,13)中的至少一些供应元信息(21-31),使得所述程序模块能够在不同的、由所述实时操作系统管理的进程中执行。
7.根据前述权利要求中任一项所述的方法,
进一步包括:
通过所述连接者(14)将所述变量从第一数据类型转换为第二数据类型。
8.根据前述权利要求中任一项所述的方法,
进一步包括:
借助所述连接者(14)执行功能性操作。
9.根据前述权利要求中任一项所述的方法,
进一步包括:
通过额外的程序模块(11,12,13)扩展所述数据存储装置(20),而不执行控制系统的重启。
10.根据前述权利要求中任一项所述的方法,
进一步包括:
如果在定义的时间间隔内未进行对公开的变量的更新,则通过所述连接者(14)提供替换数值。
11.根据前述权利要求中任一项所述的方法,
进一步包括:
借助所述描述文件通过定义接口、用于接口的数据类型以及接口的数据方向而配置所述数据存储装置(20)。
12.用于在实时操作系统内相同或不同编程语言的程序模块(11,12,13)之间进行数据交换的数据存储装置(20),所述数据存储装置具有用于执行根据权利要求1至11中任一项所述的方法的存储器。
13.根据权利要求12所述的数据存储装置(20),所述数据存储装置具有所述存储器内的交换区域,数据能够写入该交换区域中并且能够从该交换区域中读取数据,其中,能够通过所述数据存储装置(20)上的接口访问所述程序模块(11,12,13)。
14.用于在实时操作系统内的相同或不同编程语言的程序模块(11,12,13)之间进行数据交换的设备(10),所述设备具有:
根据权利要求12或权利要求13所述的数据存储装置(20),
至少一个处理器(32),以及
到自动化装置的至少一个接口(33)。
15.用于在相同或不同编程语言的程序模块(11,12,13)之间进行数据交换的实时操作系统,所述实时操作系统具有:
数据存储装置(20),
保存的至少一个描述文件,借助所述描述文件能够配置所述数据存储装置(20),
能够由所述实时操作系统执行的多个程序模块(11,12,13),所述程序模块在使用相同的或不同的编程语言的条件下创建,其中
所述数据存储装置(20)构造用于,在使用至少一个连接者(14)的条件下将所述程序模块(11,12,13)彼此相连,从而在所述程序模块(11,12,13)之间交换至少一个变量(21-31),其中,具有所述至少一个变量(21-31)的元信息保存在所述数据存储装置(20)中。
16.具有程序代码媒介的计算机程序产品,其用于执行根据权利要求1至11中任一项所述的方法,其中,所述计算机程序产品在实时操作系统内的计算机系统上运行。
CN201780069835.4A 2016-11-10 2017-11-10 程序模块之间的实时数据交换方法和系统 Active CN109937404B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
LU93300A LU93300B1 (de) 2016-11-10 2016-11-10 Austausch von Echtzeitdaten zwischen Programmmodulen
LU93300 2016-11-10
PCT/EP2017/078924 WO2018087308A1 (de) 2016-11-10 2017-11-10 Austausch von echtzeitdaten zwischen programmmodulen

Publications (2)

Publication Number Publication Date
CN109937404A true CN109937404A (zh) 2019-06-25
CN109937404B CN109937404B (zh) 2023-05-09

Family

ID=57960772

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780069835.4A Active CN109937404B (zh) 2016-11-10 2017-11-10 程序模块之间的实时数据交换方法和系统

Country Status (7)

Country Link
US (1) US10977099B2 (zh)
EP (2) EP3538996B1 (zh)
CN (1) CN109937404B (zh)
DK (1) DK3538996T3 (zh)
ES (1) ES2909553T3 (zh)
LU (1) LU93300B1 (zh)
WO (1) WO2018087308A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116775038A (zh) * 2023-06-26 2023-09-19 国电南京自动化股份有限公司 支持iec和c++任务同时或独立运行的运行时系统
CN116775038B (zh) * 2023-06-26 2024-06-04 国电南京自动化股份有限公司 支持iec和c++任务同时或独立运行的运行时系统

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113094192B (zh) * 2021-04-23 2024-05-28 杭州网易云音乐科技有限公司 一种数据处理方法、装置、介质和设备
CN115291853B (zh) * 2022-10-09 2023-02-24 浙江中控研究院有限公司 一种ld语言在plc编程软件中导出导入的方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2415806A (en) * 2004-07-02 2006-01-04 Northrop Grumman Corp A dynamic software integration architecture
US20120303847A1 (en) * 2010-11-23 2012-11-29 Siemens Aktiengesellschaft Sensor interface engineering
US20130055291A1 (en) * 2011-08-31 2013-02-28 Microsoft Corporation Describing native application programming interfaces of an operating system with metadata
CN103455591A (zh) * 2013-08-30 2013-12-18 国家电网公司 一种并行协同系统的标准数据交换接口方法
CN105308593A (zh) * 2013-06-04 2016-02-03 阿海珐核能公司 技术设施描述性数据交换方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6915487B2 (en) * 2000-12-11 2005-07-05 International Business Machines Corporation Method, system, computer program product, and article of manufacture for construction of a computer application interface for consumption by a connector builder
CH709007A2 (de) * 2013-12-19 2015-06-30 Opacc Lab Ag Service Bus zur Integration verteilter Informations- und Kommunikationsdienste in die Anwendungslandschaft eines kleinen oder mittelständischen Unternehmens.

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2415806A (en) * 2004-07-02 2006-01-04 Northrop Grumman Corp A dynamic software integration architecture
US20120303847A1 (en) * 2010-11-23 2012-11-29 Siemens Aktiengesellschaft Sensor interface engineering
US20130055291A1 (en) * 2011-08-31 2013-02-28 Microsoft Corporation Describing native application programming interfaces of an operating system with metadata
CN105308593A (zh) * 2013-06-04 2016-02-03 阿海珐核能公司 技术设施描述性数据交换方法
CN103455591A (zh) * 2013-08-30 2013-12-18 国家电网公司 一种并行协同系统的标准数据交换接口方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116775038A (zh) * 2023-06-26 2023-09-19 国电南京自动化股份有限公司 支持iec和c++任务同时或独立运行的运行时系统
CN116775038B (zh) * 2023-06-26 2024-06-04 国电南京自动化股份有限公司 支持iec和c++任务同时或独立运行的运行时系统

Also Published As

Publication number Publication date
DK3538996T3 (da) 2022-04-11
US10977099B2 (en) 2021-04-13
EP3995960A1 (de) 2022-05-11
EP3538996B1 (de) 2022-01-26
LU93300B1 (de) 2018-06-18
WO2018087308A1 (de) 2018-05-17
CN109937404B (zh) 2023-05-09
US20190272203A1 (en) 2019-09-05
ES2909553T3 (es) 2022-05-09
EP3538996A1 (de) 2019-09-18

Similar Documents

Publication Publication Date Title
Talkhestani et al. Consistency check to synchronize the Digital Twin of manufacturing automation based on anchor points
US8327316B2 (en) Compilation model
US7747416B2 (en) System and method for batch process control with diverse distributed control system protocols
EP1770463B1 (en) Incremental association of metadata to production data
US9134974B2 (en) Source code separation and generation for heterogeneous central processing unit (CPU) computational devices
CN108681444A (zh) 一种基于xml技术的软plc组态开发方法
CN101819529A (zh) 用于实现工作流任务界面可视化开发的系统和方法
US7669002B1 (en) System and method for providing an application with memory access methods
JPH04507160A (ja) コンピユータ
CN101604241A (zh) 一种嵌入式系统的代码生成方法
CN102087594A (zh) 扩展点和插件的管理方法和装置
Estévez et al. PLCopen for achieving interoperability between development phases
CN109937404A (zh) 程序模块之间的实时数据交换
JP2016224558A (ja) プログラム作成支援装置、制御方法およびプログラム
Müller Using S-BPM for PLC code generation and extension of subject-oriented methodology to all layers of modern control systems
US20100198781A1 (en) Plc having communication function
CN102455903A (zh) 一种用户应用界面的生成方法
CN111954854A (zh) 支持装置以及支持程序
CN102004955A (zh) 电力调度运行管理应用系统
CN106814696B (zh) 一种数控系统人机界面二次开发平台系统及其实现方法
Zyubin Using process-oriented programming in LabVIEW
Wang et al. Function block design for adaptive execution control of job shop machining operations
CN103546527A (zh) 一种可扩展的工业组态或仿真软件通信方法
Schlechtendahl et al. Energy control system for energy-efficient control of machine tools
CN110493343A (zh) 一种基于opc的与多plc通讯的方法

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