• 沒有找到結果。

遠距互動式CNC程式教學系統之研究(I)

N/A
N/A
Protected

Academic year: 2021

Share "遠距互動式CNC程式教學系統之研究(I)"

Copied!
56
0
0

加載中.... (立即查看全文)

全文

(1)

行政院國家科學委員會補助專題研究計畫

□ 成 果 報 告

5

期中進度報告

遠距互動式

CNC 程式教學系統之研究

Study on the Remote Interactive CNC programming

Lecturing System

計畫類別:

5

個別型計畫 □ 整合型計畫

計畫編號:NSC 91-2516-S-151-001-

執行期間: 91 年 08 月 01 日至 92 年 07 月 31 日

計畫主持人:鄭新有

共同主持人:

高永洲

計畫參與人員:

林彧甫、江冠紅

成果報告類型(依經費核定清單規定繳交):□精簡報告 □完整報告

本成果報告包括以下應繳交之附件:

□赴國外出差或研習心得報告一份

□赴大陸地區出差或研習心得報告一份

□出席國際學術會議心得報告及發表之論文各一份

□國際合作研究計畫國外研究報告書一份

處理方式:除產學合作研究計畫、提升產業技術及人才培育研究計畫、

列管計畫及下列情形者外,得立即公開查詢

□涉及專利或其他智慧財產權,□一年□二年後可公開查詢

執行單位:國立高雄應用科技大學 模具工程系

中 華 民 國 91 年 04 月 29 日

(2)

中文摘要

由於網路無遠弗界的學習環境及資訊科技(Information Technology)與 電腦輔助技術(Computer Aided Technology)之整合,促成科技學門教學的虛 擬化(Virtualization)及資源共享(Resources sharing),學生可以在電腦 上、網路上做即時的模擬,可以看到機器的動作,此種情形儼然已成為一種 未來教學之趨勢。 本計畫旨在研發一套能透過網際網路,遠距互動式之CNC 工具機程式教 學系統環境,計畫共分三年完成,第一年將建立提供互動式智慧型機制,讓 學生能夠立即獲得NC 指令格式及用法指導、加工參數條件查詢等,例如,可 利用Script 語言建立遠端協同學習環境,共同學習 CNC 加工程式;第二年建 立虛擬CNC 實體加工、NC 程式路徑模擬與 NC 路徑反向編輯功能,讓學生 可以直接由看到之路徑圖形直接改NC 程式,達到所看即所得之介面,並驗證 NC 程式設定參術與加工及機器參數之正確性,第三年則使用數位視訊與音訊 技術建立遠距互動式CNC 實體加工及實作教學,並包含遠距 NC 程式傳輸與 直接加工之實驗。 由於微軟在visual studio.net 程式開發系統的發展,使動態伺服網頁服務 asp.net 程式的開發更加容易及事件與處理常式關連的自動建立,使動態伺服 網頁進入物件導向模式來處理而減少互動服務時的資訊流通量及處理的效 率,因此本計畫目前一方面在微軟作業系統上使用ASP.net 建立 CNC 程式學 習架構。 另一方面由於三層式結構(3-Tier Structure)在網際網路的使用具有強 大整合功能而廣受重視,在三層式結構內所有的服務要求是由客戶端直接提 出,並透過網路先送到仲介者,再由仲介者依服務的需求來安排適當的伺服 器做處理,再由伺服器將處理結果回覆給客戶,再加上物件管理組織

OMA(Object Management Group)制定了共通物件請求經紀架構(Common Object Request Broker Architecture)的標準,即 CORBA 標準,因而加強了軟體的 可攜性(Portability)、再利用性(Reusability)、以及互通性

