介紹了開放式數控系統的產生背景、特點及軟硬件平臺現狀,研制基于Windows CE.net平臺的開放式數控系統,介紹了基于Windows CE.net的開放式數控系統的實現方案。
1 引言
自從1952年第一臺數控機床在麻省理工學院研制成功以來,隨著計算機技術的飛速發展,數控系統的功能得到極大的擴展。隨著技術、市場、生產結構等方面的快速變化,用戶對數控系統提出了更高的要求: 希望能夠根據不同的加工要求,迅速、高效、經濟地構筑面向客戶的控制系統;逐漸降低生產廠家對控制系統的高依賴性;大幅度降低維護和培訓費用;改變過去數控系統的封閉性設計模式;適應未來車間面向任務和訂單的生產模式,使底層生產控制系統更簡便有效。在這種背景下,開放式數控系統應運而生。其主要目的是解決當今變化繁雜的需求與過去控制系統專一固定之間的矛盾,使數控系統易變、緊湊、廉價。
2 開放式數控系統的定義及特點
按照IEEE對于開放式系統的定義,一個開放式系統具有以下能力:經過恰當實現的應用程序能夠在不同廠商的多個平臺上運行,能夠與其它系統的應用程序互操作,并且能夠提供一致性的人機交互界面。這個定義是針對信息技術中的開放性而言的。開放式數控系統作為一種開放式系統,其核心是建立一種對數控系統的軟硬件開發商、機床制造商和最終用戶都開放的體系結構和標準,使數控系統不依賴于特定廠家,達到可互聯、可互操作、可重組和可互換的目的。根據開放式數控系統的要求,除它的硬件要采用基于標準總線的模塊化設計外,其軟件也應采用平臺技術、統一的標準規范(如標準的操作系統、通信機制、語言接口等)。
開放式數控系統應具有以下5個基本特點:
(1)由一系列邏輯上獨立的構成要素組成;
(2)提供系統各個構成要素與系統之間接口的完善規范和標準,來自不同廠商的符合規范的構成要素能夠構成一個完整的數控系統;
(3)能夠動態改變系統的拓撲結構;
(4)能夠實現與其它自動化系統與軟件模塊的互操作;
(5)能夠提供一致性好的人機界面。
因此,選擇通用的系統平臺是實現數控系統開放化的重要前提。
工業PC以其成熟的技術和穩定的性能已經在控制領域得到了廣泛應用,PC機開放的體系結構也為數控系統提供了一個很好的開放的硬件平臺,在工業PC的基礎上進行數控系統的開發已經成為大家的共識。而軟件平臺的選擇至今沒有形成一致的意見。
3 開放式數控系統的軟件平臺現狀
開放式數控系統的軟件平臺在很大程度上決定了數控系統的工作方式、工作效率及其開放程度。數控系統的軟件是在軟件平臺的基礎上對不同功能模塊的集成,通過分時共享或中斷技術來實現數控系統的實時多任務控制。目前大多數基于PC的數控系統采用DOS作為其軟件平臺,也有少數采用Windows9x,WindowsNT,Windows 2000等。鑒于這些操作系統各自的弱點,無法完全滿足開放式數控系統的要求。本文提出采用Microsoft公司的嵌入式操作系統WindowsCE.net作為開放式數控系統的軟件平臺。
3.1 WindowsCE.net簡介
自從1999年Microsoft公司推出嵌入式操作系統Windows CE3.0以來,由于在技術上取得了較大的進展,占領了一部分嵌入式操作系統市場。緊接著該公司于2002年4月推出了Windows CE.net,性能上有了更進一步的提高,如支持藍牙技術,支持TCP/IPv6,專用開發工具Platform Builder的改進等,引起了更大的關注,并在實時多任務控制領域得到了成功的應用。
[IMG=圖1 Window CE體系結構]/uploadpic/THESIS/2007/11/2007111414455833205Z.jpg[/IMG]
圖1 Window CE體系結構
[IMG=表1 Windows CE.net中斷延時數據表]/uploadpic/THESIS/2007/11/2007111414475662490D.jpg[/IMG]
表1 Windows CE.net中斷延時數據表
Windows CE.net并不是Windows 9x/NT/2000的一部分或縮減版本,而是Microsoft公司全新設計開發的一種模塊化(可組裝定制)、實時的、有強大通信能力的、搶先式多任務的32位嵌入式操作系統。它可以運行在多種體系結構的CPU上,內嵌了對多種通信協議和多媒體特性的支持,如無線設備、消費類電子、工業自動化裝置等都能采用其作為控制系統。
一個基于Windows CE.net的平臺主要由以下幾部分組成:分別是內核模塊、對象存儲/文件系統模塊、網絡與通信模塊、GWES模塊(圖形、窗口、事件子系統)。此外還有3個重要組成部分:驅動程序、設備管理器、OAL(OEM適配層,OEM Ad-aptation Layer)。圖1所示即為一個基于Windows CE的平臺的體系結構。
3.2 Windows CE.net的特點
WindowsCE.net具有以下特點,使得它適合作為快速開發開放式數控系統的軟件平臺:
(1)Windows CE.net滿足開放式數控系統的實時性要求。
盡管WindowsCE.net操作系統以前的一些版本提供了一些RTOS(實時操作系統)功能,但是自從Windows CE.net以來,內核的許多重大改變極大地提高了WindowsCE的實時性能。WindowsCE.net的實時性能主要通過以下技術實現:支持嵌套中斷,中斷處理分為中斷服務理性程序(ISR)和中斷服務線程(IST);高優先級的中斷(IST)并不需要等待低優先級的中斷服務例程(ISR)完成;256個線程優先級,可以靈活調度嵌入式系統的任務;通過固定高優先級中斷服務線程(1ST)的最大調度延遲改善線程響應時間;使用API函數CeSet Thread Quan tum和CeGet Thread Quan tum修改操作系統中線程的線程量;中斷服務子程序的響應時間非常短;支持信號量。
Windows CE.net的設計目標可以滿足95%的硬實時系統的要求。它1ms定時周期的誤差約為100us,在200MHz的X86系統下可達到501us。如果考慮其它因素,如CPU類型、時鐘頻率、總線速度等的影響,許多實際的基于WindowsCE.net平臺的響應時間更短。因此,對于數控系統中任務周期為4ms的插補和位控等實時性較高的線程,Windows CE.net完全可以滿足要求。實時能力的另一個中斷指標是中斷延時。表1列出了微軟在參考平臺上測得的中斷延遲數據。
(2)Windows CE.net滿足開放式數控系統的模塊化以及功能上柔性化的要求。
WindowsCE.net的模塊化設計使得開放式數控系統開發者和應用系統開發者能夠根據產品的不同需求定制自己的專用操作系統。既可定制一個只包括內核的,大小僅為幾百K的最小操作系統,也可定制包括所有組件的最大操作系統。Windows CE.net提供了良好的開發方式,可以方便地對內核進行增加與裁減。它完全滿足開放式數控系統的模塊化和功能柔性化的要求。
(3)Windows CE.net可以兼容市場上大量的軟硬件資源,具有強大的網絡通信功能。
Windows CE.net支持目前市場上的多數硬件設備,為開放式數控系統的硬件選配提供了極大的方便。Windows CE.net采用與Windows 9x/2000相同的編程模型,它的APl是Win32 API的子集,大約有600個APl函數,可以實現所有的嵌入式應用。Windows CE.net還支持當前流行的軟件技術和運行庫,如MFC、ATL、COM。Win32的兼容性可以很容易地把現有的Windows應用程序移植到Windows CE中。目前有許多開發人員精通Windows編程技術,他們只需學習很少的知識就可以開發Windows CE.net應用程序。
Windows CE.net具有強大的通信能力,廣泛支持各種通信硬件、局域網連接以及撥號連接,并提供與PC、內部網以及Internet的連接,包括用于應用級數據傳輸的設備至設備間的互連。完全能夠滿足開放式數控系統的聯網,尤其是與互聯網聯網,從而實現車間級和設備級網絡化制造的要求。Windows CE.net的一系列特點決定了開發基于Windows CE.net的數控系統,既可以提高系統的性能、可靠性,而且容易實現系統的模塊化、開放化、網絡化,還能提供友好的用戶界面和窗口工作環境,同時又具有經濟性。因此,研究基于Windows CE.net的開放式數控系統符合數控系統的發展趨勢,具有重大的現實意義。
4 基子Windows CE.net的開放式數控系統的實現方案
整個系統由一臺基于Windows CE.net的主機(聯想IPC 800A工控機)外加一些功能模塊組成。
Windows CE.net支持廣泛的硬件平臺和外部設備,因此可以較方便的為開放式數控系統組建基于Windows CE.net的硬件平臺。數控系統借助于各種插到總線插槽的數控模板、接口模板來完成系統功能。軟件上一般表現為定時往某一數控模塊的某一地址寫入數據或讀取數據。筆者采用的是美國Delta tau Data systems公司的PMAC(programmable Multi-Axis Controller)多軸運動控制卡。系統硬件組成如圖2所示。
開放式數控系統的軟件開發主要包括兩部分:即數控系統應用程序的開發和設備驅動程序(主要是數控模塊的驅動程序)的開發。由于Windows CE.net開發工具Platform Builder4.2只提供了最基本的一些設備驅動程序,而開放式數控系統中的各種板卡的驅動程序必須由自己開發。所有的Windows CE.net設備驅動程序都是動態鏈接庫(DLL),可以用標準的Windows CE API實現。Windows CE.net提供了兩種驅動程序模型:流接口驅動程序和本地驅動程序。經研究,認為數控系統硬件板卡的驅動程序符合流接口驅動程序的基本特點,可以用Platform Builder4.2開發。
數控系統是一個典型的實時多任務系統。系統應用程序中有許多任務,如位置控制、插補計算、PLC任務、程序解釋、用戶界面等。各任務或強或弱都具有實時性要求。從各任務對實時性要求的角度結合Windows CE.net的多任務實現方法,可將其劃分為:
(1)實時突發性任務:這類任務的特點是任務的發生具有隨機性和突發性,它們往往有很強實時性要求。它們主要包括故障中斷(急停、機械限位、硬件故障等)、機床PLC中斷等。
(2)實時周期性任務:這類任務是精確地按一定的時間間隔發生的。主要包括加工過程中的插補運算、位置控制等任務。為了保證加工精度和加工過程的連續性,這類任務的實時性是關鍵。在任務的執行過程中,除系統故障外,不允許被其它任務中斷。
(3)弱實時性任務:這類任務的實時性要求相對較弱,它們只要保證在某一段時間內得以運行即可。這類任務主要包括:人機界面管理、程序解釋等。
[IMG=圖2 開放式數控系統硬件組成圖]/uploadpic/THESIS/2007/11/2007111414525972324C.jpg[/IMG]
圖2 開放式數控系統硬件組成圖
[IMG=圖3 基于Windows CE.net開放式數控系統軟件結構圖]/uploadpic/THESIS/2007/11/2007111414551555010Q.jpg[/IMG]
圖3 基于Windows CE.net開放式數控系統軟件結構圖
圖3所示為基于Windows CE.net的開放式數控系統軟件結構圖。
對于數控系統應用程序,主要是完成插補計算、程序解釋、用戶界面、動態顯示等功能。可以利用eMbedded Visual C++4.0來完成應用程序的開發。充分利用Windows CE.net的多線程處理能力,將應用程序的各功能模塊分為幾個主要的線程,并根據實時性的不同分配以不同的優先級,由內核統一管理,協調運行。
5 結論
Windows CE.net內核緊湊小巧,靈活可靠,實時性強,能夠滿足開放式數控系統的需求。而且其軟硬件資源豐富,網絡通信功能強,容易實現系統的開放性和網絡化。因此研究與開發基于Windows CE.net的開放式數控系統具有重大的現實意義。
第二屆伺服與運動控制論壇論文集
第三屆伺服與運動控制論壇論文集