《用于对可编程控制装置编程和配置的方法和设备.pdf》由会员分享,可在线阅读,更多相关《用于对可编程控制装置编程和配置的方法和设备.pdf(18页珍藏版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 103814333 A (43)申请公布日 2014.05.21 CN 103814333 A (21)申请号 201280033518.4 (22)申请日 2012.07.05 11005514.2 2011.07.06 EP G05B 19/05(2006.01) (71)申请人 ABB 股份公司 地址 德国曼海姆 (72)发明人 A. 弗罗贝格尔 B. 布莱 C. 迈尔 H. 施塔布 T. 赖辛格 (74)专利代理机构 中国专利代理(香港)有限公 司 72001 代理人 徐予红 汤春龙 (54) 发明名称 用于对可编程控制装置编程和配置的方法和 设备 (57) 。
2、摘要 本发明涉及用于借助位于编程工具 (B) 中的 配置工具 (K) 对可编程控制装置 (D) 编程和配置 的方法和用于执行所述方法的设备, 其中, 除用 IEC61131语言的模块(80)以外, 至少一个另外的 模块(C)集成在所述配置工具(K)中, 借助所述至 少一个另外的模块, 在使用 C 代码编辑器 (3A) 的 情况下用高级语言执行可编程控制装置 (D) 的编 程, 并且由所述另外的模块 (C) 提供 IEC61131 代 码与高级语言代码之间的接口的定义以及所述高 级语言代码的配置。 (30)优先权数据 (85)PCT国际申请进入国家阶段日 2014.01.06 (86)PCT国际。
3、申请的申请数据 PCT/EP2012/002832 2012.07.05 (87)PCT国际申请的公布数据 WO2013/004389 DE 2013.01.10 (51)Int.Cl. 权利要求书 2 页 说明书 8 页 附图 7 页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书2页 说明书8页 附图7页 (10)申请公布号 CN 103814333 A CN 103814333 A 1/2 页 2 1.一种用于借助位于编程工具(B)中的配置工具(K)对可编程控制装置(D)编程和配 置的方法, 其中, 除用 IEC61131 语言的模块 (80) 以外, 至少一个另。
4、外的模块 (C) 集成在所 述配置工具 (K) 中, 借助所述至少一个另外的模块, 在使用 C 代码编辑器 (3A) 的情况下用 高级语言执行所述可编程控制装置 (D) 的编程, 并且由所述另外的模块 (C) 提供 IEC61131 代码与高级语言代码之间的接口的定义以及所述高级语言代码的配置。 2. 根据权利要求 1 所述的方法, 其特征在于, 为了配置所述高级语言代码设置库管理 (1A), 在所述库管理中在使用高级语言的情况下建立和管理用户定义的库, 在用所述高级 语言的 IEC 61131-3 接口 (2A) 中在库项目中配置能够连接到所述可编程控制器 (D) 上的 硬件的映射, 在使用。
5、所述高级语言编辑器 (3A) 的情况下编辑所建立的库和所述库项目, 在 具有 C 代码实现的应用模块 (C) 中, 对于用户不可见地在使用编译器 (42) 和附加的库特定 的头文件 (41) 的情况下从中产生应用库 (43), 并且所产生的应用库 (43) 对于所述用户不 可见地添加到所述可编程控制器 (D) 的保存在所述编程工具 (B) 中的目标项目代码中。 3.根据权利要求2所述的方法, 其特征在于, 在所述编程工具(B)中用相应的高级语言 为要在所述可编程控制器 (D) 上执行的目标项目产生所述代码, 实现包含在其中的 POU 实 例, 并且将所述 POU 实例从所述编程工具 (B) 与。
6、用于 IEC61131-3 应用的 POU 一起加载到所 述可编程控制器 (D) 中。 4.根据权利要求2或3所述的方法, 其特征在于, 用所述高级语言创建的库由所述可编 程控制器 (D) 的运行时间系统重定位, 并且外部的应用程序接口 (API) 在此解开。 5. 根据权利要求 2 至 4 中任一项所述的方法, 其特征在于, 除用于所述 IEC61131-3 应 用 (83) 的 POU 以外, 实现基于 C 代码的应用 (84)。 6. 根据以上权利要求中任一项所述的方法, 其特征在于, 使用 C 或 C/C+/C# 作为高级 语言。 7. 根据以上权利要求中任一项所述的方法, 其特征在于。
7、, 借助设置在所述编程工具 (B)中的接口, 选择和/或组合用所述高级语言的编程或根据所述IEC 61131-3编程系统的 编程。 8.一种用于借助位于编程工具(B)中的配置工具(K)对可编程控制装置(D)编程和配 置的设备, 其中, 除用 IEC61131 语言的模块 (80) 以外, 至少一个另外的模块 (C) 集成在所 述配置工具 (K) 中, 借助所述至少一个另外的模块, 在使用 C 代码编辑器 (3A) 的情况下能 够用高级语言执行所述可编程控制装置 (D) 的编程, 并且其允许 IEC61131 代码与高级语 言代码之间的接口的定义以及所述高级语言代码的配置。 9. 根据权利要求 。
8、8 所述的设备, 其特征在于, 为了配置所述高级语言代码设置库管理 (1A), 其中, 所述库管理 (1A) 在使用高级语言的情况下建立和管理用户定义的库, 所述 IEC 61131-3 接口在库项目中将能够连接到控制器上的硬件设备映射为用所述高级语言的 C 代 码插件标签 IEC61131 接口, 所述附加模块 (A) 存储借助所述高级语言编辑器 (3A) 可编辑 的插件标签配置和可编辑的 IEC61131 接口, 在具有 C 代码实现的应用模块 (C) 中保存编译 器 (42) 和附加的库特定的头文件 (41) , 并且在使用所述编译器 (43) 和附加的库特定的头 文件 (41) 的情况。
9、下能够由此产生应用库 (43), 并且所产生的应用库 (43) 能够添加到所述 可编程控制器 (D) 的保存在所述编程工具 (B) 中的目标项目代码中。 10. 根据权利要求 9 所述的设备, 其特征在于, 所述编程工具 (B) 用相应的高级语言为 权 利 要 求 书 CN 103814333 A 2 2/2 页 3 要在所述可编程控制器(D)上执行的目标项目产生所述代码, 实现包含在其中的POU实例, 并且将所述 POU 实例与用于 IEC61131-3 应用的 POU 一起从所述编程工具 (B) 加载到所述 可编程控制器 (D) 中。 11. 根据权利要求 9 或 10 所述的设备, 其特。
10、征在于, 在 POU 单元 (90) 中, 除用于所述 IEC61131-3 应用 (83) 的 POU 以外, 实现基于 C 代码的应用 (84)。 12. 根据权利要求 8 至 11 中任一项所述的设备, 其特征在于, 使用的高级语言为 C 或 C/C+/C#。 13. 根据权利要求 8 至 12 中任一项所述的设备, 其特征在于, 所述编程工具 (B) 除具 有用于根据 IEC 6113-3 编程的第一应用模块 (11) 以外, 具有用于用编程语言 “C” 编程的 第二应用模块 (12), 其中, 借助选择单元能够执行在使用高级语言的情况下编程或在基于 IEC 61131-3 的编程语言。
11、的情况下编程之间的切换。 权 利 要 求 书 CN 103814333 A 3 1/8 页 4 用于对可编程控制装置编程和配置的方法和设备 技术领域 0001 本发明涉及根据权利要求 1 所述的用于对可编程 (speicherprogrammierbar) 控 制装置编程和配置的方法。此外, 本发明涉及用于执行所述方法的设备或者系统。本发明 尤其可用于将智能现场设备集成在控制系统或自动化系统中、 在过程自动化或机器控制中 用于控制技术过程和 / 或设备构件。 背景技术 0002 此外, 用于对可编程控制器 (SPS)编程和配置的基础是根据国际标准 IEC 61131-3 的设备无关的编程系统连。
12、同在那描述的编程语言。许多用于可编程控制器的编程 环境也允许使用高级语言如 BASIC、 Java 和 C 或 C/C+/C 。 0003 可编程控制器的编程和配置借助基于 PC 的编程工具或编程设备 (也称作工程工 具) 实现为单独程序指令的序列, 其中, 各技术或功能上相关联的程序指令构成程序组件, 也称作功能块。 0004 完整的 SPS 程序通常包含多个这样的程序组件。这些组件可以在先前提到的 SPS 应用相关的编程语言中如作为指令表、 作为梯形图、 作为逻辑图、 作为功能图、 作为过程语 言或结构化的文本经由编程工具中输入。为了创建、 翻译、 校验 SPS 代码并且将 SPS 代码下。
13、 载到自动化系统的设备中, 存在基于 PC 的工具。 0005 一种用于输入用高级语言 “C“ 的程序指令的方法例如在 EP 860 758 A1 中描述。 在那示出编程设备的输入设备, 所述输入设备经由第一数据线与转换装置相连接并且经由 第二数据线连接到高级语言编译器上, 所述高级语言编译器将程序指令翻译成由可编程控 制器可读或者可处理的代码。 0006 在公司 “Bernecker+Rainer 工业电子有限公司 -B&R 自动化工作室” 的产品页 “集 成 IEC 61131-3 语言、 CFC 和 ANSI-C“(请参阅 www.br- br-productcatalogue/hs.x。
14、sl/products_151728 ENG HTML.htm) 描述了 : 编程语言ANSI C 允许用户调用来自另外的 IEC 语言的功能块和访问地址 (全局访问变量) 。 0007 此外, 存在解决方案, 其中, 将不同的源文件语言, 例如 IEC61131、 C/C+/C 、 Basic 或 Java 翻译成中间代码, 并且然后根据所使用的设备的厂商特定的目标平台、 借助 附加的软件构件倒译中间代码。该解决方案例如由菲尼克斯通讯集团 (Phoenix Contact Gruppe) 的公司 KW 软件使用并且在图 1 中示例性地示出。 0008 另一种解决方案涉及根据 IEC61131。
15、 的可编程控制器的运行时间系统。在此, C 代 码函数仅仅能够借助在 IEC61131-3 中所述的程序调用变量。不提供存取系统资源 (如输入 和 / 或输出) 或连接到可编程控制器上的设备的存储器。 发明内容 0009 本发明所基于的任务是, 说明一种方法和设备, 借助所述方法和设备尤其通过以 下方式简化可编程控制装置的编程和配置 : 用高级语言 (例如 C 代码) 创建的程序指令在连 说 明 书 CN 103814333 A 4 2/8 页 5 接到所述可编程控制器上的设备上与根据 IEC 61131-3 创建的程序指令并行地运行, 由此 可执行直接存取系统资源 (如输入和 / 或输出) 。
16、或连接到可编程控制器的设备的存储器。对 于用户可能的是, 用高级语言以及用 IEC61131 语言来编辑代码。 0010 根据本发明, 该任务借助在权利要求 1 中所说明的特征解决。根据本发明的锚定 元件 (Verankerungselement) 的有利的扩展方案、 改进在其他权利要求和说明书中说明。 0011 根据本发明的用于对可编程控制装置编程和配置的方法从位于编程工具中的配 置工具出发, 其中, 除用 IEC61131 语言的模块以外, 至少一个另外的模块集成在配置工具 中, 借助所述至少一个另外的模块、 在使用 C 代码编辑器的情况下用高级语言执行可编程 控制装置的编程。根据本发明,。
17、 借助所述另外的模块提供 IEC61131 代码与高级语言代码之 间的接口的定义以及高级语言代码的配置。 0012 为了借助位于编程工具中的配置工具执行根据本发明的用于对可编程控制装置 编程和配置的方法, 根据本发明地在配置工具中集成附加模块 (也称作插件) , 其产生和插 入用高级语言、 优选是 C 代码的库函数用于对控制装置编程, 由此能够通过简单的方式执 行用高级语言创建的程序指令的创建并且将其集成到自动化系统的设备中。 0013 根据本发明, 在附加模块中集成高级语言编辑器、 库管理和 IEC 61131 接口 (2A) 。 0014 库管理用于建立和管理用户定义的库。在库管理中, 具。
18、有能够用高级语言 (例如 C 代码) 执行的运行程序模块的库与相应的编译器选项一起首先被配置为 C 代码插件标签配 置。 0015 随后, 用高级语言的 IEC61131 接口中将库项目中的、 能够连接到可编程控制器 上的硬件设备的包括其输入、 输出和 / 或局部变量在内的映射配置为 C 代码插件标签 IEC61131 接口。 0016 根据另一种方法过程, 在附加模块中编辑和存储插件标签配置和插件标签 IEC 61131 接口。 0017 在应用模块中, 现在对于用户不可见地在使用编译器和附加的库特定的头文件 的情况下从中产生应用库, 并且所产生的应用库对于用户不可见地添加到所述可编程控 制。
19、器的保存在编程工具中的目标项目代码中。随后, 在编程工具中用相应的高级语言为 要在可编程控制器上执行的目标项目产生 C 代码以及实现包含在其中的程序组织单元实 例也称作程序组织单元 (POU) 实例, 并且从编程工具将所述程序组织单元实例与用于 IEC61131-3 应用的 POU 一起传输到可编程控制器中。 0018 目前, 用于IEC和C代码的运行时间环境被分成两个运行时间系统, 在它们之间仅 复杂的数据交换是可能。 0019 根据本发明, 在 C 代码下创建的程序指令的过程在根据 IEC 61131 标准的被称作 外壳 (Shell) 的壳或套下进行, 使得对于用户或用户仅仅该壳可见, 。
20、而非在后台运行的 C 代 码对于用户可见。因此, 对系统资源的访问仅仅需要经由现有的 IEC 61131 接口。因此, C 代码过程的运行时间环境显得如在 IEC-61131 环境下程序指令的过程那样。 0020 根据本发明, 可以以有利的方式采用根据 IEC-61131 标准的程序过程的现有的经 校验和证明的接口, 并因此可以放弃基于新的 C 代码接口的成本密集的开发。 0021 先前描述的根据本发明的方法通过有利的方式允许程序员在 IEC61131 项目内使 用自身的C代码程序或者程序指令下面仅仅仅称为C代码。 在此, 之前用C代码创建的 说 明 书 CN 103814333 A 5 3/。
21、8 页 6 程序指令在连接到可编程控制装置上的设备上与 IEC 61131-3 程序指令并行地运行。因此 可执行直接存取系统资源 (如输入和 / 或输出) 或连接到可编程控制器上的设备的存储器。 0022 如开始已经提到的, 本发明还涉及一种用于对可编程控制装置编程和配置的设备 或者系统。 0023 用于对可编程控制装置编程和配置的设备包括位于编程工具中的配置工具, 在所 述配置工具中除用 IEC61131 语言的模块 (80) 以外, 集成了至少一个另外的模块, 借助所述 至少一个另外的模块, 在使用 C 代码编辑器的情况下用高级语言能够执行可编程控制装置 的编程, 并且其允许 IEC611。
22、31 代码与高级语言代码之间的接口的定义以及高级语言代码 的配置。 0024 根据本发明, 在控制器开发系统的配置工具中集成附加模块, 其中插入用高级语 言、 优选 C 代码的所产生的库函数用于对控制装置的编程, 由此, 能够通过简单的方式执行 用高级语言创建的程序指令的创建和并且将其集成到自动化系统的设备中。 0025 为此, 附加模块包括 : - 高级语言编辑器, 例如 C 代码编辑器, - 库管理, 在库管理中, 具有能够用高级语言 (例如C代码) 执行的运行程序模块的库与 相应的编译器选项一起被确定或配置为标签配置的高级语言附加程序, 并且用于建立和管 理用户定义的库 ; - 用高级语。
23、言例如 C 代码的 IEC61131 接口, 所述 IEC61131 接口在库项目中包括 其输入、 输出和 / 或局部变量在内地映射能够连接到控制器上的硬件设备。该接口也称作 C 代码附加程序标签 IEC61131 接口。 0026 此外, 本发明的新颖性还基于 : 基于 PC 的配置工具为用户提供用于组合根据 IEC 61131-3 和 C 的不同的编程语言的选择可能性。为此, 选择单元或接口被设置用于在在使 用高级语言如C代码的情况下编程或在基于IEC 61131-3的编程语言的情况下编程之间选 择。 0027 编程工具除具有根据 IEC 6113-3 编程的第一应用模块或接口以外, 具有。
24、用于用 编程语言 “C” 编程的第二应用模块或接口, 其中, 借助选择单元设置在在使用高级语言例如 C 代码的情况下编程或在基于 IEC 61131-3 的编程语言的情况下编程之间的切换。 附图说明 0028 按照根据本发明的锚定元件的在以下附图中所示的实施例, 详细解释和描述本发 明以及根据本发明的锚定元件的有利的扩展方案、 改进和其他优点。 0029 示出 : 图 1 示出用于借助根据现有技术的编程工具对可编程控制器编程的一种示例性的解 决方案 ; 图 2 示出根据本发明的用于对可编程控制器编程的方法的示例性的实施例 ; 图 3、 4 示例性地示出使用来自于库的应用模块作为源代码, 将所述。
25、源代码在工程工具 中翻译成二进制格式, 或所述源代码作为仅仅被嵌入的预编译的的二进制格式存在 ; 图 5 示出借助编程工具的 C 代码集成的系统结构的示例性的实施方式 ; 图 6 示出用于传输所创建的具有 C 代码 POU 的应用库的一种示例性的方法过程 ; 说 明 书 CN 103814333 A 6 4/8 页 7 图 7 示出 C 代码库, 所述 C 代码库被添加到可编程控制器的目标项目代码中。 具体实施方式 0030 图 1 中示出根据现有技术的、 用于可编程控制单元或控制器的、 具有基于相应的 编程语言的不同编程接口 10 的编程环境, 程序员用所述编程语言写相应的用于开发和执 行用。
26、户程序的软件。第一编程接口 11 被设置用于根据 IEC61131-3 标准编程。第二编程接 口 12 构成由微软公司提供的用于不同的高级语言例如 C、 C+、 C# 的集成开发环境, 所 述集成开发环境称作Visual Studio。 借此, 程序员可以开发经典的Windows程序或动态的 用于互联网/内联网的网页或者网络服务, 其中, 主要注意力集中在创建用于.NET框架 (由 微软开发的基于公共语言运行时间的软件平台 1) 的应用。 0031 第二编程接口 12 与保存在软件平台 1 上的称作 “通用中间语言 (CIL) ” 的同时标 准化的中间语言或者中间代码 20 一起起作用, 所述。
27、中间语言或者中间代码翻译并且已经 简化再现所创建的程序。 0032 在执行计算机 30也称作目标计算机或目标平台上, 中间代码 20 由运行时间 系统 (虚拟执行系统) 30 翻译成系统自身的程序代码、 通常是机器代码, 以便因此能够在可 编程控制器中执行在 CIL 20 中现有的程序。 0033 到系统自身程序代码的翻译在此不是直接地进行, 而是首先在第一步骤中产生 CIL 代码 20, 所述 CIL 代码将相应的程序命令说明为字节值的序列。CIL 代码 20 在执行计 算机 30 上在运行时间系统中翻译成本机机器代码并被执行。 0034 第三编程接口 13 被设置为用于生成 CIL 代码 。
28、20 的所谓的用户配置工具。 0035 图 2 示出根据本发明的用于在使用根据本发明设置的附加模块 A 的情况下、 按照 具有步骤 1 至 8 的方法过程的、 借助位于编程工具 B 中的配置工具 K 对可编程控制器 D 编 程和配置的方法的特征, 所述附加模块也称作插件。 0036 附加模块 A 包括 C 代码编辑器 3A、 库管理 1A、 用 C 代码的 IEC 61131-2A 接口 2A, 在所述库管理中, 具有能够用 C 代码执行的程序模块的库与相应的编译器选项一起作为 C 代码附加程序、 标签配置确定或者配置, 所述 IEC 61131-2A 接口在库项目中包括其输入、 输出和 / 。
29、或局部变量在内地映射能够连接到控制器上的硬件设备。该接口也称作 C 代码附 加程序标签 IEC61131 接口。 0037 在第一步骤 1 中, 在库管理 1A 中首先将具有能够用 C 代码执行的运行程序模块的 库与相应的编译器选项一起作为 C 代码插件标签配置配置。 0038 在第二步骤 2 中, 用 C 语言的 IEC61131 接口 2A 配置为在库项目中包括其输入、 输 出和 / 或局部变量在内将能够连接到可编程控制器 (D) 上的硬件设备映射为 C 代码插件标 签IEC61131接口, 并且在第三步骤中相应地编辑和存储在附加模块A中的插件标签配置和 插件标签 IEC61131 接口。。
30、 0039 在第四步骤 4 中, 在用 C 代码编程的应用模块中为编程工具 B 提供外部创建的应 用库 43, 所述应用库在后台也就是说对于用户不可见地从现有源代码 44 在编译 器 42 中翻译为 C 代码, 其中, 使用附加的库特定的头文件 41。 0040 随后在第五步骤 5 中, 将外部创建的应用库 43 添加到可编程控制器 D 的目标项目 代码 (PLC 目标项目代码) , 所述目标项目代码保存在编程工具 B 中。该方法步骤也在后台 说 明 书 CN 103814333 A 7 5/8 页 8 运行。 0041 在下一步骤 6 中, 在编程工具 B 中, 为待在可编程控制器上执行的程。
31、序 (下面也称 作目标项目) 产生C代码, 并且实现包含在其中的程序组织单元实例, 程序的实例、 功能块和 函数属于所述程序组织单元实例。 0042 现在, 在另一步骤 7 中, 目标项目由编程工具 B 加载到可编程控制器 D 上, 由此 C 代码二进制程序的库也称作 “C 代码库二进制” , 被嵌入并且被加载到控制器 D 上。 0043 在最后的可选步骤 8 中, 可执行的二进制代码 (C 代码库二进制) 由可编程控制器 D 的运行时间系统重定位, 并且所有外部的应用程序接口引用 (API 引用) 在此解开和绑定。 为了存取保存在可编程控制器上的固件中实现的附加功能, C 代码 POU 可以。
32、调用固件 API (应用编程接口) 。 0044 因为固件被封装在 C 代码头文件 41 中, 所以有利地, 可编程控制器的用户只需要 看见用 C 代码保存的函数、 功能组件和程序, 而不需要各个专门的固件的编程知识。 0045 此外提出, 基于 PC 的编程工具 B 有接口, 所述接口允许程序员在用高级语言编程 与用 IEC 61131 编程之间进行选择。 0046 借助根据本发明的方法, 不仅可以将新功能 (应用模块 E) 而且可以将库中现有的 功能作为 C 代码或用 IEC 611131-3 语言实现, 并将其组合地用到目标应用中。 0047 根据本发明的方法的有利的扩展方案基于, 编程。
33、工具 B 提供外部库 POU, 所述外部 库 POU 能够用 C 代码实现。所使用的配置器支持 C 代码库的插件、 IEC1131-3 接口规范、 C 代码编辑器和编译器集成, 所述编译器集成包括编译器错误的显示和 / 或在 SPS 的目标项 目中的从外部提供的库的集成。 0048 在本发明的另一个扩展方案中, 用于 C 代码的系统功能不是映射为来自系统库的 其他应用模块, 而是映射为被分组到功能区中的固件 FW API 的应用程序接口 (也称作应用 编程接口 (API) ) 。 0049 图 3 和 4 示例性地示出来自系统库 94 和应用库 43 的应用模块 9 作为源代码的使 用, 所述。
34、源代码翻译 (编译) 成工程工具 B 中的二进制格式或作为仅仅被嵌入的预编译的二 进制格式存在。 0050 图 5 示出用于借助集成在编程工具 B 中的、 用于产生 PLC 项目的配置的第一编程 接口 1 和第二编程接口 12 进行 C 代码集成的可编程控制单元的系统结构。第一编程接口 11 被设置用于根据 IEC61131-3 标准编程, 并且第二编程接口被设置用于用高级语言、 优选 是 C 代码编程。 0051 在可编程控制单元可操作之前, 为此设置的硬件设备 40(其经由通信耦合器和现 场总线 70 与控制器 30 连接) 、 尤其是智能现场设备在编程工具 B 中映射为 SPS 项目或控。
35、制 器项目的组成部分, 其中, 在控制器项目中存储关于这些硬件设备 40 的输入 / 输出地址的 信息并且使得其对于用户程序可访问。为了可寻址系统的硬件设备 40 的输入和输出, 首先 配置硬件设备 40 的输入 / 输出单元和控制装置, 并且将 PLC 项目的配置 (也称作控制器配 置) 创建为 SPS 项目或控制器项目的组成部分。 0052 借助编程接口10配置的项目经由以太网总线50传输到可编程控制器的控制器30 中并且从那经由现场总线 70 传输到现场设备 40 中, 操作单元 60 也可连接到所述以太网总 线上。 说 明 书 CN 103814333 A 8 6/8 页 9 0053。
36、 为了创建和配置项目, 在编程工具B中将应用模块80设置为可编程控制装置中的 运行时间环境, 在所述应用模块中集成有全局变量 81、 应用程序接口 82、 IEC61131-3 应用 83 和基于 C 代码的应用 84, 其被设置用于传输到控制器 30 中。 0054 IEC61131-3 应用 83 被组织在与其共同作用的 POU 单元 90 中的 POU 中, 例如作为 专门功能块图 (FBD) 、 结构化文本 (ST) 、 梯形图 (LD) 、 指令表 (IL) 和 / 或功能图 (SFC, CFC) 。 在 POU 单元 90 中, 除用于 IEC61131-3 应用 83 的 POU。
37、 以外, 实现基于 C 代码的应用 84, 如 FBD、 ST、 LD、 IL、 SFC、 CFC。因此, 根据本发明, 这些应用由用 IEC61131-3 语言编程的和用 C 代码编程的应用模块 83、 84 一起组成。 0055 硬件设备40的所有输入和/或输出被映射为全局变量81, 并且所有POU 83、 84共 享全局变量 81, 从而 C 代码应用 84 具有经由 POU 单元 90 的接口对输入和 / 或输出的完全 的存取。 0056 根据本发明, 用于 C 代码的系统功能 (例如实时功能, 写文件和读文件、 存储器管 理, 浮点运算、 实时功能和实时时钟) 不是被映射为来自系统库。
38、的其他应用模块, 而是作为 分组到功能区中的固件 FW API 的应用程序接口 (API) 。 0057 为了在 C 代码应用 84 中实现 POU 单元 90, 需要所产生的应用库 43。保存在应用 库 43 中的库元素如函数、 功能块和程序根据 IEC61131-3 运行时间系统通过 POU 单元 90 的 POU 接口确定。在此 POU 接口定义至其他 POU、 输入和输出和至更高级的操作单元的 连接点 , 其映射为局部变量, 例如类型输入 IN, 输出 OUT 和 / 或输入输出 IN_OUT 的变量。 0058 通过有利的方式, 每一个根据IEC61131-3和用C代码创建的局部PO。
39、U变量经由PC 访问例如操作单元 60 或经由通过互联网的表示可访问和可寻址。 0059 变量和任务、 应用模块组成的 PLC 项目的整个配置与 IEC61131-3 应用 83 和基于 C 代码的应用 84 一起被加载到控制器 30 中, 所述应用模块引用其他应用模块。 0060 因为至系统资源的访问仅仅经由现有 IEC61131 接口实现, C 代码过程的运行时间 环境显得如在 IEC 61131 环境下程序指令的过程一样。不需要将 C 代码应用 84 单独下载 到控制器 30 中。 0061 用于传输所创建的具有 C 代码 POU 的应用库 43 的示例性的方法过程在图 6 中示 出。用。
40、于创建应用库 43 的附加模块 A 在此未示出。 0062 在第一方法步骤 11 中, 在可编程控制器的工程工具 B 中的功能块包括其所有输 入和输出以及所有内部变量或者局部变量在内地在库项目中被确定为 C 代码插件标签 IEC61131接口并且库项目被存储在工程工具B中。 在第二方法步骤12中, 在后台由工程工 具 B 将 C 代码插件标签 IEC61131 接口导出到头文件 41 和 C 代码源文件或者 C 代码源文件 框架 (C 文件模板) 中。 0063 在第三方法步骤 13 中, 在使用先前在头文件 41 和 C 代码源文件中确定的 C 代码 插件标签 IEC61131 接口的情况下。
41、, 用 C 代码对功能块编程, 并且在第四方法步骤 14 中, 借 助编译器 42 将现有 C 源代码 44 翻译成相应的二进制代码。 0064 随后, 在下一方法步骤15中, 在目标项目Z中打开应用库43, 并且在另一方法步骤 16 中, 在目标项目 Z 中产生功能块实例。 0065 在下面的步骤 17 中, PLC 目标项目 Z 对于用户不可见地被加载到控制器 30 中, 应 用 83、 84 被彼此连接并且 C 代码库二进制被下载。C 代码库对于应用模块包含接口描述 91 说 明 书 CN 103814333 A 9 7/8 页 10 并且或者包含运行时间函数的源代码 92 或者仅仅包含。
42、运行时间函数的可执行的二进制代 码 (二进制) 93。这例如在图 3 中示出。 0066 在最后的方法步骤18中, 可以由可编程控制器D的运行时间系统嵌入可执行的二 进制代码 (C 代码库二进制) 并且解开或者重定位对 FW API 的引用。这例如在图 4 中示出。 0067 图 7 示出 C 代码库, 在使用 C 代码源文件 44 的情况下, 借助 POU 90 用 C 代码执行 C 代码库。 0068 在步骤 25 中, 所创建的应用库 43 被添加到可编程控制器 D 的目标项目代码 (PLC 目标项目代码) Z 中。在下一步骤 26 中, 在编程工具 B 中为待在可编程控制器上执行的目 。
43、标项目产生 C 代码, 并且实现包含在其中的应用模块实例。 0069 现在, 在另一步骤 28 中, 目标项目由编程工具 B 加载到可编程控制器 D 上。 0070 通过有利的方式, 在不需要源代码文件 44 的情况下, 具有应用模块、 接口定义和 根据 C 代码产生的二进制代码的应用库 43 可以在其他项目中再使用。 0071 现在起, 所有 POU 可以用语言 C 代码或根据 IEC61131-3 实现并且共享全局变量 81。因此, 对系统资源如连接到可编程控制器上的设备的输入和或输出或存储器的直接 存取可供使用, 并且尽管用高级语言例如代码实现编程, 但编程世界对于用户而言仅仅 显得作为。
44、 IEC 61131-3 编程系统。 0072 通过所使用的高级语言代码, 在使用系统库 94 的情况下也能够调用相应的固 件应用程序接口 (API) , 包含头文件 41 的系统库 94 的功能也可供 C 代码编程使用。 0073 参考标记列表 1 软件平台 10 编程接口 11 第一编程接口、 第一应用模块 12 第二编程接口、 第二应用模块 13 第三编程接口 20 中间语言、 中间代码、 通用中间语言 30 执行计算机、 目标平台 40 现场设备 41 头文件 42 编译器 43 应用库 44 源代码 50 以太网总线 60 操作单元 70 现场总线 80 应用模块 81 全局变量 8。
45、2 API 应用程序接口 83 IEC61131-3 应用 84 基于 C 代码的应用 说 明 书 CN 103814333 A 10 8/8 页 11 90 POU 单元 91 接口描述 92 运行时间函数的源代码 93 运行时间函数的可执行的二进制代码 94 系统库 A 附加模块、 插件 1A 库管理 2A IEC 61131 接口 3A C 代码编辑器 B 编程工具、 工程工具 C 具有 C 代码实现的应用模块 D 可编程控制器 K 配置工具 Z 目标项目 说 明 书 CN 103814333 A 11 1/7 页 12 图 1 说 明 书 附 图 CN 103814333 A 12 2/7 页 13 图 2 说 明 书 附 图 CN 103814333 A 13 3/7 页 14 图 3 说 明 书 附 图 CN 103814333 A 14 4/7 页 15 图 4 说 明 书 附 图 CN 103814333 A 15 5/7 页 16 图 5 说 明 书 附 图 CN 103814333 A 16 6/7 页 17 图 6 说 明 书 附 图 CN 103814333 A 17 7/7 页 18 图 7 说 明 书 附 图 CN 103814333 A 18 。