siemens x
工業(yè)以太網(wǎng)

Java平臺在開放式控制系統(tǒng)平臺中的應(yīng)用研究

2025China.cn   2007年11月01日
 

摘 要:現(xiàn)有的開放式控制系統(tǒng)平臺沒有統(tǒng)一的開發(fā)規(guī)范,為此,本文研究了Java——一種先進的真正的開放體系結(jié)構(gòu),應(yīng)用于開放式控制系統(tǒng)平臺的優(yōu)越性,以及如何利用Java平臺的開放性建立統(tǒng)一開放式控制系統(tǒng)平臺。同時,針對Java平臺實時控制的缺陷,提出了把控制的實時任務(wù)轉(zhuǎn)化為非實時任務(wù)的解決方法。
關(guān)鍵詞:Java平臺;開放式控制系統(tǒng)平臺;實時控制
分類號:TP273 文獻標(biāo)識碼:A
文章編號:1001-2265(2000) 02-0036-03

1 引言

  開放式控制系統(tǒng)的研究始于80年代。在美國NGC(Next Generation Controller)計劃之后,歐洲推出了OSACA,日本進行了名為OSEC計劃的研究,加拿大也擁有NRC計劃。開放式控制系統(tǒng)不僅收益于機床制造商和數(shù)控供應(yīng)商,也給最終用戶帶來了很大的靈活性。但是,各個計劃所采用的技術(shù)還不能真正實現(xiàn)“開放”。同時,以上各個計劃都相互獨立,他們之間無統(tǒng)一的標(biāo)準(zhǔn)和協(xié)議,因此,對用戶而言還不能算得上真正的開放。Java是針對網(wǎng)絡(luò)環(huán)境開發(fā)的平臺和一種語言,自1995年由Sun公司推出以來,以其跨平臺、安全性等諸多優(yōu)點在計算機界得到廣泛應(yīng)用。本文討論如何把Java平臺應(yīng)用于開放式控制系統(tǒng)中,達到統(tǒng)一平臺的目的。

2 開放式控制系統(tǒng)的要求

  開放式控制系統(tǒng)包括一組邏輯上分離的組件,組件之間和組件與應(yīng)用平臺之間的界面有良好的定義,使來自不同供應(yīng)商的組件協(xié)同工作,運行于多個平臺之上完成控制工作,并對用戶和其它控制系統(tǒng)提供良好的界面。
  開放式控制系統(tǒng)有以下特點:
  (1)互操作性 提供一個統(tǒng)一標(biāo)準(zhǔn)的通訊系統(tǒng)來實現(xiàn)數(shù)據(jù)交換。
  (2)可移植性 使用平臺提供的標(biāo)準(zhǔn)API,應(yīng)用程序可在不同的平臺上運行。
  (3)伸縮性 可任意增刪各功能模塊。
  (4)可互換性 可任意互換功能模塊。

3 Java平臺的特點

  Java的許多特征符合開放式控制系統(tǒng)的要求。Java平臺如圖1所示。

1

