System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种用于在线更新的PLC程序生成方法、装置及电子设备制造方法及图纸_技高网

一种用于在线更新的PLC程序生成方法、装置及电子设备制造方法及图纸

技术编号:40787284 阅读:2 留言:0更新日期:2024-03-28 19:18
本申请公开了一种用于在线更新的PLC程序生成方法、装置及电子设备,涉及工业控制技术领域和计算机技术领域,包括:获取新版本PLC程序源代码,新版本PLC程序源代码中包含多个代码单元,多个代码单元与老版本PLC程序源代码包含的多个老版代码单元一一对应;将新版本PLC程序源代码编译为WebAssembly代码,作为新版WebAssembly代码,新版WebAssembly代码中包含与多个代码单元一一对应的多个代码块,新版代码单元对应的代码块为新版代码块,多个代码块与老版WebAssembly代码包含的多个老版代码块一一对应,老版WebAssembly代码为对老版本PLC程序源代码进行编译得到的;在老版WebAssembly代码中,添加新版代码块,得到用于更新的WebAssembly代码。采用本方案,能够生成用于在线更新的PLC程序。

【技术实现步骤摘要】

本申请涉及工业控制和计算机,尤其涉及一种用于在线更新的plc程序生成方法、装置及电子设备。


技术介绍

1、plc(可编程逻辑控制器,programmable logic controller)在工业控制领域具有广泛的应用,工业plc是工业自动化控制系统中重要的组成部分,plc在运行时会不断读取输入信号状态,并根据当前运行的plc程序的逻辑进行处理,最终输出相应的结果。

2、因为可以执行实时的控制、管理和监控数据,确保生产线的精准运行和高效性能,因此plc的可靠性对生产线的正常运行和企业的生产效率具有重要影响。在现代工业生产中,有不断升级和改进的需求,因此支持不停机在线修改plc程序的工业plc产品具有很高的实用价值:

3、保证生产线的连续运行:plc是工业自动化控制系统中的核心技术之一,它能够监控并控制工业设备的运行,确保设备始终在最佳状态下运行,从而保证整条生产线的连续性和稳定性。

4、减少工业停机时间:一个高性能、可靠的plc系统能够及时检测并修复故障,这将减少设备的故障率、减少停机时间,提高生产线的运行效率、减少生产损失。

5、降低生产成本:利用plc控制工业设备可以优化生产流程,降低生产成本。通过实时监控和测量,plc可以精确地调整和优化生产过程,从而提高生产效率和设备利用率,降低能源消耗和材料使用。


技术实现思路

1、本申请实施例提供一种用于在线更新的plc程序生成方法、装置及电子设备,用以解决现有技术中存在的如何生成用于在线更新的plc程序的问题。

2、本申请实施例提供一种用于在线更新的plc程序生成方法,包括:

3、获取新版本plc程序源代码,所述新版本plc程序源代码中包含多个代码单元,所述多个代码单元与老版本plc程序源代码包含的多个老版代码单元一一对应,所述多个代码单元中部分代码单元相比对应的老版代码单元不变,其余代码单元为相比对应的老板代码单元存在修改的新版代码单元,所述新版代码单元的接口与对应的老版代码单元的接口保持一致;

4、将所述新版本plc程序源代码编译为webassembly代码,作为新版webassembly代码,所述新版webassembly代码中包含与所述多个代码单元一一对应的多个代码块,所述新版代码单元对应的代码块为新版代码块,所述多个代码块与老版webassembly代码包含的多个老版代码块一一对应,所述老版webassembly代码为对所述老版本plc程序源代码进行编译得到的;

5、在所述老版webassembly代码中,添加所述新版代码块,得到用于更新的webassembly代码。

6、进一步的,在所述在所述老版webassembly代码中,添加所述新版代码块之前,还包括:

7、获取所述新版webassembly代码的所述新版代码块的数据结构布局,所述数据结构布局为在编译所述新版本plc程序源代码的过程中,在webassembly线性空间中为所述新版代码块分配的;

8、如果所述新版代码块的数据结构布局,与所述新版代码块对应的老版代码块的数据结构布局一致,执行所述在所述老版webassembly代码中,添加所述新版代码块的步骤,所述老版代码块的数据结构布局为在编译所述老版本plc程序源代码的过程中,在webassembly线性空间中为所述老版代码块分配的。

9、进一步的,所述新版代码块的数据结构布局,包括:所述新版代码块的功能块数据结构和全局变量的内存布局。

10、进一步的,在所述在所述老版webassembly代码中,添加所述新版代码块之前,还包括:

11、基于在编译所述新版本plc程序源代码的过程中生成的导出信息中代码单元的标识信息,从所述新版webassembly代码中获取所述新版代码块。

12、进一步的,所述在所述老版webassembly代码中,添加所述新版代码块,得到用于更新的webassembly代码,包括:

