System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种用于IEC61131-3可编程系统的C语言集成方法技术方案_技高网

一种用于IEC61131-3可编程系统的C语言集成方法技术方案

技术编号:41152236 阅读:3 留言:0更新日期:2024-04-30 18:18
本发明专利技术公开了PLC领域的一种用于IEC61131‑3可编程系统的C语言集成方法,用于实现可编程系统对C语言的集成及解决现有可编程系统集成C语言时无法编辑和编译含有多个子项目的C语言项目的问题。方法包括如下步骤:1.可编程系统上创建,编辑并配置C语言项目的编译属性及参数,配置过程中,选择需要导出的C函数接口并转换成对应的IEC函数接口(供IEC程序调用的函数接口);2.编译步骤1中的C语言项目,编译完成后生成C动态库,C动态库中包含步骤1中IEC函数接口的实现;3.对调用了步骤1中IEC函数接口的IEC程序进行编译并生成编译文件;4.下装步骤3中的编译文件和步骤2中的C动态库至PLC上解析编译文件,加载动态库,回填生成机器码并运行。

【技术实现步骤摘要】

本专利技术涉及可编程逻辑控制器(plc)编程领域,具体为一种用于iec61131-3可编程系统的c语言集成方法。


技术介绍

1、iec61131-3可编程系统是指遵循iec61131-3国际标准的可实现完整自动化控制方案的软件开发平台,是自动化控制设计和执行的基础软件,其实质是集成开发环境,核心是编译器。目前iec61131-3国际标准定义了五种编程语言,包括梯形图(ladder diagram),指令表(instruction list),功能块图(function block diagram),结构化文本(structured text)和顺序功能图(sequential function chart),使用这五种编程语言开发的程序称为iec程序,iec61131-3可编程系统需要支持iec程序的编辑和编译。

2、但是,许多plc编程开发者更擅长使用c语言进行编程,同时一些应用场景中,存在大量现有c语言代码和函数可以很好满足其功能需求,如果直接使用c语言将大大减少plc开发的工作量。然而目前现有的可编程系统对c语言的支持依然存在难度,如果通过自主实现编译器的方式,iec61131-3可编程系统需充分实现c语言编译前端的词法语法分析功能和链接器对各种操作系统下标准库的链接功能。此种方式实现难度大,工程量巨大,而且很难达到开源编译器(gcc,llvm等)对c语言的支持程度。所以iec61131-3可编程系统一般采用成熟的c语言编译器来实现对c语言的扩展。对于c语言的支持 ,twincat和codesys等市场上的iec61131-3可编程系统的实现方式是大多采用visualstudio(visualstudio是美国微软公司的开发工具包系列产品,能够编辑并编译c语言项目)的定制开发了编译器实现,这种方式深度绑定了微软的技术,耦合度太高,过度依赖visualstudio在c语言集成中的作用,含有多个子项目的c语言项目只能在visualstudio上编辑之后导入上述可编程系统,可编程系统无法自主编辑和编译含有多个子项目的c语言项目。总之,现有的可编程系统或不支持c语言的集成(包括c语言的编辑,编译及iec程序对c语言的调用,并成功编译后下装到在plc上正常运行),或过度依赖外部软件,无法独立编辑和编译含有多个子项目的c语言项目。

3、为此,本专利技术提出了一种用于iec61131-3可编程系统的c语言集成方法,以提高可编程系统对c语言的支持度。


技术实现思路

1、本专利技术的目的是提供一种用于iec61131-3可编程系统的c语言集成方法。本专利技术能够实现iec61131-3可编程系统对c语言的集成(包括c语言的编辑,编译及iec程序对c语言的调用,并能成功编译后下装到plc上正常运行),以及解决上述现有可编程系统集成c语言存在的过度依赖外部软件,无法独立编辑和编译含有多个子项目的c语言项目的问题。

2、为达到上述目的,本专利技术提供如下技术方案:一种用于iec61131-3可编程系统的c语言集成方法,步骤依次为:

3、步骤1,在iec61131-3可编程系统上创建,编辑并配置c语言项目的编译属性及参数,在配置过程中,可以选择需要导出的c函数接口并转换成对应的iec函数接口(供iec程序调用的函数接口);

4、步骤2,在iec61131-3可编程系统上编译步骤1中的c语言项目,编译完成后生成c动态库(dll文件或so文件等),c动态库中包含步骤1中iec函数接口的实现;

5、步骤3,在iec61131-3可编程系统上创建,编辑iec程序并调用步骤1中的iec函数接口,对调用了步骤1中iec函数接口的iec程序进行编译并生成编译文件;

6、步骤4,在iec61131-3可编程系统上下装步骤3中的编译文件和步骤2中的c动态库至plc上解析编译文件,加载动态库,回填生成机器码并运行。

7、其中,所述步骤1最主要特征在于提供c语言项目的编辑和编译环境,使用iec61131-3可编程系统创建出c语言项目,其中包括多个头文件和源文件。然后在创建的c语言项目的基础上,创建出c语言项目的编译配置,编译配置可以是多个,一个编译配置对应一个c语言子项目(选择已建立的c语言项目的部分或全部文件组成一个c语言子项目),一个c语言子项目会最后被编译为步骤2中的一个c动态库,c动态库中包含步骤1中iec函数接口(供iec程序调用的函数接口)的实现。在c语言子项目被编译成c动态库之前,需要设置编译依赖,编译参数及选择需要导出的c函数接口,编译依赖指的是c语言子项目之间的依赖关系,也就是编译之后的c动态库之间存在的依赖关系,在编译c语言项目前可以指定c语言子项目之间的依赖关系。编译参数指的是编译宏和gcc编译参数,在编译前可以在可编程系统中指定。用户可以选择需要导出的c函数接口,然后使用iec61131-3可编程系统将其转换为iec函数接口(供iec程序调用的函数接口)。