圖1 Java平臺結(jié)構(gòu)

  Java平臺由兩層結(jié)構(gòu)組成:
  (1)Java類和Java應(yīng)用程序接口:為應(yīng)用程序提供標(biāo)準(zhǔn)的訪問接口和一些基本類庫供應(yīng)用程序訪問和擴展。
  (2)Java虛擬機(JVM Java Virtual Machine):是Java平臺的核心,是實現(xiàn)Java跨平臺的關(guān)鍵。涵蓋了與平臺相關(guān)的所有服務(wù)功能,包括用戶界面、文件系統(tǒng)操作和網(wǎng)絡(luò)支持等。
  Java作為一種全新的開放平臺,其變成語言和結(jié)構(gòu)有以下優(yōu)點:
  (1)語言嚴(yán)格 所有程序嚴(yán)格按面向?qū)ο蟮姆椒ㄔO(shè)計,否則會出錯。
  (2)語言簡單 繼承了C++,但去掉了頭文件、指針句法和運算、結(jié)構(gòu)聯(lián)合、操作符重載和虛基類。
  (3)分布式的語言 支持多種傳輸協(xié)議,如TCP/IP、HTTP和FTP,另外,還支持分布式計算。
  (4)動態(tài)分配內(nèi)存,保證應(yīng)用程序在各方面都安全可靠
  通過兩種方式保證其安全性:
 ?、俳怪羔樅蛢?nèi)存訪問
  ②對Java代碼運行前進行合法性檢查,以防止非法訪問數(shù)據(jù)結(jié)構(gòu)、類和內(nèi)存。
  (5)結(jié)構(gòu)中立 由于編譯器長生結(jié)構(gòu)中立的字節(jié)代碼可運行于任何平臺,只要支持Java系統(tǒng)的軟硬件平臺都可運行字節(jié)代碼。Java支持的平臺多達四十多種,包括OS/2、Sun Soloris、Linux、WinNT、Win95、Win98和VxWorks等等。
  (6)可移植性 Java的基本數(shù)據(jù)類型大小是確定的,其整型和浮點型都是32位,保證應(yīng)用程序的可移植性。
  (7)多線程 Java的多線程可在多處理器上運行,能提供更好的交互響應(yīng)和實時特征。與微軟的產(chǎn)品對比如下表。

表  Java和Windows產(chǎn)品的對比表

名稱 跨硬件平臺 跨軟件平臺 安全性 可移植性
Java 任意 任意
WinNT4 X86 PowerPC
MIPS Alpha
Dos Windows3x
Win95
較好 一般
Win95 X86 Dos Windows3x 一般
Win98 X86 Dos Windows3x
Win95
一般
Win2000 X86 Alpha Dos Windows3x
Win9x WinNT
較好 一般

  由表1可見,作為開放式控制系統(tǒng)的基本要求,Java的確勝出一籌。
  在實時控制系統(tǒng)中,以數(shù)控機床為例,插補和位置控制是實時任務(wù),在高精度和高速度的數(shù)控系統(tǒng)中,中斷響應(yīng)速度可達微秒級,這種實時控制稱為硬實時,即在給定的時間周期內(nèi)必須把任務(wù)處理結(jié)束,否則將導(dǎo)致不可預(yù)料的結(jié)果。因此必須獲得每個實時任務(wù)的CPU處理時間和內(nèi)存分配情況,才能在系統(tǒng)負(fù)載中合理分配實時任務(wù)并正常執(zhí)行。
  Java的特性與實時控制的要求存在差距,體現(xiàn)在以下兩個方面:
  (1)內(nèi)存的動態(tài)管理 與C++不一樣,Java為用戶自動清除內(nèi)存。它使用一種稱為垃圾收集器(GC)的技術(shù)自動清除內(nèi)存中已經(jīng)不使用的內(nèi)存空間,這樣帶來一個問題:用戶無法預(yù)先確定GC算法的執(zhí)行時間,所有的線程都要在GC算法執(zhí)行時掛起。這種不確定性與實時計算相矛盾,因為實時計算需要精確的確定每個任務(wù)的執(zhí)行時間。
  (2)不能對底層硬件訪問 用戶開發(fā)的Java程序應(yīng)當(dāng)是和具體的硬件及操作系統(tǒng)無關(guān),用戶一旦直接訪問底層設(shè)備,勢必破壞Java的跨平臺特性。

4 在開放式控制系統(tǒng)平臺中的應(yīng)用

  在數(shù)控系統(tǒng)中,應(yīng)用程序可分為人機界面管理、三維仿真與診斷等實時程序和插補運算、位置控制等實時控制程序。實時控制要求中斷響應(yīng)速度要快并且計算量大,一般需要單獨的CPU來處理,或者采用硬件插卡的方式實現(xiàn)。以O(shè)SACA的應(yīng)用系統(tǒng)為例,采用了如圖2所示的雙PC結(jié)構(gòu):

1

圖2 雙PC結(jié)構(gòu)

  圖2中,HMC(人機控制)是非實時任務(wù);AC-X、AC-Y、AC-Z(軸控制)和MC(運動控制)是實時任務(wù)。軸控制和運動控制包括插補運算和位置控制,所以放在單獨一臺PC上實現(xiàn)。兩臺PC之間即實時和非實時之間采有TCP/IP協(xié)議進行通訊。
  實際上,插補運算包括插補準(zhǔn)備和插補計算兩部分。插補運算作為實時任務(wù)主要是受限于過去CPU的處理速度和內(nèi)存容量,隨著高速度、高性能CPU和大容量內(nèi)存的出現(xiàn),完全可以解決插補運算的速度要求和數(shù)據(jù)量的問題。可以預(yù)先計算出軌跡坐標(biāo)的XYZ值,并存儲在數(shù)據(jù)表中,再逐段送至位置控制。目前的數(shù)字伺服控制器已能將位置控制算法包含在內(nèi),可以不再開發(fā)位置控制的應(yīng)用程序模塊。因此,數(shù)控應(yīng)用軟件的開發(fā)可以都劃分為非實時任務(wù)。
  另外,當(dāng)前存在的開放式控制系統(tǒng)平臺如OSACA、NGC和OSEC內(nèi)部之間是開放的。如支持OSACA體系結(jié)構(gòu)的平臺上開發(fā)的控制應(yīng)用程序?qū)τ贠SACA的平臺是開放的。但各個開放式控制系統(tǒng)平臺之間還不能實現(xiàn)開放,因為它們的體系結(jié)構(gòu)不相同,所支持的協(xié)議和采用的數(shù)據(jù)結(jié)構(gòu)相互之間都沒有公開。因此,它們之間的通訊需要設(shè)計網(wǎng)關(guān)來實現(xiàn)數(shù)據(jù)的轉(zhuǎn)化。見圖3。

 

1

圖3 開放式控制系統(tǒng)間的通訊

  Java作為一種開放的體系結(jié)構(gòu),不僅僅因為其被世界所公認(rèn),更重要的是它具有先進的平臺設(shè)計手段,成為真正的開放平臺。目前開放式控制系統(tǒng)平臺所面臨的問題可以利用Java平臺來解決,如圖4所示。利用Java平臺提供的功能實現(xiàn)硬件和操作系統(tǒng)的無關(guān)性,實現(xiàn)真正的開放控制平臺。數(shù)控軟件的開發(fā)全部轉(zhuǎn)化為非實時控制,應(yīng)用程序通過訪問JavaAPI來獲取平臺的支持,利用Java語言的可移植性,按模塊化開發(fā)的應(yīng)用程序具有優(yōu)良的可移植性,可運行于支持Java的平臺之上。目前許多伺服控制器廠商已推出基于Java平臺的產(chǎn)品,具備Java的界面,這樣,建立于Java平臺上的應(yīng)用程序可直接訪問速度伺服的數(shù)據(jù),從而可以解決實時控制和如何統(tǒng)一平臺的問題。

1

圖4 Java平臺的應(yīng)用

5 結(jié)論和展望

  本文提出了一種利用Java真正開放式平臺的方案。Java的開發(fā)者也正在把實時功能加入到Java平臺中去,以適應(yīng)工業(yè)控制的要求。隨著網(wǎng)絡(luò)化時代的到來,基于Java的平臺不但能稱為開放式控制平臺,而且還能利用其強大的網(wǎng)絡(luò)功能實現(xiàn)異地制造,將極大地促進敏捷制造的發(fā)展。

(轉(zhuǎn)載)

標(biāo)簽:Java 開放式控制系統(tǒng)平臺 我要反饋 
2024世界人工智能大會專題
即刻點擊并下載ABB資料,好禮贏不停~
優(yōu)傲機器人下載中心
西克
2024全景工博會
專題報道