一种基于虚拟机的程序运行方法与流程

文档序号:11176919阅读:345来源:国知局
一种基于虚拟机的程序运行方法与流程

本发明涉及工业自动控制技术领域,尤其涉及一种基于虚拟机的61131-3程序运行环境。



背景技术:

随着工业的不断发展,plc凭借其自身的特性,受到越来越多的厂商重视。但是传统的plc有很多缺点,例如价格比较高、通用性差,移植困难,缺乏开放的体系,需要受制于plc厂商。

目前已有一些克服上述缺陷的专利出现,例如,中国发明专利申请号201610064750.4公开了一种在fpga平台实现plc控制的方法及装置,该发明一种在fpga平台实现plc控制的方法及装置,该方法是由st2fp解析器转换成veriloghdl程序,不仅能正确实现plc的输入输出逻辑,而且程序可以在fpga平台并行运行,从根本上改变了传统plc的只能顺序扫描执行程序的方式,plc程序执行的时间与程序的大小没有关系,只和程序的依赖层次有关系,fpga-plc程序执行效率是传统plc无法比拟的;该装置将iec-61131-3标准应用在了fpga-plc上,克服了传统plc的封闭性和兼容性差等缺点,有利于打破高端plc厂家垄断局面,还利用fpga并行执行程序的特性,使得该发明fpga-plc能并行执行plc程序,大幅提升了plc的实时性,fpga的处理是纯硬件的实现过程,使得fpga-plc系统具有很高的稳定性。

再者,在一般工厂中,传感器和执行器通过自动化总线连接到plc,传统的方法是使用总线系统主导,而今,更强大、灵活的自动化网络的出现可以让成千上万的传感器和执行器连接到同一网络,而且可以达到自动控制所要求的实时性。这就使得将61131-3应用程序从现场级别部署到计算设备上变成了可能。这些计算设备拥有强大的计算能力和灵活性,可以快速地适应应用程序的不断变化。



技术实现要素:

本发明旨在解决在一般计算设备上运行iec61131-3程序的问题。

本发明的主要目的在于提供一种将iec61131-3程序翻译成一般高级语言的方法。

本发明的另一目的在于提供一种可以运行iec61131-3程序的虚拟机环境。

为达到上述目的,本发明的技术方案具体是这样实现的:

一种基于虚拟机的程序运行方法,包括:

步骤一:使用开发工具将iec61131-3程序导出为xml格式文件。

步骤二:使用程序翻译器将xml格式文件翻译成高级语言程序。

步骤三:将可运行高级程序的虚拟机部署到多平台设备上。

步骤四:使用高级语言编译器将高级语言程序编译为可执行文件。

步骤五:将需要控制的多平台设备通过总线或网络与通用计算设备相连。

所述步骤一中的iec61131-3程序为服从iec61131-3标准的梯形图、功能块图、顺序功能图、指令表结构化文本程序。

所述步骤二中的程序翻译器是基于高级语言的,可以将plcopenxml翻译成高级语言程序。

所述步骤二中的程序翻译器将plcopenxml中的configurations,pou,task等属性翻译成高级语言的字段和函数。

所述步骤二中的xml格式为服从iec61131-3标准的plcopenxml格式。

所述步骤三中的高级语言程序可为java,c++,c,c#,.net。

所述步骤三中的虚拟机为java虚拟机,clr虚拟机。

所述步骤三中的虚拟机保证允许实现程序扫描循环执行,并允许实时调度与iec61131-3pou相关的任务和相关执行。

所述步骤三中相应多平台为windows,linux及linux衍生平台。

所述步骤五中通用计算设备为通用计算机和集群设备。

由上述本发明提供的技术方案可以看出,本发明提供了一种基于虚拟机的61131-3程序运行环境,使得可以在普通计算设备上运行iec61131-3程序,进而可以代替传统的plc,克服了传统plc的通用性差,价格高,移植困难的缺点。同时一般计算设备的强大计算能力和优秀的网络环境使得iec61131-3程序具有更高的稳定性和实时性。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

附图1示出了根据本发明实施方式的基于虚拟机的程序运行方法流程图。

附图2示出了根据本发明实施方式的基于虚拟机的程序运行环境的工作原理图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施方式。虽然附图中显示了本公开的示例性实施方式,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

实施例1

本发明构造了一种基于虚拟机的61131-3程序运行环境,主要包括:使用开发工具将iec61131-3程序导出为xml格式文件,再使用程序翻译器将xml格式文件翻译成高级语言程序,将可运行高级程序的虚拟机部署到多平台设备上,最后使用高级语言编译器将高级语言程序编译为可执行文件,然后部署到相应普通计算设备上。通过本发明可以使得在普通计算设备上运行iec61131-3程序,进而可以代替传统的plc,克服了传统plc的通用性差,价格高,移植困难的缺点。同时一般计算设备的强大计算能力和优秀的网络环境使得iec61131-3程序具有更高的稳定性和实时性。

如图1所示,本发明提供一种基于虚拟机的61131-3程序运行方法,包括如下步骤:

s1:使用开发工具将iec61131-3程序导出为xml格式文件。所述iec61131-3程序为服从iec61131-3标准的梯形图、功能块图、顺序功能图、指令表、结构化文本程序。所述开发工具指的是61131-3plc开发工具,如codesys,twincat,kw等。

s2:使用程序翻译器将xml格式文件翻译成高级语言程序。所述xml格式为服从iec61131-3标准的plcopenxml格式。所述程序翻译器是基于高级语言的,可以将plcopenxml翻译成高级语言程序。程序翻译器将plcopenxml中的configurations,pou,task等属性翻译成高级语言的字段和函数。所述高级语言程序可为java,c++,c,c#,.net。

s3:将可运行高级程序的虚拟机部署到多平台设备上。所述虚拟机为java虚拟机,clr虚拟机。虚拟机保证允许实现程序扫描循环执行,并允许实时调度与iec61131-3pou相关的任务和相关执行。所述相应多平台为windows,linux及linux衍生平台。

s4:使用高级语言编译器将高级语言程序编译为可执行文件。

s5:将需要控制的多平台设备通过总线或网络与通用计算设备相连。所述通用计算设备为通用计算机和集群设备。

如图2所示,本发明的工作原理如下:

首先将写好的服从iec61131-3的plc程序导出为plcopenxml文件,得到的plcopenxml文件中包含了configurations,pou,task等plc程序组件,以便下一步翻译程序。

然后使用基于高级语言的程序翻译器将得到的plcopenxml翻译成高级语言程序,plcopenxml中的不同属性对应高级程序中的不同类型字段,每个task对应一个无限循环执行的函数。

为了实现与plc相同行为的实时运行环境,可以使用基于javavm或clrvm等虚拟机实现,保证允许实现程序扫描循环执行,并允许实时调度与iec61131-3pou相关的任务和相关执行。将虚拟机部署到需要的windows,linux平台或其他linux衍生平台上。

再使用高级程序编译器将得到的高级程序编译成可执行文件,并部署到虚拟机中。

最后将需要控制的上述多平台设备通过总线或网络与通用计算设备相连,从而达到使用通用计算设备代替plc的效果。

由上述本发明提供的技术方案可以看出,本发明提供了一种基于虚拟机的61131-3程序运行环境,使得可以在普通计算设备上运行iec61131-3程序,进而可以代替传统的plc,克服了传统plc的通用性差,价格高,移植困难的缺点。同时一般计算设备的强大计算能力和优秀的网络环境使得iec61131-3程序具有更高的稳定性和实时性。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。

以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1