8、所述步骤2的主要特征在于使用成熟的c语言编译器gcc编译c语言项目生成一个或多个c动态库(一个c语言子项目对应一个c动态库),将步骤1中的设置的c语言子项目的编译配置信息(包括由哪些c语言文件组成,编译依赖,编译参数)作为参数传给gcc,gcc编译运行之后可将c语言子项目生成c动态库。c动态库中包含步骤1中iec函数接口(供iec程序调用的函数接口)的实现。

9、所述步骤3的主要特征在于使用iec61131-3可编程系统对调用步骤1提供的iec函数接口的iec程序进行编译,并生成用于下装给plc的编译文件。

10、所述步骤4的主要特征在于下装步骤3中生成的编译文件和步骤2中生成的c动态库至plc并能正确运行。在下装编译文件的过程中,plc会加载c动态库并对编译文件进行解析,解析时会把加载得到的c动态库中提供的iec函数接口的正确地址进行回填。回填完成之后生成机器码,plc运行机器码。

11、一种用于iec61131-3可编程系统的c语言集成方法专利技术的优点和积极效果是:

12、所述用于iec61131-3可编程系统的c语言集成方法能够支持c语言的编辑,编译及iec编程语言对c语言的调用,并能成功编译后下装到plc上正常运行;

13、所述用于iec61131-3可编程系统的c语言集成方法相比现有可编程系统,大大降低对外部软件的依赖,能够独立编辑和编译含有多个子项目的c语言项目。

本文档来自技高网...

【技术保护点】

1.一种用于IEC61131-3可编程系统的C语言集成方法,其特征在于:

2.根据权利要求1所述步骤1,其特征在于:提供C语言项目的编辑和编译环境,使用IEC61131-3可编程系统创建出C语言项目,其中包括多个头文件和源文件。然后在创建的C语言项目的基础上,创建出C语言项目的编译配置,编译配置可以是多个,一个编译配置对应一个C语言子项目(选择已建立的C语言项目的部分或全部文件组成一个C语言子项目),一个C语言子项目会最后被编译为步骤2中的一个C动态库,C动态库中包含步骤1中IEC函数接口(供IEC程序调用的函数接口)的实现。在C语言子项目被编译成C动态库之前,需要设置编译依赖,编译参数及选择需要导出的C函数接口,编译依赖指的是C语言子项目之间的依赖关系,也就是编译之后的C动态库之间存在的依赖关系,在编译C语言项目前可以指定C语言子项目之间的依赖关系。编译参数指的是编译宏和GCC编译参数,在编译前可以在可编程系统中指定。用户可以选择需要导出的C函数接口,然后使用IEC61131-3可编程系统将其转换为IEC函数接口(供IEC程序调用的函数接口)。

3.根据权利要求1所述步骤2,其特征在于:使用成熟的C语言编译器GCC编译C语言项目生成一个或多个C动态库(一个C语言子项目对应一个C动态库),将步骤1中的设置的C语言子项目的编译配置信息(包括由哪些C语言文件组成,编译依赖,编译参数)作为参数传给GCC,GCC编译运行之后可将C语言子项目生成C动态库。C动态库中包含步骤1中IEC函数接口(供IEC程序调用的函数接口)的实现。

4.根据权利要求1所述步骤3,其特征在于:使用IEC61131-3可编程系统对调用步骤1提供的IEC函数接口的IEC程序进行编译,并生成用于下装给PLC的编译文件。

5.根据权利要求1所述步骤4,其特征在于:可编程系统下装步骤3中生成的编译文件和步骤2中生成的C动态库至PLC并能正确运行。在下装编译文件的过程中,PLC会加载C动态库并对编译文件进行解析,解析时会把加载得到的C动态库中提供的IEC函数接口的正确地址进行回填。回填完成之后生成机器码,PLC运行机器码。

...

【技术特征摘要】

1.一种用于iec61131-3可编程系统的c语言集成方法,其特征在于:

2.根据权利要求1所述步骤1,其特征在于:提供c语言项目的编辑和编译环境,使用iec61131-3可编程系统创建出c语言项目,其中包括多个头文件和源文件。然后在创建的c语言项目的基础上,创建出c语言项目的编译配置,编译配置可以是多个,一个编译配置对应一个c语言子项目(选择已建立的c语言项目的部分或全部文件组成一个c语言子项目),一个c语言子项目会最后被编译为步骤2中的一个c动态库,c动态库中包含步骤1中iec函数接口(供iec程序调用的函数接口)的实现。在c语言子项目被编译成c动态库之前,需要设置编译依赖,编译参数及选择需要导出的c函数接口,编译依赖指的是c语言子项目之间的依赖关系,也就是编译之后的c动态库之间存在的依赖关系,在编译c语言项目前可以指定c语言子项目之间的依赖关系。编译参数指的是编译宏和gcc编译参数,在编译前可以在可编程系统中指定。用户可以选择需要导出的c函数接口,然后使用iec61131-3可编程系统将其转换为ie...

【专利技术属性】
技术研发人员:赵德政郭肖旺张聪郭传伟赵奇伟徐新鹏熊毅张伟全
申请(专利权)人:中电智能科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1