一种编译型PLC代码执行效率优选方法技术

技术编号:23851292 阅读:52 留言:0更新日期:2020-04-18 08:47
本发明专利技术提供的一种编译型PLC代码执行效率优选方法对于编译型PLC进行了优化选择,综合了编译型PLC在编译IL中两种方式的优势,有效地解决了代码长度小和执行效率之间的矛盾,优化了PLC代码编译过程。

A method of optimizing the execution efficiency of compiled PLC code

【技术实现步骤摘要】
一种编译型PLC代码执行效率优选方法
本专利技术涉及一种编译型PLC代码执行效率优选方法。
技术介绍
PLC的执行方式有编译性和解释型两种。解释执行方式,具有代码长度小、便于调试时进行断点设置;编译执行方式,没有解释再执行的过程,具有执行效率高,实时性好的优点。对于编译型PLC,需要把解析型代码先编译为可执行代码以执行。不同的编译方法的编译结果有不同的代码长度和执行效率。代码长度小和执行效率高是一对矛盾,最好的方法根据具体的PLC硬件资源和应用需求去取平衡。
技术实现思路
为解决上述技术问题,本专利技术提供了一种编译型PLC代码执行效率优选方法。本专利技术通过以下技术方案得以实现。本专利技术提供的一种编译型PLC代码执行效率优选方法,包括以下步骤:S1、IDE把PLC语言编译为IL程序;S2、计算IL程序的编译方法并选择标识;S3、根据Flag_DEC进行编译方法选择,可生成两种DEC代码或CEC代码,选择方法如下:S4、计算Flag_DEC,计算方法如下:S4.1、分别计算xd_1、xd_2、xd_3、xc_1、xc_2;S4.2、根据S4.1极计算结果进一步计算xd、xc;S4.3、如果xd<xc,则采用直接指令方式,Flag_DEC=True;否则采用库调用方式,Flag_DEC=False;S5、根据S3.3结果,当Flag_DEC=True时则生成DEC代码;当Flag_DEC=False时则生成CEC代码;S6、根据生成的代码类型下载到PLC的Flash中。所述步骤S2编译过程如下:A1、读取IL;A2、查询IL;A3、执行选出的IL获取EC代码。所述步骤S4中xd_1是DEC的执行周期,xd_2是DEC的存储占用,xd_3是全局调用次数,xc_1是CEC的执行周期,xc_2是CEC的存储周期,xd是DEC性能值,xc是CEC性能值。所述DEC性能值xd、CEC性能值xc的计算方法分别如下:Kd=fd(IL);Kc=fc(IL);xd=Kd1*xd_1+Kd2*xd_2+Kd3*xd_3;xc=Kc1*xc_1+Kc2*xc_2;其中Kd、Kc是权重。所述步骤S5中生成的DEC代码是直接型可执行代码;步骤S5中生成的CEC代码是库调用型可直接执行代码,即可直接调用库函数。本专利技术的有益效果在于:本方法综合了编译型PLC在编译IL中两种方式的优势,有效地解决了代码长度小和执行效率之间的矛盾,优化了PLC代码编译过程。附图说明图1是本专利技术的整体编译过程;图2是本专利技术的编译选择过程;图3是本专利技术的编译后输出结果。具体实施方式下面进一步描述本专利技术的技术方案,但要求保护的范围并不局限于所述。为了使本专利技术的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本专利技术进行详细描述。一种编译型PLC代码执行效率优选方法,包括以下步骤:S1、IDE把PLC语言编译为IL程序;S2、计算IL程序的编译方法并选择标识;S3、根据Flag_DEC进行编译方法选择,可生成两种DEC代码或CEC代码,选择方法如下:S4、计算Flag_DEC,计算方法如下:S4.1、分别计算xd_1、xd_2、xd_3、xc_1、xc_2;S4.2、根据S4.1极计算结果进一步计算xd、xc;S4.3、如果xd<xc,则采用直接指令方式,Flag_DEC=True;否则采用库调用方式,Flag_DEC=False;S5、根据S3.3结果,当Flag_DEC=True时则生成DEC代码;当Flag_DEC=False时则生成CEC代码;S6、根据生成的代码类型下载到PLC的Flash中。步骤S2编译过程如下:A1、读取IL;A2、查询IL;A3、执行选出的IL获取EC代码。步骤S4中xd_1是DEC的执行周期,xd_2是DEC的存储占用,xd_3是全局调用次数,xc_1是CEC的执行周期,xc_2是CEC的存储周期,xd是DEC性能值,xc是CEC性能值。DEC性能值xd、CEC性能值xc的计算方法分别如下:Kd=fd(IL);Kc=fc(IL);xd=Kd1*xd_1+Kd2*xd_2+Kd3*xd_3;xc=Kc1*xc_1+Kc2*xc_2;其中Kd、Kc是权重。步骤S5中生成的DEC代码是直接型可执行代码,这种方式未考虑代码重用问题,代码长度较大,但执行效率较优;步骤S5中生成的CEC代码是库调用型可直接执行代码,即可直接调用库函数,代码长度较小,但执行效率提升有限。本系统包括的编译型PLC首先在IDE环境下通过编译器首先将PLC语言转换为IL语言,再根据计算Flag_DEC结果进行判断,选择输出DEC或者CEC方式进行编译,能够保证PLC代码大小与执行效率之间的平衡,实现最优化编译过程。本文档来自技高网...

【技术保护点】
1.一种编译型PLC代码执行效率优选方法,其特征在于步骤包括:/nS1、IDE把PLC语言编译为IL程序;/nS2、计算IL程序的编译方法并选择标识;/nS3、根据Flag_DEC进行编译方法选择,可生成两种DEC代码或CEC代码,选择方法如下:/nS4、计算Flag_DEC,计算方法如下:/nS4.1、分别计算xd_1、xd_2、xd_3、xc_1、xc_2;/nS4.2、根据S4.1极计算结果进一步计算xd、xc;/nS4.3、如果xd<xc,则采用直接指令方式,Flag_DEC=True;否则采用库调用方式,Flag_DEC=False;/nS5、根据S3.3结果,当Flag_DEC=True时则生成DEC代码;当Flag_DEC=False时则生成CEC代码;/nS6、根据生成的代码类型下载到PLC的Flash中。/n

【技术特征摘要】
1.一种编译型PLC代码执行效率优选方法,其特征在于步骤包括:
S1、IDE把PLC语言编译为IL程序;
S2、计算IL程序的编译方法并选择标识;
S3、根据Flag_DEC进行编译方法选择,可生成两种DEC代码或CEC代码,选择方法如下:
S4、计算Flag_DEC,计算方法如下:
S4.1、分别计算xd_1、xd_2、xd_3、xc_1、xc_2;
S4.2、根据S4.1极计算结果进一步计算xd、xc;
S4.3、如果xd<xc,则采用直接指令方式,Flag_DEC=True;否则采用库调用方式,Flag_DEC=False;
S5、根据S3.3结果,当Flag_DEC=True时则生成DEC代码;当Flag_DEC=False时则生成CEC代码;
S6、根据生成的代码类型下载到PLC的Flash中。


2.如权利要求1所述的一种编译型PLC代码执行效率优选方法,其特征在于:所述步骤S2编译过程如下:
A1、读取IL;

【专利技术属性】
技术研发人员:令狐钊
申请(专利权)人:贵阳永青仪电科技有限公司
类型:发明
国别省市:贵州;52

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

1