System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及工业控制和计算机,尤其涉及一种plc程序热转移方法、热备用实现方法、装置及电子设备。
技术介绍
1、plc(可编程逻辑控制器,programmable logic controller)在工业控制领域具有广泛的应用,工业plc是工业自动化控制系统中重要的组成部分,plc在运行时会不断读取输入信号状态,并根据当前运行的plc程序的逻辑进行处理,最终输出相应的结果。
2、因为可以执行实时的控制、管理和监控数据,确保生产线的精准运行和高效性能,因此plc的可靠性对生产线的正常运行和企业的生产效率具有重要影响。在现代工业生产中,有不断升级和改进的需求,因此支持不停机在线修改plc程序的工业plc产品具有很高的实用价值:
3、保证生产线的连续运行:plc是工业自动化控制系统中的核心技术之一,它能够监控并控制工业设备的运行,确保设备始终在最佳状态下运行,从而保证整条生产线的连续性和稳定性。
4、减少工业停机时间:一个高性能、可靠的plc系统能够及时检测并修复故障,这将减少设备的故障率、减少停机时间,提高生产线的运行效率、减少生产损失。
5、降低生产成本:利用plc控制工业设备可以优化生产流程,降低生产成本。通过实时监控和测量,plc可以精确地调整和优化生产过程,从而提高生产效率和设备利用率,降低能源消耗和材料使用。
技术实现思路
1、本申请实施例提供一种plc程序热转移方法、热备用实现方法、装置及电子设备,用以解决现有技术中存在的如何实
2、本申请实施例提供一种plc程序热转移方法,应用于第一plc引擎,包括:
3、加载兼容版本plc程序到内存中,所述兼容版本plc程序为webassembly代码;
4、通过解析所述兼容版本plc程序,生成兼容版本的webassembly模块数据结构;
5、对所述兼容版本的webassembly模块数据结构执行实例化操作,得到兼容版本的webassembly模块实例,所述兼容版本的webassembly模块实例的webassembly内存布局,与在第二plc引擎上当前运行的plc程序的当前webassembly模块实例的webassembly内存布局相同;
6、将所述当前webassembly模块实例的webassembly内存布局中的内存数据,复制到所述兼容版本的webassembly模块实例的webassembly内存布局中;
7、通过启用所述兼容版本plc程序的任务执行入口,运行所述兼容版本plc程序。
8、进一步的,在所述将所述当前webassembly模块实例的webassembly内存布局中的内存数据,复制到所述兼容版本的webassembly模块实例的webassembly内存布局中之前,还包括:
9、获取所述第二plc引擎在当前plc任务周期内的任务执行结束后,向所述第一plc引擎所位于的运行环境发送的所述当前webassembly模块实例的webassembly内存布局中的内存数据;或者
10、从所述第一plc引擎所位于的运行环境中,获取预先同步的所述当前webassembly模块实例的webassembly内存布局中的内存数据,预先同步的该内存数据为所述第二plc引擎在每个plc任务周期内的任务执行结束后,向所述第一plc引擎所位于的运行环境同步的,所述第一plc引擎与所述第二plc引擎位于不用的运行环境中。
11、进一步的,所述通过启用所述兼容版本plc程序的任务执行入口,运行所述兼容版本plc程序,包括:
12、从所述第二plc引擎上运行的该plc程序的当前plc任务周期的下一个plc任务周期开始,通过启用所述兼容版本plc程序的任务执行入口,运行所述兼容版本plc程序。
13、进一步的,webassembly内存布局中的内存数据,包括:
14、webassembly线性空间和webassembly globals表中的数据。
15、进一步的,所述webassembly线性空间中的数据,包括:
16、全局变量、功能块数据结构、程序常量数据和程序的堆空间数据;
17、所述webassembly globals表中的数据,包括:
18、webassembly global对象。
19、进一步的,所述兼容版本plc程序与在所述第二plc引擎上当前运行的该plc程序包含的代码块中包含相同的program对象,作为plc周期任务的执行入口。
20、进一步的,所述兼容版本plc程序与在第二plc引擎上当前运行的plc程序为相同的plc程序;或者
21、相比在第二plc引擎上当前运行的plc程序的版本,所述兼容版本plc程序的版本更新。
22、本申请实施例还提供一种plc程序的热备用实现方法,应用于备用plc引擎,包括:
23、所述备用plc引擎加载备用plc程序到内存中,所述备用plc程序与所述主用plc程序为webassembly代码;
24、通过解析所述备用plc程序,生成备用webassembly模块数据结构;
25、对所述备用webassembly模块数据结构执行实例化操作,得到备用webassembly模块实例,所述备用webassembly模块实例的webassembly内存布局,与所述主用plc程序的主用webassembly模块实例的webassembly内存布局相同;
26、将所述主用webassembly模块实例的webassembly内存布局中的内存数据,复制到所述备用webassembly模块实例的webassembly内存布局中,所述主用webassembly模块实例的webassembly内存布局中的内存数据,为所述主用plc引擎预先同步至所述备用plc引擎一侧的;
27、通过启用所述兼容版本plc程序的任务执行入口,运行所述兼容版本plc程序。
28、进一步的,所述备用plc引擎与所述主用plc引擎位于不同的运行环境中;
29、在所述主用plc引擎上运行的所述主用plc程序的每个plc任务周期内的任务执行结束后,所述主用webassembly模块实例的webassembly内存布局中修改的内存数据,被同步至所述备用plc引擎所位于的运行环境中;
30、在所述将所述主用webassembly模块实例的webassembly内存布局中的内存数据,复制到所述备用webassembly模块实例的webassembly内存布局中之前,还包括:
31、从所述备用plc引擎所位于的运行环境中,获取预先同步的所述主用webassembly模块实例的webassembly内存布局中的内存数据本文档来自技高网...
【技术保护点】
1.一种PLC程序热转移方法,其特征在于,应用于第一PLC引擎,包括:
2.如权利要求1所述的方法,其特征在于,在所述将所述当前WebAssembly模块实例的WebAssembly内存布局中的内存数据,复制到所述兼容版本的WebAssembly模块实例的WebAssembly内存布局中之前,还包括:
3.如权利要求2所述的方法,其特征在于,所述通过启用所述兼容版本PLC程序的任务执行入口,运行所述兼容版本PLC程序,包括:
4.如权利要求1-3任一项所述的方法,其特征在于,WebAssembly内存布局中的内存数据,包括:
5.如权利要求4所述的方法,其特征在于,所述WebAssembly线性空间中的数据,包括:
6.如权利要求3所述的方法,其特征在于,所述兼容版本PLC程序与在所述第二PLC引擎上当前运行的该PLC程序包含的代码块中包含相同的PROGRAM对象,作为PLC周期任务的执行入口。
7.如权利要求1所述的方法,其特征在于,所述兼容版本PLC程序与在第二PLC引擎上当前运行的PLC程序为相同的PL
8.一种PLC程序的热备用实现方法,其特征在于,应用于备用PLC引擎,包括:
9.如权利要求8所述的方法,其特征在于,所述备用PLC引擎与所述主用PLC引擎位于不同的运行环境中;
10.如权利要求8所述的方法,其特征在于,在所述将所述主用WebAssembly模块实例的WebAssembly内存布局中的内存数据,复制到所述备用WebAssembly模块实例的WebAssembly内存布局中之前,还包括:
...【技术特征摘要】
1.一种plc程序热转移方法,其特征在于,应用于第一plc引擎,包括:
2.如权利要求1所述的方法,其特征在于,在所述将所述当前webassembly模块实例的webassembly内存布局中的内存数据,复制到所述兼容版本的webassembly模块实例的webassembly内存布局中之前,还包括:
3.如权利要求2所述的方法,其特征在于,所述通过启用所述兼容版本plc程序的任务执行入口,运行所述兼容版本plc程序,包括:
4.如权利要求1-3任一项所述的方法,其特征在于,webassembly内存布局中的内存数据,包括:
5.如权利要求4所述的方法,其特征在于,所述webassembly线性空间中的数据,包括:
6.如权利要求3所述的方法,其特征在于,所...
【专利技术属性】
技术研发人员:王鑫,
申请(专利权)人:苏州虹鲸智能科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。