System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及计算机,尤其涉及一种plc程序更新的方法及装置。
技术介绍
1、现有的plc(programmable logic controller,可编程逻辑控制器)程序在更新时,没有将plc变量的内置进行重新分配,导致在plc程序的更新过程中会产生许多无法使用的零碎的内存碎片,在对plc程序进行多次更新后,无法使用的零碎的内存碎片越来越多,导致plc中可用的内存越来越少,甚至出现内存不够的情况,影响plc程序的更新效率和用户体验。
技术实现思路
1、本专利技术所要解决的技术问题是:本专利技术提供一种plc程序更新的方法及装置,提高plc程序更新效率,优化用户体验。
2、为了解决上述技术问题,本专利技术采用的技术方案为:
3、第一方面,本专利技术提供一种plc程序更新的方法,包括:
4、获取旧版工程的旧版变量表与新版工程的新版变量表,将所述旧版变量表与所述新版变量表进行比较,得到所有差异变量;
5、根据每一个所述差异变量对所述新版变量表进行分片处理,得到n片新版子变量表,其中每一片所述新版子变量表中的变量字节对齐与所述旧版变量表中的变量字节对齐一致;
6、构建最终变量表,在所述最终变量表上对每一片所述新版子变量表进行地址分配,实现对所述最终变量表的初始化,得到初始化后的最终变量表,基于初始化后的最终变量表实现plc程序更新。
7、本专利技术的有益效果在于:通过对新版变量表进行分片处理,使得得到的每一片新版子
8、可选地,所述将所述旧版变量表与所述新版变量表进行比较,得到所有差异变量包括:
9、获取所述旧版变量表中旧版变量名称、旧版变量类型和旧版变量结构,获取所述新版变量表中新版变量名称、新版变量类型和新版变量结构;
10、将所述旧版变量名称、旧版变量类型、旧版变量结构与所述新版变量名称、新版变量类型、新版变量结构进行比较,得到所有差异变量。
11、根据上述描述可知,在将旧版变量表与新版变量表进行比较时,不仅将旧版变量名称与新版变量名称进行比较,还将旧版变量类型、旧版变量结构与新版变量类型、新版变量结构进行比较,保证得到的差异变量的完整性与全面性。
12、可选地,所述根据每一个所述差异变量对所述新版变量表进行分片处理,得到n片新版子变量表,其中每一片所述新版子变量表中的新版变量的字节对齐与所述旧版变量表中的旧版变量的字节对齐一致包括:
13、获取每一个所述差异变量在所述新版变量表中所处的差异位置,根据所述差异位置对所述新版变量表进行分片处理,得到n片新版子变量表,其中每一片所述新版子变量表中的新版变量的字节对齐与所述旧版变量表中的旧版变量的字节对齐一致。
14、根据上述描述可知,在对新版变量表进行分片处理时,是根据新版变量表中每一个差异变量在新版变量表中的差异位置进行分片,保证分片处理的合理性。
15、可选地,所述其中每一片所述新版子变量表中的新版变量的字节对齐与所述旧版变量表中的旧版变量的字节对齐一致包括:
16、计算每一片所述新版子变量表中的新版变量所占用的新版变量地址,将所述新版变量地址与所述旧版变量表中的旧版变量所占用的旧版变量地址进行对比,若所述新版变量地址与所述旧版变量地址不一致,则将对应的新版子变量表再次进行分片处理,直至每一片新版子变量表中的新版变量所占用的新版变量地址与旧版变量表中旧版变量所占用的旧版变量地址一致。
17、根据上述描述可知,当存在新版子变量表中新版变量所占用的新版变量地址与旧版变量表中旧版变量所占用的旧版变量地址不一致时,会对该不一致的新版子变量表再次进行分片处理,从而使得所得到的每一片新版子变量中的新版变量所占用的新版变量地址与旧版变量表中旧版变量所占用的旧版变量地址一致,即保证每一片新版子变量表中新版变量的字节对齐与旧版变量表中旧版变量的字节对齐一致。
18、可选地,所述在所述最终变量表上对每一片所述新版子变量表进行地址分配,实现对所述最终变量表的初始化包括:
19、根据每一片所述新版子变量表的分片处理的顺序和分片处理的大小,在所述最终变量表上对每一片所述新版子变量表进行地址分配,并将每一片所述新版子变量表中的新版变量的新数据对应拷贝到所述最终变量表上,实现对所述最终变量表的初始化。
20、根据上述描述可知,在最终变量表上对每一片新版子变量表进行地址分配时,是根据每一片新版子变量表的分片处理的顺序和分片处理的大小进行,从而实现对最终变量表的初始化,基于初始化后的最终变量表实现plc程序更新,从而避免了在plc程序更新过程中产生无法使用的零碎的内存碎片,提高plc内存的使用率的同时提高plc程序更新效率,优化用户体验。
21、第二方面,本专利技术提供一种plc程序更新的装置,包括:
22、比较模块,用于获取旧版工程的旧版变量表与新版工程的新版变量表,将所述旧版变量表与所述新版变量表进行比较,得到所有差异变量;
23、分片模块,用于根据每一个所述差异变量对所述新版变量表进行分片处理,得到n片新版子变量表,其中每一片所述新版子变量表中的新版变量的字节对齐与所述旧版变量表中的旧版变量的字节对齐一致;
24、更新模块,用于构建最终变量表,在所述最终变量表上对每一片所述新版子变量表进行地址分配,实现对所述最终变量表的初始化,得到初始化后的最终变量表,基于初始化后的最终变量表实现plc程序更新。
25、本专利技术的有益效果在于:通过对新版变量表进行分片处理,使得得到的每一片新版子变量表中的新版变量的字节对齐与旧版变量表中的旧版变量的字节对齐一致,从而在最终变量表上对每一片新版子变量表进行地址分配,得到初始化后的最终变量表,基于初始化后的最终变量表实现plc程序更新,避免了在plc程序更新过程中产生无法使用的零碎的内存碎片,提高plc内存的使用率的同时提高plc程序更新效率,优化用户体验。
26、可选地,所述比较模块具体用于:
27、获取所述旧版变量表中旧版变量名称、旧版变量类型和旧版变量结构,获取所述新版变量表中新版变量名称、新版变量类型和新版变量结构;
28、将所述旧版变量名称、旧版变量类型、旧版变量结构与所述新版变量名称、新版变量类型、新版变量结构进行比较,得到所有差异变量。
29、根据上述描述可知,在将旧版变量表与新版变量表进行比较时,不仅将旧版变量名称与新版变量名称进行比较,还将旧版变量类型、旧版变量结构与新版变量类型、新版变量结构进行比较,保证得到的差异变量的完整性与本文档来自技高网...
【技术保护点】
1.一种PLC程序更新的方法,其特征在于,包括:
2.如权利要求1所述的一种PLC程序更新的方法,其特征在于,所述将所述旧版变量表与所述新版变量表进行比较,得到所有差异变量包括:
3.如权利要求1所述的一种PLC程序更新的方法,其特征在于,所述根据每一个所述差异变量对所述新版变量表进行分片处理,得到N片新版子变量表,其中每一片所述新版子变量表中的新版变量的字节对齐与所述旧版变量表中的旧版变量的字节对齐一致包括:
4.如权利要求3所述的一种PLC程序更新的方法,其特征在于,所述其中每一片所述新版子变量表中的新版变量的字节对齐与所述旧版变量表中的旧版变量的字节对齐一致包括:
5.如权利要求1所述的一种PLC程序更新的方法,其特征在于,所述在所述最终变量表上对每一片所述新版子变量表进行地址分配,实现对所述最终变量表的初始化包括:
6.一种PLC程序更新的装置,其特征在于,包括:
7.如权利要求6所述的一种PLC程序更新的装置,其特征在于,所述比较模块具体用于:
8.如权利要求6所述的一种PLC程序更新的
9.如权利要求8所述的一种PLC程序更新的装置,其特征在于,所述分片模块包括:
10.如权利要求6所述的一种PLC程序更新的装置,其特征在于,所述更新模块包括:
...【技术特征摘要】
1.一种plc程序更新的方法,其特征在于,包括:
2.如权利要求1所述的一种plc程序更新的方法,其特征在于,所述将所述旧版变量表与所述新版变量表进行比较,得到所有差异变量包括:
3.如权利要求1所述的一种plc程序更新的方法,其特征在于,所述根据每一个所述差异变量对所述新版变量表进行分片处理,得到n片新版子变量表,其中每一片所述新版子变量表中的新版变量的字节对齐与所述旧版变量表中的旧版变量的字节对齐一致包括:
4.如权利要求3所述的一种plc程序更新的方法,其特征在于,所述其中每一片所述新版子变量表中的新版变量的字节对齐与所述旧版变量表中的旧版变量的字节对齐一致包括...
【专利技术属性】
技术研发人员:叶善福,欧新木,付春启,许章赫,余发荣,黄元盛,卓少锋,陈德全,阮思怡,
申请(专利权)人:福州富昌维控电子科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。