TWI637277B - 標準程式語言腳本架構結合虛擬機的控制方法及程式產品 - Google Patents

標準程式語言腳本架構結合虛擬機的控制方法及程式產品 Download PDF

Info

Publication number
TWI637277B
TWI637277B TW106137172A TW106137172A TWI637277B TW I637277 B TWI637277 B TW I637277B TW 106137172 A TW106137172 A TW 106137172A TW 106137172 A TW106137172 A TW 106137172A TW I637277 B TWI637277 B TW I637277B
Authority
TW
Taiwan
Prior art keywords
virtual machine
programming language
standard programming
control method
script
Prior art date
Application number
TW106137172A
Other languages
English (en)
Other versions
TW201917600A (zh
Inventor
方紹光
Original Assignee
直得科技股份有限公司
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 直得科技股份有限公司 filed Critical 直得科技股份有限公司
Priority to TW106137172A priority Critical patent/TWI637277B/zh
Application granted granted Critical
Publication of TWI637277B publication Critical patent/TWI637277B/zh
Publication of TW201917600A publication Critical patent/TW201917600A/zh

Links

Landscapes

  • Stored Programmes (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

本發明為一種標準程式語言腳本架構結合虛擬機的控制方法及程式產品,是將一微控制器的腳本建構在一標準程式語言的環境,例如C語言;並使用一編譯器編譯該腳本;再由一虛擬機來執行該腳本,用以控制一底層機械元件,其中,該虛擬機建構在開放式指令集,並且該虛擬機與該底層機械元件的溝通方式係透過IEC61800-7-201的國際標準。

Description

標準程式語言腳本架構結合虛擬機的控制方法及程式產品
本發明係有關於一種標準程式語言腳本架構結合虛擬機的控制方法及程式產品,特別是指將微控制器的腳本建構在一標準程式語言的環境,並由一虛擬機來執行該腳本,而該虛擬機建構在開放式指令集,且該虛擬機與底層機械元件的溝通方式係透過IEC國際標準的發明。
目前,如果終端使用者希望在控制系統終端(CSE)中撰寫腳本程式,通常是以CSE製造商的客製語言編寫腳本,該語言可試圖與譬如C語言等工業標準語言類似。
執行引擎可分為:(1)直接解譯器型式,參閱第二圖,微控制器(A)通過CSE的裝置外部通訊介面(B)與CSE連線,而微控制器(A)中使用者已撰寫之程式文字將在執行時間內解譯,以控制底層機械元件(C),此方法因多餘的文字處理而具有計算效率低落的缺點。(2)另一實現係一虛擬機(VM)(D),參閱第三圖,其提供使用者一實現供應商客製指令集架構(ISA)之虛擬CPU(E),通過虛擬機資訊傳輸介面(F)來控制底層機械元件(G),使用者文字程式在上載至VM(D)執行前,將先編譯成該客製ISA之機器碼。缺點在於編譯器工具鏈係特定供應商專屬且無法用於編譯依電腦工業標準化語言格式撰寫之使用者程式。
另外,再參閱第二圖及第三圖所示,微控制器(A)及虛擬機(D) 透過裝置應用服務介面(H)(I)與底層機械元件(C)(G)溝通的方式對不同供應商而言,裝置應用服務介面(H)(I)是採用不同標準。
總體而言,既有可編寫腳本的CSE具有以下限制:
1.除了大多數接受現代軟體程式訓練之人力所組成的大潛力使用者群外,資訊技術及電子工業之使用者通常不熟悉程式設計環境使用之程式語言。
2.程式設計環境不符工業自動化、資訊技術、或嵌入式電子領域中使用之『任何』標準,而需要腳本環境之新使用者學習無法轉移或重複使用之程式語言。
3.CSE作為執行環境之主機,而存取CSE應用服務之方法不是採用國際工業標準。
因此,本發明提出一種標準程式語言腳本架構結合虛擬機的控制方法,用以改善前述缺失,本發明包括有下列步驟:
將一微控制器的腳本建構在一標準程式語言的環境;使用一編譯器編譯該腳本;由一虛擬機來執行該腳本,用以控制一底層機械元件,其中,該虛擬機建構在開放式指令集,且該虛擬機與該底層機械元件溝通係透過IEC國際標準。
進一步,該標準程式語言為C語言。
進一步,可在該開放式指令集中外加一自訂指令。
進一步,該虛擬機與該底層機械元件溝通係透過IEC61800-7-201的國際標準。
進一步,該虛擬機之主機CPU用於輔助該虛擬機的虛擬CPU進行運算。
進一步,供該虛擬機判讀的機械碼透過一電路模擬器被加載儲存於一程序記憶體。
進一步,該虛擬機的資料數據及程序數據來自於該虛擬機之主機的部分資料數據及部分程序數據。
進一步,該虛擬機內部狀態可透過與該虛擬機之主機的通訊介面相同的通訊介面進行訪問。
進一步,該虛擬機與一實體主控制器透過相同的控制方式來控制該底層機械元件。
本發明再提出一種程式產品,係用以安裝至一電腦,並執行前述標準程式語言腳本架構結合虛擬機的控制方法。
根據上述技術特徵可達成以下功效:
1.使已熟悉微控制器程式設計之具備一般電子學背景的使用者,具有簡易學習曲線。
2.終端使用者可將先進功能建入CSE中,無需CSE提供者冒險曝露屬財產權的VM主機內部工作細節。
3.單純的軟體實現,可如同軟體升級一般地加入既有裝置中。
(1)‧‧‧使用者電腦
(11)‧‧‧集成開發環境
(12)‧‧‧編譯器
(13)‧‧‧電路模擬器(ICE)
(2)‧‧‧控制系統終端(CSE)
(21)(D)‧‧‧虛擬機(VM)
(211)‧‧‧程序記憶體
(212)(F)‧‧‧虛擬機資訊傳輸介面
(213)‧‧‧主機CPU
(214)(E)‧‧‧虛擬CPU
(215)‧‧‧資料記憶體
(22)(B)‧‧‧裝置外部通訊介面
(23)(C)(G)‧‧‧底層機械元件
(24)(H)(I)‧‧‧裝置應用服務介面
(3)‧‧‧實體主控制器
(A)‧‧‧微控制器
[第一圖]係為執行本發明方法之系統的功能方塊圖。
[第二圖]係為習知以微控制器控制CSE的功能方塊圖。
[第三圖]係為習知以虛擬機控制CSE的功能方塊圖。
綜合上述技術特徵,本發明標準程式語言腳本架構結合虛擬機的控制方法及程式產品的主要功效將可於下述實施例清楚呈現。
參閱第一圖所示,使用者透過一使用者電腦(1)的一集成開發環 境(IDE)(11)採用一標準程式語言編寫腳本,該標準程式語言例如使用C語言或JAVA。然而較佳的是使用C語言,因為C語言是最常被使用的程式語言,可使已熟悉微控制器程式設計之具備一般電子學背景的使用者,能夠具有簡易的學習曲線。
使用一編譯器(12)編譯該腳本,之後再透過一電路模擬器(13)將該腳本轉換成一機械碼而可供控制系統終端(CSE)(2)的一虛擬機(21)判讀,該機械碼透過CSE(2)之一裝置外部通訊介面(22)而被加載儲存於該虛擬機(21)之一程序記憶體(211)。
由該虛擬機(21)來執行該腳本,用以控制一底層機械元件(23),其中,該虛擬機(21)建構在開放式指令集,並且可供使用者在該開放式指令集中外加一自訂指令,藉以供使用者根據不同需求而自行擴充指令,因此使用者可將先進功能建入CSE(2)中,無需CSE(2)提供者冒險曝露屬財產權的虛擬機內部工作細節。該虛擬機(21)通過一虛擬機資訊傳輸介面(212)來連接一裝置應用服務介面(24),以控制該底層機械元件(23),其中該裝置應用服務介面(24)採用IEC的國際標準,例如IEC61800-7-201的國際標準,可以省去因為採用不同標準下,使用者的學習時間。再其中,該虛擬機(21)內部狀態可透過與該虛擬機(21)之主機的通訊介面相同的通訊介面進行訪問,亦即使用者可直接透過該使用者電腦(1)連接該CSE(2)之裝置外部通訊介面(22)而直接檢視該虛擬機(21)內部狀態。而該虛擬機(21)之主機CPU(213)可用於輔助該虛擬機(21)的虛擬CPU(214)進行運算,以加速運算速度。又,該虛擬機(21)的程序數據及資料數據分別儲存在該程序記憶體(211)與一資料記憶體(215)中,且該程序數據及資料數據來自於該虛擬機(21)之主機的部分程序數據及部分資料數據,此種機制提供資源分散,避免該虛擬機(21)無權訪問該虛擬機(21)之主機的資料數據及程序數據。
要特別說明的是,該CSE(2)可再連接一實體主控制器(3),而該 虛擬機(21)與該實體主控制器(3)可透過相同的控制方式來控制該底層機械元件(23)。
在本發明的另一實施例中,再提出一種程式產品,該程式產品可用以安裝至一電腦,藉以使該電腦可執行前述標準程式語言腳本架構結合虛擬機的控制方法。因此本發明透過單純的軟體實現,可如同軟體升級一般地加入既有裝置中。
綜合上述實施例之說明,當可充分瞭解本發明之操作、使用及本發明產生之功效,惟以上所述實施例僅係為本發明之較佳實施例,當不能以此限定本發明實施之範圍,即依本發明申請專利範圍及發明說明內容所作簡單的等效變化與修飾,皆屬本發明涵蓋之範圍內。

Claims (8)

  1. 一種標準程式語言腳本架構結合虛擬機的控制方法,包括下列步驟:將一微控制器的腳本建構在一標準程式語言的環境,該標準程式語言為C語言;使用一編譯器編譯該腳本;由一虛擬機來執行該腳本,用以控制一底層機械元件,其中,該虛擬機建構在開放式指令集,且該虛擬機與該底層機械元件溝通係透過IEC61800-7-201國際標準。
  2. 如申請專利範圍第1項所述之標準程式語言腳本架構結合虛擬機的控制方法,其中,可在該開放式指令集中外加一自訂指令。
  3. 如申請專利範圍第1項所述之標準程式語言腳本架構結合虛擬機的控制方法,其中,該虛擬機之主機CPU用於輔助該虛擬機的虛擬CPU進行運算。
  4. 如申請專利範圍第1項所述之標準程式語言腳本架構結合虛擬機的控制方法,其中,供該虛擬機判讀的機械碼透過一電路模擬器被加載儲存於一程序記憶體。
  5. 如申請專利範圍第1項所述之標準程式語言腳本架構結合虛擬機的控制方法,其中,該虛擬機的資料數據及程序數據來自於該虛擬機之主機的部分資料數據及部分程序數據。
  6. 如申請專利範圍第1項所述之標準程式語言腳本架構結合虛擬機的控制方法,其中,該虛擬機內部狀態可透過與該虛擬機之主機的通訊介面相同的通訊介面進行訪問。
  7. 如申請專利範圍第1項所述之標準程式語言腳本架構結合虛擬機的控制方法,其中,該虛擬機與一實體主控制器透過相同的控制方式來控制該底層機械元件。
  8. 一種程式產品,係用以安裝至一電腦,並執行如申請專利範圍第1項至第7項任一項所述之標準程式語言腳本架構結合虛擬機的控制方法。
TW106137172A 2017-10-27 2017-10-27 標準程式語言腳本架構結合虛擬機的控制方法及程式產品 TWI637277B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
TW106137172A TWI637277B (zh) 2017-10-27 2017-10-27 標準程式語言腳本架構結合虛擬機的控制方法及程式產品

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW106137172A TWI637277B (zh) 2017-10-27 2017-10-27 標準程式語言腳本架構結合虛擬機的控制方法及程式產品

Publications (2)

Publication Number Publication Date
TWI637277B true TWI637277B (zh) 2018-10-01
TW201917600A TW201917600A (zh) 2019-05-01

Family

ID=64802728

Family Applications (1)

Application Number Title Priority Date Filing Date
TW106137172A TWI637277B (zh) 2017-10-27 2017-10-27 標準程式語言腳本架構結合虛擬機的控制方法及程式產品

Country Status (1)

Country Link
TW (1) TWI637277B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102566481B (zh) * 2010-12-16 2013-07-24 无锡信捷电气有限公司 一种基于c语言的plc控制系统及其实现方法
CN101763280B (zh) * 2008-09-30 2015-05-13 Ics三重自动化软件有限公司 用于生成控制系统可执行代码的系统、方法和计算机实施系统
CN106527335A (zh) * 2016-12-08 2017-03-22 湖南戈人自动化科技有限公司 一种支持协程功能的plc控制器

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101763280B (zh) * 2008-09-30 2015-05-13 Ics三重自动化软件有限公司 用于生成控制系统可执行代码的系统、方法和计算机实施系统
CN102566481B (zh) * 2010-12-16 2013-07-24 无锡信捷电气有限公司 一种基于c语言的plc控制系统及其实现方法
CN106527335A (zh) * 2016-12-08 2017-03-22 湖南戈人自动化科技有限公司 一种支持协程功能的plc控制器

Also Published As

Publication number Publication date
TW201917600A (zh) 2019-05-01

Similar Documents

Publication Publication Date Title
EP2368189B1 (en) Debugging pipeline
CN107526625B (zh) 一种基于字节码检查的Java智能合约安全检测方法
CN105204393B (zh) 基于虚核单片机的单片机生产研发工具及其实现方法
US9898388B2 (en) Non-intrusive software verification
US20180157479A1 (en) Cloud service framework for toolkit deployment
US20090172710A1 (en) Method and system for enabling a mini program on a computing device to access an auxiliary system
JP7122969B2 (ja) マイクロコントローラのデータ転送をプログラミングするシステムおよび方法
Lacamera Embedded Systems Architecture: Explore architectural concepts, pragmatic design patterns, and best practices to produce robust systems
Simmonds Mastering Embedded Linux Programming
CN103092654A (zh) 一种基于WebKit的WebOS实现方法和系统
CN110637521B (zh) 一种基于模型仿真的数据实时存储方法和系统
TWI637277B (zh) 標準程式語言腳本架構結合虛擬機的控制方法及程式產品
CN113177292B (zh) 一种通用的bim二次开发实现方法和装置
CN106970825B (zh) 一种基于gdb可配置框架的arm7仿真目标机实现方法
WO2004088508A2 (en) A method of creating software that is portable across different operating systems
CN116225527A (zh) 嵌入式系统
KR101083271B1 (ko) 액티브엑스 컨트롤 변환 시스템 및 방법
KR20240009757A (ko) 오토사 스택 가상화를 통한 윈도우 기반의 차량용 소프트웨어 시뮬레이션 장치 및 방법
US20160274992A1 (en) Method and multi-core processing system for tracing program execution state
Vasquez et al. Mastering Embedded Linux Programming: Create Fast and Reliable Embedded Solutions with Linux 5.4 and the Yocto Project 3.1 (Dunfell)
US20070101220A1 (en) Systems and methods for accessing input/output devices
US8135943B1 (en) Method, apparatus, and computer-readable medium for generating a dispatching function
Ye Embedded programming with Android: bringing up an Android system from scratch
Viarheichyk Embedded Programming with Modern C++ Cookbook: Practical recipes to help you build robust and secure embedded applications on Linux
US9830174B2 (en) Dynamic host code generation from architecture description for fast simulation