组态软件编译方法技术

技术编号:20566434 阅读:83 留言:0更新日期:2019-03-14 09:18
本发明专利技术公开了一种组态软件编译方法,其中,该方法包括:通过项目工程输出中间代码文件;其中,中间代码文件包括静态部分和动态部分;将静态部分预先进行编译处理,生成库文件;根据项目工程的变动相应地对动态部分进行编译处理,生成目标文件;链接目标文件和库文件,生成可执行文件。本发明专利技术解决了现有技术中组态软件项目工程编译耗时久的问题,提高了组态软件项目工程的编译速度。

Compiling Method of Configuration Software

The invention discloses a method for compiling configuration software, which includes: outputting intermediate code files through project engineering; among them, intermediate code files include static and dynamic parts; compiling static parts in advance to generate library files; compiling and processing dynamic parts accordingly according to changes of project engineering to generate target files; Standard files and library files, generate executable files. The invention solves the problem of time-consuming compilation of configuration software project engineering in the prior art, and improves the compilation speed of configuration software project engineering.

【技术实现步骤摘要】
组态软件编译方法
本专利技术涉及软件
,具体而言,涉及一种组态软件编译方法。
技术介绍
目前市面上主流的HMI组态软件,在编译项目工程时,需要先通过模板将项目转换中间代码文件,再将中间代码文件编译为可在目标平台上运行的二进制文件。由于一个项目工程涉及到界面、通信、以及算法逻辑,往往生成的中间代码文件十分庞大,而每次编译时这些中间代码文件会重新生成,导致编译耗时过久,用户体验差;其次编译错误越早发现排查代价越小,而当项目工程编译时,项目已经基本搭建完毕,此时若出现编译错误,则排查起来耗时费力。针对这些现状,需要一种更合理的编译解决方案。针对相关技术中组态软件项目工程编译耗时久的问题,目前尚未提出有效地解决方案。
技术实现思路
本专利技术提供了一种组态软件编译方法,以至少解决现有技术中组态软件项目工程编译耗时久的问题。为解决上述技术问题,根据本专利技术实施例的一个方面,提供了一种组态软件编译方法,包括:通过项目工程输出中间代码文件;其中,中间代码文件包括静态部分和动态部分;将静态部分预先进行编译处理,生成库文件;根据项目工程的变动相应地对动态部分进行编译处理,生成目标文件;链接目标文件和库文件,生成可执行文件。进一步地,静态部分为不随项目工程变动的通用内容的代码;静态部分至少包括以下之一:基本控件、通信协议、通用方法。进一步地,动态部分为随项目工程变动的内容的代码;动态部分至少包括以下之一:界面、变量、逻辑算法。进一步地,编译处理包括:预处理代码文件,生成预编译文件;其中,代码文件为静态部分或动态部分;编译预编译文件,生成汇编代码;将汇编代码转换成机器可执行的命令文件;其中,在代码文件为静态部分时,命令文件为库文件;在代码文件为动态部分时,命令文件为目标文件。进一步地,根据项目工程的变动相应地对动态部分进行编译处理,生成目标文件,包括:通过检测用户的操作是否满足后台预编译设置条件,来确定项目工程是否变动;在用户的操作满足后台预编译设置条件时,更新用户的操作对应的动态部分;将对应的动态部分进行编译处理,生成对应的目标文件,以更新目标文件。进一步地,后台预编译设置条件至少包括以下之一:新增界面、新增变量、修改变量、新增逻辑算法、修改逻辑算法。进一步地,在生成目标文件之后,方法还包括:检测项目工程是否构建完成;如果项目工程未构建完成,则根据项目工程的变动相应地对动态部分进行编译处理,生成目标文件;如果项目工程构建完成,则触发链接目标文件和库文件,生成可执行文件。进一步地,在检测项目工程是否构建完成之前,方法还包括:检测编译处理是否出错;如果编译处理出错,则将编译器反馈的错误信息转化为用户可识别语言,反馈给用户进行错误处理;如果编译处理没有出错,则触发检测项目工程是否构建完成。进一步地,检测编译处理是否出错包括:定时检测编译处理是否出错;或,每生成一个目标文件,则检测编译处理是否出错。进一步地,在将静态部分预先进行编译处理之前,或者,在根据项目工程的变动相应地对动态部分进行编译处理之前,方法还包括:调用编译命令之前,根据资源调度算法设置编译线程数,和/或,清理内存,以优化编译处理。根据本专利技术实施例的又一方面,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述的组态软件编译方法。根据本专利技术实施例的又一方面,提供了一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如上述的组态软件编译方法。在本专利技术中,提供了一种快速进行编译的方法,具体的,首先在编译项目工程前,对中间代码文件进行分析,抽象出通用的部分,封装为静态库供后续编译链接,从而减少中间代码文件数量;其次在项目开发过程中,对变化部分进行预编译,减少后续编译工作量,极大地提高了组态软件项目工程的编译速度,解决了组态软件项目工程编译耗时久的问题。附图说明图1是根据本专利技术实施例的组态软件编译方法的一种可选的流程图;图2是根据本专利技术实施例的中间文件构成的一种可选的结构框图;图3是根据本专利技术实施例的组态软件编译方法的另一种可选的流程图;以及图4是根据本专利技术实施例的组态软件后台预先编译方法的一种可选的流程图。具体实施方式这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本专利技术相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本专利技术的一些方面相一致的装置和方法的例子。实施例1在本专利技术优选的实施例1中提供了一种组态软件编译方法,该方法可以直接应用至各种组态软件项目工程上。具体来说,图1示出该方法的一种可选的流程图,如图1所示,该方法包括如下步骤S102-S108:S102:通过项目工程输出中间代码文件;其中,中间代码文件包括静态部分和动态部分;S104:将静态部分预先进行编译处理,生成库文件;S106:根据项目工程的变动相应地对动态部分进行编译处理,生成目标文件;S108:链接目标文件和库文件,生成可执行文件。在上述实施方式中,提供了一种快速进行编译的方法,具体的,首先在编译项目工程前,对中间代码文件进行分析,抽象出通用的部分,封装为静态库供后续编译链接,从而减少中间代码文件数量;其次在项目开发过程中,对变化部分进行预编译,减少后续编译工作量,极大地提高了组态软件项目工程的编译速度,解决了组态软件项目工程编译耗时久的问题。在本专利技术中,将中间文件分为静态部分和动态部分,如图2所示:静态部分一般包括基本控件、通信协议、通用方法等通用模块,不会随着项目变化而变化,这部分内容可以通过分析大量的项目工程进行收集整理,将其中共性通用的中间代码文件封装成动态库供项目工程调用,仅在编译的最后阶段进行链接即可,可有效缩减中间代码文件数量和最终可执行文件大小。动态部分一般包括界面、变量、逻辑算法等,该部分内容会随着项目工程变化而变化,例如当用户在界面中新增控件,则该界面对应的中间代码文件就会改变,加入相关控件的描述代码。在对中间文件进行划分后,需要对静态和动态部分分别进行编译处理,编译处理包括:预处理代码文件,生成预编译文件;其中,代码文件为静态部分或动态部分;编译预编译文件,生成汇编代码;将汇编代码转换成机器可执行的命令文件;其中,在代码文件为静态部分时,命令文件为库文件;在代码文件为动态部分时,命令文件为目标文件。上述编译流程也可表示为图3所示的过程,如图3所示,包括如下步骤S1-S6:S1:组态软件构建项目工程;S2:通过项目工程输出中间代码文件;S3:预处理:预处理中间代码文件生成预编译文件;S4:编译:编译预编译文件,生成汇编代码;S5:汇编:将汇编代码转换成机器可执行的命令文件;S6:链接,链接目标文件和库文件,生成可执行文件。S1~S2为中间代码的生成阶段,S3~S6阶段为编译阶段,在将静态部分预先进行编译处理之前,或者,在根据项目工程的变动相应地对动态部分进行编译处理之前,方法还包括:调用编译命令之前,根据资源调度算法设置编译线程数,和/或,清理内存,以优化编译处理。即,编译阶段耗时最久、最占用硬件资源,因此每当进行到该阶段时,组态本文档来自技高网...

