CN103814333B - 用于对可编程控制装置编程和配置的方法和设备 - Google Patents
用于对可编程控制装置编程和配置的方法和设备 Download PDFInfo
- Publication number
- CN103814333B CN103814333B CN201280033518.4A CN201280033518A CN103814333B CN 103814333 B CN103814333 B CN 103814333B CN 201280033518 A CN201280033518 A CN 201280033518A CN 103814333 B CN103814333 B CN 103814333B
- Authority
- CN
- China
- Prior art keywords
- code
- programming
- level language
- iec61131
- module
- 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
- 238000000034 method Methods 0.000 title claims abstract description 40
- 230000008520 organization Effects 0.000 claims description 14
- 238000013507 mapping Methods 0.000 claims description 3
- 230000006870 function Effects 0.000 description 17
- 230000008569 process Effects 0.000 description 7
- 230000002349 favourable effect Effects 0.000 description 6
- 229910002056 binary alloy Inorganic materials 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000004873 anchoring Methods 0.000 description 3
- 238000013519 translation Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 239000004615 ingredient Substances 0.000 description 2
- 238000003780 insertion Methods 0.000 description 2
- 230000037431 insertion Effects 0.000 description 2
- 241000233805 Phoenix Species 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000004801 process automation Methods 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source 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/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
- 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/13105—Two or more languages, ladder diagram or progression, basic program
-
- 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/13123—C language
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Automation & Control Theory (AREA)
- Programmable Controllers (AREA)
- Stored Programmes (AREA)
Abstract
本发明涉及用于借助位于编程工具(B)中的配置工具(K)对可编程控制装置(D)编程和配置的方法和用于执行所述方法的设备,其中,除用IEC61131语言的模块(80)以外,至少一个另外的模块(C)集成在所述配置工具(K)中,借助所述至少一个另外的模块,在使用C代码编辑器(3A)的情况下用高级语言执行可编程控制装置(D)的编程,并且由所述另外的模块(C)提供IEC61131代码与高级语言代码之间的接口的定义以及所述高级语言代码的配置。
Description
技术领域
本发明涉及用于对可编程(speicherprogrammierbar)控制装置编程和配置的方法。此外,本发明涉及用于执行所述方法的设备或者系统。本发明尤其可用于将智能现场设备集成在控制系统或自动化系统中、在过程自动化或机器控制中用于控制技术过程和/或设备构件。
背景技术
此外,用于对可编程控制器(SPS)编程和配置的基础是根据国际标准IEC61131-3的设备无关的编程系统连同在那描述的编程语言。许多用于可编程控制器的编程环境也允许使用高级语言如BASIC、Java和C或C/C++/C#。
可编程控制器的编程和配置借助基于PC的编程工具或编程设备(也称作工程工具)实现为单独程序指令的序列,其中,各技术或功能上相关联的程序指令构成程序组件,也称作功能块。
完整的SPS程序通常包含多个这样的程序组件。这些组件可以在先前提到的SPS应用相关的编程语言中如作为指令表、作为梯形图、作为逻辑图、作为功能图、作为过程语言或结构化的文本经由编程工具中输入。为了创建、翻译、校验SPS代码并且将SPS代码下载到自动化系统的设备中,存在基于PC的工具。
一种用于输入用高级语言"C"的程序指令的方法例如在EP860758A1中描述。在那示出编程设备的输入设备,所述输入设备经由第一数据线与转换装置相连接并且经由第二数据线连接到高级语言编译器上,所述高级语言编译器将程序指令翻译成由可编程控制器可读或者可处理的代码。
在公司“Bernecker+Rainer工业电子有限公司-B&R自动化工作室”的产品页“集成IEC61131-3语言、CFC和ANSI-C"(请参阅www.br-automation.com/cps/rde/xchg/br-productcatalogue/hs.xsl/products_151728ENGHTML.htm)描述了:编程语言ANSIC允许用户调用来自另外的IEC语言的功能块和访问地址(全局访问变量)。
此外,存在解决方案,其中,将不同的源文件语言,例如IEC61131、C/C++/C#、Basic或Java翻译成中间代码,并且然后根据所使用的设备的厂商特定的目标平台、借助附加的软件构件倒译中间代码。该解决方案例如由菲尼克斯通讯集团(PhoenixContactGruppe)的公司KW软件使用并且在图1中示例性地示出。
另一种解决方案涉及根据IEC61131的可编程控制器的运行时间系统。在此,C代码函数仅仅能够借助在IEC61131-3中所述的程序调用变量。不提供存取系统资源(如输入和/或输出)或连接到可编程控制器上的设备的存储器。
发明内容
本发明所基于的任务是,说明一种方法和设备,借助所述方法和设备尤其通过以下方式简化可编程控制装置的编程和配置:用高级语言(例如C代码)创建的程序指令在连接到所述可编程控制器上的设备上与根据IEC61131-3创建的程序指令并行地运行,由此可执行直接存取系统资源(如输入和/或输出)或连接到可编程控制器的设备的存储器。对于用户可能的是,用高级语言以及用IEC61131语言来编辑代码。
根据本发明,该任务借助在下文中所说明的特征解决。根据本发明的锚定元件(Verankerungselement)的有利的扩展方案、改进在其他地方说明。
根据本发明的用于对可编程控制装置编程和配置的方法从位于编程工具中的配置工具出发,其中,除用IEC61131语言的模块以外,至少一个另外的模块集成在配置工具中,借助所述至少一个另外的模块、在使用C代码编辑器的情况下用高级语言执行可编程控制装置的编程。根据本发明,借助所述另外的模块提供IEC61131代码与高级语言代码之间的接口的定义以及高级语言代码的配置。为了配置所述高级语言代码设置库管理,在所述库管理中在使用高级语言的情况下建立和管理用户定义的库,在用所述高级语言的IEC61131-3接口中在库项目中配置能够连接到所述可编程控制装置上的硬件的映射,在使用所述高级语言编辑器的情况下编辑所建立的库和所述库项目,在具有C代码实现的应用模块中,对于用户不可见地在使用编译器和附加的库特定的头文件的情况下从中产生应用库,并且所产生的应用库对于所述用户不可见地添加到所述可编程控制装置的保存在所述编程工具中的目标项目代码中。
为了借助位于编程工具中的配置工具执行根据本发明的用于对可编程控制装置编程和配置的方法,根据本发明地在配置工具中集成附加模块(也称作插件),其产生和插入用高级语言、优选是C代码的库函数用于对控制装置编程,由此能够通过简单的方式执行用高级语言创建的程序指令的创建并且将其集成到自动化系统的设备中。
根据本发明,在附加模块中集成高级语言编辑器、库管理和IEC61131接口(2A)。
库管理用于建立和管理用户定义的库。在库管理中,具有能够用高级语言(例如C代码)执行的运行程序模块的库与相应的编译器选项一起首先被配置为C代码插件标签配置。
随后,用高级语言的IEC61131接口中将库项目中的、能够连接到可编程控制器上的硬件设备的包括其输入、输出和/或局部变量在内的映射配置为C代码插件标签IEC61131接口。
根据另一种方法过程,在附加模块中编辑和存储插件标签配置和插件标签IEC61131接口。
在应用模块中,现在对于用户不可见地在使用编译器和附加的库特定的头文件的情况下从中产生应用库,并且所产生的应用库对于用户不可见地添加到所述可编程控制器的保存在编程工具中的目标项目代码中。随后,在编程工具中用相应的高级语言为要在可编程控制器上执行的目标项目产生C代码以及实现包含在其中的程序组织单元实例——也称作程序组织单元(POU)实例,并且从编程工具将所述程序组织单元实例与用于IEC61131-3应用的POU一起传输到可编程控制器中。优选地,用所述高级语言创建的库由所述可编程控制装置的运行时间系统重定位,并且外部的应用程序接口在此解开。除用于所述IEC61131-3应用的POU以外,可以实现基于C代码的应用。可以使用C或C/C++/C#作为高级语言。借助设置在所述编程工具中的接口,选择和/或组合用所述高级语言的编程或根据所述IEC61131-3编程系统的编程。
目前,用于IEC和C代码的运行时间环境被分成两个运行时间系统,在它们之间仅复杂的数据交换是可能。
根据本发明,在C代码下创建的程序指令的过程在根据IEC61131标准的被称作外壳(Shell)的壳或套下进行,使得对于用户或用户仅仅该壳可见,而非在后台运行的C代码对于用户可见。因此,对系统资源的访问仅仅需要经由现有的IEC61131接口。因此,C代码过程的运行时间环境显得如在IEC-61131环境下程序指令的过程那样。
根据本发明,可以以有利的方式采用根据IEC-61131标准的程序过程的现有的经校验和证明的接口,并因此可以放弃基于新的C代码接口的成本密集的开发。
先前描述的根据本发明的方法通过有利的方式允许程序员在IEC61131项目内使用自身的C代码程序或者程序指令——下面仅仅仅称为C代码。在此,之前用C代码创建的程序指令在连接到可编程控制装置上的设备上与IEC61131-3程序指令并行地运行。因此可执行直接存取系统资源(如输入和/或输出)或连接到可编程控制器上的设备的存储器。
如开始已经提到的,本发明还涉及一种用于对可编程控制装置编程和配置的设备或者系统。
用于对可编程控制装置编程和配置的设备包括位于编程工具中的配置工具,在所述配置工具中除用IEC61131语言的模块以外,集成了至少一个另外的模块,借助所述至少一个另外的模块,在使用C代码编辑器的情况下用高级语言能够执行可编程控制装置的编程,并且其允许IEC61131代码与高级语言代码之间的接口的定义以及高级语言代码的配置。为了配置所述高级语言代码设置库管理,其中,所述库管理在使用高级语言的情况下建立和管理用户定义的库,所述IEC61131-3接口在库项目中将能够连接到控制装置上的硬件设备映射为用所述高级语言的C代码插件标签IEC61131接口,所述附加模块存储借助所述高级语言编辑器可编辑的插件标签配置和可编辑的IEC61131接口,在具有C代码实现的应用模块中保存编译器和附加的库特定的头文件,并且在使用所述编译器和附加的库特定的头文件的情况下能够由此产生应用库,并且所产生的应用库能够添加到所述可编程控制装置的保存在所述编程工具(B)中的目标项目代码中。
根据本发明,在控制器开发系统的配置工具中集成附加模块,其中插入用高级语言、优选C代码的所产生的库函数用于对控制装置的编程,由此,能够通过简单的方式执行用高级语言创建的程序指令的创建和并且将其集成到自动化系统的设备中。优选地,所述编程工具用相应的高级语言为要在所述可编程控制装置上执行的目标项目产生所述代码,实现包含在其中的POU实例,并且将所述POU实例与用于IEC61131-3应用的POU一起从所述编程工具加载到所述可编程控制装置中。在POU单元中,除用于所述IEC61131-3应用的POU以外,还可以实现基于C代码的应用。使用的高级语言可以为C或C/C++/C#。所述编程工具除具有用于根据IEC6113-3编程的第一应用模块以外,具有用于用编程语言“C”编程的第二应用模块,其中,借助选择单元能够执行在使用高级语言的情况下编程或在基于IEC61131-3的编程语言的情况下编程之间的切换。
为此,附加模块包括:
-高级语言编辑器,例如C代码编辑器,
-库管理,在库管理中,具有能够用高级语言(例如C代码)执行的运行程序模块的库与相应的编译器选项一起被确定或配置为标签配置的高级语言附加程序,并且用于建立和管理用户定义的库;
-用高级语言——例如C代码的IEC61131接口,所述IEC61131接口在库项目中包括其输入、输出和/或局部变量在内地映射能够连接到控制器上的硬件设备。该接口也称作C代码附加程序标签IEC61131接口。
此外,本发明的新颖性还基于:基于PC的配置工具为用户提供用于组合根据IEC61131-3和C的不同的编程语言的选择可能性。为此,选择单元或接口被设置用于在在使用高级语言如C代码的情况下编程或在基于IEC61131-3的编程语言的情况下编程之间选择。
编程工具除具有根据IEC6113-3编程的第一应用模块或接口以外,具有用于用编程语言“C”编程的第二应用模块或接口,其中,借助选择单元设置在在使用高级语言例如C代码的情况下编程或在基于IEC61131-3的编程语言的情况下编程之间的切换。
附图说明
按照根据本发明的锚定元件的在以下附图中所示的实施例,详细解释和描述本发明以及根据本发明的锚定元件的有利的扩展方案、改进和其他优点。
示出:
图1示出用于借助根据现有技术的编程工具对可编程控制器编程的一种示例性的解决方案;
图2示出根据本发明的用于对可编程控制器编程的方法的示例性的实施例;
图3、4示例性地示出使用来自于库的应用模块作为源代码,将所述源代码在工程工具中翻译成二进制格式,或所述源代码作为仅仅被嵌入的预编译的的二进制格式存在;
图5示出借助编程工具的C代码集成的系统结构的示例性的实施方式;
图6示出用于传输所创建的具有C代码POU的应用库的一种示例性的方法过程;
图7示出C代码库,所述C代码库被添加到可编程控制器的目标项目代码中。
具体实施方式
图1中示出根据现有技术的、用于可编程控制单元或控制器的、具有基于相应的编程语言的不同编程接口10的编程环境,程序员用所述编程语言写相应的用于开发和执行用户程序的软件。第一编程接口11被设置用于根据IEC61131-3标准编程。第二编程接口12构成由微软公司提供的用于不同的高级语言——例如C、C++、C#的集成开发环境,所述集成开发环境称作VisualStudio。借此,程序员可以开发经典的Windows程序或动态的用于互联网/内联网的网页或者网络服务,其中,主要注意力集中在创建用于.NET框架(由微软开发的基于公共语言运行时间的软件平台1)的应用。
第二编程接口12与保存在软件平台1上的称作“通用中间语言(CIL)”的同时标准化的中间语言或者中间代码20一起起作用,所述中间语言或者中间代码翻译并且已经简化再现所创建的程序。
在执行计算机30——也称作目标计算机或目标平台上,中间代码20由运行时间系统(虚拟执行系统)30翻译成系统自身的程序代码、通常是机器代码,以便因此能够在可编程控制器中执行在CIL20中现有的程序。
到系统自身程序代码的翻译在此不是直接地进行,而是首先在第一步骤中产生CIL代码20,所述CIL代码将相应的程序命令说明为字节值的序列。CIL代码20在执行计算机30上在运行时间系统中翻译成本机机器代码并被执行。
第三编程接口13被设置为用于生成CIL代码20的所谓的用户配置工具。
图2示出根据本发明的用于在使用根据本发明设置的附加模块A的情况下、按照具有步骤1至8的方法过程的、借助位于编程工具B中的配置工具K对可编程控制器D编程和配置的方法的特征,所述附加模块也称作插件。
附加模块A包括C代码编辑器3A、库管理1A、用C代码的IEC61131-2A接口2A,在所述库管理中,具有能够用C代码执行的程序模块的库与相应的编译器选项一起作为C代码附加程序、标签配置确定或者配置,所述IEC61131-2A接口在库项目中包括其输入、输出和/或局部变量在内地映射能够连接到控制器上的硬件设备。该接口也称作C代码附加程序标签IEC61131接口。
在第一步骤1中,在库管理1A中首先将具有能够用C代码执行的运行程序模块的库与相应的编译器选项一起作为C代码插件标签配置配置。
在第二步骤2中,用C语言的IEC61131接口2A配置为在库项目中包括其输入、输出和/或局部变量在内将能够连接到可编程控制器(D)上的硬件设备映射为C代码插件标签IEC61131接口,并且在第三步骤中相应地编辑和存储在附加模块A中的插件标签配置和插件标签IEC61131接口。
在第四步骤4中,在用C代码编程的应用模块中为编程工具B提供外部创建的应用库43,所述应用库在后台——也就是说对于用户不可见地——从现有源代码44在编译器42中翻译为C代码,其中,使用附加的库特定的头文件41。
随后在第五步骤5中,将外部创建的应用库43添加到可编程控制器D的目标项目代码(PLC目标项目代码),所述目标项目代码保存在编程工具B中。该方法步骤也在后台运行。
在下一步骤6中,在编程工具B中,为待在可编程控制器上执行的程序(下面也称作目标项目)产生C代码,并且实现包含在其中的程序组织单元实例,程序的实例、功能块和函数属于所述程序组织单元实例。
现在,在另一步骤7中,目标项目由编程工具B加载到可编程控制器D上,由此C代码二进制程序的库——也称作“C代码库二进制”,被嵌入并且被加载到控制器D上。
在最后的可选步骤8中,可执行的二进制代码(C代码库二进制)由可编程控制器D的运行时间系统重定位,并且所有外部的应用程序接口引用(API引用)在此解开和绑定。为了存取保存在可编程控制器上的固件中实现的附加功能,C代码POU可以调用固件API(应用编程接口)。
因为固件被封装在C代码头文件41中,所以有利地,可编程控制器的用户只需要看见用C代码保存的函数、功能组件和程序,而不需要各个专门的固件的编程知识。
此外提出,基于PC的编程工具B有接口,所述接口允许程序员在用高级语言编程与用IEC61131编程之间进行选择。
借助根据本发明的方法,不仅可以将新功能(应用模块E)而且可以将库中现有的功能作为C代码或用IEC611131-3语言实现,并将其组合地用到目标应用中。
根据本发明的方法的有利的扩展方案基于,编程工具B提供外部库POU,所述外部库POU能够用C代码实现。所使用的配置器支持C代码库的插件、IEC1131-3接口规范、C代码编辑器和编译器集成,所述编译器集成包括编译器错误的显示和/或在SPS的目标项目中的从外部提供的库的集成。
在本发明的另一个扩展方案中,用于C代码的系统功能不是映射为来自系统库的其他应用模块,而是映射为被分组到功能区中的固件FWAPI的应用程序接口(也称作应用编程接口(API))。
图3和4示例性地示出来自系统库94和应用库43的应用模块9作为源代码的使用,所述源代码翻译(编译)成工程工具B中的二进制格式或作为仅仅被嵌入的预编译的二进制格式存在。
图5示出用于借助集成在编程工具B中的、用于产生PLC项目的配置的第一编程接口1和第二编程接口12进行C代码集成的可编程控制单元的系统结构。第一编程接口11被设置用于根据IEC61131-3标准编程,并且第二编程接口被设置用于用高级语言、优选是C代码编程。
在可编程控制单元可操作之前,为此设置的硬件设备40(其经由通信耦合器和现场总线70与控制器30连接)、尤其是智能现场设备在编程工具B中映射为SPS项目或控制器项目的组成部分,其中,在控制器项目中存储关于这些硬件设备40的输入/输出地址的信息并且使得其对于用户程序可访问。为了可寻址系统的硬件设备40的输入和输出,首先配置硬件设备40的输入/输出单元和控制装置,并且将PLC项目的配置(也称作控制器配置)创建为SPS项目或控制器项目的组成部分。
借助编程接口10配置的项目经由以太网总线50传输到可编程控制器的控制器30中并且从那经由现场总线70传输到现场设备40中,操作单元60也可连接到所述以太网总线上。
为了创建和配置项目,在编程工具B中将应用模块80设置为可编程控制装置中的运行时间环境,在所述应用模块中集成有全局变量81、应用程序接口82、IEC61131-3应用83和基于C代码的应用84,其被设置用于传输到控制器30中。
IEC61131-3应用83被组织在与其共同作用的POU单元90中的POU中,例如作为专门功能块图(FBD)、结构化文本(ST)、梯形图(LD)、指令表(IL)和/或功能图(SFC,CFC)。在POU单元90中,除用于IEC61131-3应用83的POU以外,实现基于C代码的应用84,如FBD、ST、LD、IL、SFC、CFC。因此,根据本发明,这些应用由用IEC61131-3语言编程的和用C代码编程的应用模块83、84一起组成。
硬件设备40的所有输入和/或输出被映射为全局变量81,并且所有POU83、84共享全局变量81,从而C代码应用84具有经由POU单元90的接口对输入和/或输出的完全的存取。
根据本发明,用于C代码的系统功能(例如实时功能,写文件和读文件、存储器管理,浮点运算、实时功能和实时时钟)不是被映射为来自系统库的其他应用模块,而是作为分组到功能区中的固件FWAPI的应用程序接口(API)。
为了在C代码应用84中实现POU单元90,需要所产生的应用库43。保存在应用库43中的库元素——如函数、功能块和程序根据IEC61131-3运行时间系统通过POU单元90的POU接口确定。在此POU接口定义至其他POU、输入和输出和至更高级的操作单元的连接点,其映射为局部变量,例如类型输入IN,输出OUT和/或输入输出IN_OUT的变量。
通过有利的方式,每一个根据IEC61131-3和用C代码创建的局部POU变量经由PC访问——例如操作单元60或经由通过互联网的表示可访问和可寻址。
变量和任务、应用模块组成的PLC项目的整个配置与IEC61131-3应用83和基于C代码的应用84一起被加载到控制器30中,所述应用模块引用其他应用模块。
因为至系统资源的访问仅仅经由现有IEC61131接口实现,C代码过程的运行时间环境显得如在IEC61131环境下程序指令的过程一样。不需要将C代码应用84单独下载到控制器30中。
用于传输所创建的具有C代码POU的应用库43的示例性的方法过程在图6中示出。用于创建应用库43的附加模块A在此未示出。
在第一方法步骤11中,在可编程控制器的工程工具B中的功能块包括其所有输入和输出以及所有内部变量或者局部变量在内地在库项目中被确定为C代码插件标签IEC61131接口并且库项目被存储在工程工具B中。在第二方法步骤12中,在后台由工程工具B将C代码插件标签IEC61131接口导出到头文件41和C代码源文件或者C代码源文件框架(C文件模板)中。
在第三方法步骤13中,在使用先前在头文件41和C代码源文件中确定的C代码插件标签IEC61131接口的情况下,用C代码对功能块编程,并且在第四方法步骤14中,借助编译器42将现有C源代码44翻译成相应的二进制代码。
随后,在下一方法步骤15中,在目标项目Z中打开应用库43,并且在另一方法步骤16中,在目标项目Z中产生功能块实例。
在下面的步骤17中,PLC目标项目Z对于用户不可见地被加载到控制器30中,应用83、84被彼此连接并且C代码库二进制被下载。C代码库对于应用模块包含接口描述91并且或者包含运行时间函数的源代码92或者仅仅包含运行时间函数的可执行的二进制代码(二进制)93。这例如在图3中示出。
在最后的方法步骤18中,可以由可编程控制器D的运行时间系统嵌入可执行的二进制代码(C代码库二进制)并且解开或者重定位对FWAPI的引用。这例如在图4中示出。
图7示出C代码库,在使用C代码源文件44的情况下,借助POU90用C代码执行C代码库。
在步骤25中,所创建的应用库43被添加到可编程控制器D的目标项目代码(PLC目标项目代码)Z中。在下一步骤26中,在编程工具B中为待在可编程控制器上执行的目标项目产生C代码,并且实现包含在其中的应用模块实例。
现在,在另一步骤28中,目标项目由编程工具B加载到可编程控制器D上。
通过有利的方式,在不需要源代码文件44的情况下,具有应用模块、接口定义和根据C代码产生的二进制代码的应用库43可以在其他项目中再使用。
现在起,所有POU可以用语言C代码或根据IEC61131-3实现并且共享全局变量81。因此,对系统资源如连接到可编程控制器上的设备的输入和/或输出或存储器的直接存取可供使用,并且尽管用高级语言例如C代码实现编程,但编程世界对于用户而言仅仅显得作为IEC61131-3编程系统。
通过所使用的高级语言C代码,在使用系统库94的情况下也能够调用相应的固件应用程序接口(API),包含头文件41的系统库94的功能也可供C代码编程使用。
参考标记列表
1软件平台
10编程接口
11第一编程接口、第一应用模块
12第二编程接口、第二应用模块
13第三编程接口
20中间语言、中间代码、通用中间语言
30执行计算机、目标平台
40现场设备
41头文件
42编译器
43应用库
44源代码
50以太网总线
60操作单元
70现场总线
80应用模块
81全局变量
82API应用程序接口
83IEC61131-3应用
84基于C代码的应用
90POU单元
91接口描述
92运行时间函数的源代码
93运行时间函数的可执行的二进制代码
94系统库
A附加模块、插件
1A库管理
2AIEC61131接口
3AC代码编辑器
B编程工具、工程工具
C具有C代码实现的应用模块
D可编程控制器
K配置工具
Z目标项目
Claims (11)
1.一种用于借助位于编程工具(B)中的配置工具(K)对可编程控制装置(D)编程和配置的方法,其中,除用IEC61131语言的模块(80)以外,至少一个另外的模块(C)集成在所述配置工具(K)中,借助所述至少一个另外的模块,在使用C代码编辑器(3A)的情况下用高级语言执行所述可编程控制装置(D)的编程,并且由所述另外的模块(C)提供IEC61131代码与高级语言代码之间的接口的定义以及所述高级语言代码的配置,其特征在于,为了配置所述高级语言代码设置库管理(1A),在所述库管理中在使用高级语言的情况下建立和管理用户定义的库,在用所述高级语言的IEC61131-3接口(2A)中在库项目中配置能够连接到所述可编程控制装置(D)上的硬件的映射,在使用所述高级语言编辑器(3A)的情况下编辑所建立的库和所述库项目,在具有C代码实现的应用模块(C)中,对于用户不可见地在使用编译器(42)和附加的库特定的头文件(41)的情况下从中产生应用库(43),并且所产生的应用库(43)对于所述用户不可见地添加到所述可编程控制装置(D)的保存在所述编程工具(B)中的目标项目代码中。
2.根据权利要求1所述的方法,其特征在于,在所述编程工具(B)中用相应的高级语言为要在所述可编程控制装置(D)上执行的目标项目产生所述代码,实现包含在其中的程序组织单元实例,并且将所述程序组织单元实例从所述编程工具(B)与用于IEC61131-3应用的程序组织单元一起加载到所述可编程控制装置(D)中。
3.根据权利要求1所述的方法,其特征在于,用所述高级语言创建的库由所述可编程控制装置(D)的运行时间系统重定位,并且外部的应用程序接口在此解开。
4.根据权利要求1至3中任一项所述的方法,其特征在于,除用于所述IEC61131-3应用(83)的程序组织单元以外,实现基于C代码的应用(84)。
5.根据以上权利要求1-3中任一项所述的方法,其特征在于,使用C或C/C++/C#作为高级语言。
6.根据以上权利要求1-3中任一项所述的方法,其特征在于,借助设置在所述编程工具(B)中的接口,选择和/或组合用所述高级语言的编程或根据所述IEC61131-3编程系统的编程。
7.一种用于借助位于编程工具(B)中的配置工具(K)对可编程控制装置(D)编程和配置的设备,其中,除用IEC61131语言的模块(80)以外,至少一个另外的模块(C)集成在所述配置工具(K)中,借助所述至少一个另外的模块,在使用C代码编辑器(3A)的情况下能够用高级语言执行所述可编程控制装置(D)的编程,并且其允许IEC61131代码与高级语言代码之间的接口的定义以及所述高级语言代码的配置,其特征在于,为了配置所述高级语言代码设置库管理(1A),其中,所述库管理(1A)在使用高级语言的情况下建立和管理用户定义的库,所述IEC61131-3接口在库项目中将能够连接到控制装置上的硬件设备映射为用所述高级语言的C代码插件标签IEC61131接口,所述附加模块(A)存储借助所述高级语言编辑器(3A)可编辑的插件标签配置和可编辑的IEC61131接口,在具有C代码实现的应用模块(C)中保存编译器(42)和附加的库特定的头文件(41),并且在使用所述编译器(43)和附加的库特定的头文件(41)的情况下能够由此产生应用库(43),并且所产生的应用库(43)能够添加到所述可编程控制装置(D)的保存在所述编程工具(B)中的目标项目代码中。
8.根据权利要求7所述的设备,其特征在于,所述编程工具(B)用相应的高级语言为要在所述可编程控制装置(D)上执行的目标项目产生所述代码,实现包含在其中的程序组织单元实例,并且将所述程序组织单元实例与用于IEC61131-3应用的程序组织单元一起从所述编程工具(B)加载到所述可编程控制装置(D)中。
9.根据权利要求7所述的设备,其特征在于,在程序组织单元单元(90)中,除用于所述IEC61131-3应用(83)的程序组织单元以外,实现基于C代码的应用(84)。
10.根据权利要求7至9中任一项所述的设备,其特征在于,使用的高级语言为C或C/C++/C#。
11.根据权利要求7至9中任一项所述的设备,其特征在于,所述编程工具(B)除具有用于根据IEC6113-3编程的第一应用模块(11)以外,具有用于用编程语言“C”编程的第二应用模块(12),其中,借助选择单元能够执行在使用高级语言的情况下编程或在基于IEC61131-3的编程语言的情况下编程之间的切换。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP11005514.2 | 2011-07-06 | ||
EP11005514 | 2011-07-06 | ||
PCT/EP2012/002832 WO2013004389A1 (de) | 2011-07-06 | 2012-07-05 | Verfahren und vorrichtung zur programmierung und konfigurierung einer speicherprogrammierbaren steuereinrichtung |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103814333A CN103814333A (zh) | 2014-05-21 |
CN103814333B true CN103814333B (zh) | 2016-06-01 |
Family
ID=46507958
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201280033518.4A Active CN103814333B (zh) | 2011-07-06 | 2012-07-05 | 用于对可编程控制装置编程和配置的方法和设备 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9235381B2 (zh) |
EP (1) | EP2729855A1 (zh) |
CN (1) | CN103814333B (zh) |
WO (1) | WO2013004389A1 (zh) |
Families Citing this family (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101602993B1 (ko) * | 2012-08-23 | 2016-03-11 | 엘에스산전 주식회사 | 프로그래밍 언어 오류 검색 장치 |
JP6340886B2 (ja) * | 2014-04-10 | 2018-06-13 | 株式会社ジェイテクト | プログラマブルロジックコントローラ用プログラムの作成支援装置及びプログラマブルロジックコントローラ用プログラムの作成支援方法 |
US20160103431A1 (en) * | 2014-10-14 | 2016-04-14 | Honeywell International, Inc. | System and method for point by point hot cutover of controllers and ios |
CN104503817B (zh) * | 2014-12-30 | 2018-03-20 | 北京纵横机电技术开发公司 | 一种连续功能图编程方法 |
CN106775605A (zh) * | 2015-11-23 | 2017-05-31 | 天津九洲云物联科技有限公司 | 一种插件式编程逻辑模块 |
DE102016122324A1 (de) * | 2016-11-21 | 2018-05-24 | Weidmüller Interface GmbH & Co. KG | Steuerung für eine industrielle Automatisierungsanlage und Verfahren zum Programmieren und Betreiben einer derartigen Steuerung |
EP3413147B1 (en) * | 2017-06-07 | 2022-03-23 | Brooks Automation (Germany) GmbH | Method for controlling a plc using a pc program |
CN107329459B (zh) * | 2017-06-30 | 2021-01-19 | 张碧陶 | 一种集成运动控制和逻辑控制的数控系统 |
US10401816B2 (en) | 2017-07-20 | 2019-09-03 | Honeywell International Inc. | Legacy control functions in newgen controllers alongside newgen control functions |
SE1751114A1 (en) * | 2017-09-13 | 2019-03-14 | Beijer Electronics Ab | A method of configuring an automation system |
CN108153226A (zh) * | 2017-12-22 | 2018-06-12 | 安徽杰智智能科技有限公司 | 一种新型实时交互的plc装置 |
CN108089539A (zh) * | 2017-12-22 | 2018-05-29 | 安徽杰智智能科技有限公司 | 一种适用于多操作平台的智能控制器 |
CN108000535A (zh) * | 2017-12-22 | 2018-05-08 | 安徽杰智智能科技有限公司 | 一种六轴机器人智能控制器 |
CN108334019A (zh) * | 2018-01-23 | 2018-07-27 | 安徽杰智智能科技有限公司 | 一种多编辑方式智能控制器 |
CN108345265B (zh) * | 2018-01-24 | 2020-01-21 | 珠海优特电力科技股份有限公司 | 硬件设备的编程方法、可视化编程平台、存储器和处理器 |
JP6891838B2 (ja) * | 2018-03-15 | 2021-06-18 | オムロン株式会社 | 開発支援装置、開発支援方法、および開発支援プログラム |
CN108594746B (zh) * | 2018-03-21 | 2019-11-12 | 珠海优特电力科技股份有限公司 | 可视化编程控制系统及方法、装置 |
EP3575898B1 (de) * | 2018-06-01 | 2021-08-04 | Selectron Systems AG | Speicherprogrammierbare steuerung und betriebsverfahren für virtuelle speicherprogrammierbare steuerung und computerprogrammprodukt |
CN109002288A (zh) * | 2018-06-23 | 2018-12-14 | 上海泽阳智能科技有限公司 | 一种面向多操作对象的编程处理器 |
JP6950665B2 (ja) * | 2018-11-02 | 2021-10-13 | 横河電機株式会社 | エンジニアリング装置、エンジニアリング装置の制御方法及びプログラム |
CN112558541B (zh) * | 2019-09-25 | 2022-04-15 | 北京东土科技股份有限公司 | 一种plc编程扩展系统、方法及电子设备 |
CN111475159B (zh) * | 2020-03-20 | 2023-03-14 | 吉利汽车研究院(宁波)有限公司 | 一种自动生成程序的方法、装置及存储介质 |
US11442740B2 (en) * | 2020-09-29 | 2022-09-13 | Rockwell Automation Technologies, Inc. | Supporting instruction set architecture components across releases |
CN112241141B (zh) * | 2020-11-12 | 2022-08-09 | 上海电气风电集团股份有限公司 | Plc控制系统的硬件配置方法、系统、设备及介质 |
CN112667276A (zh) * | 2020-12-23 | 2021-04-16 | 肯特智能技术(深圳)股份有限公司 | 一种用于智慧控制系统的在线编程工具及方法 |
CN114397856B (zh) * | 2022-03-25 | 2022-07-19 | 浙江中控研究院有限公司 | 一种将cfc语言程序应用于龙芯平台的转换方法及装置 |
CN115033232B (zh) * | 2022-04-30 | 2024-05-31 | 杭州电子科技大学 | 一种可编程逻辑控制器的开源库封装方法和系统 |
CN114706590B (zh) * | 2022-05-05 | 2023-06-13 | 北京万昇智能科技有限公司 | Plc应用包生成方法、plc应用执行方法及相关装置和系统 |
CN116775038B (zh) * | 2023-06-26 | 2024-06-04 | 国电南京自动化股份有限公司 | 支持iec和c++任务同时或独立运行的运行时系统 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0860758A1 (de) * | 1997-02-22 | 1998-08-26 | Robert Bosch Gmbh | Einrichtung zur Programmierung einer SPS |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5644487A (en) * | 1993-10-19 | 1997-07-01 | Moore Products Co. | Monitoring and control system and method |
DE60035202T2 (de) * | 1999-08-31 | 2008-02-14 | Digital Electronics Corp. | Editiervorrichtung und aufzeichnungsträger, auf dem ein editierprogramm aufgezeichnet ist |
US20060190106A1 (en) * | 2001-07-30 | 2006-08-24 | Rockwell Automation Technologies, Inc. | Method for consistent storage of data in an industrial controller |
US6819960B1 (en) * | 2001-08-13 | 2004-11-16 | Rockwell Software Inc. | Industrial controller automation interface |
TW200608228A (en) * | 2004-08-20 | 2006-03-01 | Delta Electronics Inc | Program editing system and method thereof for a programmable logic controller |
US7761848B1 (en) * | 2005-03-15 | 2010-07-20 | Open Invention Network, Llc | Code generator tool for building software applications with reusable components |
US7881812B2 (en) * | 2005-09-29 | 2011-02-01 | Rockwell Automation Technologies, Inc. | Editing and configuring device |
JP2007293383A (ja) * | 2006-04-20 | 2007-11-08 | Toshiba Corp | プログラム開発支援装置及びプログラム開発支援装置の動作方法 |
WO2007131984A1 (en) * | 2006-05-15 | 2007-11-22 | Timothy Sexton | Process control method |
WO2008024507A1 (en) * | 2006-08-24 | 2008-02-28 | Siemens Energy & Automation, Inc. | Devices, systems, and methods for configuring a programmable logic controller |
US20090064103A1 (en) * | 2007-09-04 | 2009-03-05 | Shih Hsueh-Fu | Method for editing programmer logic controller (plc) program |
US20090089671A1 (en) * | 2007-09-28 | 2009-04-02 | Rockwell Automation Technologies, Inc. | Programmable controller programming with embedded macro capability |
DE102008007102A1 (de) * | 2008-02-01 | 2009-08-06 | Robert Bosch Gmbh | Verfahren zum Programmieren einer Steuerungseinrichtung |
US8365148B2 (en) * | 2008-09-25 | 2013-01-29 | Oracle International Corporation | Automated code review alert indicator |
US8255875B2 (en) * | 2008-09-30 | 2012-08-28 | Rockwell Automation Technologies, Inc. | Application builder for industrial automation |
US8327316B2 (en) * | 2008-09-30 | 2012-12-04 | Ics Triplex Isagraf Inc. | Compilation model |
US8694959B2 (en) * | 2008-09-30 | 2014-04-08 | Ics Triplex Isagraf Inc. | Multi language editor |
US8510709B2 (en) * | 2009-06-01 | 2013-08-13 | National Instruments Corporation | Graphical indicator which specifies parallelization of iterative program code in a graphical data flow program |
US8627308B2 (en) * | 2010-06-30 | 2014-01-07 | International Business Machines Corporation | Integrated exchange of development tool console data |
-
2012
- 2012-07-05 EP EP12734808.4A patent/EP2729855A1/de not_active Withdrawn
- 2012-07-05 CN CN201280033518.4A patent/CN103814333B/zh active Active
- 2012-07-05 WO PCT/EP2012/002832 patent/WO2013004389A1/de active Application Filing
-
2014
- 2014-01-06 US US14/148,371 patent/US9235381B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0860758A1 (de) * | 1997-02-22 | 1998-08-26 | Robert Bosch Gmbh | Einrichtung zur Programmierung einer SPS |
Also Published As
Publication number | Publication date |
---|---|
WO2013004389A1 (de) | 2013-01-10 |
US9235381B2 (en) | 2016-01-12 |
US20140123104A1 (en) | 2014-05-01 |
EP2729855A1 (de) | 2014-05-14 |
CN103814333A (zh) | 2014-05-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103814333B (zh) | 用于对可编程控制装置编程和配置的方法和设备 | |
EP2169547B1 (en) | Compilation model for programmable logic controllers (PLC). | |
WO2013114926A1 (ja) | サポート装置、サポートプログラムを記録した記録媒体、および実行可能プログラムを生成する方法 | |
CN109964181B (zh) | 用于工业自动化设备的控制器和对这种控制器编程和运行的方法 | |
CN111142421B (zh) | 工程装置、工程装置的控制方法以及存储介质 | |
JP2009146229A (ja) | プログラマブルコントローラシステム | |
JP6375666B2 (ja) | Plcおよびplc用のプログラミングツール | |
JP3819639B2 (ja) | プログラミング装置 | |
JP2009157533A (ja) | プログラマブルコントローラシステム | |
CN108121285B (zh) | 基于连续功能图的应用软件协同编译方法及装置 | |
JP4366575B2 (ja) | ツール | |
CN104063231A (zh) | 一种基于hit-tena的试验资源快速接入方法 | |
CN109937404B (zh) | 程序模块之间的实时数据交换方法和系统 | |
EP3380899A1 (en) | Program randomization for cyber-attack resilient control in programmable logic controllers | |
US10228674B2 (en) | Processing device and method for configuring an automation system | |
US6928641B1 (en) | Method and system for far branch and call instructions | |
CN110968051B (zh) | 用于规划自动化系统的方法和工程系统 | |
US8050784B2 (en) | Integrated programmer reference for industrial control device data | |
CN115658140A (zh) | 一种sdk的打包方法、装置、终端以及存储介质 | |
CN114072740B (zh) | 信息处理装置、存储介质以及支持系统 | |
KR102268795B1 (ko) | 프로그램 언어와 제조사에서 정의한 언어의 혼용을 위한 메모리 매핑 방법 | |
JP4877257B2 (ja) | プログラマブルコントローラ、プログラマブルコントローラ支援装置、及びプログラマブルコントローラシステム | |
CN112272820A (zh) | 支持装置以及支持程序 | |
Ebenhofer et al. | Generic and reconfigurable IEC 61499 function blocks for advanced platform independent engineering | |
CN116126366B (zh) | 芯片输入输出接口配置方法,装置,介质及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |