CN107423104A - 一种基于虚拟机的程序运行系统 - Google Patents

一种基于虚拟机的程序运行系统 Download PDF

Info

Publication number
CN107423104A
CN107423104A CN201710434653.4A CN201710434653A CN107423104A CN 107423104 A CN107423104 A CN 107423104A CN 201710434653 A CN201710434653 A CN 201710434653A CN 107423104 A CN107423104 A CN 107423104A
Authority
CN
China
Prior art keywords
virtual machine
program
programs
runtime based
iec61131
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201710434653.4A
Other languages
English (en)
Inventor
史建琦
魏汉生
黄滟鸿
李昂
王泊涵
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Fenglei Information Technology Co Ltd
East China Normal University
Original Assignee
Shanghai Fenglei Information Technology Co Ltd
East China Normal University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shanghai Fenglei Information Technology Co Ltd, East China Normal University filed Critical Shanghai Fenglei Information Technology Co Ltd
Priority to CN201710434653.4A priority Critical patent/CN107423104A/zh
Publication of CN107423104A publication Critical patent/CN107423104A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/447Target code generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing

Abstract

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

Description

一种基于虚拟机的程序运行系统
技术领域
本发明涉及工业自动控制技术领域,尤其涉及一种基于虚拟机的61131-3程序运行环境。
背景技术
随着工业的不断发展,PLC凭借其自身的特性,受到越来越多的厂商重视。但是传统的PLC有很多缺点,例如价格比较高、通用性差,移植困难,缺乏开放的体系,需要受制于PLC厂商。
目前已有一些克服上述缺陷的专利出现,例如,中国发明专利申请号
201610064750.4公开了一种在FPGA平台实现PLC控制的方法及装置,该发明一种在FPGA平台实现PLC控制的方法及装置,该方法是由ST2FP解析器转换成Verilog HDL程序,不仅能正确实现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标准的梯形图、功能块图、顺序功能图、指令表、和/或结构化文本程序。
优选的,如上所述的一种基于虚拟机的程序运行系统,所述XML格式为服从IEC61131-3标准的PLCopenXML格式。
更优选的,如上所述的一种基于虚拟机的程序运行系统,所述程序翻译器是基于高级语言的,能够将PLCopenXML翻译成高级语言程序。
更优选的,如上所述的一种基于虚拟机的程序运行系统,所述程序翻译器将PLCopenXML中的属性翻译成高级语言的字段和函数。
优选的,如上所述的一种基于虚拟机的程序运行系统,所述高级语言程序为Java、C++、C、C#、或.Net。
优选的,如上所述的一种基于虚拟机的程序运行系统,所述虚拟机为Java虚拟机或CLR虚拟机。
优选的,如上所述的一种基于虚拟机的程序运行系统,所述虚拟机允许实现程序扫描循环执行,并允许实时调度与IEC 61131-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所示,本发明提供一种基于虚拟机的程序运行系统100,包括顺序连接的如下模块:
导出模块101,用于使用开发工具将IEC61131-3程序导出为XML格式文件。所述IEC61131-3程序为服从IEC61131-3标准的梯形图、功能块图、顺序功能图、指令表、结构化文本程序。所述开发工具指的是61131-3PLC开发工具,如CodeSYS,TwinCAT,KW等。
翻译模块102,用于使用程序翻译器将XML格式文件翻译成高级语言程序。所述XML格式为服从IEC61131-3标准的PLCopenXML格式。所述程序翻译器是基于高级语言的,可以将PLCopenXML翻译成高级语言程序。程序翻译器将PLCopenXML中的Configurations,POU,Task等属性翻译成高级语言的字段和函数。所述高级语言程序可为Java,C++,C,C#,.Net。
虚拟机部署模块103,用于将可运行高级程序的虚拟机部署到多平台设备上。所述虚拟机为Java虚拟机,CLR虚拟机。虚拟机保证允许实现程序扫描循环执行,并允许实时调度与IEC 61131-3POU相关的任务和相关执行。所述相应多平台为Windows,Linux及Linux衍生平台。
编译模块104,用于使用高级语言编译器将高级语言程序编译为可执行文件。
连接模块105,为总线或网络,将需要控制的多平台设备通过上述总线或网络与通用计算设备相连。所述通用计算设备为通用计算机和集群设备。
如图2所示,本发明的工作原理如下:
首先将写好的服从IEC61131-3的PLC程序导出为PLCopenXML文件,得到的PLCopenXML文件中包含了Configurations,POU,Task等PLC程序组件,以便下一步翻译程序。
然后使用基于高级语言的程序翻译器将得到的PLCopenXML翻译成高级语言程序,PLCopenXML中的不同属性对应高级程序中的不同类型字段,每个Task对应一个无限循环执行的函数。
为了实现与PLC相同行为的实时运行环境,可以使用基于Java VM或CLRVM等虚拟机实现,保证允许实现程序扫描循环执行,并允许实时调度与IEC 61131-3POU相关的任务和相关执行。将虚拟机部署到需要的Windows,Linux平台或其他Linux衍生平台上。
再使用高级程序编译器将得到的高级程序编译成可执行文件,并部署到虚拟机中。
最后将需要控制的上述多平台设备通过总线或网络与通用计算设备相连,从而达到使用通用计算设备代替PLC的效果。
由上述本发明提供的技术方案可以看出,本发明提供了一种基于虚拟机的61131-3程序运行环境,使得可以在普通计算设备上运行IEC61131-3程序,进而可以代替传统的PLC,克服了传统PLC的通用性差,价格高,移植困难的缺点。同时一般计算设备的强大计算能力和优秀的网络环境使得IEC61131-3程序具有更高的稳定性和实时性。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

Claims (10)

1.一种基于虚拟机的程序运行系统,其特征在于,包括顺序连接的如下模块:
导出模块,用于使用开发工具将IEC61131-3程序导出为XML格式文件;
翻译模块,用于使用程序翻译器将XML格式文件翻译成高级语言程序;
虚拟机部署模块,用于将可运行高级程序的虚拟机部署到多平台设备上;
编译模块,用于使用高级语言编译器将高级语言程序编译为可执行文件;
另外,所述系统还包括连接模块,用于连接需要控制的多平台设备与通用计算设备。
2.根据权利要求1所述的一种基于虚拟机的程序运行系统,其特征在于,所述IEC61131-3程序为服从IEC61131-3标准的梯形图、功能块图、顺序功能图、指令表、和/或结构化文本程序。
3.根据权利要求1所述的一种基于虚拟机的程序运行系统,其特征在于,所述XML格式为服从IEC61131-3标准的PLCopenXML格式。
4.根据权利要求3所述的一种基于虚拟机的程序运行系统,其特征在于,所述程序翻译器是基于高级语言的,能够将PLCopenXML翻译成高级语言程序。
5.根据权利要求3所述的一种基于虚拟机的程序运行系统,其特征在于,所述程序翻译器将PLCopenXML中的属性翻译成高级语言的字段和函数。
6.根据权利要求1所述的一种基于虚拟机的程序运行系统,其特征在于,所述高级语言程序为Java、C++、C、C#、或.Net。
7.根据权利要求1所述的一种基于虚拟机的程序运行系统,其特征在于,所述虚拟机为Java虚拟机或CLR虚拟机。
8.根据权利要求1所述的一种基于虚拟机的程序运行系统,其特征在于,所述虚拟机允许实现程序扫描循环执行,并允许实时调度与IEC 61131-3POU相关的任务和相关执行。
9.根据权利要求1所述的一种基于虚拟机的程序运行系统,其特征在于,所述多平台为Windows,Linux和/或Linux衍生平台。
10.根据权利要求1所述的一种基于虚拟机的程序运行系统,其特征在于,所述通用计算设备为通用计算机和/或集群设备。
CN201710434653.4A 2017-06-09 2017-06-09 一种基于虚拟机的程序运行系统 Pending CN107423104A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710434653.4A CN107423104A (zh) 2017-06-09 2017-06-09 一种基于虚拟机的程序运行系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710434653.4A CN107423104A (zh) 2017-06-09 2017-06-09 一种基于虚拟机的程序运行系统