【技术保护点】
1.一种组态软件编译方法,其特征在于,包括:通过项目工程输出中间代码文件;其中,所述中间代码文件包括静态部分和动态部分;将所述静态部分预先进行编译处理,生成库文件;根据所述项目工程的变动相应地对所述动态部分进行编译处理,生成目标文件;链接所述目标文件和所述库文件,生成可执行文件。

【技术特征摘要】
1.一种组态软件编译方法,其特征在于,包括:通过项目工程输出中间代码文件;其中,所述中间代码文件包括静态部分和动态部分;将所述静态部分预先进行编译处理,生成库文件;根据所述项目工程的变动相应地对所述动态部分进行编译处理,生成目标文件;链接所述目标文件和所述库文件,生成可执行文件。2.根据权利要求1所述的方法,其特征在于,所述静态部分为不随项目工程变动的通用内容的代码;所述静态部分至少包括以下之一:基本控件、通信协议、通用方法。3.根据权利要求1所述的方法,其特征在于,所述动态部分为随项目工程变动的内容的代码;所述动态部分至少包括以下之一:界面、变量、逻辑算法。4.根据权利要求1所述的方法,其特征在于,所述编译处理包括:预处理代码文件,生成预编译文件;其中,所述代码文件为静态部分或动态部分;编译所述预编译文件,生成汇编代码;将所述汇编代码转换成机器可执行的命令文件;其中,在所述代码文件为静态部分时,所述命令文件为库文件;在所述代码文件为动态部分时,所述命令文件为目标文件。5.根据权利要求1所述的方法,其特征在于,根据所述项目工程的变动相应地对所述动态部分进行编译处理,生成目标文件,包括:通过检测用户的操作是否满足后台预编译设置条件,来确定所述项目工程是否变动;在所述用户的操作满足所述后台预编译设置条件时,更新所述用户的操作对应的动态部分;将所述对应的动态部分进行编译处理,生成对应的目标文件,以更新所述目标文件。6.根据权利要求5所述的方法,其特征在于,所述后台预编译设置条件至少包括以下之一:新增界面、新增变量、...

【专利技术属性】
技术研发人员:朱康秦博李伟进曾云洪陈备
申请(专利权)人:珠海格力电器股份有限公司
类型:发明
国别省市:广东,44

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

1