[发明专利]一种使用编译器的脚本实现方法有效
申请号: | 201210202809.3 | 申请日: | 2012-06-19 |
公开(公告)号: | CN102750177A | 公开(公告)日: | 2012-10-24 |
发明(设计)人: | 姜新;罗培东;姜健 | 申请(专利权)人: | 武汉凌控自动化技术有限公司 |
主分类号: | G06F9/45 | 分类号: | G06F9/45 |
代理公司: | 武汉科皓知识产权代理事务所(特殊普通合伙) 42222 | 代理人: | 张火春 |
地址: | 430074 湖北省武汉*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 使用 编译器 脚本 实现 方法 | ||
技术领域
本发明属于工业组态软件开发运行技术领域,具体涉及一种使用编译器的脚本实现方法。
背景技术
随着工业自动化水平的迅速提高,计算机在工业领域的广泛应用,人们对工业自动化的要求越来越高,种类繁多的控制设备和过程监控装置在工业领域的应用,使得工业控制软件越来越复杂。此时如果采用编程语言直接进行系统开发,虽然可以满足各种各样复杂的需求,并且能保证足够高的执行效率,但面临着开发难度大,开发周期长,代码重用性差等问题。因此组态软件应运而生。组态软件是指一些用于数据采集与过程控制的专用软件。它们是处在自动控制系统监控层一级的软件平台和开发环境,使用灵活的组态方式,为用户提供快速构建工业自动控制系统监控功能的、通用层次的软件工具。组态软件主要特点如下:
(1)延续性和可扩充性。用组态软件开发的应用程序,当现场(包括硬件设备或系统结构)或用户需求发生改变时,不需作很多修改而方便地完成软件的更新和升级;
(2)封装性(易学易用),组态软件所能完成的功能都用一种方便用户使用的方法包装起来,对于用户,不需掌握太多的编程语言技术(甚至不需要编程技术),就能很好地完成一个复杂工程所要求的所有功能;
(3)通用性,每个用户根据工程实际情况,利用组态软件提供的底层设备(PLC、智能仪表、智能模块、板卡、变频器等)的I/O Driver、开放式的数据库和画面制作工具,就能完成一个具有动画效果、实时数据处理、历史数据和曲线并存、具有多媒体功能和网络功能的工程,不受行业限制。
但由于用户需求越来越复杂,组态软件很难通过纯组态实现用户的所有需求,为此组态软件通常会提供脚本功能,让用户自己编写实现特殊需求的脚本代码。而传统的脚本编程方案要么由组态软件自己定义一套脚本编写的语法规则,要么虽然使用标准语言的语法规则,但是是在运行时解释执行的。前者增加了用户的学习难度,用户需要重新学习新的脚本编写规则,而且由组态软件自定义的语法规则通常功能比较简单,很难和标准语言提供的功能相提并论;而后者虽然也使用标准语言提供的语法规则,但其问题在于用户脚本是运行时解释执行的,这样运行效率通常较低,无法满足一些对速度要求比较高的工业控制应用。
发明内容
针对上述存在的技术问题,本发明针对工业组态软件,提出了一种极具灵活性和可扩展型的、使用编译器的脚本实现方法。
为解决上述技术问题,本发明采用如下的技术方案:
一种使用编译器的脚本实现方法,包含以下步骤:
步骤1,对用户编写的脚本进行预处理,生成临时文件,所述的临时文件为每段脚本所对应的脚本函数,及脚本名称和脚本函数的映射表,该步骤进一步包括子步骤:
1-1采用特殊标记对脚本中用户自定义的数据进行标记;
1-2为每段脚本定义一个唯一的脚本名称和脚本函数;
1-3根据特殊标记,将脚本转化成符合标准语言语法规则的函数体,并得到脚本函数;
1-4建立可被外部程序访问的脚本名称和脚本函数映射表;
步骤2,使用编译器对步骤1所得临时文件进行编译,得到可被主程序调用的动态链接库;
步骤3,在主程序运行时,加载步骤2所得动态链接库。
上述子步骤1-3中将脚本转化成符合标准语言语法规则的函数体具体为:
a)根据特殊标记提取脚本中用户自定义的数据;
b)为每个用户自定义数据生成一个对应的临时变量,并将用户自定义数据的初始值保存到其对应的临时变量中;
c)在每段脚本的开始,将脚本中的用户自定义数据替换为各自对应的临时变量;
d)在每段脚本的结束,将临时变量的值写入用户自定义数据,即得到符合标准语言语法规则的函数体。
上述步骤3具体为:
主程序运行时,当需要调用脚本时,首先查找动态链接库中的脚本名称和脚本函数的映射表,然后,根据脚本名称找到其对应的脚本函数后,执行该脚本函数。
本发明将用户脚本直接编译成可执行代码,相比传统的对脚本进行解释执行的方案,提高了程序的执行效率;而且在脚本中还允许用户直接使用标准语言的各种语法规则,这样在保持组态软件简单易用的同时,极大的提高了软件的灵活性和可扩展性。
附图说明
图1是本发明实施例的整体流程示意图;
图2是本发明实施例中脚本预处理流程的示意图;
图3是本发明实施例中对每段用户脚本预处理过程的示意图;
图4是本发明实施例中运行阶段程序流程示意图;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉凌控自动化技术有限公司,未经武汉凌控自动化技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210202809.3/2.html,转载请声明来源钻瓜专利网。