Publications (1)

Publication Number Publication Date
CN107423104A true CN107423104A (zh) 2017-12-01

Family

ID=60428669

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710434653.4A Pending CN107423104A (zh) 2017-06-09 2017-06-09 一种基于虚拟机的程序运行系统

Country Status (1)

Country Link
CN (1) CN107423104A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110928602A (zh) * 2019-12-06 2020-03-27 浙江中控技术股份有限公司 Fbd程序的运行方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1265488A (zh) * 2000-03-06 2000-09-06 周大凯 程序执行方法
US20050182615A1 (en) * 2004-02-12 2005-08-18 International Business Machines Corporation Method and system for creating an automatically adjusting USB mass storage device
CN102023960A (zh) * 2009-09-14 2011-04-20 联想(北京)有限公司 计算机网络系统、计算机及其硬件设备远程管理的方法
CN102073501A (zh) * 2011-01-04 2011-05-25 浙江工商大学 一种基于逻辑功能块的网络设备中央控制器的实现方法
CN102947814A (zh) * 2010-06-10 2013-02-27 惠普发展公司,有限责任合伙企业 虚拟机

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1265488A (zh) * 2000-03-06 2000-09-06 周大凯 程序执行方法
US20050182615A1 (en) * 2004-02-12 2005-08-18 International Business Machines Corporation Method and system for creating an automatically adjusting USB mass storage device
CN102023960A (zh) * 2009-09-14 2011-04-20 联想(北京)有限公司 计算机网络系统、计算机及其硬件设备远程管理的方法
CN102947814A (zh) * 2010-06-10 2013-02-27 惠普发展公司,有限责任合伙企业 虚拟机
CN102073501A (zh) * 2011-01-04 2011-05-25 浙江工商大学 一种基于逻辑功能块的网络设备中央控制器的实现方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
李建平: "基于虚拟机的PAC控制系统的研究与设计", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110928602A (zh) * 2019-12-06 2020-03-27 浙江中控技术股份有限公司 Fbd程序的运行方法及装置
CN110928602B (zh) * 2019-12-06 2022-09-20 浙江中控技术股份有限公司 Fbd程序的运行方法及装置

Similar Documents

Publication Publication Date Title
Perchat et al. Component based framework to create mobile cross-platform applications
CN104239115A (zh) 一种plc编程语言的编译方法
Pohlmann et al. Generating functional mockup units from software specifications
CN112416788B (zh) 一种分层规范的Web应用UI自动化测试方法
Ramachandran automan: A python-based automation framework for numerical computing
WO2019230321A1 (ja) サポート装置およびサポートプログラム
CN107423104A (zh) 一种基于虚拟机的程序运行系统
Zaeh et al. Model-driven development of PLC software for machine tools
CN107229505A (zh) 一种基于虚拟机的程序运行方法
Tolvanen et al. Metamodeling for medical devices: Code generation, model-debugging and run-time synchronization
Bucaioni et al. From amalthea to rcm and back: a practical architectural mapping scheme
Zyubin Using process-oriented programming in LabVIEW
Ge et al. Formal development process of safety-critical embedded human machine interface systems
Miroliubov Visual Programming-An Alternative Way of Developing Software
Hassapis Soft-testing of industrial control systems programmed in IEC 1131-3 languages
Moser et al. A novel domain-specific language for the robot welding automation domain
JP5755103B2 (ja) ブロック線図処理装置およびブロック線図の処理方法
Graf et al. Gaining insight into executable models during runtime: Architecture and mappings
Cox et al. Advanced programming aids in PROGRAPH
Sen Create a working compiler with the LLVM framework, Part 2
Hanák Advanced PLC programming methods
Kübler et al. Approach for manufacturer independent automated machine tool control software test
US20230195430A1 (en) Computer-implemented method for creating a hierarchical block diagram
Genter et al. Software tool for modeling, simulation and real-time implementation of Petri net-based supervisors
Gasser Virtual Machine and Code Generator for PLC-Systems

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20171201