一种面向不同体系架构控制器的一体化编译下装方法

文档序号:37116034发布日期:2024-02-22 21:15阅读:23来源:国知局
一种面向不同体系架构控制器的一体化编译下装方法

本发明涉及工业控制领域,尤其涉及一种面向不同体系架构控制器的一体化编译下装方法。


背景技术:

1、随着智能制造概念的逐渐深化与智能工厂的不断发展,工业制造领域倾向于以集成与多工序协同的方式实现大规模工业生产,其中多硬件平台设备统一开发成为了高效制造关键。但在我国由传统工业向智能化生产转型的过程中,作为工业生产控制系统核心的组态编程平台存在“专机专用”、硬件依赖度高等问题。在复杂的工业生产场景下,这些多元化的生产设备为多工序协同带来了阻碍,各式各样的产线终端设备导致组态程序开发流程繁杂、设备间合作困难,为适应工业智能化的发展趋势上述问题迫切需要解决,而一体化编译下装是可行解决方案之一。

2、工控系统的组态编程平台负责将生产工序对应的组态程序通过编译后下装到如plc或边缘控制器等工业控制器中运行。传统组态编程平台往往仅支持特定体系架构设备,不同厂商设备编程环境及接口不相兼容,导致不同体系架构的多设备协同效率低,并且对开发过程中现场设备存在解释型与编译型两种代码执行方式的现状力不从心。

3、为了支持智能工厂生产中的多设备统一开发以实现多工序协同,需要一套灵活高效的跨平台统一化开发方案,支持面向不同体系架构硬件平台的编译下装,提高组态编程平台的兼容性和灵活性,从而促进便捷化的设备管理与生产调整。


技术实现思路

1、有鉴于现有技术的上述缺陷,本发明所要解决的技术问题是如何提高组态编程平台的兼容性和灵活性。

2、为实现上述目的,本发明提供了一种面向不同体系架构控制器的一体化编译下装方法,其特征在于,该方法提出了面向不同体系架构控制器的组态编程平台编译下装框架,在组态程序开发前,用户通过配置组态程序版本信息、程序开发语言、目标控制器编号、程序功能描述等信息生成对应的配置文件;在配置完成后,用户使用相应开发语言进行组态程序编程,组态编程平台基于版本控制方法,支持多用户协同开发组态程序;程序编写完毕后,将用户源程序文件与对应配置文件依次发送至统一语言转换、编译/解释型统一编译、组态程序在线更新模块。

3、进一步地,所述版本信息主要包括版本号、版本修改时间、版本修改者、版本修改描述等内容;

4、所述目标控制器编号是指用来区分不同控制器个体的数字序号,与控制器体系架构无关;

5、所述版本控制方法是基于乐观/悲观冲突消解策略的自适应并发控制方法,所述组态编程平台根据当前版本的读写状态和冲突率动态地切换冲突消解策略,实现不同版本程序的分支与合并,从而保证多用户开发场景下组态程序版本的一致性;

6、所述统一语言转换模块依据配置文件中的程序开发语言信息,自动选取用以指导程序开发语言向统一中间语言转换的规则模板;基于所述规则模板实现所述用户源程序文件向统一中间语言源程序文件的高效、规范转换;将统一中间语言源程序文件及其对应配置文件共同发送至编译/解释型统一编译模块;

7、所述规则模板是指用以指导语义树向统一中间语言代码文本进行转换的规则,所述规则模板包括基本元素转换规则、代码生成规范;

8、所述基本元素转换规则包括类型转换、引用转换、全局变量转换等内容;

9、所述代码生成规范包括命名规范、格式规范、注释规范等内容。

10、进一步地,所述编译/解释型统一编译模块基于统一中间语言源程序对应配置文件的所述目标控制器编号获取对应控制器的信息模型;通过解析所述信息模型获得目标控制器的体系架构信息,所述组态编程平台基于该信息自动进行编译/解释型分支的选择;基于makefile、代码归一等方法实现编译执行方式、解释型执行方式控制器所述的统一中间语言源程序统一编译,生成对应的目标文件/容器。

11、所述信息模型内容包括设备标识、基本信息属性、通用功能方法、自定义功能属性;其中,所述设备标识描述设备id、产品型号、产品cpu体系架构、设备代码执行方式等内容;所述基本信息属性包括输入/输出数据类型与格式、控制模型、模型参数等内容;所述通用功能方法包括读取控制输入/输出、读取/写入控制模型、读取设备工作状态等内容;所述自定义功能属性是指由设备生产厂商自定义实现的设备特有属性与功能方法。

12、进一步地,对于所述编译型执行方式控制器,基于解析所述信息模型获得的目标控制器体系架构信息,基于文件隔离的方式实现代码归一,将同一架构源程序存储到一个文件中;基于makefile实现分文件编译,生成对应不同体系架构的目标文件,进一步地,将生成的目标文件及其对应配置文件共同发送至组态程序在线更新模块;