(Interoperability,可以讓伺服端容易地以「一群」伺服器來提供服務, 因此允許一應用程式跟另一個應用程式進行溝通,而不用管另一個應用程式

(3)

究竟在何處,即所謂的跨平台、跨作業系統、跨程式語言應用環境,所以本 計畫將另外發展以 CORBAR 架構之 CNC 教學資源分享程式,目前已經完成以 VB 程式發展環境架構平台。 本計畫目前另外已開發完成線架構(wire-frame)之 CNC 程式路徑模擬系 統,除模擬加工路徑外,還可偵測撰寫的 NC 程式是否有錯誤,並指出錯誤的 位置及錯誤的原因,並模擬NC 銑床控制器之各項功能,如刀具補正、單節操 作、選擇跳躍、各種固定循環、鏡射、各種顯示(如轉速、進給率、刀具編 號、補正號碼)、加工時間計算等功能。 因此本計畫之執行,除了可以彌補昂貴教學設備資源之不足的窘境外,對 於發揮 CNC 工具機教學之效果尤其重要,未來將結合控制器的人機介面 (MMI),將 NC 工具機整合成遠距製造、教學合為一體,以減少工具機業者 的教育訓練費用,並且將可更有效的培養工業界可以立即聘用之人員,以提 升製造業之競爭力,所培養出之人才,都將可透過網路技術之成熟運用,具 備跨國製造與全球製造之世界觀,對於台灣未來製造技術之發展應會有許多 的貢獻。

(4)

Abstract

Key Word: Virtual machining , Remote interactive lecturing system , CNC lecturing system , Remote teaching, CNC tool path simulation

The learning environment in engineering sciences has been virtualized resulted from the synergy of borderless network technology, information technology and computer-aided technology. Furthermore, through the sharing of resources based on the Internet, students can now conduct real time simulation and practices including both software and hardware monitoring and operation through networked computers. This has been a trend in the future lecturing.

The purpose of this project is focused on the development of a remote interactive CNC lecturing system environment on NC codes underlying the Internet. This is a three-year project. Year one of this project will construct an interactive intelligent mechanism for students to facilitate the NC code format, application instruction and searching of machining parameters. For example, script languages can be used to establish a remote collaborative learning environment for CNC programs. Year two of this project will establish a system that can support virtual CNC cutting path verification, real time solid model machining and reverse editing on NC codes. Students can use the developed system to view the cutting path of their own NC programs and verify the cutting parameters and toolpath through the WYSWYG (what you see is what you get) interface. Digital video and audio technology will be included in the Yea three of this project towards remote interactive CNC solid machining, CNC code transmission and real remote machining.

The user friendly services supported by the latest “visual studio.net” has been considered in the system development of this project to enhance dynamic server pages supported by “asp.net” to ease the information transmission and improve the efficiency on the data processing. On the other hand, three-tier structure has also been included owing to its powerful and popular integrated functions.

(5)

CORBA (Common Object Request Broker Architecture) from the OMG (Object Management Group) has therefore been adopted to enhance the portability, reusability and interoperability of the developed system to support platform, operating system, programming languages and network transparent services. A prototype system underlying VB and CORBA has been developed so far.

This project has also developed a software system that can support wire-frame CNC tool path simulation and verification. Errors and modification of the CNC program can also be supported by the developed system. The developed system can also emulate the functions of the CNC controllers such as tool compensation, single block operation, optional skip, canned cycles, mirrors, display of cutting parameters, machining times, etc.

To sum up, the output of this project is expected to be able to supplement the awkward situation of the existing common problems such as inadequate resources on machine tools and other teaching equipments. This is especially important on the machine tools related classes. The man-machine-interface (MMI) linking the machine controllers and the operator will be implemented in the future to facilitate an integrated system on remote machining and teaching. The education and training costs will then be greatly reduced and the learning curves from a novice to an industry acceptable staff will be shortened. The competitive advantages will then be improved through the development of this project in integrating network technology and information technology, etc. The engineers using the developed system will naturally build up world outlook in the global village. The developed system is therefore beneficial to manufacturing industry in Taiwan in the future.

(6)

一、 前言: 由於跨國性企業數急遽增加與跨國合作盛行,預期二十一世紀市場競爭 將因全球化、數位化、電子化、速度化與自由化而加遽;不僅企業教育市場 的競爭亦邁向白炙化,尤其進入 WTO 以後更是自由化,人們的學習環境將進 入多元化;透過網路無遠弗界的學習環境,從學校到家裡、從早上到晚上, 幾 乎 任 何 時 間 任 合 地 點 , 只 要 有 空 只 要 想 到 均 可 學 習 ; 透 過 網 際 網 路 (Internet)、資訊科技(Information Technology)與電腦輔助技術(Computer Aided Technology)之整合,促成科技學門教學的虛擬化(Virtualization)及 資源共享(Resources sharing),學生可以在電腦上、網路上做即時的模擬, 可以看到機器的動作,此種情形儼然已成為一種未來教學與研究之趨勢。 就數值加工技術與教學而言,數值控制程式碼的執行結果、偵錯、輔助 撰寫及刀具的切削路徑模擬等提升學習能力、學習興趣、縮短學習時程、防 止程式錯誤導致的撞機事件之 NC 工具機的虛擬加工教學,已是機械學門教學 必然的趨勢。 隨著資訊科技與電腦輔助技術的發展,若能發展一套 NC 工具機的教學 模擬系統,並可透過網路的應用,建構網路的學習環境,對 NC 工具機的教學 的提昇將有莫大的效果。NC 工具機的教學主要是讓學習者能熟悉 NC 程式語 言及 NC 工具機的加工製程,使其能使用NC 碼撰寫出零件之加工程式,這是學 習電腦輔助設計與製造(CAD/CAM)技術之前必須先修習的課程,其學習過程中 最主要的障礙是由於設備的昂貴再加上擔心設備可能不當使用而招致危險或 破壞,因此無法提供足夠的機器讓每一個學生隨心所欲地實地去演練,因而 一個學期下來學生單獨上機的機會可能連一次都排不上,頂多也只有分組上 機學習,所以上完課程後學生根本很難真正學到課程之主要內容,更談不上 獲得經驗,或者把以前學習的加工技術及經驗融入NC 程式中。 因此本計畫旨在提昇 NC 工具機的教學運用之效能,將研發一種能透過網 際網路(Internet),運用分散式資源(Distributed resources),以建構一遠距 NC 工 具機的教學應用系統之環境;此一環境將提供座落於遠端之智慧型NC 工具機 的教學模擬軟體與NC 碼撰寫的相關問題諮詢資料庫,協助學習者應用遠端之 電腦輔助教學模擬系統,以輔助 NC 碼之建構、NC 碼之格式查詢、NC 碼之

(7)

偵錯、NC 加工路徑之即時模擬及錯誤之位置與更正之建議、加工路徑之分 析、製程條件設定等教學模擬系統,並導入虛擬同步工程(Virtual Concurrent Engineering)的方法與技術[1],使邁入電子化、虛擬化與技術資料共享的目標。

(8)

二、研究目的: 數值控制工具機的造價昂貴,以及擔心因為程式與機器操作的不熟所造成 機具的損壞及人身之安全,因此學生均難得親自上機實習,因而造成學習的 成效不佳,再加上電腦與網路科技的成熟,因此發展虛擬機器以輔助機具之 不足以及機器與人員的安全是為數值控制工具機的最佳選擇。 過去之 CNC 工具機教學,大多是在學習 CNC 指令,並無法把真正加工的 技術融入 NC 加工程式中,因此上過 NC 教學課程亦只能加工像壓克力等模型 材料,真正拿到模具用材料所設定之加工條件就根本無法適用,因此若能讓 學習者在學習撰寫 NC 程式的過程即有製程條件設定的及時查詢或異地同學 老師的協同運用(Collaborative in time Operation through Internet),將可使CNC 工具機教學發揮到最佳效果。 為充分運用網路資源與環境,提供CNC 工具機教學之運用,規劃本計畫 之主要目的如下: 1. 遠距 NC 工具機的教學應用系統之環境之建構:將 NC 工具機的教學模擬 系統,擴展於網路環境中可異地(Different Location)應用之架構。 2. NC 工具機的教學模擬系統之開發:NC 碼之建構、NC 碼之格式查詢、NC 碼之偵錯、NC 加工路徑之即時模擬及錯誤之位置與更正之建議、加工路 徑之分析等。 3. 製程知識分享:製程參數與條件共享機制之建立。 4. 協同式運作模式之建立:探討建立多功能團隊協同式同步工程運作模式, 共同完成程式設計與偵錯。 5.分散式運作模式之建立:探討建立多分散式(Distributed)運作模式,藉由遠 端製程知識資源共享,完成程式設計與偵錯。 6.系統整合:完成上述協同式暨分散式運作架構之建立。

(9)

三、文獻探討: 電腦與網路科技的發展對教學方法與數值加工技術已有許多創新的應 用,這些應用的研究包括資訊科技的研發如資源共享、協同合作、分散式運 作;另一方面則朝向將原有製造技術透過透過網路的創新應用,如利用網路 作遠端控制的數值加工技術、數值加工機的遠端維修與監控技術;其不僅使 用有線的固接式網路甚至使用無線的網路如透過網路 FTP 來大量快速的傳輸 NC 程式或透過藍芽的無線網路來傳輸 NC 程式。另外誇平台語言(如 JAVA) 之物件導向化技術也逐漸成熟,且其亦提供分散式控制之共通物件請求經紀 架構(Common Object Request Broker Architecture ,CORBA)等等之相關應用 在國內外亦以熱烈展開,這些應用也可適用於數值加工教學,其說明如下: 國內方面像黃河銓,陳響亮,鄭弘裕等[2,3],對遠端網際網路加工做研究,其 做法是透過網際網路由主控端(client)傳送指令、訊息、及利用遠方被控端 (server)之 PC-Based 控制器所提供之函數庫,在定期內傳回訊息、座標,以便 轉換繪製成刀具運動之軌跡,或進行錯誤偵測;黃榮堂,陳正光,陳雙源, 李逸群[4],發展 NC 工具機之遠距診斷維修系統;游顯瑚、李炳寅、曾翔明、 鄭家偉(國立虎尾技術學院機械製造系)[5],則針對車床切削參數,透過網路 化的機制讓遠方的使用者能對 CNC 車床作最佳切削選項;李榮顯、蔡、高 [6,7],提出遠端虛擬切削驗證遠端虛擬製造等研究;羅仁權、張智強[8],利 用智慧型代理人觀念應用於塑膠射出模具之電子化自動化;鍾興臺[9,10],亦 針對網路智慧型助理做研究;林則孟、吳建發、蔡明標[11](清華大學工業工 程與工程管理系),使用代理人為基之分散式製造與搬運系統協調,足見智慧 型代理人機制應用的可行性;蔡志成、游佳偉[12](國立中興大學機械工程 系),提出以支援網際網路分散式協同設計之數位化傳動元件型錄探討,這些 分散式、代理人機制與協同式在資源及作業模式之應用均已成熟運用。 國外在遠方及協同式的相關技術之研究文獻有 K.W.Young (CTC 公司) [13],利用 UML 語言發展工具建立虛擬機器抽象類別(class),來簡化處理複 雜的製造問題;Y. C. Kao [14] 發展協同式 CAD/CAM 及遠端加工系統;在運 用代理人機制的技術研究有 Mori, Toshiki 、 Cutkosky、Ozawa 等人的研究 [15,16],由此可知在國外運用網際網路環境來開發加工製造等各種技術已逐漸

(10)

成熟,因此本計畫提出運用此類技術於數控工具機之學習,建立一個不受時 間及空間之學習環境,以提昇教學效果。

(11)

四、研究方法: 本計畫共分三年執行,各年度之研究方法分述如下: 第一年度:(九十一年八月至九十二年七月) 計畫主題:遠端CNC 程式互動式教學資源系統架構之建立 研究方法: 第一年主要是在建立遠端CNC 程式互動式教學資源系統架構,因此先分 析 CNC 程式特性找出學習項目,並依此項目建立學習物件類別,這些將關連 到知識、語法、提示、偵錯等資料庫、知識庫,以便作為 NC 程式撰寫之指導, 另外建立協同學習之協同方法讓多人共同發展一 NC 程式,或討論該程式寫作 方式,這樣可以增加學習類去與效果。至於撰寫出之 NC 程式,則轉到下年度 開發之模擬系統去做偵錯、編修、虛擬加工驗證再到第三年發展之實作測試, 如此才能完成整個教學歷程,茲分點敘述如下:

(1). 利用 Scripting(VBScript or JAVA Script)語言建立互動式 CNC 程式之建 構、單語查詢系統、偵錯之處理、錯誤更正之提示等近端系統架構。 (2). 分析 CNC 程式學習架構,建立以物件導向之學習物件類別(Class),以便

建立關聯式資料庫,用於建立遠距之學習環境。

(3). 利用 CORBA(Common Object Request Broker Architecture)架構建立提 供互動式智慧型代理人機制之CNC 程式學習資源分享系統架構。 (4). 建立以物件導向之 CNC 學習物件類別(Class)之關聯式資料庫。 (5). 建立近端協同基準,以便建立多人協同學習環境。 (6). 建立遠端(Server) 之 NC 查詢、偵錯、更正等系統架構。 第二年度:(九十二年八月至九十三年七月) 計畫主題:遠端虛擬CNC 加工及 NC 程式模擬與安全驗證系統之研究 研究方法: 第二年主要是在建立遠端虛擬 CNC 加工及 NC 程式模擬與安全驗 證,因此需先 NC 程式解碼後之格式紀錄,又因需要針對 NC 程式模擬後 之路徑作反向編輯所以解碼後之中間資料結構做適當之規劃,接下來則可

(12)

對整個NC 程式進行解碼,再將解碼後之路徑資料繪製圖形展示給使用者, 要將NC 程式傳送到遠方則可透過網路 FTP 來傳送,或者將解碼程式至於 主控端(Client),當模擬到語法、格式完全無誤後即可進行虛擬工具機之實 體切削驗證,以防實際加工產生撞機或其他沒有預期之錯誤,茲分點敘述 如下: (1). 進行 CNC 機器之插值(interpolation)運動之分類編碼,如快速定位運 動、直線插值運動、固定循環運動…等,以便進行加工路徑之運動模 擬以及由顯示之路徑直接修正加工程式之智慧型反向編輯工作。 (2). 將 NC 程式解碼,並依分類編碼進行結構化資料轉換,以便進行加工 路徑分析、模擬以及反向編輯。 (3). 利用一般之程式語言開發在客戶端或在伺服端繪製 NC 路徑圖形。 (4). 利用解碼資料進行刀具路徑之補償(Tool Compensation),並比對補償值 與刀具代碼,以驗證加工之安全性。 (5). 利用解碼之結構化資料繪製 NC 路徑圖形讓使用者可以在螢幕上以直 覺式點選加工路徑而直接由圖形做NC 程式之逆向編輯。 (6). 連結遠端實體切削程式庫將解碼過資料進行實體切削驗證。 第三年度:(九十三年八月至九十四年七月) 計畫主題:遠距CNC 機器互動式教學與實作整合環境之研究 研究方法: 第三年主要是進行遠距 CNC 機器互動式教學與實作整合環境之建 立,在此主要是實際測試代理人機制之CNC 程式學習方式,並增強資料庫 及知識庫之發展,另外是針對經過模擬及虛擬切削驗證無誤之 NC 程式準 備進行實際加工教學,因此尚需核對CNC 機器刀具參數、補正參數設定與 NC 程式呼叫參數,以免發生意外。另外由於 CNC 機器的昂貴,且具危險 性因此在教學尚可透過數位影像技術讓每位學生均可清楚地觀察整個實驗 過程,而且透過網路互動機制,學生可隨時與現場技術人員做當面發問與 解答,經過如此之學習歷程,學生自然可以很快就學會整個 CNC 程式教

(13)

學,而進入獨立操控之階段,茲分點敘述如下: (1). 代理人機制之 CNC 程式學習系統測試及資料系統之加強。 (2). 遠距協同式 NC 程式學習系統測試。 (3). 利用遠端 CNC 機器刀具參數、補正參數設定與 NC 程式呼叫參數之比 對,做NC 機器實作前之安全檢測。 (4). 利用 FTP 對 NC 程式做遠距直接傳輸加工之測試。 (5). 在 CNC 機器端裝設數位視訊設備,以便傳回加工實況作遠距加工之監 測及提供遠端實況教學,以彌補教學設備之不足。 (6). 互動式遠距 CNC 機器操作教學機制之建立與測試,讓學生不僅可觀看 實驗情形,也可以與現場技術人員做互動教學。 五、結果與討論: 本計畫在CNC 程式互動式教學資源系統架構上採兩組伺服系統,分別用

(14)

於NC 知識、語法、提示等資料庫、知識庫之查詢,以便作為 NC 程式撰寫之 指導,而另一伺服系統擬則用於 NC 程式之模擬驗證。使用者撰寫 NC 程式時 直接將 NC 程式儲存於 client 端,如遇到問題可先進入到知識、語法、提示 等資料庫、知識庫查詢,並可在連結到模擬驗證系統主機直接執行或下載模 擬程式到 client 端執行模擬,但不論直接執行或下載執行均須向伺服端註冊 取得使用權限與使用期限,目前此系統以微軟之 asp 及 asp.net 開發。另外 本計畫亦進行發展以 CORBAR 架構之 CNC 教學資源分享程式,目前已經完成以 VB 程式發展環境架構平台。 目前本計畫亦已開發完成線架構(wire-frame)之 CNC 程式路徑模擬系統, 除模擬加工路徑外,還可偵測撰寫的NC 程式是否有錯誤,並指出錯誤的位置 及錯誤的原因,並模擬NC 銑床控制器之各項功能,如刀具補正、單節操作、 選擇跳躍、各種固定循環、鏡射、各種顯示(如轉速、進給率、刀具編號、 補正號碼)、加工時間計算等功能。以下將分CNC 程式互動式教學資源系統、 CORBAR 架構及 NC 模擬系統三方面進行說明目前研究結果:

(15)

(一)CNC 程式互動式教學資源系統 1、NC 知識查詢系統的組成: Input.htm(輸入使用者資料)、Registry.htm(基本資料的輸入)、 registry.mdb(儲存使用者的資料庫)、Simulate.asp(CNC 程式指令與模 擬)、CNCinstruct.asp(NC 指令查詢)、WebForm1.aspx(NC 模擬)、 speedy location.asp(顯示 G00 快速定位) Input.htm Registry.htm registry.mdb Simulate.asp CNCinstruct.asp WebForm1.aspx speedy location.asp 模擬 (實線):使用者操作的動作 (虛線):程式的動作 CNC 指令查詢 程式模擬 G00 快速定位 使用者的確定 使用者的基本資料確定

(16)

(2)、執行進入到NC 知識、語法、提示等查詢系統所展示的畫面如圖 1-1 所示:(Input.htm) 圖1-1 進入 NC 查詢系統之畫面 (3)進行登入或註冊,圖 1-3 為註冊之畫面,使用者需將就讀學校、系 別、姓名及學號正確輸入,以便管理,因為系統資源僅供學生使用,以免負 荷過重:(Registry.htm) 圖1-3 註冊之畫面 輸入帳號及密碼後按確定鈕,會 執行並開啟下一個網頁 輸入基本資料後按確定鈕,執行 儲存並開啟下一個網頁

(17)

(4)NC 資料庫查與 NC 程式模擬,包含 NC 字語、相關知識及製程條件 等查詢圖 1-4 為進入 NC 資料庫查與 NC 程式模擬的畫面:simulate.asp 圖1-4 NC 資料庫查與 NC 程式模擬進入畫面 (5)NC 資料庫查目前僅完成建立指令知識部分,尚有相關知識庫及製程 參數等資料庫尚未建立,網頁為CNCinstruct.asp,圖 1-5 為起使畫面,圖 1-6 為查詢快速定位之畫面,圖1-7 為查詢快 NC 速定位之畫面,圖 1-8 為進入 NC 程式模擬畫面,進入 NC 程式模擬時系統會詢問要直接執行或將模擬系統 下載到client 端儲存後再執行;由於 NC 程式模擬系統所耗費之計算資源相當 龐大,而且時間相當沈長而模擬系統之程式邏輯亦相當複雜,再加上HTML 等網頁語言並未支援繪圖功能,原本計畫使用JAVA APPLET 來撰寫繪圖畫 面,並連結script 語言,但因程式開發時使用太多種語言會造成效率降低,因 此決定以獨立程式開發再進行連結或透過CORBA 做跨系統或跨平台之呼叫 (下一節介紹),將不會有再使用VB6 或 VB.Net 或 C++等困擾,圖 1-9 為進 入模擬系統之起始畫面執行情形,圖1-10 為選取 client 端 NC 程式的畫面, 點選指令查詢會進入查詢畫 面,點選NC 程式模擬會連結 到模擬伺服主機的網頁

(18)

圖1-11 為檢測及模擬 NC 程式的畫面,途中顯示為 NC 加工之路徑。

圖1-5NC 資料起使畫面

圖1-6 查詢快速定位之畫面

點選想要觀看執行的執行檔,會 執行並開啟點選的網頁

(19)

圖1-7 進入 NC 程式模擬畫面

圖1-8 進入模擬系統之起始畫面執行情形

點選進入模擬的按鈕,程 式會進入模擬系統

(20)

圖1-9 進入 NC 模擬系統的畫面

(21)
(22)

(二) CORBA 架構與 VBORB 的建構 2-1 分散式系統 今日企業組織面對激烈競爭的環境,面對不同廠商所提供的硬體、軟體、 網路及資料庫,絕大多數的企業都有管理、整合異質環境(heterogeneous environment)的問題[17], 因此,許多軟體開發人員開始以分散式物件技術 (Distributed Object)來解決所面臨的問題。 分散式系統隨著物件導向技術(Object-Oriented Technology)的引入,而有了分 散式物件(Distributed Objects)技術的產生。簡單的說,分散式物件即是將傳統 以程式區塊(Program)的觀點來看分散式系統,(例如主從式架構中的用戶端程 式與伺服端程式)轉為由物件的觀點來看分散式系統,在分散式物件的世界 裡,物件之間的通訊已不再有程式的界限[18]。 自從主從架構 (Client/Server)開始風行以來,強調比中央集權式 (Centralized processing)更有彈性、成本更低的分散式處理(Distributed processing)也隨即成為大家所矚目的焦點[19]。這種將過去大型電腦

(Mainframe)才能勝任的工作以及服務,取代成以區域網路(Local Area Network) 架構為主的分散式計算環境(Distributed Computing Environment),提供了一種 解決傳統大型電腦系統不易擴充、成本龐大及不易維護管理等缺點的處理方 式。把程式分散在各個伺服器(Server)上執行,對客戶(Client)端而言,不須花 費大量的軟硬體投資即可得到令人滿意的成果。 近年來網際網路(Internet)的使用如日中天,三層式結構(3-Tier Structure) 也因為全球資訊網(World-Wide Web) 的強大整合功能而廣受重視。所謂的三 層式結構就是在傳統二層式結構,客戶與伺服器之間再增加一個仲介者 (Agent)。在三層式結構內所有的服務要求也是由客戶端提出,透過網路先送 到仲介者,再由仲介者依服務的需求來安排適當的伺服器做處理,再由伺服

(23)

器將處理結果回覆給客戶。全球資訊網的網站伺服器(Web Server)具有相當強 的整合功能,在三層式結構內正好可以扮演仲介者的角色。 簡單的說,三階層式的模型就是在原來的用戶端(Client)與伺服端(Server) 中間,插入一個中介層 (middle layer),而三層式架構所帶來的好處如下: 對用戶端而言,三層式架構可以省去同時面對許多種不同伺服端的窘 境。用戶端可以用一致的程式界面與協定與中介層溝通,伺服端的異質 性,則被中介層隱藏住。 對伺服端而言,三層式架構免除了直接面對所有用戶端的情形,由另一 種角度來看,中介層的存在,可以讓伺服端容易地以「一群」伺服器來 提供服務,而分散單一伺服器的負擔。 目前分散式物件的技術主要有以下三種:

1. 微軟(Microsoft)所提出的分散式物件模型 (Distributed Component Object Model, DCOM)[20],DCOM 所定義的是 binary level 的分散式 物件標準,任何符合DCOM 所規範的 binary code,都可以使用 DCOM。 2. Sun Microsystems 的 Java RMI(Remote Method Invocation)[21],它是

Sun 所提出結合程式語言及虛擬機器的分散式物件環境。它不像 CORBA 與DCOM 可以用多種不同的程式語言來發展程式,但透過其虛擬機器, 也可以非常容易地跨平台操作。

3. 物件管理組織(Object Management Group, OMG)[22]的共通物件請求 經紀架構(Common Object Request Broker Architecture, CORBA)[23], 它是由OMG (Object Management Group)所定義的標準,其規範的層次 在於物件界面的層次,物件間的界面以界面描述語言(Interface Definition Language, IDL)來描述。

(24)

--- DCOM Java CORBA 跨平台 差 優 優 系統設定 複雜 易 易 動態呼叫 佳 不佳 佳 meta data 還算完整 無 完整 特定程式語言 否 是 否 系統整合能力 不佳 不佳 強 開放式標準 是 是 是 由另一種角度來看,由於物件本身具有強烈的自主性,物件系統天生就具 有分散的特質,在分散式物件環境下,物件之間的溝通,具有以下特性: 1. 以交換訊息的方式溝通。 2. 溝通訊息的方式可以是同步(Synchronous)或非同步(Asynchronous)的方 式。 3. 要能夠瞭解彼此間交換的訊息的意義,才能夠進行溝通。 4. 物件本身必須公開讓其它物件溝通的窗口,這些窗口就是該物件的界面 (Interfaces)。 5. 分散式物件即以其界面作為其型別(Type),以茲區分不同型的物件。 6. 物件彼此之間只須知道對方的 Object References 就可以溝通,不必知道 其真正的位置。 7. 分散式物件具有物件導向系統的一切特質。

(25)

2-2 CORBA 架構

物件管理組織(Object Management Group, OMG) 在一九八九年由十一 間公司合作開始,是一個由會員贊助而成立的非營利性組織,會員由除了微 軟以外的八百多家公司共同組成,其中包括了3Com、IBM、SUN、HP、DEC、 Philips …等等,OMG為了解決在軟硬體產品數量急速增加而導致之間的溝通 出現問題的情況,因而於一九九一年十月制定了CORBA 1.0標準,簡而言之, CORBA允許一應用程式跟另一個應用程式進行溝通,而不用管另一個應用程 式究竟在何處,即所謂的跨平台、跨作業系統、跨程式語言應用環境。因此 CORBA可謂目前在眾多分散式物件標準中最受工業界支持的一個標準。 CORBA的目的在推廣物件導向(Object-Oriented)之觀念及使用,並致力於 加強軟體的可攜性(Portability)、再利用性(Reusability)、以及互通性 (Interoperability)等[24]。 OMG是負責制定規格,而不是發展可執行的系統,其所制定的規格中, 有一個是用CORBA將各個規格、服務、功能…...整合在一起的規格,此稱為 OMA(Object Management Architecture)[25]如圖2-1所示,圖中說明有那些元件 及這些元件間的關係、功能與架構、輸入參數、輸出參數,至於要如何實現, 則完全不提[26]。 CORBA Services:為CORBA功能的加強,其中所定義的服務可使得發 展者更容易對其所建構的軟體元件進行管理與分享的工作,如Naming Services就是其中一種。 CORBA Facilities:是一群提供應用於Application上的元件規格,這些 元件的功能大都為處理使用者介面,工作流程等方面。 CORBA Domain:提供用以發展特定領域之應用程式的規格,如醫療、 通訊、金融。 CORBA Applications:是一群用以發展特定應用程式之物件的集合, 基本上,每個使用CORBA所寫成的應用程式,皆屬於CORBA Application,故使用者所定義的物件,皆歸納於此類。

(26)

至於訂定這些規格所使用的語言,是由OMG所創造出來的IDL(Interface Definition Language)所寫成的,下面另外作介紹。

圖2-1 Object Management Architecture

物件需求經紀(Object Request Broker, ORB)可視為一種軟體的匯流排 (Software bus),OMG決定CORBA中的各個元件及其規格後,軟體製造商便可 依此規格做出ORB(Object Request Broker),各廠商只要遵循ORB對外的界面 標準,至於內部可以由各廠商自行決定實作ORB的方法。有了ORB後,它的 發展者才可用此做出各種不同功能的Application。那到底ORB是什麼呢?說穿 了ORB就像Socket一樣,負責將訊息傳送到目的地,只不過ORB可於不同環境 (硬體、OS、網路),相異的Application間進行傳遞。有了ORB才可不必在乎電 腦是那一型的,作業系統是那一種的,物件位於何處,物件是用什麼語言所 做的。 利用CORBA所建構的應用程式之各項元件及其關係如圖2-2所示,而ORB 負責連接不同的物件,並可達成以下幾點: 1. 物件位置的通透性(Location Transparency)。 2. 動態或靜態的物件呼叫(Invocations)。 3. 可用高階的物件語言來使用ORB(Language Binding)。 4. 物件間聯繫的安全性,以及其它物件導向應有的特性。

(27)

ORB Interface:是一群提供通訊方面的Function Call所組成,其功能大部 份為ORB的初始化與取得一些物件之位址。

IDL Client Stub:是由IDL compiler所自動產生,其使得Client可使用遠 端物。

IDL Server Skeleton:是由IDL compiler所自動產生,其使得Server在接收 到Request時,得以決定由Server中的那個物件進行處理。

Dynamic Invocation Interface(DII):其使得Client可使用遠端物件,而不 需有該物件的Stub。

Dynamic Skeleton Interface(DSI):其使得Server在收到Request時,能夠沒 有物件的Skeleton,而能依所收到Request之名稱,參數來決定由那一物 件之操作進行處理。 Object Adaptor:用於管理Server端物件之用,其功能有:產生物件的 Reference,進行物件的複製,清除不需要的物件所佔用的記憶體,以及 其它瑣碎且不重要的例行公事,並提供基本的保密功能。 一般而言,由於CORBA物件可用多種程式語言所作成,但各式程式語言 所支援的資料型態皆不同,所以,在建構CORBA物件時,皆必須先用IDL將 物件定義出來後,交由IDL Compiler處理,以產生將某程式語言所使用的資料

Clienet Object Implementation

ORB Interface

Object Request Broker Code

IDL Client Stub Dynamic Invocation Interface IDL Server

Skeleton AdapterObject Dynamic

Skeleton Interface

(28)

型態轉換為CORBA的資料形態的元件。此即為Client Stub;反之,將CORBA 的資料型態轉換為某程式語言之資料型態者,為Server Skeleton。

2-3 界面定義語言

界面定義語言(Interface Definition Language, IDL)是CORBA為了能夠用 唯一的方式描述一個物件的界面(Interface),所以才定義出來的,透過一致的 界面定義,使物件的界面(Interface)與物件的實體(Implementation)可以獨立開 來,當程式開發者在選定使用CORBA的語言後,可以經由適當的IDL編譯器 將IDL轉換成該語言(如圖2-3)。利用規範Interface來定義一個Object。Client可 以經由IDL的定義來知道Object有哪些Method可以用,同時知道如何去Invoke 這些Object。利用定義IDL,我們就可以把一個CORBA的Object實際對應到一 個特定的程式語言了。

IDL

IDL

Compiler

撰寫程式

JAVA

VB

C/C++

• • • • • •

Client

Server

圖2-3 IDL 使用方法示意圖

(29)

2-4 Naming Service

Naming Service是屬於在三層式架構中中介層 (middle layer),主要的 功能,是依某元件名稱來提供元件的Renfrence,讓Server端可以將自己要分 享物件的Method在NameServer上進行註冊,也可以讓Client端在NameService 上面尋找需要物件的Method資料,所以他提供的服務可使得系統發展者更容 易對其所建構的軟體元件進行管理與分享的工作,圖2-4為Name Service在系 統架構中所扮演之功能示意圖。

NameService

Server 1 Server 2 • • • •

註冊物件的

Reference

Client 1 Client 2 • • • •

請求物件的

Reference

接收回覆的

Reference

圖2-4 Name Service的功用

(30)

2-5 VBOrb

VBOrb是一個提供Visual Basic利用CORBA架構來和其他程式語言所撰寫 的程式進行溝的的橋樑,一九九九年七月由德國的Martin Both[27]所撰寫出 來,剛開始只是為了測試在Visual Basic中使用IIOP的通訊協定。VBOrb是利 用Visual Basic 5所撰寫的,可以支援Visual Basic 5.0以及Visual Basic 6.0(VB.NET暫時不支援),IDL2VB的Compiler程式是由Java所撰寫的。你可以 利用Visual Basic來撰寫一個CORBA架構的Server及Client,並且透過VBOrb 去和任何語言所撰寫的CORBA程式溝通,Client可以呼叫使用遠端電腦所提供 的物件功能,而遠端的電腦也裡以透過Call Back的方式來使用本端電腦所提 供的物件功能(如圖2-5)。VBOrb為免費軟體,目前的最新版本為2002年12月 所發表的1.20版,相關資訊及範例程式可以在http://www.martin-both.de/ 取得。預計2003年6月會再推出新版本。 VB-Server VB-Client

V

B

O

R

B

?

?

O

R

B

Java-Server Java-Server Java-Server • • • • • 圖2-5 VBOrb 的功能示意圖 利用作者用Java語言所開發的IDL2VB程式,可以將已經定義好的IDL檔 案,Complier成給VB使用的模組,這樣一來就可以讓VB的程式跨進CORBA的應

(31)

用運領域了。使用方法介紹如下: X因為IDL2VB是利用Java所開發的,所以要先自行安裝Sun的J2SDK程式。 Y將VBOrb中的idl2vb.bat、idl2vb.jar複製到Java安裝目錄中的jre\bin中,或 者自行先設定好系統中Path的相關路徑。 Z利用文字編輯器修改idl2vb.bat中,將IDLVB的路徑指定到存放idl2vb.jar 檔案的路徑。

[鍵入 idl2vb 檔名.idl (可以轉出給Client端使用的程式模組)。 \鍵入 idl2vb –S 檔名.idl (可以轉出給Server端使用的程式模組)。

2-6 以VBOrb 建構分散式系統 寫CORBA程式的第一步,要寫IDL程式,再根據這個IDL compile程式轉 換出來的Stub和Skeleton檔來寫Client和Server程式,即可以建構出一個透過 CORBA架構來溝通的程式了(如圖2-6)。

IDL

檔案定義

IDL

Complier

Stub

Skeleton

Coding

Coding

Server

Client

圖2-6 建構CORBA程式流程圖 當程式部分完成後,結著就可以透過如圖2-7所示的步驟,讓C端程式去呼叫 使用S端所提供出來的功能了。 X在Client取得遠端物件的Reference後,即可進行遠端物件的使用,並將

(32)

對遠端物件的Request傳送出去。 YRequest傳送出去前,會經由該遠端物件的Stub將其轉換為CORBA世界 的基本資料型態。(如:將VB的single轉換為CORBA的float)後再傳 給ORB。 ZORB在收到由Stub所處理過的data後,就將之轉換為ORB之間彼此溝通 的message,並將之送出。 [遠端的ORB收到message後,便將之拆解,把內含的data取出,並送給 Object Adaptor。 \Object Adaptor將所收到的data轉為對物件的Request,送到物件的 Skeleton並決定是否要再複製一個物件的Thread,以處理之。 ]物件的Skeleton依照本身的內部資料,將Request的各部份於以分離出, 並將之轉換為程式語言的基本資料型態,如:將CORBA的float轉換為 VB的single後,即送到物件本身進行處理,物件處理的結果,由反方向 傳回(物件的Request中,必包含Client與Server的位址,所以才可傳來傳 去)。

ORB Code

Clienet Server

ORB Code

IDL Client Stub IDL Server Skeleton Object Adapter Request (1) (2) (3) (4) (5) (6) 圖2-7 CORBA溝通流程解說 以Visual Basic程式語言的觀點來看,要使用CORBA來進行系統應用,需有如 下的步驟:

(33)

(1)用描述CORBA的IDL,將所要提供服務的物件描述出來,如:物件名, 輸入變數,輸出變數,exception等。 (2)之後即可利用IDL2VB進行處理,以產生用於將VB基本資料型態轉換 為CORBA基本資料型態的元件:Skeleton與Stub。及一些製作IDL2VB 作者所提供的便利元件(此部份依各家公司或者者的不同而不同, CORBA的藍圖中,並無此部份之描述)。 (3)進行物件實際功能的製作,其中要繼承一些IDL2VB所產生的元件,以 便使用CORBA功能,如:繼承Skeleton,(此部份因各個CORBA製作公 司的不同而不同)。 (4).進行Server端,將物件於以註冊的程式之撰寫。 (5).將IDL2VB所產生的元件之Stub移到Client端,並進行應用物件之Client 程式的撰寫。 (6).啟動NameService(或OSAgent)以便能提供物件的Reference。 (7).啟動Server程式,去向NameService註冊物件的Reference,並提供物件 的服務。 (8).啟動Client,以便能進行遠端物件的應用。 Server、Client和NameService之間互動的情形,則如圖2-8所示:

(34)

NameService Start (Listen) CALL Client Start Server Start YES NO rebind Object (listen) CALL YES NO reSlove Object (listen) Find NO YES Find NO YES receive Server IOR

Listen

Find NO deal with request CALL NO YES Send request

Return Server IOR

YES YES

receive return data Send return data

END

(35)

2-7 VB與CORBA實作範例

本範例是利用Visual Basic來撰寫一個Server/Client架構的程式,之間透過

CORBA的架構來溝通,時序圖如圖2-9所示:

(36)

VB透過CORBA呼叫物件方法的程式製作步驟如下: 1. 編寫ILD檔案如下: Hello sayHello() module HelloApp { interface Hello { string sayHello(); }; }; 2. 利用IDL Complier程式,將IDL轉出VB使用的元件。 IDL2VB –S Hello.idl 得到如下檔案: 3. 進行物件實際功能的製作,並且將需要繼承的元件加入,以便使用CORBA 功能。 4. 進行Server程式Coding的部分:

(37)

‘開頭需要先定義的資料

Option Explicit

Dim oOrb As cOrbImpl

Dim ooHelloImplTie As c_HelloAppHelloImplTie Implements c_HelloAppHello

‘Server 中實際物件功能

Public Sub c_HelloAppHello_sayHello() Dim sLogMessage As String

sLogMessage = "Client has called sayHello()" c_HelloAppHello_sayHello = "HELLO" End Sub

‘要啟動 ORB 所需要載入的部分(通常放在 FORM_LOAD 或者 LINK 的 按鈕中)

Private Sub Form_Load( ) On Error GoTo ErrHandler

'********建立連線的紀錄檔********** Dim sLogFile As String

sLogFile = App.Path & "\Server.log"

Call VBOrb.logMsg(sLogFile, "Starting Server")

'******Get an ORB(建立連接到 Nameservice 中資料)******

Set oOrb = VBOrb.init(ORBId:="", ORBInitRef:="NameService=" & tbNameServiceURL.Text, _

OAPort:= tbOAPort.Text, OAVersion:=&H101, LogFile:=sLogFile, loglevel:=&H28)

'******Create an object and connect the object to the ORB.******

Set oHelloImplTie = New c_HelloAppHelloImplTie Call oHelloImplTie.setDelegate(Me)

Call oOrb.Connect(oHelloImplTie)

'******Bind server object to NameService(建立連線到 Nameservice) ******

Dim oObject As cOrbObject

(38)

Dim oNmRootContext As c_NmContext

Set oNmRootContext = m_NmContext.narrow(oObject) Dim oNmPath As c_NmNameComponentSeq

'******Set oNmPath = oNmRootContextExt.toName("PaintSHOW")******

Set oNmPath = New c_NmNameComponentSeq oNmPath.Length = 1

Set oNmPath.Item(0) = New c_NmNameComponent oNmPath.Item(0).id = "Hello"

oNmPath.Item(0).kind = ""

Call oNmRootContext.rebind(oNmPath, oHellomplTie.This)

'************ORB 執行等待的迴圈程序************ Call OrbRunLoopOutsideOfDLL Exit Sub '************程式出錯時候的中斷點************ ErrHandler: Call VBOrb.ErrMsgBox(Err, "中斷點的名稱") End Sub ‘程式在連線時所使用的『ORB 執行等待的迴圈程序』

Public Sub OrbRunLoopOutsideOfDLL() On Error GoTo ErrHandler

Do

Call oOrb.performWork(10)

DoEvents 'Prevent blocking other window processes Loop

ORBisDown:

Set oOrb = Nothing Exit Sub

ErrHandler:

If VBOrb.ErrIsSystemEx() _

And Err.Number = (VBOrb.ITF_E_BAD_INV_ORDER_NO Or vbObjectError) Then

Resume ORBisDown End If

(39)

End Sub

‘程式結束時在關閉 ORB 的動作(通常會放在 Form_Unload)

Private Sub Form_Unload(Cancel As Integer)

If Not oOrb Is Nothing Then Call oOrb.shutdown(False) End Sub

5. 進行Client程式Coding的部分:

‘開頭需要先定義的資料

Option Explicit

‘要啟動 ORB 所需要載入的部分(通常放在 FORM_LOAD 或者 LINK 的按 鈕中)

(40)

Call VBOrb.ErrMsgBox(Err, "中斷點的名稱")

End Sub

‘透過 CORBA 的架構使用遠端功能

Private Sub USE( )

'******************************呼叫遠端功能********************

On Error GoTo ErrHandler Set oHelloServer = m_ HelloAppHello.narrow(oOrb.stringToObject(tbIOR.Text)) Call oHelloServer.sayHello() '************程式出錯時候的中斷點************ ErrHandler: Call VBOrb.ErrMsgBox(Err, "中斷點的名稱") End Sub 6. 啟動NameService,等待Server端來註冊物件的Reference資料或者是 Client呼叫時,提供物件的Reference資料給它,執行等待畫面如下:

(41)

7. 啟動Server程式,去向NameService註冊物件的Reference,並且進入Listen 的動作,提供物件的服務,等待Client呼叫。

8. 啟動Client端程式,去向NameService請求取得Server端所提供的物件 Reference資料後,可以向一般使用物件的方法來使用遠端的物件Method 了。

(42)

(三) 線架構之NC模擬與驗證 當NC程式撰寫完成後要進行加工前,為了確保NC程式的正確性,並避 免撞刀造成危險,一定要在上機前進行NC程式的模擬,因此NC程式模擬 系統的功能最好必須能與控制器相似,因此模擬系統的功能必須具備如下: (1) NC格式的校對 (2) 加工路徑幾何的驗證 (3) 加工路徑幾何的繪製 (4) NC程式錯誤的偵測與更正的提示 (5) 座標的顯示,包括絕對座標、增量座標及座標系的顯示 (6) 刀號、補正號碼、轉速、進給率等的顯示 (7) 刀具參數、補正參數等設定與模擬 (8) 單節操作、選擇跳躍等基本操作功能 (9) NC程式編輯 (10) 加工時間的計算 (11) 加工範圍的計算,此功能的主要目的是用於刀具夾持架設之用 (12) 其他像鏡射、比例縮放等特殊功能則較不重要 (13) 夾至具、工件、機器碰撞的檢測 (14) 切削力的預測等 對於以上各種功能之設計,基本上除最後兩項目前尚未完成外,其他功 能在本計畫中大都已完成並加入NC 程式與 DXF 圖形之互換,並提供給學 生使用測試中,以下將說明系統的基本操作並列舉各式例子對本系統做實地 測試: 3-1 系統功能簡介 系統主要規劃包括下拉式功能表、圖示指令區、NC 程式顯示區、機器 狀態顯示區及刀具路徑模擬區等,如圖3-1 所示,圖 3-2 為圖示指令說明。 3-2 NC 程式錯誤偵測 在範例程式一中程式 G01 x25.中之 x25.的「x」為小寫,格式是錯的,

(43)

模擬系統須能檢測出,並指出錯誤的位置,本模擬系統模擬結果如圖 3-3 所 示。 錯誤偵測包括格式錯誤、同一 block 群組重複錯誤、未定義之 G 碼、幾 何誤差偵錯、補正錯誤偵測、加工前未啟動主軸旋轉、插值運動時未給進給 率等容易犯的錯誤。 圖3-1、系統畫面規劃 NC 程式顯示區 機器狀態顯示區 刀具路徑 模擬區 下拉式功能表 圖示指令區

(44)

圖 3-2、圖示指令說明 範例一之NC程式 G91 G28 X0. Y0. Z0. T01 M06 G92 X-35. Y-25. Z250. G90 G00 G43 Z-10. H01 S300 M03 G41D01 X0. Y0. F150 G91 G01 Y73.5 G02 X20. Y20. I20. G01 x25. G02 X14. Y-14.J-14. G01 Y-15. G01 X10. X20. Y-22. G03 X25. Y-20.5 I25. J5. G01 Y-8. X-128. G00 G49 Z50. G00 G90 G40 X-35. Y-25. G91G28 Z0 M05 M02 啟動程 式模擬 單節操 作 選擇跳 躍 座標系 顯示 補正模 擬 重新模 擬 NC 程式轉 成 DXF 圖形

(45)

圖 3-3、模擬系統偵錯結果 3-3 單節操作(single block) 單節操作主要的目的在於程式剛開始加工時,每按一次啟動(CYCLE START)則執行一個單節,以便檢查程式是否有錯,因為即使是 CAD/CAM 軟 體轉換之 NC 程式亦可能在起始階段有設定上之疏忽,因此須以單節模擬以 逐步檢測,起始階段是否有錯誤,待執行幾個單節確定無問題時再取消單 節執行。另一用途則是手寫程式時如遇到問題,亦會使用單節操作來逐步 檢查問題之所在,以利找出原因,因此本計畫之模擬系統亦提供此功能, 而且執行時會於程式顯示區逐步指出目前執行之位置,若不使用單節執 行,當遇到錯誤而程式停止時亦會指出目前執行之位置,以利更正,圖 3-4 為單節操作實際執行的狀況,圖三亦顯示出程式執行到錯誤時停留的位置 NC 程式錯誤位置

(46)

及錯誤的單節內容。 由於本程式系統為使用 VisualBasic 6.0 語言發展之系統,因此對字串 處理之時均會重新配置記憶體,因此一面執行刀具路經模擬一面尋找單節 字串位置時會使執行效率降低,因此內定 NC 程式如果超過 64K 時尋找單節 字串位置功能會自動關閉,但如啟用單節操作時則不論檔案多大尋找單節 字串位置功能會自動打開,另外育有錯誤時該單節位置亦會自動打開尋 找,這樣做法不僅可提高執行效率,且未喪失應有功能,未來再將其改寫 至 Visual Studio .NET 之 VB7,並使用 string builder class 來處理字 串,或使用C語言,將會改善字串處理之速度。 3-4 多層 NC 副程式呼叫之模擬(M98 呼叫) 多層NC 副程式呼叫常使用於重複加工或手寫程式時常會用到,為N C程式訓練時很重要的一個課題,在範例二程式中,主程式呼叫副程式7002 四次,而副程式 7002 中又呼叫副程式 7001 五次,是屬於多層副程式呼叫, 在一般之控制器中最多可呼叫 7 層,本系統設計為可呼叫 64 層,當然可設 計成不限次數,這些用途早期用於 2.5D 之手寫程式運用,近來由於使用 CAD/CAM 系統來自動運算因此較未顯得重要,僅有像齒輪加工時為使齒 形正確加工出來因此常會使用較細之現斷來近四齒形因此如使用副程式呼 叫則程式較短,對加工及傳輸的效率上會較好,圖 3-5 為範例程式二死模 擬出的加工路徑。

(47)

圖 3-4、為單節操作的執行狀況 範例程式二--多層 NC 副程式呼叫 範例二、主程式 範例二、副程式 7002 範例二、副程式 7001 單節執行 ON 下一個執 行單節 目前執 行單節 G92X0Y0Z30.M08 S300M03 M98 P7002 L4 G91G28X0Y0Z0M 09 M05 M30 O7002 G91G00G43Z-30. H01 M98 P7001 L5 G00G49Z55. X68. M99 O7001 G91G00Z-5. G17G41G00X10.Y4.D02 G01Y25.F100 G03X20.Y20.J20. G01X25. Y-29. G02X-11.Y-11.I-11. G01X-40. G40G00X-4.Y-9. M99

(48)

圖 3-5、副程式呼叫範例二之執行結果 3-5 刀具補正模擬 刀具補正包括刀徑及刀長補正,而使用刀長補正的原因是因為一個程 式中使用多把不同長度之刀具,而NC程式之座標只有一個,因此必須把 不同刀長的刀具補成同一刀長,而刀徑補正是由為了書寫NC程式時不用 去計算刀具中心路徑,只要依照工件之幾何外型座標書寫,至於刀具中心 則由控制器依設定之刀具直徑自行計算刀具之中心路徑,另外由於程式書 寫者有時不知道機器操作者擁有的適當刀具尺寸,或者刀具的真實尺寸以 及刀具的磨耗情形,因此產生NC程式時只要照工件之幾何外型座標書 寫,而於加工操作時才依照真正之刀具直徑由控制器進行刀具中心路徑之

(49)

補正運算,這樣的操作也許較方便加工操作,因此進行加工時先做控制器 之補正模擬,以及早發現程式是否有所不妥或錯誤,本系統亦模擬在控制 器操作時之補正參數設定方式,使用者必須將刀具補正號碼所相對之補正 值輸入,否則經無法得到所要效果,表一為刀具補正號碼所相對之補正值, 其設定方式是由系統之下拉式功能表選擇補正設定(Compansation Set) 設定之,圖 3-6 為範例程式三之補正模擬結果。 表一刀具補正設定表 設定指令 刀具補正 設定表

(50)

範例程式三--刀具補正例子 G91 G28 X0. Y0. Z0. T01 M06 G92 X-35. Y-25. Z250. G90 G00 G43 Z-10. H01 S300 M03 G41D01 X0. Y0. F150 G91 G01 Y73.5 G02 X20. Y20. I20. G01 X25. G02 X14. Y-14.J-14. G01 Y-15. G03 X14. Y-14. I14. G01 X10. X20. Y-22. G03 X25. Y-20.5 I25. J5. G01 Y-8. X-128. G00 G49 Z50. G00 G90 G40 X-35. Y-25. G91G28 Z0 M02 圖 3-6、補正模擬之結果 補正後 路徑 NC 程式 路徑

(51)

3-6 固定循環模擬 NC 銑床之固定循環有鑽孔、鑽深孔、啄鑽、搪孔、精搪孔、背搪孔、攻 右牙、、攻左牙、鉸孔等多種,為機械加工常用之功能,也是 CNC 銑削工具 機之標準功能,在手寫 NC 程式中經常使用,因此模擬系統必須能模擬,本 計畫系統均有提供,圖 3-7 為固定循環範例四之模擬結果。 範例四-固定循環程式 O7001 G92X0Y0Z250. T01 T11 M06 T15 G90G43G00Z0H5S30M03 G99G81X400.Y-350.Z-153.R-97.F120 Y-550. G98Y-750. G99X1200. Y-550. G98Y-350. G80G00X0Y0M05 G49G00Z250. M06 T31 G90G43G00Z0H6S20M03 G99G82X550.Y-450.Z-130.R-97.P250F 60 G98Y-650. G99X1050. G98Y-450. G80G0X0Y0M05 G49Z250. M06 T32 G90G43G0Z0H7S10M03 G99G85X800.Y-350.Z-153.R-47.F40 G91Y-200.L2 G90G80G0X0Y0M05 G49Z250. M06 T01 M02

(52)
(53)

(四) 討論 本計畫在 CNC 程式互動式教學資源系統架構上採兩組伺服系統,分別 用於 NC 程式撰寫之指導,而另一伺服系統擬則用於 NC 程式之模擬驗證, 另外並進行發展以 CORBAR 架構之 CNC 教學資源分享程式,目前已經完成 以 VB 程式發展環境架構平台,並經測試可以和 JAVA 相互呼叫,因此許多 不同語言撰寫之函數、副程式應可相互運用,且可以是跨平台與跨系統, 將來可直接組合起來使用,另外對發展之單機型線架構式 NC 程式模擬系 統亦將評估如何架構才能提高使用效能、如何資源分享、如何管理、如何 進行發展至實體切削模擬及與控制器的人機結合,另外如何擴展至多軸加 工的模擬等,其他如在動態網頁上如何有效率地處理繪圖問題,這些都是 急待解決的問題,茲歸納如下: (1) CNC 程式互動式教學資源系統發展語言的整合 (2) 以 CORBAR 架構之 CNC 教學資源分享程式的發展 (3) 單機型線架構式 NC 程式模擬系統的資源分享與管理 (4) 加入一些學習效果的自動評量 (5) 實體切削模擬系統的發展 (6) 多軸加工的模擬的研發 (7) 在動態網頁的繪圖問題(除了 JAVA APPLET 之外的方法) (8) 處理 VB 上字串處理的速度問題 (9) 切削模擬系統控制器的結合 (10) 遠距教育訓練與 NC 控制系統的整合 以上所列舉的相關問題都是極待處理的問題,也是值得探討與解決的 問題,此將待下個年度來解決。

(54)

參考文獻:

1.Chen, Yu-Min and Liang, Ming-Wu, 1999, “Design and Implementation of a Collaborative Engineering Information System for Allied Concurrent

Engineering”, Int. J. of Computer Integrated Manufacturing Systems, Vol. 17, No. 2.黃河銓,陳響亮,鄭弘裕等,“遠端網際網路加工系統”,第十七屆機械工程 研討會論文集,第四冊製造與材料,pp.309-315,2000 年 12 月 8〜9 日 3.陳響亮,黃河銓,鄭弘裕,王宏益,王信翔,林家傑,「遠端網際網路加工系 統介面之研究」, 4.黃榮堂,陳正光,陳雙源,李逸群,「遠距診斷維修系統」,機械月刊第二十 七卷第十二期,2001 年 12 月號,pp. 294-304

5.R. S. Lee, J. N. Lee, J. P. Tsai, Y. C. Kao, Grier C. I. Lin and T. F. Lu, 1999, “Remote Virtual Cutting Verification through Internet”, Proceedings of the 11th National Automation Technology, Chia-yi, pp. 833-840

6. R.S. Lee, Jo Peng Tsai, Jeng Nan Lee, Y.C. Kao, Grier C I Lin, and Tien Fu Lu, “Collaborative Virtual Cutting Verification and Remote Machining through Internet”, Journal of Engineering Manufacture, Proceedings Instn. Mech. Engrs (B), Vol. 214 No B7, pp.635-644., 2000 7.游顯瑚、李炳寅、曾翔明、鄭家偉(國立虎尾技術學院機械製造系),「網路 化的 CNC 車床最佳切削選項系統」,第十二屆全國自動化科技研討會,光碟 論文集,2001 年 5 月 25 至 26 日,產業自動化(一),4204B-3 8.羅仁權、張智強(國立中正大學電機工程研究所),「智慧型代理人應用於塑 膠射出成型模具之電子化與自動化」,第十二屆全國自動化科技研討會,光 碟論文集,2001 年 5 月 25 至 26 日,產業自動化(二),4204C-6 9.鍾興臺,「網際網路智慧型助理之研究」,NSC 87-2213-E-032-014, 1998 10.鍾興臺,「智慧型助理在全球分散式物件網路上之研究」,NSC 88-2213-E-032-0174, 1999 11.林則孟、吳建發、蔡明標(清華大學工業工程與工程管理系),「以代理人為 基之分散式製造與搬運系統協調機制」,第十二屆全國自動化科技研討會,

(55)

光碟論文集,2001 年 5 月 25 至 26 日,自動化生產與虛擬製造,4301A-3 12.蔡志成、游佳偉(國立中興大學機械工程系),「支援網際網路分散式協同設

計之數位化傳動元件型錄探討」,第十二屆全國自動化科技研討會,光碟論 文集,2001 年 5 月 25 至 26 日,產品資訊管理,4203D-7

13.Concurrent Technologies Corporation, Advanced Web-based Simulation, http://www.ctc.com

14.Kao, Y. C. and Lin, Grier C. I., “Development of a Collaborative CAD/CAM System”, Journal of Robotics and Computer-Integrated Manufacturing, 14(1), 1998, pp55-68.

15.Mori, Toshiki and Cutkosky, Mark R., “Agent-based Collaborative Design of Parts in Assembly”, 1998 ASME Design Engineering Technical Conferences, September 13-16, 1998, Atlanta, Georgia, USA, DETC98/CIE-5697

16.Ozawa, Masanori, Cutkosky, Mark R and Howley, Brian J., “Model Sharing among Agents in a Concurrent Product Development Team”, IFIP Working Group 5.2, Third Workshop KIC-3, December 1-4, 1998, The University of Tokyo, Tokyo, Japan

17. http://xpplab.ice.ntnu.edu.tw/pplab/ada/corba/ 18.http://dslab.csie.thu.edu.tw/course/87_2/ido/DistObject/Corba/DistObj/overview. html 19. http://xpplab.ice.ntnu.edu.tw/pplab/ada/proposalw.html 20. http://msdn.microsoft.com/ 21. http://java.sun.com/products/jdk/rmi/index.html 22. http://www.omg.org/ 23. http://www.corba.org/ 24. 張育旗(2000) ,“設計一種 CORBA 環境具管線內藏之元件軟體組裝機制及其 支援工具”, 國立成功大學資訊工程學系碩士論文,2000.7 25. http://www.omg.org/oma/ 26. 陳威(2000) ,“CORBA 技術整理”, 國立中正大學資訊工程研究所碩士論

(56)

文,2000.7

數據

圖 1-6 查詢快速定位之畫面 點選想要觀看執行的執行檔,會
圖 1-7 進入 NC 程式模擬畫面
圖 1-10 選取 client 端 NC 程式畫面。
圖 1-11 檢測及模擬 NC 程式的畫面
+6

參考文獻

Outline

相關文件

最後特別提出說明,本研究用戶端作業系統為 Win 2000 Professional,伺服 器端作業系統為 Windows 2000 Server 並啟動 Active Directory

定遠 鎮遠 來遠 經遠 超勇 楊威 由於北洋艦隊各艦的主要火. 力多在前端,因此最佳陣式

近期全球各地皆藉由停止上班上課以遏制新冠肺炎疫情的傳播,正是需要遠端視訊或會 議軟體的時刻,然而視訊會議工具 Zoom

近期全球各地皆藉由停止上班上課以遏制新冠肺炎疫情的傳播,正是需要遠端視訊或會 議軟體的時刻,然而視訊會議工具 Zoom

RMI,及 DCOM 這些以專屬 binary 格式傳送資料所不及之處,那 就是對程式語言、作業平台的獨立性--由於是純文字 XML 格 式,

• Flash 的打散(Break Apart)功能,可以將群組 物件、點陣圖、文字物件,以及元件轉換成填色

•給學生很多的機會嘗試 比較不同物件的重量,鼓 勵學生表達兩件物件相對 的重量。.

遠傳 e 書城(FET eBook Town)、Omusic(Omuisc)、四大加值內容服務。 遠傳電信屢 屢獲得國際專業財經媒體,在全國上市、櫃公司中名列前茅,遠傳同時也 通過中華