System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种提升软PLC代码执行速度的方法技术_技高网

一种提升软PLC代码执行速度的方法技术

技术编号:43860254 阅读:14 留言:0更新日期:2024-12-31 18:49
本发明专利技术公开了一种提升软PLC代码执行速度的方法,涉及软PLC代码执行技术领域,包括以下步骤:仿真程序下载完成后,遍历整个PLC仿真文件,通过函数指针数组的方式,记录所有调用的应用函数指针;在程序执行时,遍历函数指针数组,读取应用函数指针,执行相应的应用函数;对于应用函数,在MCU中找到一块空闲的数据空间,仿真程序下载完成后,先解析一遍仿真程序,待调用的应用函数解析出来操作数据类型后,将操作数据类型保存在前述空闲的数据空间;在执行调用的应用函数时,直接从空闲的数据空间中读取操作数据类型,执行数据操作;通过上述“空间换时间”和“二次编译”方法可减少程序解析步骤,使得软PLC的执行效率有较高提升。

【技术实现步骤摘要】

本专利技术涉及软plc代码执行,具体涉及一种提升软plc代码执行速度的方法。


技术介绍

1、提高程序的执行效率是所有代码开发者共同追求的目标。效率是指当前程序的运行速度、对系统资源的利用程度等。高效率的c语言程序一般表现为代码紧凑、执行速度快、占用空间小、程序可读性强等方面。然而程序执行速度与占内存空间往往是相互矛盾的两个方面,一些情况下需要以牺牲内存空间的代价来换取效率的提升。

2、在嵌入式软plc系统中,程序的执行速度尤为重要,现有文献“王磊,李鑫.浅析嵌入式程序的优化[j].电脑知识与技术,2012,8(01):192-193+196”针对嵌入式系统的特点,提出了对变量的处理、适量使用宏定义、对数组的处理、以及尽量避免使用除法等代码优化方面,来提高系统的性能,但是,其只针对c语言程序的部分代码优化进行效率提升,优化效果的提升十分有限,因此有待于进一步提升执行效率。


技术实现思路

1、本专利技术的目的在于提供一种提升软plc代码执行速度的方法,解决以下技术问题:

2、如何提升程序的执行效率。

3、本专利技术的目的可以通过以下技术方案实现:

4、一种提升软plc代码执行速度的方法,包括以下步骤:

5、s01:仿真程序下载完成后,遍历整个plc仿真文件,通过函数指针数组的方式,记录所有调用的应用函数指针;

6、s02:在程序执行时,遍历函数指针数组,读取应用函数指针,执行相应的应用函数;

7、s03:判断文件是否解析结束,若是,则结束;若否,则重复步骤s02,直至文件解析结束。

8、在本专利技术更进一步的方案中:步骤s01-s03在软plc系统中的具体实现方法为:

9、s11:先使用typedef自定义一个指向函数的指针类型;

10、s12:然后定义一个funct i onptr类型的数组,数组中的每个元素都可以存储一个满足这些条件的函数的地址;

11、s13:通过record_funct i on_ca l l()函数存储函数指针并增加计数;

12、s14:通过rep l ay_ca l l s()函数调用记录的应用函数指针。

13、在本专利技术更进一步的方案中:在步骤s13中,在调用应用函数时,通过record_funct i on_ca l l()函数得到储存函数指针的集合。

14、在本专利技术更进一步的方案中:在步骤s14中,所述应用函数指针指向不同的应用函数,调用这些应用函数的方法包括数组索引。

15、在本专利技术更进一步的方案中:步骤s11-s14在嵌入式软plc系统代码中的使用方法为:

16、s21:在scan_l adder_entry()解析函数中,在应用函数后增加record_funct ion_ca l l()函数记录调用的应用函数指针;

17、s22:在prog_process()处理程序函数中,首先解析遍历一遍仿真文件,获得记录的函数指针数组,然后调用rep l ay_ca l l s()函数去遍历函数指针。

