CN107229505A - 一种基于虚拟机的程序运行方法 - Google Patents

一种基于虚拟机的程序运行方法 Download PDF

Info

Publication number
CN107229505A
CN107229505A CN201710423864.8A CN201710423864A CN107229505A CN 107229505 A CN107229505 A CN 107229505A CN 201710423864 A CN201710423864 A CN 201710423864A CN 107229505 A CN107229505 A CN 107229505A
Authority
CN
China
Prior art keywords
virtual machine
program
method based
operating method
programs
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
CN201710423864.8A
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 CN201710423864.8A priority Critical patent/CN107229505A/zh
Publication of CN107229505A publication Critical patent/CN107229505A/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Programmable Controllers (AREA)

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标准的梯形图、功能块图、顺序功能图、指令表结构化文本程序。
所述步骤二中的程序翻译器是基于高级语言的,可以将PLCopenXML翻译成高级语言程序。
所述步骤二中的程序翻译器将PLCopenXML中的Configurations,POU,Task等属性翻译成高级语言的字段和函数。
所述步骤二中的XML格式为服从IEC61131-3标准的PLCopenXML格式。
所述步骤三中的高级语言程序可为Java,C++,C,C#,.Net。
所述步骤三中的虚拟机为Java虚拟机,CLR虚拟机。
所述步骤三中的虚拟机保证允许实现程序扫描循环执行,并允许实时调度与IEC61131-3 POU相关的任务和相关执行。
所述步骤三中相应多平台为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-3 PLC开发工具,如CodeSYS,TwinCAT,KW等。
S2:使用程序翻译器将XML格式文件翻译成高级语言程序。所述XML格式为服从IEC61131-3标准的PLCopenXML格式。所述程序翻译器是基于高级语言的,可以将PLCopenXML翻译成高级语言程序。程序翻译器将PLCopenXML中的Configurations,POU,Task等属性翻译成高级语言的字段和函数。所述高级语言程序可为Java,C++,C,C#,.Net。
S3:将可运行高级程序的虚拟机部署到多平台设备上。所述虚拟机为Java虚拟机,CLR虚拟机。虚拟机保证允许实现程序扫描循环执行,并允许实时调度与IEC 61131-3 POU相关的任务和相关执行。所述相应多平台为Windows,Linux及Linux衍生平台。
S4:使用高级语言编译器将高级语言程序编译为可执行文件。
S5:将需要控制的多平台设备通过总线或网络与通用计算设备相连。所述通用计算设备为通用计算机和集群设备。
如图2所示,本发明的工作原理如下:
首先将写好的服从IEC61131-3的PLC程序导出为PLCopenXML文件,得到的PLCopenXML文件中包含了Configurations,POU,Task等PLC程序组件,以便下一步翻译程序。
然后使用基于高级语言的程序翻译器将得到的PLCopenXML翻译成高级语言程序,PLCopenXML中的不同属性对应高级程序中的不同类型字段,每个Task对应一个无限循环执行的函数。
为了实现与PLC相同行为的实时运行环境,可以使用基于Java VM或CLR VM等虚拟机实现,保证允许实现程序扫描循环执行,并允许实时调度与IEC61131-3 POU相关的任务和相关执行。将虚拟机部署到需要的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所述的一种基于虚拟机的程序运行方法,其特征在于,所述步骤三中的虚拟机允许实现程序扫描循环执行,并允许实时调度与IEC61131-3POU相关的任务和相关执行。
9.根据权利要求1所述的一种基于虚拟机的程序运行方法,其特征在于,所述步骤三中所述多平台为Windows,Linux和/或Linux衍生平台。
10.根据权利要求1所述的一种基于虚拟机的程序运行方法,其特征在于,所述步骤五中通用计算设备为通用计算机和/或集群设备。
CN201710423864.8A 2017-06-07 2017-06-07 一种基于虚拟机的程序运行方法 Pending CN107229505A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710423864.8A CN107229505A (zh) 2017-06-07 2017-06-07 一种基于虚拟机的程序运行方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710423864.8A CN107229505A (zh) 2017-06-07 2017-06-07 一种基于虚拟机的程序运行方法

Publications (1)

Publication Number Publication Date
CN107229505A true CN107229505A (zh) 2017-10-03

Family

ID=59935023

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710423864.8A Pending CN107229505A (zh) 2017-06-07 2017-06-07 一种基于虚拟机的程序运行方法

Country Status (1)

Country Link
CN (1) CN107229505A (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 周大凯 程序执行方法
CN102023960A (zh) * 2009-09-14 2011-04-20 联想(北京)有限公司 计算机网络系统、计算机及其硬件设备远程管理的方法
CN102073501A (zh) * 2011-01-04 2011-05-25 浙江工商大学 一种基于逻辑功能块的网络设备中央控制器的实现方法
CN104144169A (zh) * 2014-08-20 2014-11-12 株洲南车时代电气股份有限公司 一种列车控制系统的展示方法和装置
CN106125664A (zh) * 2016-08-12 2016-11-16 绵阳市维博电子有限责任公司 一种嵌入式plc控制系统

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 周大凯 程序执行方法
CN102023960A (zh) * 2009-09-14 2011-04-20 联想(北京)有限公司 计算机网络系统、计算机及其硬件设备远程管理的方法
CN102073501A (zh) * 2011-01-04 2011-05-25 浙江工商大学 一种基于逻辑功能块的网络设备中央控制器的实现方法
CN104144169A (zh) * 2014-08-20 2014-11-12 株洲南车时代电气股份有限公司 一种列车控制系统的展示方法和装置
CN106125664A (zh) * 2016-08-12 2016-11-16 绵阳市维博电子有限责任公司 一种嵌入式plc控制系统

Non-Patent Citations (2)

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

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
US8407661B2 (en) Method and system for creating HMI applications for an automation process
EP1906275B1 (en) Natively retaining project documentation in a controller
CN104239115A (zh) 一种plc编程语言的编译方法
EP2866108A1 (en) Control device
US7469201B2 (en) Process and means for block-based modeling
CN110109671A (zh) 一种webpack标签尺寸样式转换方法及装置
CN107229505A (zh) 一种基于虚拟机的程序运行方法
CN105700934A (zh) 一种智能编译方法和智能编译系统
US20230011461A1 (en) Method and system for generating engineering diagrams in an engineering system
Zaeh et al. Model-driven development of PLC software for machine tools
US11169510B2 (en) Engineering system and method for planning an automation system
CN107423104A (zh) 一种基于虚拟机的程序运行系统
Schröck et al. Principles, viewpoints and effect links in the engineering of automated plants
Jovanovic Designing dependable process-oriented software-a CSP-based approach
Tolvanen et al. Metamodeling for medical devices: Code generation, model-debugging and run-time synchronization
Moser et al. Domain-specific modeling in industrial automation: Challenges and experiences
Zyubin Using process-oriented programming in LabVIEW
Moser et al. A novel domain-specific language for the robot welding automation domain
US20230195430A1 (en) Computer-implemented method for creating a hierarchical block diagram
US20230237249A1 (en) Method and system for generating an automation engineering project in a technical installation using multidisciplinary approach
Kübler et al. Approach for manufacturer independent automated machine tool control software test
Smajic et al. Work-in-Progress: Machine Development Using Virtual Commissioning
JP2009157534A (ja) プログラム作成支援システム、そのプログラマブルコントローラ支援装置、プログラマブル表示器支援装置
Zelkowitz Evolution towards specifications environment: experiences with syntax editors
Rzońca et al. LD Graphic Editor Implemented in CPDev Engineering Environment

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
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: 20171003