13、在所述老版webassembly代码的各所述老版代码块的后面,追加所述新版代码块,得到用于更新的webassembly代码;并将所述老版webassembly代码对应的函数段中所述老版代码块的索引,修改为指向对应的所述新版代码块的偏移位置,得到与用于更新的webassembly代码对应的函数段;或者

14、在所述老版webassembly代码中,使用所述新版代码块替换对应的老版代码块,得到用于更新的webassembly代码。

15、进一步的,所述在所述老版webassembly代码中,使用所述新版代码块替换对应的老版代码块,得到用于更新的webassembly代码,包括:

16、在所述老版webassembly代码的各所述老版代码块中,基于各所述老版代码块的排列位置,删除所述新版代码块对应的老版代码块,并将所述新版代码块添加到对应的所述老版代码块所处的排列位置,得到用于更新的webassembly代码;并按照替换后包括的各保留的所述老版代码块和所述新版代码块的偏移位置,在所述老版webassembly代码对应的函数段中修改各代码块指向的偏移位置,得到与用于更新的webassembly代码对应的函数段;或者

17、将所述新版代码块,以及所述老版webassembly代码的各所述老版代码块,转换为文本格式的代码块,得到新版文本代码块和老版文本代码块;并使用所述新版文本代码块,替换对应的老板文本代码块,得到文本格式的用于更新的文本代码;以及将所述文本代码编译为webassembly代码,得到用于更新的webassembly代码,并生成与该用于更新的webassembly代码对应的函数段。

18、本申请实施例还提供一种用于在线更新的plc程序生成方法,包括:

19、获取新版本plc程序源代码,所述新版本plc程序源代码中包含多个代码单元,所述多个代码单元与老版本plc程序源代码包含的多个老版代码单元一一对应,所述多个代码单元中部分代码单元相比对应的老版代码单元不变,其余代码单元为相比对应的老板代码单元存在修改的新版代码单元,所述新版代码单元的接口与对应的老版代码单元的接口保持一致;

20、将所述新版本plc程序源代码编译为webassembly代码,作为新版webassembly代码,所述新版webassembly代码中包含与所述多个代码单元一一对应的多个代码块,所述新版代码单元对应的代码块为新版代码块,所述多个代码块与老版webassembly代码包含的多个老版代码块一一对应,所述老版webassembly代码为对所述老版本plc程序源代码进行编译得到的;

21、获取所述新版webassembly代码的所述多个代码块的数据结构布局,所述数据结构布局为在编译所述新版本plc程序源代码的过程中,在webassembly线性空间中为所述多个代码块分配的;

本文档来自技高网...

【技术保护点】

1.一种用于在线更新的PLC程序生成方法,其特征在于,包括:

2.如权利要求1所述的方法,其特征在于,在所述在所述老版WebAssembly代码中,添加所述新版代码块之前,还包括:

3.如权利要求2所述的方法,其特征在于,所述新版代码块的数据结构布局,包括:所述新版代码块的功能块数据结构和全局变量的内存布局。

4.如权利要求1所述的方法,其特征在于,在所述在所述老版WebAssembly代码中,添加所述新版代码块之前,还包括:

5.如权利要求1所述的方法,其特征在于,所述在所述老版WebAssembly代码中,添加所述新版代码块,得到用于更新的WebAssembly代码,包括:

6.如权利要求5所述的方法,其特征在于,所述在所述老版WebAssembly代码中,使用所述新版代码块替换对应的老版代码块,得到用于更新的WebAssembly代码,包括:

7.一种用于在线更新的PLC程序生成方法,其特征在于,包括:

8.如权利要求7所述的方法,其特征在于,所述多个代码块的数据结构布局,包括:所述多个代码块的功能块数据结构和全局变量的内存布局。

9.如权利要求7所述的方法,其特征在于,还包括:

10.如权利要求9所述的方法,其特征在于,所述在所述老版WebAssembly代码中,添加所述新版代码块,得到用于更新的WebAssembly代码,包括:

...

【技术特征摘要】

1.一种用于在线更新的plc程序生成方法,其特征在于,包括:

2.如权利要求1所述的方法,其特征在于,在所述在所述老版webassembly代码中,添加所述新版代码块之前,还包括:

3.如权利要求2所述的方法,其特征在于,所述新版代码块的数据结构布局,包括:所述新版代码块的功能块数据结构和全局变量的内存布局。

4.如权利要求1所述的方法,其特征在于,在所述在所述老版webassembly代码中,添加所述新版代码块之前,还包括:

5.如权利要求1所述的方法,其特征在于,所述在所述老版webassembly代码中,添加所述新版代码块,得到用于更新的webassembly代码,包括:...

【专利技术属性】
技术研发人员:王鑫
申请(专利权)人:苏州虹鲸智能科技有限公司
类型:发明
国别省市:

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

1