CN103150195A - 将以自动化语言表示的控制程序翻译为中间语言的方法 - Google Patents
将以自动化语言表示的控制程序翻译为中间语言的方法 Download PDFInfo
- Publication number
- CN103150195A CN103150195A CN2012105263926A CN201210526392A CN103150195A CN 103150195 A CN103150195 A CN 103150195A CN 2012105263926 A CN2012105263926 A CN 2012105263926A CN 201210526392 A CN201210526392 A CN 201210526392A CN 103150195 A CN103150195 A CN 103150195A
- Authority
- CN
- China
- Prior art keywords
- transformation rule
- control program
- language
- basic operation
- execution block
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
-
- 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—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/042—Programme 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—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/05—Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
- G05B19/056—Programming the PLC
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- 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/10—Plc systems
- G05B2219/13—Plc programming
- G05B2219/13119—Compiler
-
- 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/23—Pc programming
- G05B2219/23266—Compiler
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Automation & Control Theory (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
本发明涉及一种用于将以自动化语言(30)表示的控制程序(18)翻译为中间语言(32)的方法,控制程序(18)包括多个基本操作(36),对每个基本操作以中间语言在一序列(38)指令中进行描述,该方法特征在于,为了将控制程序(18)翻译为中间语言,访问规格数据库(40),规格数据库包括各自的转换规则(42),用于至少多个能在控制程序(18)中使用的以自动化语言(30)表示的基本操作,该转换规则允许对输入参数列表(46)进行处理,并且在连同具有在转换规则中并未限定的多个输入参数(50)的输入参数列表调用转换规则的情况下,该转换规则定义另一个转换规则(48)的包含,另一个转换规则相应于多个输入参数定义另一个转换规则的递归包含。
Description
技术领域
本发明涉及一种用于将以自动化语言表示的控制程序自动地翻译为中间语言的方法以及一种按照这种方法运行的计算机程序,特别是一种所谓的用于创建和维护作为用于待控制和/或待监控技术流程的自动化解决方案的控制程序的开发环境,并且此后涉及一种以编程装置为形式或者编程装置类型的设备,在该设备上执行或者能够执行这样的计算机程序/这样的开发环境。
背景技术
对于创建用于控制和/或监控技术流程的控制程序(自动化解决方案)已知的是,程序员在所谓的编辑器上创建其各种控制程序,该编辑器例如是开发环境的组成部分。此外程序员还使用由各种自动化语言(编程语言)提供的基本操作。当控制程序的创建结束时,即将该控制程序翻译为可执行的代码。在将所创建的控制程序翻译为可执行的代码的范畴中时常设计为,即所创建的控制程序在第一个步骤中被转换成简单的中间语言,也就是在专业术语中也被称为中间表述的表达。这就易于为例如存储程序控制器、分散的现场设备、驱动控制装置等各种自动化设备的不同的处理器生成可执行的代码,在这些自动化设备上执行用于控制各个技术流程的控制程序。
另外,控制程序中所包含的基本操作必须以中间语言在一序列指令中进行描述,也就是说,一个基本操作被转换成分别至少一个以中间语言表 示的指令。在将程序翻译为中间语言时,为此所设的功能、例如所谓的编译器会对基本操作进行识别并且将该基本操作转换成相应的以中间语言表示的指令序列。这种转换所基于的转换规则被集成在编译器中。
这种做法的不足在于,只有当对编译器被这样进行扩展,使得编译器识别并相应地处理新的基本操作时,才能以编程语言定义和使用这些新的基本操作。
发明内容
据此,本发明的目的相应地在于,提出一种用于将以自动化语言表示的控制程序自动地翻译为中间语言的方法,该方法在上述方面的优点在于额外的灵活性,并且特别是允许为自动化语言添加新的基本操作并且允许添加相应的转换规则以用于将该自动化语言转换为中间语言。
根据本发明,上述目的通过权利要求1所述的特征得以实现。为此,在开头所述类型的方法中,控制程序包括多个基本操作,并且其中对每个基本操作自动地以中间语言在一序列指令中进行描述,在该方法中设计为:为了将控制程序自动地翻译为中间语言,访问规格数据库,该规格数据库包括各自的转换规则,用于至少多个能在控制程序中使用的以自动化语言表示的基本操作,该转换规则允许对输入参数列表进行处理,并且在连同具有在转换规则中并未限定的多个输入参数的输入参数列表调用转换规则的情况下,该转换规则定义另一个转换规则的包含(Einbeziehung),其中,另一个转换规则相应于多个输入参数定义另一个转换规则的递归包含(rekursive Einbeziehung)。
本发明的优点首先就在于,由于使用了规格数据库,就不再需要转换规则作为编译器的组成部分。实际上,规格数据库在个别情况下可被设计为分布式的规格数据库,其中,规格数据库的第一部分作为编译器的部分,并且规格数据库的第二部分则不包括在编译器内,而是被用于使得编译器 能够随时访问这一部分规格数据库。下面对其整体并未包含在编译器内的规格数据库做进一步说明。只要是下述说明所涉及到的,在两种实施变型之间就不存在任何系统性的差别,因为重点是至少有一部分规格数据库并不包含在编译器内,并且因此可独立于编译器改变,因而能够随时添加或修改规格数据库或者该规格数据库的并未包含在编译器内的那一部分。
本发明的另一个优点在于,转换规则允许对输入参数列表、并且特别是这些包括并未限定的多个输入参数的输入参数列表进行处理。包括并未限定的多个输入参数的转换规则在规格数据库中设计为用于转换基本操作的基础,这种转换同样可能包括并未限定的多个参数。这样的基本操作例如用于逻辑与-运算,其已知地允许基本上不受限制的数量的参数的运算。
在这种情况下设计为,为了实现包括多个参数的基本操作的转换,使用将在该基本操作中所设定的所有参数汇总在其内的输入参数列表来调用各个转换规则。为了实现这一点、即为了能够将数量事先未知的参数传输给各个转换规则,设计为:在转换规则中并不限定输入参数的各个数量。此外,用于处理所传输的参数的转换规则还定义另一个转换规则的包含,并且该另一个转换规则相应于多个作为基础的基本操作的参数的自身又定义相同的另一个转换规则的包含。另外首先调用的转换规则能被理解为外部转换规则,在该外部转换规则中所包含的另一个转换规则则相应地能被理解为内部转换规则。因此,从外部转换规则出发,将与通过并未限定的输入参数列表传输给外部转换规则的输入参数的数量相对应的内部转换规则包含在其中。然后,在另一个内部转换规则中实现作为基础的基本操作的功能的实际的转换。
本发明的有利的设计方案是从属权利要求的主题。所使用的引用内容指出了通过各个从属权利要求的特征对独立权利要求的主题进行改进的方案;而不应理解为放弃为所引用的从属权利要求的特点之间的组合提供独立、实质的保护。此外,在权利要求的布局方面,在详细地具体化从属 权利要求中的特征方面由此出发,即在各个之前的权利要求中不存在这种限制。
在所述方法的一种实施方式中设计为,具有在转换规则中并未限定的多个输入参数的转换规则在为包含而设置的另一个内部转换规则中包括至少一个第一执行块和一个第二执行块,其中,至少一个第一执行块为输入参数的数量固定的情况定义作为基础的基本操作的翻译,并且其中,第二执行块为多个输入参数的情况定义基础作为的基本操作的翻译。在这里至少该第二执行块包括其自身的另一个内部转换规则的递归包含。因此,例如第一执行块能被设计为用于处理正好是一个输入参数的情况,另一个第一执行块被设计为用于处理例如正好是两个输入参数的情况,再另一个第一执行块则被设计为用于处理例如正好是三个输入参数的情况等等。
在本发明的一种特殊的实施方式中设计为,具有在转换规则中并未限定的多个输入参数的转换规则在为包含而设置的另一个内部转换规则中包括至少一个第一执行块和一个第二执行块,其中,第一执行块为正好是一个输入参数的情况定义作为基础的基本操作的翻译,并且其中第二执行块为多个输入参数的情况定义作为基础的基本操作的翻译并且包括其自身的另一个内部转换规则的递归包含。
为便于理解,在参数数量并未预先设定的基本操作的转换中所涉及到的转换规则称作转换规则和另一个转换规则或者是外部转换规则和内部转换规则。实际上,将首先涉及到的转换规则称为外部转换规则非常合理,因为将基本操作转换为中间代码首先就要用到这个外部转换规则。对于访问规格数据库的编译器而言,使用外部转换规则也能被理解为调用规格数据库中的外部转换规则。外部转换规则自身也定义了用于作为基础的基本操作的实际转换所需要的另一个转换规则、即内部转换规则。称作内部转换规则就意味着,该内部转换规则不需要像子程序或是类似的那样被包含在外部转换规则中,而仅仅应定义两个转换规则之间的层级关系。因此,内部转换规则从来都不会由编译器直接调用,而是只有当外部转换规则定 义了需要调用一个这样的内部转换规则时,才需要这样。内部转换规则设计用于进行递归的调用,并且根据原有的作为基础的基本操作的参数的数量以及由此被传输给外部转换规则的输入参数的数量所要求的频繁程度来进行这种递归的调用。
为了实现内部转换规则而设计为,该内部转换规则包括第一执行块和第二执行块,以及第一执行块为正好是一个输入参数的情况定义作为基础的基本操作的翻译。那么,第二执行块就被设计为用于为多个输入参数的情况实现作为基础的基本操作的翻译,并且包括各个内部转换规则的递归包含,即按照参数的各个数量多次自身地调用内部转换规则。
在本发明的一种特殊的实施方式中设计为,在规格数据库中以机器可读取的代码、尤其是XML代码来定义每个转换规则。这种在规格数据库中可由机器读取的代码具有这样的优点,即编译器可直接对该规格数据库以及存储在其中的转换规则的定义进行处理。当使用XML代码作为机器可读取的代码时,就具有这种优点,即这种XML代码一方面可由机器读取,另一方面资深程序员也可以理解,因而能够对规格数据库中的转换规则的定义进行手动修改。
前述目的还通过一种用于创建和维护作为用于待控制技术流程的自动化解决方案的控制程序的开发环境由此得以实现,即这种开发环境包括如这里和后面所述的方法的执行以及访问规格数据库的可能性,其中,规格数据库包括各自的转换规则,用于至少多个能在控制程序中使用的以自动化语言表示的基本操作。本发明就这方面而言以软件实现并且因而还涉及一种具有程序编码工具的计算机程序,用于当计算机程序、即例如前述类型的开发环境或者这种开发环境的部分功能在编程装置上被执行用于创建和维护作为用于待控制技术流程的自动化解决方案的控制程序时,执行根据权利要求1至4中任一项所述的全部步骤,能够执行用于实现前述方法和必要时实现各种单独的设计方案的全部步骤。
因此,本发明最后还涉及一种用于创建和维护作为用于待控制技术流程的自动化解决方案的控制程序的编程装置,其中,该编程装置以公知的方式和方法具有以微处理器为形式的或微处理器类型的处理单元和存储器,其中,在该存储器中载入如上面简述且在后面将更加详细地予以说明的计算机程序,在编程装置工作时通过该处理单元来执行该计算机程序。
附图说明
下面借助附图详细阐述本发明的一种实施例。相互对应的要素或元件在所有附图中均以同样的参考标号标示。实施例或每一个实施例不应被理解为对本发明的限制。更确切地说,可在当前的公开的范畴中进行修改和变化,对于专业人员例如根据具体任务的解决方案通过将单个的特征结合普通的特征或特别说明部分所述的特征以及在权利要求和/或附图中所包含的特征或方法步骤进行组合或变换从而能推断出这些修改和变化,并且由于特征之间可相互组合,从而形成新的主题或形成新的方法步骤或者说方法步骤顺序。
图中示出:
图1示出一种根据利用为此设置的开发环境而创建的控制程序来控制技术流程的自动化系统;
图2示出包括多个各自所用的自动化语言的基本操作、以源代码表示的控制程序,然后是包括以中间语言表示的分别描述基本操作的一序列指令的、以中间代码表示的控制程序以及最后以机器语言表示的控制程序;
图3示出借助转换规则对基本操作以中间语言在一序列指令中进行描述的图解;
图4示出包括编辑器和编译器的开发环境的图解的说明,其中,开发环境、特别是开发环境的编译器能够访问包括多个转换规则的规格数据库;
图5示出一个参数数量基本不限的基本操作的示例;
图6示出包含多个单个操作形式的参数的基本操作的层级图;
图7示出用于处理基本操作的特例的转换规则,该基本操作包括参数数量事先未知以及相应的在转换规则中并未限定的多个输入参数;以及
图8示出在如图7的转换规则中所包含的另一个转换规则递归调用的结果的图解的说明。
具体实施方式
图1非常简单地示意性地示出了完整的以10标示的、用于控制和/或监控未详细示出和基本上任意的技术流程12的自动化系统。自动化系统10能够正好包括一个自动化设备14或多个自动化设备14。在多个自动化设备14的情况下,这些自动化设备通常以公知的方式例如通过总线16相互通信地连接。这个或每个自动化设备14均被设计为用于执行控制程序18,并且各个控制程序18的功能在于通过自动化系统10来确定影响技术流程12的方式和方法。
通常使用编程装置20或用作编程装置的标准计算机来创建、管理并维护这种控制程序18。另外为了创建控制程序18,在编程装置20上设置开发环境22,该开发环境如公知的方式包括例如用于创建每个控制程序18的编辑器并且然后包括用于将控制程序18转为尤其是可执行代码的功能。
为了要说明能通过编程装置20以及尤其是该编程装置的开发环境22来创建每个控制程序18,还在编程装置20的范围中示出了控制程序18。实际上,对于控制程序18而言,必须在编程装置20方面有着细微的不同。一方面,由于在编程装置20上要保持控制程序18的基础、即在各种自动化语言中用于定义控制程序18的规则的顺序,因此,控制程序18存在于设计装置20上。另一方面,控制程序18也可能至少暂时地以一种能由自动化设备14执行的形式存在于编程装置20上,如果通过开发环境22编译了控制程序18的这种基础并且编译的结果至少暂时保存或者继续保存在编程装置20上。在这里和后面的说明中,控制程序18的每个区块也被称作控制程序,并且其上下文则分别用于说明,这是否涉及以源代码、以中间代码或以可执行代码表示的控制程序。
图2对此示出了更多的细节,更确切地说是针对其中基于源代码的控制程序18并不是直接被转换为可执行代码、而是首先转为中间代码的情况。在这里和后面的说明中,将“以源代码表示的控制程序”和“源代码”以及“以中间代码表示的控制程序”和“中间代码”用作同义词。对于“以可执行代码表示的控制程序”和“可执行代码”而言,同样是这种情况。
以源代码表示的控制程序即以各种自动化语言表示的控制程序。以中间代码表示的控制程序即相同的包含一序列以各种中间语言表示的、映射的基本操作的指令的控制程序。
图2在第一区块中示出了以自动化语言表示的控制程序18的图例,并且由此同时示出了以源代码表示的控制程序18。布置在上述区块旁边的第二区块为以中间语言表示的控制程序18的图例,并且由此同时示出了以中间代码表示的控制程序18的图例。而布置在该第二区块旁边的第三区块则示出了以可执行代码表示的控制程序18的图例。为了表示这三个分别相应于控制程序18不同的状态形式的区块,下面简化地使用自动化语言30、中间语言32和机器语言34这三个概念。
图2表明,首先,基于以自动化语言30表示的控制程序18,实现向中间语言32的编译或转换,然后,基于以中间语言32表示的控制程序18,实现向能通过每个自动化设备14的处理器执行的机器语言34的翻译或者转换。通过编程装置20的开发环境22,创建以自动化语言30表示的控制程序18,并且然后至少实现向中间语言32的翻译或者转换。向机器语言34的编译或转换能借助同样的开发环境22实现,然而也能在另一台设备上和通过另一个为此所设的软件功能实现。
在创建各个以自动化语言30表示的控制程序18时,程序员会使用多个每种自动化语言30(以该语言创建源代码)中所提供的基本操作36。在中间语言32中,会由每个基本操作36生成一序列38以中间语言32表示的指令,其中,指令的序列38分别包括至少一个以中间语言32表示的指令或者多个以中间语言32表示的指令。接着或者在一个给定的时间点上,将以中间语言32表示的指令序列38编译或转换为以机器语言34表示的可执行代码。
图3为此简单地示意性地示出了将以自动化语言30表示的基本操作36转换为以中间语言32表示的指令序列38的图示。描述的是,为了将以一序列以各种自动化语言30表示的基本操作36为形式的控制程序18翻译为中间语言32,访问规格数据库40,该规格数据库包括分别至少多个以自动化语言30表示的能在控制程序18中使用的基本操作36的转换规则42。为便于简单明了,在图3中仅示出了转换规则42。以机器可读取的代码、即XML代码来定义所示的转换规则42。为了能够更好地读取,下面再次插入转换规则42:
所示的转换规则42即用于转换以自动化语言30表示的基本操作36的规则,该规则定义了逻辑“与非”函数。可以看到,转换规则42将基本操作36分为两个单独的布尔运算、即一个内部的与运算和一个外部的非运算,因而能容易地通过自动化设备14的处理器来执行基本操作36与非,该处理器例如并不是直接转换逻辑运算,而是可能处理逻辑与-运算和逻辑非运算。通过将转换规则42保留在规格数据库40中,因此,能不依赖例如被设为开发环境22的组成部分的编译器44(图4)而实现单个转换规则42的定义。因此,可随时修改或添加独立于编译器44的转换规则42,而无需修改编译器44。因此,同样能通过规格数据库40的添加来扩展编译器44的功能,而无须对编译器44本身进行修改。另外编译器44功能的扩展在于,通过向规格数据库40添加其他的转换规则42,来不断补充编译器44用于编译特定基本操作36的能力。
上面简述的示例-在其中将逻辑运算与非(或者在专业术语中按照传统被称作NAND)分为两个运算-也就表明所述方法的另一个优点:可特定地根据目标处理器来实现向中间语言32的转换,从而能够确保,中间代码中只存在每个自动化设备14的处理器都能够进行转换的指令。反之,当每个处理器都直接支持运算时,对于非常强大的处理器而言,那么就可能取消像效率较低的处理器那样必需将运算分成两个或多个单独的运算。因此,不需要限制自动化语言的特性,而通过使用符合每个目标处理器的规格数据库40,即可为易于被转为可执行代码的中间代码提供有利的出发点。
图5则示出了一种以自动化语言30表示的比较特别的基本操作36、即一种参数数量基本不限的基本操作36,以便说明所提出的用于将一种自动化语言30表示的控制程序18翻译为中间语言32的方法的特殊方面。在此示出了逻辑与-运算作为这种基本操作36的示例,该与-运算在图5中通过“&”符号表示。该基本操作36定义了多个以“I1”、“I2”、“I3”等符号表示的输入参数以及至少一个以“O1”符号表示的输出参数。下面将输入参数的全部统称为输入参数列表46(后面在说明转换规则42以及被传输给该转换规则的参数时也称为输入参数列表;然而这并不表示附图中的每个输入参数列表,因为只有在处理每个转换规则42时才能够生成这些列表)。
很容易想象的是,借助静态转换规则42来转换基本不限定输入参数列表46的基本操作36并不容易。该方法的这个特殊方面通过下述方法实现:首先设定:转换规则42允许对输入参数列表46进行处理。在连同(利用)具有在转换规则42中并未限定的多个输入参数的输入参数列表46调用转换规则42的情况下,该转换规则42定义另一个转换规则48的包含。该另一个转换规则48定义了其自身、即另一个相应于多个输入参数的转换规则48的递归包含。为便于进行说明,请参照图6和图7中的图示。
图6示出,在图5中所示的基本操作36能被看作运算组合、即所示的示例中例如在4个输入参数50的情况下被看作多个与-运算52和一个 赋值运算(Zuweisungsoperation)54的组合,该赋值运算将与-运算52的运算结果分配给每个输出参数56。
图7示出了用于将如图5所示的基本操作36转为中间语言32的转换规则42的一种可能的实施方式。在图7中并没有示出的是,该转换规则42被设计为用于将基本操作36(图3)以中间语言32表示映射到一序列38(图3)指令,对此可详见图3。此外,为便于读取,下面再次插入如图7所示的转换规则42的内容。
因此,为了转换包含逻辑与-运算的基本操作36,给转换规则42设置名称“与”(详见:,,CodeMacro Name="UND"“)。用参数“NumInputs”和“NumOutputs”为其确定每个输入参数和输出参数的数量。另外参数“NumInputs”的值为“-1”就意味着,输入参数50的数量不限。参数“NumOutputs”的值为“1”就意味着,正好返回一个输出参数56。其中参数“NumInputs”的值为“-1”,就允许在转换规则42中不限定输入参数50的数量,那么通过这种方式,就能相应地以输入参数列表46来调用转换规则42,该输入列表46包括所有为基础的基本操作36所设置的参数。
为了实现基础的基本操作36的功能的实际转换,设计为,转换规则42定义另一个转换规则48的包含。在图7中,这就通过转换规则42中的“TemplateCall Name="AND_Template"”的符号来表示,其中,已经将“AND_Template”定义为另一个转换规则48的名称(“TemplateDefinition Name="AND_Template"”),能通过该名称调用另一个转换规则48。另外通过边界条件MinInput=“1”以及MaxInput=“NumInputs”,即规定:输入参数列表46中的第一个参数即为调用转换规则42时所传输的输入参数列表46的第一个参数并且然后,从调用转换规则42时所传输的输入参数列表46中传输与参数“NumInputs”所定义的数量一致的多个参数。在调用用于转换如图5所示的基本操作36的另一个或者内部的转换规则48时,就会传输输入参数50I1,I2,I3和I4。
根据需要从另一个或内部的转换规则48中递归地调用上述参数。因此通过为另一个/内部的转换规则48所定义的名称以及通过边界条件MinInput=“2”和MaxInput=“NumInputs”实现调用(“TemplateCall Name="AND_Template"”)。通过这种方式,传输另一个/内部的转换规则48调用时所传输的输入参数列表46中的第二个参数作为输入参数列表46中的第一参数。然后,从调用另一个/内部的转换规则48时所传输的输入参数列表46中传输出与参数“NumInputs”所定义的数量一致的多个参数。这就导致,该另一个/内部转换规则递归地以下述参数列表调用:[I2,I3,I4],[I3,I4],[I4]。在最后的递归步骤中,当正好传输一个输入参数50时,即调用一个为处理一个输入参数50所设置的执行块(“Implementation NumInputs="1"”)。在那里将所传输的参数、即I4用于转换成中间代码(“<Operand>$I1</Operand>”)。那么当递归再次解出时,首先按照输入参数列表46以[I3,I4]对输入参数50进行处理。输入参数50I4已经在最后的递归步骤中进行处理。那么,在这一递归步骤中,为了向中间语言转换,添加逻辑与-运算和输入参数50I3(“<MirInstruction Name="AND">“und,,<Operand>$I1</Operand>”)。然后,根据输入参数列表46以[I2,I3,I4]对输入参数50进行处理。输入参数50I3和I4已经在之前的递归步骤中 经过了处理。那么,在这一递归步骤中,为了向中间语言转换,重新添加逻辑与-运算和输入参数50I2(“<MirInstruction Name="AND">”和“<Operand>$I1</Operand>”)。然后,基于最初的、非递归地调用另一个/内部的转换规则48、即按照输入参数列表46以[I1,I2,I3,I4]实现向中间代码的转换。在这里重新添加逻辑与-运算和输入参数50I1(“<MirInstruction Name="AND">”und“<Operand>$I 1</Operand>”)。因此,以中间代码表示的结果例如如下:AND(I1,AND(I2,AND(I3,I4)))。这在图7下方也在图8中再次予以示出,重叠的括号(未示出)表示递归步骤的结果,其中,I4下面的最小的括号表示最后的、然而也是首先执行完毕的递归步骤。
如果已经结束另一个/内部的转换规则48的调用并且结束递归,那么,就根据(外部)转换规则42中的定义实现向中间代码的转换。这里要定义,赋值运算54(“<MirInstruction Name="ASS">”)作用于参数列表中所规定的输出参数(“<Operand>$O1</Operand>”),因此,结果就将通过调用另一个/内部的转换规则48所解出的与-运算分配给输出参数56O1。
转换规则42和所属的另一个/内部的转换规则48可被看作是具有外部转换规则42和作为内部转换规则的另一个转换规则48的转换规则42。因此在图7中,两个转换规则42、48均被包含在其自身也被称作转换规则42的区块内。
在所示的执行另一个/内部的转换规则48时,特别之处还在于要处理正好包含一个输入参数的情况以及要处理包含多个输入参数50的情况。为此分别设置一个第一执行块和第二执行块60,62。第一执行块60被设计为用于处理正好包括一个输入参数50的情况(“Implementation NumInputs="1"”),并且定义了针对正好是一个输入参数50的情况来翻译或转换作为基础的基本操作36或者作为基础的基本操作36的部分方面。第二执行块62,同样以关键词“Implementation”开始,被设计为用于处理所有其他的情况、即具有超过一个输入参数50的情况,并且定义了针对 多个输入参数50的情况来翻译或者转换作为基础的基本操作36或者作为基础的基本操作36的一部分。在这里第二执行块62包括另一个转换规则48的递归包含。除了所示的包括正好一个第一执行块60和一个第二执行块62的实施方式以外,也能够设置另一个执行块、即至少一个输入参数50数量固定的执行块以及输入参数50数量可变的执行块。因此,所述情况是较普遍情况的一种特例,其中,输入参数的固定数量正好是“1”并且没有设置任何其他的输入参数数量固定的执行块,并且,其中第二执行块是为输入参数50的数量可变的情况而设置的。
如果在此涉及到翻译或者转换作为基础的基本操作36或者该作为基础的基本操作36的一部分,就要考虑到所示的示例,在所示示例中,另一个/内部的转换规则48实现了多次的与-运算,并且外部转换规则42则除了调用另一个/内部转换规则48以外还仅仅实现了给根据作为基础的基本操作36所设置的输出参数赋值。无论另一个/内部的转换规则48是否可能只是定义了翻译或者转换作为基础的基本操作36的部分方面,定义这部分方面的翻译或者转换都至少构成了基础的基本操作36的翻译或者转换的一部分定义,因此作为这部分的表达公式(Formulierung)无论如何都不应设计为具有限制性。
Claims (7)
1.一种用于将以自动化语言(30)表示的控制程序(18)自动地翻译为中间语言(32)的方法,其中,所述控制程序(18)包括多个基本操作(36),并且其中对每个基本操作(36)自动地以所述中间语言(32)在一序列(38)指令中进行描述,其特征在于,为了将所述控制程序(18)翻译为所述中间语言(32),访问规格数据库(40),所述规格数据库包括各自的转换规则(42),用于至少多个能在所述控制程序(18)中使用的以所述自动化语言(30)表示的基本操作(36),所述转换规则(42)允许对输入参数列表(46)进行处理,并且在连同具有在所述转换规则(42)中并未限定的多个输入参数(50)的所述输入参数列表(46)调用所述转换规则(42)的情况下,所述转换规则(42)定义另一个转换规则(48)的包含,其中,所述另一个转换规则(48)相应于多个所述输入参数(50)定义所述另一个转换规则(48)的递归包含。
2.根据权利要求1所述的方法,其中,具有在所述转换规则(42)中并未限定的多个输入参数(50)的转换规则(42)在为包含而设置的所述另一个转换规则(48)中包括至少一个第一执行块和一个第二执行块(60,62),其中,至少一个第一执行块(60)为输入参数(50)的数量固定的情况定义作为基础的基本操作(36)的翻译,其中,所述第二执行块(62)为输入参数(50)的数量可变的情况定义所述作为基础的基本操作(36)的翻译,并且其中,至少所述第二执行块(62)包括所述另一个转换规则(48)的递归包含。
3.根据权利要求1或2所述的方法,其中,具有在所述转换规则(42)中并未限定的多个输入参数(50)的转换规则(42)在为包含而设置的所述另一个转换规则(48)中包括至少一个第一执行块和一个第二执行块(60,62),其中,所述第一执行块(60)为正好是一个输入参数(50)的情况定义所述作为基础的基本操作(36)的翻译,并且其中所述第二执行块(62)为多个输入参数(50)的情况定义所述作为基础的基本操作(36)的翻译并且包括所述另一个转换规则(48)的递归包含。
4.根据权利要求1,2或3所述的方法,其中,在所述规格数据库(40)中定义每个以机器可读取的代码、尤其是XML代码表示的转换规则(42,48)。
5.一种用于创建和维护作为用于待控制技术流程(12)的自动化解决方案的控制程序(18)的开发环境(22),所述开发环境包括权利要求1,2,3或4中所述的方法的执行以及访问规格数据库(40)的可能性,所述规格数据库包括各自的转换规则(42,48),用于至少多个能在控制程序(18)中使用的以自动化语言(30)表示的基本操作(36)。
6.一种具有程序编码工具的计算机程序,用于当所述计算机程序在编程装置(20)上被执行用于创建和维护作为用于待控制技术流程(12)的自动化解决方案的控制程序(18)时,执行根据权利要求1至4中任一项所述的全部步骤。
7.一种用于创建和维护作为用于待控制技术流程(12)的自动化解决方案的控制程序(18)的编程装置(20),所述编程装置具有处理单元和存储器,在所述存储器中载入根据权利要求6所述的计算机程序,所述计算机程序在所述编程装置(20)运行时通过所述编程装置的处理单元来执行。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP11192361.1 | 2011-12-07 | ||
EP20110192361 EP2602678B1 (de) | 2011-12-07 | 2011-12-07 | Verfahren zum Übersetzen eines in einer Automatisierungssprache vorliegenden Steuerungsprogramms in eine Zwischensprache |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103150195A true CN103150195A (zh) | 2013-06-12 |
Family
ID=45218404
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2012105263926A Pending CN103150195A (zh) | 2011-12-07 | 2012-12-07 | 将以自动化语言表示的控制程序翻译为中间语言的方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20130152058A1 (zh) |
EP (1) | EP2602678B1 (zh) |
CN (1) | CN103150195A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109464199A (zh) * | 2017-09-07 | 2019-03-15 | 西门子医疗有限公司 | 确定用于调整检查协议的分类数据的方法和数据处理单元 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2216695B1 (de) * | 2009-02-09 | 2013-03-27 | Siemens Aktiengesellschaft | Verfahren zum Betrieb eines Automatisierungssystems, korrespondierendes Computerprogramm und System oder Gerät, das nach dem Verfahren arbeitet |
US11640284B2 (en) * | 2015-11-30 | 2023-05-02 | Oracle International Corporation | Multi-platform compiling |
EP3384385B1 (en) * | 2015-12-02 | 2020-11-18 | Speedment, Inc. | Methods and systems for mapping object oriented/functional languages to database languages |
CN111459748A (zh) * | 2020-03-17 | 2020-07-28 | 中国建设银行股份有限公司 | 基于命令操控的运维控制方法、系统、装置及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5812850A (en) * | 1995-11-13 | 1998-09-22 | Object Technology Licensing Corp. | Object-oriented symbolic debugger using a compiler driven database and state modeling to control program execution |
CN101000615A (zh) * | 2006-12-31 | 2007-07-18 | 华为技术有限公司 | 一种基于数据库的业务处理方法及装置 |
US20090171903A1 (en) * | 2007-12-29 | 2009-07-02 | Aetna Inc. | Business Rules Externalization System |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5640576A (en) * | 1992-10-02 | 1997-06-17 | Fujitsu Limited | System for generating a program using the language of individuals |
US5960200A (en) * | 1996-05-03 | 1999-09-28 | I-Cube | System to transition an enterprise to a distributed infrastructure |
US6775827B1 (en) * | 1999-09-20 | 2004-08-10 | Harkins Audit Software, Inc. | Real-time program audit software |
US20020178148A1 (en) * | 2001-03-30 | 2002-11-28 | Jonathan Sobel | Source-level threads |
US6836750B2 (en) * | 2001-04-23 | 2004-12-28 | Hewlett-Packard Development Company, L.P. | Systems and methods for providing an automated diagnostic audit for cluster computer systems |
WO2003032557A2 (en) * | 2001-10-11 | 2003-04-17 | California Institute Of Technology | Method and system for compiling circuit designs |
US7363617B2 (en) * | 2002-05-23 | 2008-04-22 | International Business Machines Corporation | Database breakpoint apparatus and method |
US20050216897A1 (en) * | 2002-08-02 | 2005-09-29 | Siemens Aktiengesellschaft | Converter, automation device with a converter, and a development environment having an automation device with converter |
DE10235504A1 (de) * | 2002-08-02 | 2004-02-12 | Siemens Ag | Umsetzeinrichtung, Automatisierungsgerät mit einer Umsetzeinrichtung und Entwicklungsumgebung mit einem Automatisierungsgerät mit Umsetzeinrichtung |
US7194733B2 (en) * | 2003-06-11 | 2007-03-20 | Microsoft Corporation | Transformation of an asynchronous transactional messaging language into a web services compatible language |
US7574692B2 (en) * | 2004-11-19 | 2009-08-11 | Adrian Herscu | Method for building component-software for execution in a standards-compliant programming environment |
EP1703350B1 (de) * | 2005-03-17 | 2019-05-08 | Siemens Aktiengesellschaft | Diagnose eines Automatisierungssystems |
EP1795999A1 (de) * | 2005-12-09 | 2007-06-13 | Siemens Aktiengesellschaft | Verfahren und System zur Transformation von Elementen eines in einer Kontaktplandarstellung vorliegenden Steuerungsprogramms in eine Funktionsplandarstellung |
US7823144B2 (en) * | 2005-12-29 | 2010-10-26 | International Business Machines Corporation | Computer program code comparison using lexemes |
US8739137B2 (en) * | 2006-10-19 | 2014-05-27 | Purdue Research Foundation | Automatic derivative method for a computer programming language |
US8127281B2 (en) * | 2007-12-12 | 2012-02-28 | International Business Machines Corporation | Method and apparatus for efficient multiple-pattern based matching and transformation of intermediate language expression trees |
US20090282067A1 (en) * | 2008-02-25 | 2009-11-12 | Invensys Systems, Inc. | System and method for generating control system database and graphics from schema-based intermediate descriptions |
US8060857B2 (en) * | 2009-01-31 | 2011-11-15 | Ted J. Biggerstaff | Automated partitioning of a computation for parallel or other high capability architecture |
US8799877B2 (en) * | 2009-03-27 | 2014-08-05 | Optumsoft, Inc. | Interpreter-based program language translator using embedded interpreter types and variables |
US8683431B2 (en) * | 2009-12-29 | 2014-03-25 | Microgen Aptitude Limited | Applying rules to data |
US8713515B1 (en) * | 2013-05-13 | 2014-04-29 | Ted J. Biggerstaff | Automated synchronization of design features in disparate code components using type differencing |
-
2011
- 2011-12-07 EP EP20110192361 patent/EP2602678B1/de not_active Not-in-force
-
2012
- 2012-12-05 US US13/705,826 patent/US20130152058A1/en not_active Abandoned
- 2012-12-07 CN CN2012105263926A patent/CN103150195A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5812850A (en) * | 1995-11-13 | 1998-09-22 | Object Technology Licensing Corp. | Object-oriented symbolic debugger using a compiler driven database and state modeling to control program execution |
CN101000615A (zh) * | 2006-12-31 | 2007-07-18 | 华为技术有限公司 | 一种基于数据库的业务处理方法及装置 |
US20090171903A1 (en) * | 2007-12-29 | 2009-07-02 | Aetna Inc. | Business Rules Externalization System |
Non-Patent Citations (1)
Title |
---|
佚名: "可变参数的参数能不能固定类型?然后如何计算实参的个数?", 《HTTP://BBS.CSDN.NET/TOPICS/360013028》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109464199A (zh) * | 2017-09-07 | 2019-03-15 | 西门子医疗有限公司 | 确定用于调整检查协议的分类数据的方法和数据处理单元 |
Also Published As
Publication number | Publication date |
---|---|
EP2602678B1 (de) | 2014-08-13 |
EP2602678A1 (de) | 2013-06-12 |
US20130152058A1 (en) | 2013-06-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Suh et al. | STEP-compliant CNC system for turning: Data model, architecture, and implementation | |
CN106648662B (zh) | 基于工程造价计算描述语言bcl的报表生成装置及生成方法 | |
CN103150195A (zh) | 将以自动化语言表示的控制程序翻译为中间语言的方法 | |
CN106737676B (zh) | 一种基于脚本可二次开发的工业机器人编程系统 | |
Liu et al. | An intelligent NC program processor for CNC system of machine tool | |
JPH0561683A (ja) | オブジエクトに基づく情報処理システム及びソフトウエア保守システム | |
JP2006338660A (ja) | 並列/分散型アプリケーションを開発する方法 | |
JPH076111A (ja) | 修正可能な機能をサーバーで実行する方法 | |
CN104267999A (zh) | 一种对控制程序进行编译的方法和装置 | |
Dai et al. | Migration from PLC to IEC 61499 using semantic web technologies | |
Sabraoui et al. | Gui code generation for android applications using a mda approach | |
JP2005534114A (ja) | ソース間分割コンパイル | |
CN112685482A (zh) | 制造控制系统和用于制造控制的方法 | |
CN113534744A (zh) | 用于构成数控系统的软件架构和硬件架构 | |
Butting et al. | Architectural programming with montiarcautomaton | |
Lubbers et al. | Interpreting task oriented programs on tiny computers | |
JP6445029B2 (ja) | 自動化システムを構成するための処理装置および方法 | |
US11169510B2 (en) | Engineering system and method for planning an automation system | |
Ryssel et al. | Generation of function block based designs using semantic web technologies | |
Pinto et al. | Icaru-fb: An IEC 61499 compliant multiplatform software infrastructure | |
JP2004280299A (ja) | コントローラ、開発装置及びシステム | |
CN103955368A (zh) | 一种软件模糊自适应支撑系统和开发方法 | |
Oliveira et al. | Formal development of industrial-scale systems in Circus | |
JP4877257B2 (ja) | プログラマブルコントローラ、プログラマブルコントローラ支援装置、及びプログラマブルコントローラシステム | |
Noguero et al. | A generic executable framework for model-driven engineering |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20130612 |