18、在本专利技术更进一步的方案中:所述应用函数包括以下执行步骤:

19、sa:在mcu中找到一块空闲的数据空间,仿真程序下载完成后,先解析一遍仿真程序,待调用的应用函数解析出来操作数据类型后,将操作数据类型保存在前述空闲的数据空间;

20、sb:在执行调用的应用函数时,直接从空闲的数据空间中读取操作数据类型,执行数据操作;

21、sc:判断应用函数的调用是否结束,若是,则结束;若否,则重复sb,直至调用结束。

22、在本专利技术更进一步的方案中:步骤sa-sc在软plc系统中的具体实现方法为:

23、步骤sa:首先找出mcu中足够的空闲空间,并用指针p_s_prog指向起始位置;

24、步骤sb:使用record_type()函数写入type并增加p_s_prog指针;

25、步骤sc:通过rep l ay_type()函数读取p_s_prog当前指向的值

26、步骤sd:通过reset_prog_po i nter()函数重置p_s_prog指针。

27、在本专利技术更进一步的方案中:步骤sa-sd在软plc应用函数中涉及数据操作部分的操作步骤为:

28、sm:在原来的数据操作函数plc_readdata16()中添加record_type()函数记录操作数据类型值;

29、sn:新建s_plc_readdata16()函数用于替换plc_readdata16()函数进行数据读取。

30、本专利技术的有益效果:

31、本专利技术的提升软plc代码执行速度的方法,针对软plc系统执行效率较低问题,首先通过“空间换时间”方法省去执行应用函数时的解析过程,进而提升代码执行速度,并在此基础上,通过“二次编译”方法省去应用函数执行过程中的解析操作数据类型的过程,进一步提升代码执行速度;通过减少程序解析步骤的思想,使得软plc的执行效率有较高提升。

本文档来自技高网...

【技术保护点】

1.一种提升软PLC代码执行速度的方法,其特征在于,包括以下步骤:

2.根据权利要求1所述的提升软PLC代码执行速度的方法,其特征在于,步骤S01-S03在软PLC系统中的具体实现方法为:

3.根据权利要求2所述的提升软PLC代码执行速度的方法,其特征在于,在步骤S13中,在调用应用函数时,通过record_function_call()函数得到储存函数指针的集合。

4.根据权利要求2所述的提升软PLC代码执行速度的方法,其特征在于,在步骤S14中,所述应用函数指针指向不同的应用函数,调用这些应用函数的方法包括数组索引。

5.根据权利要求2所述的提升软PLC代码执行速度的方法,其特征在于,步骤S11-S14在嵌入式软PLC系统代码中的使用方法为:

6.根据权利要求1所述的提升软PLC代码执行速度的方法,其特征在于,所述应用函数包括以下执行步骤:

7.根据权利要求6所述的提升软PLC代码执行速度的方法,其特征在于,步骤SA-SC在软PLC系统中的具体实现方法为:

8.根据权利要求7所述的提升软PLC代码执行速度的方法,其特征在于,步骤Sa-Sd在软PLC应用函数中涉及数据操作部分的操作步骤为:

...

【技术特征摘要】

1.一种提升软plc代码执行速度的方法,其特征在于,包括以下步骤:

2.根据权利要求1所述的提升软plc代码执行速度的方法,其特征在于,步骤s01-s03在软plc系统中的具体实现方法为:

3.根据权利要求2所述的提升软plc代码执行速度的方法,其特征在于,在步骤s13中,在调用应用函数时,通过record_function_call()函数得到储存函数指针的集合。

4.根据权利要求2所述的提升软plc代码执行速度的方法,其特征在于,在步骤s14中,所述应用函数指针指向不同的应用函数,调用这些应用函数的方...

【专利技术属性】
技术研发人员:陈鹤
申请(专利权)人:安徽永创智能设备有限公司
类型:发明
国别省市:

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

1