13、对于所述解释型执行方式控制器,通过解析所述信息模型获得其功能属性,基于所述功能属性信息与配置文件的程序功能描述信息将所述统一中间语言源程序文件依次封装为感知/计算/控制类容器,进而将生成的多类型容器及其对应配置共同发送至组态程序在线更新模块。

14、进一步地,所述组态程序在线更新模块基于所述目标文件/容器对应配置文件的所述目标控制器编号信息获取对应控制器的所述信息模型;通过解析所述信息模型获得目标控制器的体系架构信息,基于该信息与冗余内存分配、cpu实时监控等方法将目标文件/容器在线更新至目标控制器;通过同步更新策略保障多控制器协同的可靠性,避免因多控制器内部组态程序版本不一致而导致的控制系统运行故障和停车风险。

15、进一步地,对于所述编译型执行方式控制器,由组态平台负责不同体系架构控制器的统一下装,在各控制器cpu空闲时间将程序下装至控制器的休眠状态内存区,因此下装过程不影响控制器现有程序的正常运行,较先完成下装过程的控制器向平台发送下装完成信号,平台在接受到所有控制器发送的下装完成信号后发送切换信号,指导多控制器进行同步的程序切换,实现程序的同步在线更新;为避免下装过程控制器cpu负荷过高导致的系统故障,这里实时监控每个周期内的cpu瞬时空闲时间比,并基于该数据指导实现下装文件自适应切分;基于cpu瞬时空闲时间比信息在线优化多控制器下装策略,自动规划下装顺序,以减少在线下装带来的时间延迟。

16、进一步地,所述程序切换基于冗余内存分配实现,每个应用程序会被分配执行所需内存与同样大小的冗余内存,两者分别处于激活状态和休眠状态,组态编程平台下装程序至休眠状态内存区域,直至程序下装完成且收到切换信号后进行两块内存区域的状态切换;

17、所述激活状态是指此时该内存区域程序正在被执行,所述休眠状态是指此时该内存区域程序并没有在被执行,只要控制器在正常运行,则两块内存区域有且只有一块处于激活状态。

18、进一步地,对于所述解释型执行方式控制器,由组态平台负责多控制器的统一下装,在各控制器cpu空闲时间获取对应补丁包,实现在线下装,先下装完毕的控制器向平台发送下装完成信号,平台在接受到所有控制器发送的下装完成信号后发送切换信号,指导多控制器进行同步的新版本容器实例化。

19、进一步地,所述补丁包内容包括对应补丁的版本信息、容器镜像的历史修改等内容。

20、进一步地,所述方法包括如下步骤:

21、步骤1、配置用户侧的组态程序版本信息,程序开发语言、目标控制器编号与程序功能描述并基于版本控制实现多用户协同开发;

22、步骤2、依据配置文件信息中的程序开发语言内容,自动选取对应代码转换规则模板;基于规则模板模版实现用户源程序文件向统一中间语言源程序文件的高效、规范转换;

23、步骤3、依据配置文件信息中的目标控制器编号内容,获取对应编号目标控制器的信息模型;基于信息模型中的程序执行类型和cpu体系架构自动选取编译/解释型执行方式控制器的对应编译分支并进行程序的编译;

24、步骤4、依据配置文件信息中的目标控制器编号内容,将第三步所得目标文件/容器同步在线更新至目标控制器。

25、本发明具有如下技术效果:

26、(1)组态编程平台使用基于统一中间语言的编译框架,能够有效降低不同体系架构软硬件适配工作量;用户在开发过程中无需关注底层控制器的体系架构,仅需要在配置过程中指定目标控制器,后续开发过程用户使用偏好的开发语言进行组态程序编写即可;组态编程平台基于版本控制方法保证多用户开发场景下组态程序版本的一致性与完整性,支持多用户可靠地进行组态程序协同开发;

27、(2)用户在配置过程中选定目标控制器并形成配置文件后,无需再进行额外操作,组态编程平台会获取并解析具有规定内容的目标控制器信息模型,基于解析获得的控制器体系架构、功能属性信息自动选择程序编译分支,实现同时支持编译型和解释型两种执行方式的一体化编译;基于一个组态编程平台就可以完成多控制器的组态程序开发,操作简便高效;

28、(3)用户在配置文件中选定目标控制器后,无需再进行额外操作,组态编程平台通过解析控制器信息模型可以自动选择编译/解释型两种执行方式控制器对应的下装分支,操作便捷;组态编程平台支持多控制器组态程序的在线无扰下装,无需控制器停机更新,对生产过程影响小;基于控制器实时信息在线优化组态程序下装策略,减少程序在线下装带来的时间延迟,提高组态程序下装效率;基于同步更新策略保障多控制器内部组态程序版本的一致性,支持多控制器的可靠协同。

29、以下将结合附图对本发明的构思、具体结构及产生的技术效果作进一步说明,以充分地了解本发明的目的、特征和效果。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1