• 沒有找到結果。

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

N/A
N/A
Protected

Academic year: 2021

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

Copied!
118
0
0

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

全文

(1)

行政院國家科學委員會專題研究計畫 成果報告

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

計畫類別: 個別型計畫 計畫編號: NSC93-2516-S-151-001- 執行期間: 93 年 08 月 01 日至 94 年 07 月 31 日 執行單位: 國立高雄應用科技大學模具工程系 計畫主持人: 鄭新有 計畫參與人員: 詹世朗,林晉偉 報告類型: 完整報告 處理方式: 本計畫涉及專利或其他智慧財產權,2 年後可公開查詢

中 華 民 國 94 年 10 月 31 日

(2)

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

;

成 果 報 告

□期中進度報告

遠距互動式

CNC 程式教學系統之研究

Study on the Remote Interactive CNC programming

Lecturing System

計畫類別:

5

個別型計畫 □ 整合型計畫

計畫編號:NSC 92-2516-S-151-005-

執行期間:

91 年 08 月 01 日 至 94 年 07 月 31 日

計畫主持人:鄭新有

計畫參與人員:林晉偉、詹世朗

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

5

完整報告

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

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

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

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

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

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

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

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

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

中 華 民 國 94 年 10 月 29 日

(3)

中文摘要

由於網路無遠弗屆的學習環境及資訊科技(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 程式學習架構。

另一方面物件管理組織 OMA(Object Management Group)制定了共通物件請求經紀架

構(Common Object Request Broker Architecture)的標準,即 CORBA 標準,因而加強了軟 體的可攜性(Portability)、再利用性(Reusability)以及互通性(Interoperability),即所 謂的跨平台、跨作業系統、跨程式語言應用環境,所以本計畫將另外發展以CORBA 架構 之CNC 教學資源分享程式,目前已經完成以 VB 程式發展環境架構平台。 本計畫目前已另外開發完成線架構(wire-frame)之 CNC 程式路徑模擬及以 Z-map 理論 架構之實體切削模擬,除模擬加工外,還可偵測撰寫的 NC 程式是否有錯誤,並指出錯誤 的位置及錯誤的原因,並模擬 NC 銑床控制器之各項功能,如刀具補正、單節操作、選擇 跳躍、各種固定循環、鏡射、各種顯示(如轉速、進給率、刀具編號、補正號碼)以及加

(4)

工時間計算等功能。 在數位視訊與音訊技術建立遠距互動式實作教學上,本計畫亦將IP camera 整合到網頁 上,使學生在上機前可以先觀察其他同學的實際加工,並可透過語音廣播來作機器操作教 學,但是無法作雙向溝通,將來可以在機器邊加裝電腦在利用如SKYPE、MSN Talk 等的 網路語音程式作雙向溝通,另外在NC 程式傳輸方面,學生可透過 NC 傳輸伺服器作安全 管控與遠距NC 傳輸加工。 本計畫之執行,除了可以彌補昂貴教學設備資源之不足的窘境外,對於發揮CNC 工具 機教學之效果尤其重要,未來將結合控制器的人機介面(MMI),將 NC 工具機整合成兼 具遠距製造與教學合為一體之架構,以減少工具機業者的教育訓練費用,並且將可更有效 的培養工業界聘用之人員以最短的時間立即投入生產,以提升製造業之競爭力,所培養出 之人才,都將可透過網路技術之成熟運用,具備跨國製造與全球製造之世界觀,對於台灣 未來製造技術之發展應會有許多的貢獻。

(5)

Abstract

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 popular trend in the future lecturing.

The purpose of this project was focused on the development of a remote interactive CNC lecturing system environment on NC codes underlying the Internet. This was a three-year project. Year one of this project was focused on constructing 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 was to 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 to verify the cutting parameters and toolpath through the WYSWYG (what you see is what you get) interface. Digital video and audio technology was 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” was considered in the system development of this project in enhancing dynamic server pages supported by “ASP.net” to ease the information transmission and to improve the efficiency on the data processing. On the other hand, three-tier structure was also included owing to its powerful and popular integrated functions. CORBA (Common Object Request Broker Architecture) proposed by the OMG (Object Management Group) was therefore adopted to enhance the portability, reusability and

(6)

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 and solid 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 in lecturing 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 be able to build up world-wide view naturally in the global village through the usage of the developed networked system. The developed system is therefore beneficial to manufacturing industry in Taiwan in the future.

(7)

目錄

中文摘要... I Abstract... III 目錄... V 圖目錄... VIII 一、前言:... 1 二、研究目的:... 3 三、文獻探討:... 4 四、研究方法:... 7 五、結果與討論:... 10 (一) CNC 程式互動式教學資源系統... 11 1-1 遠距 CNC 教學網站流程架構... 11 1-2 權限管理 ... 13 1-3 網站功能規劃 ... 14 1-3-1 遠距加工製程知識庫教學系統... 15 1-3-2 遠距切削模擬... 20 1-4 進入 NC 程式模擬系統... 21 (二) 線架構之 NC 模擬驗證 ... 25 2-1 CNC 程式解譯 ... 25 2-2 NC 路徑資料結構... 26 2-3 線架構之 NC 模擬與驗證... 28 2-3-1 系統功能簡介... 28 (三) CORBA 技術的應用 ... 32 3-1 分散式系統 ... 32 3-2 CORBA 架構 ... 35

(8)

3-3 命名服務(Naming Service)... 38 3-4 界面定義語言 ... 39 3-4-1 IDL 編寫架構 ... 39 3-4-2 IDL 語法介紹 ... 40 3-4-3 編寫 IDL 問題與對策 ... 43 3-5 VBOrb 簡介 ... 44 3-5-1 IDL2VB 的編譯介紹... 45 3-6 以 VBOrb 建構 CORBA 環境... 45 3-7 CORBA 架構下之 CNC 模擬教學系統之應用 ... 49 (四)實體模擬... 52 4-1 尋邊原理 ... 52 4-1-1 直線尋邊... 53 4-1-2 圓弧尋邊... 55 4-2 Z-Map 原理 ... 59 4-3 NC 刀具路徑的單節模擬計算... 59 4-3-1 球刀掃描包絡面計算理論... 60 4-3-2 圓鼻刀掃描包絡計算理論... 62

4-4 Modify Scan Line 的方法 ... 63

4-5 輸出 STL 檔案 ... 64 4-6 鋸齒消除 ... 65 4-7 實體模擬測試 ... 67 (五) OpenGL 的應用... 72 5-1 OpenGL 的結構 ... 72 5-2 繪製 NC 路徑... 73 5-3 智慧型逆向編輯 ... 74 5-3-1 選取 NC 路徑原理 ... 75

(9)

5-3-2 使用 Selection 模式選取 NC 路徑 ... 75 5-3-3 名稱堆疊(Name Stack)... 76 5-3-4 選取模式記憶體(Selection buffer)... 78 (六) 遠端互動式教學系統整合... 79 6-1 遠端虛擬 CNC 機器實作前安全檢測... 80 6-2 CNC 程式傳輸與安全機制... 83 6-3 遠端 NC 程式傳輸... 84 6-3-1 FTP 傳輸檔案之方式... 84 6-3-2 使用 RS-232 傳輸 NC 程式 ... 86 6-4 裝設數位視訊設備 ... 89 6-5 建立 CNC 機器操作教學機制 ... 90 6-5-1 模具加工製造之流程說明... 91 6-5-2 模具製作之機台操作... 92 (七) 結論... 94 (八)未來展望... 95 六、計畫成果自評:... 96 七、參考文獻:... 101

(10)

圖目錄

圖1-1、遠距 CNC 教學網站流程架構圖………11 圖1-2、加工製程知識庫教學系統規劃………12 圖1-3、學員註冊畫面………13 圖1-4、下拉式選單內容………14 圖1-5、一般端銑刀公式計算………15 圖1-6、球形銑刀之修正係數圖………16 圖1-7、程式分類說明………17 圖1-8、查詢 G90 語法之畫面………18 圖1-9、分段鑽孔切削循環動作圖………19 圖1-10、三軸銑切加工之線架構 3D 模擬圖………21 圖1-11、下載 Client 端之繪圖程式之網頁畫面………22 圖1-12、NC 程式模擬系統安裝畫面………..…………22 圖1-13、NC 程式模擬系統主畫面………23 圖1-14、讀入 NC 檔畫面……….………23 圖1-15、NC 線架構模擬畫面………..………24 圖2-1、NC 碼解譯流程圖……….………26 圖2-2、NC 路徑資料架構圖………27 圖2-3、NC 程式與路徑之雙向指標結構圖………27 圖2-4 系統介面說明……….………29 圖2-5、功能表說明………..………30 圖2-6、圖示指令說明………..………30 圖2-7、刀具路徑模擬區說明………..………31 圖2-8、NC 程式編輯區說明………31 圖3-1、OMA 架構圖………..……….………36

(11)

圖3-2 CORBA的運作架構圖………...………37 圖3-3、Naming Service 功能示意圖………..…39 圖3-4、在 c_ FunctionHeart 的元件上發生之錯誤………43 圖3-5 ORB 的功能示意圖………44 圖3-6、建構 CORBA 環境流程圖……….………46 圖3-7 CORBA溝通流程圖………...………47 圖3-8 Server、Client 和 NameService 間運作流程圖………48 圖3-9、Naming Service之啟動畫面………..…………50 圖3-10、Server 端之啟動畫面………...………51 圖3-11、Client端NC模擬執行畫面………..……51 圖4-1 刀具單節行走示意圖……….………...………52 圖4-2 直線的網格示意圖………...………54 圖4-3 直線的斜率大小判斷示意圖………54 圖4-4 直線象限示意圖………..………55 圖4-6 圓弧的網格示意圖………..…………..………56 圖4-7 圓弧在圓內、圓外和圓上的判斷示意圖………57 圖4-8 圓弧象限示意圖……….………...…57 圖4-9 直線加工單節完成尋邊的情形……….………...…58 圖4-10 刀具投影到網格的示意圖………60 圖4-11 刀具在 Z-Map 網格中的示意圖……….………61 圖4-12 刀具在 Z-Map 網格點的 3D 示意圖………61 圖4-13、局部座標系下之圓鼻刀加工動示意圖………62 圖4-14、圓鼻刀接觸點斷面示意圖………..……….………63

圖4-15 利用 Modify Scan Line 的方法得到加工面上的網格點………..……64

(12)

圖4-17 鋸齒消除之基本原理………66 圖4-18 未消除鋸齒之情形……….……66 圖4-19 消除鋸齒後之顯示情形……….67 圖4-20 後視鏡模具圖………68 圖4-21ψ20mm 之平頭端銑刀切削刀具路徑………68 圖4-22 以 Z-map 方法模擬切削結果的網格圖………..…69 圖4-22 以 Z-map 方法模擬切削結果塗彩的結果………..……69 圖4-24 碟子母模仁成品圖………..………70 圖4-25 ψ6mm 之球刀切削碟子母模仁刀具路徑…………..………..………70 圖4-26、ψ6mm 球刀模擬加工碟子母模仁結果…………..………71 圖5-1 執行結果……….……….………..………73 圖5-2、逆向編輯介面………74 圖5-3 Name stack 堆疊方式……….…77 圖6-1 遠距互動式教學系統架構……… ..……….…79 圖6-2(a)為遠端虛擬 CNC 三軸工具機……… ..……….…81 圖6-2(b)為遠端虛擬 CNC 三軸工具機……… ..……….…81 圖6-2(c)為網頁上之虛擬 CNC 三軸工具機………..….…81 圖6-3 參數設定表之顯示……….………..………….…82 圖6-4 數控加工機之 G54~G59 之參數設定表………..………….…83 圖6-5 刀具補正參數設定表之顯示圖……….…..………….…83 圖6-6 網頁中超連結至 PC Server 資料夾之功能圖……….……….…84 圖6-7 上傳完成之 Server 端顯示圖……….………..………….…85 圖6-8 接收成功之控制器端顯示圖……….……….……..………….…85 圖6-9 NC 程式碼檔案傳輸………..………….…86 圖6-10 ㄧ般 RS-232 的接線圖……….…………..………….…87 圖6-11 RS-232 傳輸 NC 程式至控制器的架構……….…….…87

(13)

圖6-12 NC 程式碼檔案傳輸……….…………..………….…88 圖6-13 RS-232 傳輸軟體介面………...………..………….…89 圖6-14 DNC 傳 NC 程式進入控制器畫面…..……….…………..………….…89 圖6-15 IP Camera 網頁顯示的畫面……….….…………..………….…90 圖6-16 為 IP Camera 安裝於工廠的位置……… .………….…90 圖6-17 線上教學以及現場互動教學……….…………...…………..………….…91 圖6-18 模具製作流程圖……….……….……….…………..………….…92 圖6-19 模具加工……….…….………….…………..………….…93

表目錄

表3-1、IDL 保留字及 VB6.0 語言對應表………41 表4-1 直線尋邊的象限表……….………55 表4-2 圓弧順、逆象限的判斷表………..………58

(14)

一、前言:

由於跨國性企業數急遽增加與跨國合作盛行,預期二十一世紀市場競爭將因全球化、 數位化、電子化、速度化與自由化而加遽;不僅企業教育市場的競爭亦邁向白炙化,尤其

進入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 碼之

(15)

建構、NC 碼之格式查詢、NC 碼之偵錯、NC 加工路徑之即時模擬及錯誤之位置與更正之

建議、加工路徑之分析、製程條件設定等教學模擬系統,並導入虛擬同步工程(Virtual

(16)

二、研究目的:

數值控制工具機的造價昂貴,以及擔心因為程式與機器操作的不熟所造成機具的損壞 及人身之安全,因此學生均難得親自上機實習,因而造成學習的成效不佳,再加上電腦與 網路科技的成熟,因此發展虛擬機器以輔助機具之不足以及機器與人員的安全是為數值控 制工具機的最佳選擇。 過去之 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.系統整合:完成上述協同式暨分散式運作架構之建立。

(17)

三、文獻探討:

電腦與網路科技的發展對教學方法與數值加工技術已有許多創新的應用,這些應用的 研究包括資訊科技的研發如資源共享、協同合作、分散式運作;另一方面則朝向將原有製 造技術透過網路的創新應用,如利用網路作遠端控制的數值加工技術、數值加工機的遠端 維修與監控技術;其不僅使用有線的固接式網路甚至使用無線的網路如透過網路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 、

(18)

等各種技術已逐漸成熟,因此本計畫提出運用此類技術於數控工具機之學習,建立一個不 受時間及空間之學習環境,以提昇教學效果。 有關CORBA 的應用研究方面有應用於分散式網路服務架構的,如『葛』提供一個高 度彈性及適應性的分散式網路服務架構[28],其透過具有高度自主性、動態行為的動態遠 端代理者,配合整合資源與管理的執行環境,提供高度可再使用的服務元件庫提供彈性的 服務,達到資源共享、統一管理及動態服務的目的,而『劉』則在CORBA 環境下,利用 XML 來描述元件、建立元件模型(component model),以這樣的模型來描述元件間的互動 以完成元件軟體的組裝[29]。對於分散式平行計算的應用則有『王』[30],提出一個系統負 載分配機制,利用CORBA 技術於分散式異質性的環境下達到系統負載平衡進行分散式平 行計算,進而提昇整體計算效能,以及『洪』[31],以 K 條最短路徑(K-Shortest Paths, KSP) 演算法來評估CORBA-Based 分散式架構績效做研究。在工程的應用上則有『李』[32], 運用CORBA 之分散式網路設備於自動化檢測系統。而教學應用上『蕭』[33],以網路教 學平台下的訊息代理人實作,讓學習者可以跟相同興趣的學習者進行即時溝通和建立異質 化網路教學平台資料庫,實現網路教學平台資料庫透明化服務,而本計畫則在CORBA 架 構的環境下開拓CNC 工件程式的教學模擬系統,將主要的工件程式解譯部分置於遠端的 伺服器,而將解譯的數值資料以結構陣列方式,置於客戶端進行模擬、偵錯,創造CNC 工具機之虛擬加工展示,以減少CNC 程式教學所需之龐大成本,並分享教學資源。 有關實體加工的部分,切削模擬是主要的方面,目前實體模擬切削[35] [36]是需要相 當大的計算量,而且在選擇其他視角觀看實體切削就必需重新運算一次,因此實體切削方 法需要克服再次重現的運算問題。至今我們都使用Z-Map[49] [51]來計算表面的切削,並且 改善重現的問題,而Z-Map主要的功能是紀錄並儲存所需的值,因此在Z-Map網格的儲存 和運算是相當重要的。在使用Z-Map計算網格的存取和運算方面,有William J. Schroeder, and P. Cignoni[47] [48]等人提出利用三角網格的儲存和傳送來降低運算。目前在建立大量 的網格並使用Z-Map結構和形狀的情況下,還能結合動態刀具的交換來描繪實體[38],後續 還發現動態刀具會有誤差,因此又提出動態誤差做即時模擬[53],以上的發現都是為了能 更精準的模擬實際情形。一般在使用Z-Map網格之後還有兩大做法,一是紀錄工件上的網

(19)

格值再對此網格值做運算,此法有利用邊界點的移動[46]來和Z-Map做表面的運算,或是利 用supersampling[42]網格再細分的方法來提升模擬的精準,還有其它學者提出利用多邊形邊 界和extended octrree直接對模型的加工面做計算[41],這些方法都可更精準對刀具和工件所 接觸的外型做運算,可減少運算運算時間。二是先對刀具移動的容積做運算,在切削時, 刀具移動構成的體積,所影響的平面(cutter-swept surface,CSS)應用在Z-map上,可明 確的計算出在這刀具路徑中有哪些點的Z值會被更動[43]。可是要判斷Z-map的點是否位於 CSS上,必須要解比較複雜的程式。如果刀具可以直接對表面做掃掠容積[39]以及對工件進 行布林運算,將可得到模擬後的加工面,但相對的運算量比較繁雜,假如將刀具利用線性 方式表示刀具路徑的運動,再求出刀具路徑運動和工件的交點,將方程式轉變成為單一變 數的方程式,再用數值方法求出Z-Map的值來模擬加工[52],這樣的運算將比直接用布林運 算來的快。在此論文將利用空間中刀具的移動與Z-Map網格點的交互關係[54]作為運算,一 開始先將刀具路徑的起點、終點與網格點在空間中的關係計算,並和刀具掃掠過後的網格 點和實際空間的位置做呼應,將以此方法得知模擬後的加工外型。

(20)

四、研究方法:

本計畫共分三年執行,各年度之研究方法分述如下: 第一年度:(九十一年八月至九十二年七月) 計畫主題:遠端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) 建立近端協同基準,以便建立多人協同學習環境。

(21)

第二年度:(九十二年八月至九十三年七月) 計畫主題:遠端虛擬CNC 加工及 NC 程式模擬與安全驗證系統之研究 研究方法: 第二年主要是在建立遠端虛擬CNC 加工及 NC 程式模擬與安全驗證,因此需先 NC 程 式解碼後之格式紀錄,又因需要針對NC 程式模擬後之路徑作反向編輯所以解碼後之中間 資料結構做適當之規劃,接下來則可對整個NC 程式進行解碼,再將解碼後之路徑資料繪 製圖形展示給使用者,要將NC 程式傳送到遠方則可透過網路 FTP 來傳送,或者將解碼程 式至於主控端(Client),當模擬到語法、格式完全無誤後即可進行虛擬工具機之實體切削驗 證,以防實際加工產生撞機或其他沒有預期之錯誤,茲分點敘述如下: (1) 進行 CNC 機器之插值(interpolation)運動之分類編碼,如快速定位運動、直線插值 運動、固定循環運動…等,以便進行加工路徑之運動模擬以及由顯示之路徑直接 修正加工程式之智慧型反向編輯工作。 (2) 將 NC 程式解碼,並依分類編碼進行結構化資料轉換,以便進行加工路徑分析、 模擬以及反向編輯。 (3) 利用一般之程式語言開發在客戶端或在伺服端繪製 NC 路徑圖形。 (4) 利用解碼資料進行刀具路徑之補償(Tool Compensation),並比對補償值與刀具代 碼,以驗證加工之安全性。 (5) 利用解碼之結構化資料繪製 NC 路徑圖形讓使用者可以在螢幕上以直覺式點選加 工路徑而直接由圖形做NC 程式之逆向編輯。 (6) 連結遠端實體切削程式庫將解碼過資料進行實體切削驗證。

(22)

第三年度:(九十三年八月至九十四年七月) 計畫主題:遠距CNC 機器互動式教學與實作整合環境之研究 研究方法: 第三年主要是進行遠距CNC 機器互動式教學與實作整合環境之建立,因此將 IP camera 與遠距NC 程式傳輸加工機制整合到網路上,並增強資料庫及知識庫之發展,另外是針對 經過模擬及虛擬切削驗證無誤之NC 程式準備進行實際加工教學,因此尚需核對 CNC 機器 刀具參數、補正參數設定與NC 程式呼叫參數,以免發生意外。另外由於 CNC 機器的昂貴, 且具危險性因此在教學尚可透過數位影像技術讓每位學生均可清楚地觀察整個實驗過程, 而且透過網路互動機制,學生可隨時與現場技術人員做當面發問與解答,經過如此之學習 歷程,學生自然可以很快就學會整個 CNC 程式教學,而進入獨立操控之階段,茲分點敘 述如下: (1) 遠距 CNC 程式學習系統測試及資料系統之加強。 (2) IP camera 整合於遠距 CNC 教學環境之建立。 (3) 利用遠端 CNC 機器刀具參數、補正參數設定與 NC 程式呼叫參數之比對,做 NC 機器實作前之安全檢測。 (4) 利用 FTP 對 NC 程式做遠距直接傳輸加工之測試。 (5) 在 CNC 機器端裝設數位視訊設備,以便傳回加工實況作遠距加工之監測及提供遠 端實況教學,以彌補教學設備之不足。 (6) 互動式遠距 CNC 機器操作教學機制之建立與測試,讓學生不僅可觀看實驗情形, 也可以與現場技術人員做互動教學。

(23)

五、結果與討論:

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

(24)

(一) CNC 程式互動式教學資源系統

1-1 遠距 CNC 教學網站流程架構

整個網站流程架構如圖1-1 所示,使用者必須先完成註冊,成為會員後,才可使用本 教學網站資源,另外在會員基本資料管理及教學資源部分(含 NC 指令、加工參數),為了 會員管理上的方便性、減少單一網頁的資料量及增加資料可變性的,在此,改採用資料庫 方式來做管理。 Login.htm 登入頁 Member_Register.aspx 會員註冊 加工製程知識庫 教學系統 NcSimulate.asp NC模擬 Registry.mdb 會員管理 資料庫 會員 登入 會員基本 資料確定 進行NC程式模擬系統 Download.aspx 下載模擬系統 顯示知識庫教學內容 加工製程 知識庫教學系統 下載所需 模擬軟體 Main.htm 進入首頁 (實線):網頁連結 (虛線):內部資料庫連結 NC程式 模擬系統 圖1-1、遠距 CNC 教學網站流程架構圖

(25)

在加工製程知識庫教學系統的規劃方面,概分為三大教學查詢系統,有工、夾具規劃 教學系統、加工條件設定教學系統、NC 程式碼教學系統(如圖 1-2 所示),而每一教學系統 將個別規劃一個資料庫來做管理,正陸續加強資料庫的內容(各教學系統細部架構規劃將在 下節做介紹)。

Guide_Tool.aspx

工、夾具規劃

教學系統

Tool.mdb

NC程式資料庫

Guide_Parameter.aspx

製程參數設定

教學系統

Parameter.mdb

製程參數資料庫

Guide_Gcode.aspx

NC程式碼

教學系統

Gcode.mdb

NC程式碼資料庫

(虛線):內部資料庫連結

圖1-2、加工製程知識庫教學系統規劃

(26)

1-2 權限管理

在會員使用權限方面,初期的系統資源僅供學生使用,以免主機負荷過重,未來亦可 開放給非學術界的使用者來使用;在註冊認証規劃方面,將會以姓名、身份証字號作為會 員主要的認証依據,而學生則需加填就讀學校、系別及學號,且為求管理方便,登入將採 用會員的身份証字號為登入之帳號。 由於會員管理系統是以資料庫來做管理,故亦可提供會員查詢忘記的密碼以及修改個 人基本資料,圖1-3 為學員註冊畫面。 圖1-3、學員註冊畫面

(27)

1-3 網站功能規劃

本教學網站主要規劃有遠距加工製程知識庫教學、遠距切削模擬等服務,在主畫面的 選單方面將其設計成下拉式選單,如圖1-4,讓使用者不需點選進入就可以一目了然本站 所有功能選項,相當方便。 圖1-4、下拉式選單內容 在其它的功能服務尚有實例練習、下載模擬系統安裝檔、留言討論區及研究團隊介紹 等服務,各別規劃的服務內容如下: z 實例練習:提供乙、丙級檢定題目做練習,並可透過線上即時模擬來進行驗証。 z 下載模擬軟體:下載所需的模擬程式及相關範例。 z 線上教學:提供視訊教學以及上傳 NC 程式碼。 z 研究團隊介紹:介紹本研究團體(MRL)成員,並可提供使用者有相關問題時,以 E-mail 方式聯絡我們,並予以解答。

(28)

1-3-1 遠距加工製程知識庫教學系統

規劃此知識庫的目的,在於讓初學者不論在任何地方,只要上網即可學習到這方面的 知識,節省找資料的時間,第一年度計畫是規畫整個網站架構,實際內容已更新完整,在 此僅展示部分成果,以下將介紹個別教學系統的細部架構規劃及部分成果: 1. 工、夾具規劃: 為了增加初學者對工廠的熟悉度,故規劃初學者可在線上學習、查詢各種刀具種類、 規格及加工中所需選用的工具、設備,並從中學習正確的使用方法,以減少實際加工時, 會遭遇的問題,此部分的資料仍在搜集整理中。 2. 製程參數設定: 在製程參數教學這部分規劃的架構,包括公式計算、加工條件及抗拉強度之查詢,其 中公式計算有主軸轉數、一般端銑刀、球型端銑刀、鑽孔、鏜孔及攻牙等切削公式計算, 並可在線上做即時運算,圖1-5 為一般端銑刀切削公式計算的網頁。 圖1-5、一般端銑刀公式計算 另外,由於球形銑刀與一般端銑刀接觸工件的接觸方式不同,故切削轉數的公式之計 算必須再加上一個修正係數,在此,另提出說明,圖1-6 為球形銑刀之修正轉數的公式:

(29)

)

(

2

1

max

mm

f

f

 

h

f

z

=

其中 Fz:每刃進給之計算: hmax:最大切削厚度: D=球形刀直徑 10-12 16 20 25 32 40 50 hmax 0.08 0.13 0.14 0.16 0.24 0.20 0.20 f1:徑向切削深度修正係數(ap = 軸向切削深度) ae Deff 50 40 20 10 5 2.5 2 1.5 1 Ft 4.5 4 3 2 1.5 1 1 1 1 f2:軸向切削深度修正係數(ap = 徑向切削深度) 圖1-6、球形銑刀之修正係數圖

(30)

3. NC 程式教學:

提供線上NC 程式語法使用教學及 NC 程式知識庫即時查詢系統,供使用者於編寫 NC 程式,遇到問題時,可立即使用查詢系統查詢,節省翻書找資料的時間,並藉由彩色的文 字、圖片及動態影片教學方式,大大增加學習的樂趣及興緻。 NC 程式之關聯式資料庫是以物件類別(class)方式建立,並依程式撰寫之先後順序由上 至下排列,以便使用者學習,圖1-7 為程式分類之說明: 圖1-7、程式分類說明 在NC 語法教學方面的資料已蒐集、整理完成,資料庫方面已經建立完整,圖 1-8 為 查詢G90 語法畫面,再來將會舉一個分段鑽孔切削循環的 NC 語法教學的例子做介紹: 座標設定指令:G92、G90、G91、G91、G54~G59 平面設定指令:G17、G18、G19 單位設定指令:G20、G21 原點回歸指令:G28、G29 加 工 指 令:G01、G02、G03、螺旋插值 刀徑補正指令:G40、G41、G42 刀長補正指令:G43、G44、G49 其 它 指 令:G04、G10 固定循環設定:G98、G99、G80 鑽孔循環指令:G81、G82、G73、G83 鏜孔循環指令:G76、G85、G86、G88、G89、G87 攻牙循環指令:G74、G84

(31)

圖1-8、查詢 G90 語法之畫面 分段鑽孔切削循環(G73) 程式指令: G73 X_Y_Z_R_Q_L_F 指令說明: 在刀具作快速定位後,鑽頭每往下切鑽削Q 的距離後,往上做退刀的動作,退回 D 的 距離,快速定位後,再往下繼續切削,如圖1-9。

(32)

目的:1.達到斷屑的效果。2.並把切屑排出。(註:1.斷屑與切屑排出,刀具往下做切 削的動作,就會有切屑的產生,當刀具沒有往下做切削的動作時,就沒有切屑的產生,就 會有斷屑的效果,而當主軸往上移動時,就會把切屑往上帶,產生排屑的效果)。 圖1-9、分段鑽孔切削循環動作圖 程式說明: G92 X0.Y0.Z15. 設定程式座標原點 G00 X7.5Y11.Z15. 快速定位至(7.5 ,11 ,15) S250 M03 轉250RPM,主軸正轉 G99 G73 X40.5Y31.Z-82. R5. Q10. F100 鑽孔切削循環(孔 1),退回至參考點並設定 R 點 1.刀具起始位置 2.快速定位至起始點 3.往下切削進刀量(Q) 4.往上退刀量(D) 5.往下快速定位至切削點 6.持續 4、5 步驟直到把工件加工 至Z 深度為止 7. 主軸退刀至起始點(G99) 8.主軸退刀至起始點(G98)

(33)

為Z=5,每次進刀量 10mm,進幾率為 100 mm/min X73.5 鑽孔(孔 2) G80 Z50. 循環切削取消,提刀至 Z=50mm M30 程式結束 G73 與 G83 的比較: 共同處: 1.都有做回刀的功能。 2.達到斷屑的效果。 3.並把切屑排出。 不同處: G73 是往下鑽削 Q 的距離後,退回一個固定 D 的距離。 G83 則是往下鑽削 Q 的距離後,退到參考點(R)的基準面。 比較其優缺點: G73 有斷屑與排屑的功能,可以節省時間達到比較快速的優點,而缺點是怕切屑卡在 鑽頭上,而無法順利的排出,會使鑽頭的摩擦力增加,而鑽頭有斷裂可能。 G83 有斷屑與排屑的功能,有改善其卡屑的缺點,鑽頭比較不會斷裂,且孔品質較好, 適用於較深的孔。

1-3-2 遠距切削模擬

在遠距切削模擬這部分,分為銑切加工及線切割等部分,目前己完成線上即時撰寫NC 程式之三軸銑切加工的線架構3D 即時動態模擬部分,未來將發展三軸、多軸銑切加工實 體模擬,並以3D 即時動態實體畫面展示,讓使用者可局部縮放及多角度的動態旋轉來檢 視切削結果,圖1-10 為三軸銑切加工之線架構 3D 模擬圖。

(34)

圖1-10、三軸銑切加工之線架構 3D 模擬圖

1-4 進入 NC 程式模擬系統

為了讓減少多人同時上網時,對Server 端主機的負擔,採用了 COBRA 分散式架構, 將整個模擬系統程式分割成NC 解碼及繪圖兩部分,在 Server 端僅僅只有 NC 解碼的主程 式,而繪圖程式則放在Client 端,故使用本 NC 程式模擬系統前,須先下載在 Client 端之 繪圖程式,並取得使用授權碼後,才可使用。以下為使用NC 程式模擬系統之步驟: (1) 下載 Client 端之繪圖程式之安裝檔,如圖 1-11。

(35)

圖1-11、下載 Client 端之繪圖程式之網頁畫面 (2) 安裝 Client 端之 NC 程式模擬系統,如圖 1-12:

圖1-12、NC 程式模擬系統安裝畫面

(3) 登入網頁,進入遠距切削模擬網頁,取得會員授權碼後,即可啟動 NC 程式模擬

(36)

圖1-13、NC 程式模擬系統主畫面

(4) 讀入 NC 檔案,並將 NC 檔案送至遠端的 Server 進行 NC 解碼,如圖 1-14。

圖1-14、讀入 NC 檔畫面

(5) 傳回 Server 端解碼後的資料結構,並繪出線架構圖形,圖 1-15 為 NC 線架構模擬 畫面。

(37)
(38)

(二) 線架構之 NC 模擬驗證 CNC 程式是控制 CNC 機器動作之程式碼,在不同的 CNC 機器就有不同定義的程式碼 來執行適合該機器的動作,例如CNC 銑床或 CNC 線切割機所定義之 NC 程式碼則有所不 同,因為他們必須去適應不同的工作,另外對不同國家或不同廠牌所定義之NC 碼也不盡 相同,因此學習者必須根據該工具機定義之標準,學習撰寫該機器之加工程式碼並傳送給 CNC 機器,CNC 機器之控制器則根據 NC 程式碼做出預期之工作,因此為防止不當之 NC 程式碼造成錯誤之機器動作而導致加工失敗而損壞機器甚或傷害人員,NC 程式在執行送 入CNC 機器之前必須先做模擬以防錯誤,所以本文發展 CNC 程式之教學模擬,其一方面 提升學生之學習效率,另外也防止發生錯誤,另外基於教學資源之共享與學習環境之多元 化而發展網路間的學習系統。

2-1 CNC 程式解譯

由於NC 程式之模擬系統須先將 NC 程式解譯後,根據 NC 指令與座標才能模擬 CNC 機器之動作,而 NC 碼之定義基本上可分準備機能(G 碼)與輔助機能(M 碼),其它為 進給率F、轉速 S、刀具 T 碼等,其中 G 碼與 M 碼均為兩位數字(00~99)定義出不同之功 能,而G 碼為主要定義機器運動之功能,主要為解 CNC 加工中心機之 NC 程式碼,由於 須解譯固定循環(Canned Cycle)指令,因此先依一行指令包含的動作數與動作方式的不同, 將 NC 碼分成五大類別做初始解碼,即分成(1)直線運動;(2)圓弧運動;(3)固定循環;(4) 原點回歸;(5)座標轉換等五種,之後再將多重運動指令部分如原點回歸、固定循環等,再 次解成基本之直線與圓弧運動,因此最後解譯結果僅剩直線與圓弧的運動,另外為確保NC 程式的正確性,在解碼過程中應一行一行的檢查NC 程式的格式、語法、數值座標的正確 性,並指出錯誤地方與建議之更正,以提升NC 程式學習效果,其解碼的流程如圖 2-1 所 示。

(39)

解碼起始 解出G碼和座標 讀入一行 NC程式 格式、語法偵錯 建立刀具運動路 徑的資料結構 NC程式結束 No 固定循環解譯 原點回歸解譯 解譯結束 Yes 圖2-1、NC 碼解譯流程圖

2-2 NC 路徑資料結構

由於NC 路徑教學模擬時,使用者最希望能由 NC 程式直接指向對應的模擬路徑,而 且更希望能由模擬路徑指回對應之NC 程式,如此學習者便能從刀具路徑中看到錯誤的位 置,並進而輕易地修改NC 程式,因此解碼後的刀具路徑資料必須能具備雙向指標的功能, 另外由於固定循環等多重路徑,經初步解譯後尚須再解譯成直線與圓弧資料等複雜問題的 處理,因此 NC 路徑之資料結構的規劃上較為複雜,目前處理的方式是依照解譯的程序先 將路徑資料規劃為直線、圓弧、固定循環、回 Home 等四種資料結構,並將每一行的 NC 程式對應到上述之四種資料結構及結構位址,而每一種資料結構中有一欄位記錄 NC 行 號,因而構成雙向指標,使學習者能由NC 指向路徑,且能由路徑指回 NC 程式碼以便修 正,至於固定循環與回Home 的部分則增加再解碼後之直線資料結構的起始位址與結構資 料數,因此由NC 行號可找到資料結構類別,再找到對應之資料結構起始位址與長度,即 可找出固定循環與回Home 的數值資料,圖 2-2 為本文的 NC 路徑資料架構圖,圖 2-3 為由 NC 程式對應到路徑資料以及由路徑資料對應到 NC 程式的資料結構示意圖。

(40)

NC 程 式 結 構 類 別 結 構 位 置 直線結構 NC行號 運動別 數值座標 座標系 補正形式 圓弧結構 NC行號 運動別 數值座標 座標系 補正形式 固定循環結構 NC行號 資料起始 數值座標 座標系 補正形式 原點回歸結構 NC行號 資料起始 數值座標 圖2-2、NC 路徑資料架構圖 NC 程 式 結 構 類 別 結 構 位 置 Line1 NC行號 數值資料… Line2 NC行號 數值資料… Arc1 NC行號 數值資料… Arc2 NC行號 數值資料… Cycle1 NC行號 資料起始 數值資料… Cycle2 NC行號 資料起始 數值資料… …… … 回Home1 NC行號 數值資料… 回Home2 NC行號 數值資料… 圖2-3、NC 程式與路徑之雙向指標結構圖

(41)

2-3 線架構之 NC 模擬與驗證

當NC 程式撰寫完成後要進行加工前,為了確保 NC 程式的正確性,並避免撞刀造成 危險,一定要在上機前進行NC 程式的模擬,因此 NC 程式模擬系統的功能最好必須能與 控制器相似,因此模擬系統的功能必須具備如下: (1) NC 格式的校對 (2) 加工路徑幾何的驗證 (3) 加工路徑幾何的繪製 (4) NC 程式錯誤的偵測與更正的提示 (5) 座標的規劃,包括絕對座標、增量座標及座標系的規劃 (6) 單節操作、選擇跳躍等基本操作功能 (7) NC 程式編輯 (8) 加工範圍的計算,此功能的主要目的是用於刀具夾持架設之用 (9) 其他像鏡射、比例縮放等特殊功能 (10) 刀號、補正號碼、轉速、進給率等的顯示 (11) 刀具參數、補正參數等設定與模擬 (12) 加工時間的計算 (13) 夾治具、工件、機器碰撞的檢測 (14) 切削力的預測等 對於以上各種功能之設計,已經完成以上各項目,除了上述的功能外系統還加入NC 程式與DXF 圖形之互換,以提供給學生使用測試。

2-3-1 系統功能簡介

(42)

提供StringBuilder,表示可變動的字元字串而且無法被繼承。StringBuilder 表示一個和字串 相似的物件,它的值是一個可變動的連續字元。值之所以可以變動的原因是一旦以附加、

移除、取代或插入字元的方式建立後救可以修改。和Visual Basic 6.0 的字串比較起來處理

速度較快。但CORBA 目前尚未發展相關支援 Visual Studio.NET 的模組,因此為了配合

CORBA 技術的使用,原先在.NET 上發展的系統全部改回以 Visual Basic 6.0 軟體來開發。

而目前已全部改為Visual Basic 6.0 來開發,其系統主要規劃包括下拉式功能表、圖示 指令區、NC 程式顯示區及刀具路徑模擬區等,如圖 2-4 所示。 1. 系統畫面介紹: 圖2-4 系統介面說明 刀具路徑模擬區 圖示指令區 下拉式功能表 NC 程式顯示區 系統設定

(43)

2.功能表(Menu)區: 功能表主要用來開啟或呼叫程式所提供的功能。NCsimulation 所有的操作指令以及系 統狀態的切換均可透過功能表來下達,如圖2-5 所示。 圖2-5、功能表說明 3.常用工具列功能圖示按鍵區: 圖示按鍵主要用來呼叫程式中比較常用的功能,圖2-6 為圖示指令說明。 圖2-6、圖示指令說明 開新檔 開啟檔案 存檔 NC to OpenGL NC to DXF 選擇 拖曳 水平放大 運行軌跡 X 軸旋轉 Y 軸旋轉 Z 軸旋轉 移動 旋轉 自動旋轉 縮放

(44)

4.刀具路徑模擬區: 刀具路徑模擬區為系統繪製圖形並顯示圖形的區域,如圖2-7 所示。 圖2-7、刀具路徑模擬區說明 5.NC 程式編輯區: NC 程式編輯區主要提供 NC 程式編輯功能,使用者可以在此編案 NC 程式或載入一個 已經存在的NC 程式來進行編修,圖 2-8 為 NC 程式編輯區說明。 圖2-8、NC 程式編輯區說明

(45)

(三) CORBA 技術的應用

3-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)端而言,不須花費大量的軟硬體投資即可得 到令人滿意的成果。 由於三層式結構(3-Tier Structure)在網際網路的使用具有強大整合功能而廣受重視,在 三層式結構內所有的服務要求是由客戶端直接提出,並透過網路先送到仲介者,再由仲介 者依服務的需求來安排適當的伺服器做處理,再由伺服端將處理結果回覆給客戶,再加上

物件管理組織OMG(Object Management Group)制定了共通物件請求經紀架構(Common

Object Request Broker Architecture)的標準,即 CORBA 標準[22,23],因而加強了軟體的可 攜性(Portability)、再利用性(Reusability)、以及互通性,因此允許一應用程式跟另一個 應用程式進行溝通時,可以不用管另一個應用程式究竟在何處,即所謂的跨平台、跨作業 系統、跨程式語言應用環境,因此三層式結構對於網路流量增加時,將可以很容易地提供 多個伺服器的同時服務。

(46)

簡單的說,三層式的模型就是在原來的用戶端(Client)與伺服端(Server)中間,插入一個 中介層 (middle layer),而三層式架構所帶來的好處如下: z 對用戶端而言,三層式架構可以省去同時面對許多種不同伺服端的窘境。用戶端可以 用一致的程式界面與協定與中介層溝通,伺服端的異質性,則被中介層隱藏住。 z 對伺服端而言,三層式架構免除了直接面對所有用戶端的情形,由另一種角度來看, 中介層的存在,可以讓伺服端容易地以「一群」伺服器來提供服務,而分散單一伺服 器的負擔。 目前分散式物件的技術主要有以下三種:

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)來描述。

(47)

這三種主要的分散式物件技術簡略比較如下:

--- DCOM Java CORBA

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

(48)

3-2 CORBA 架構

共通物件請求經紀架構(Common Object Request Broker Architecture,CORBA)是物件管 理組織(Object Management Group,OMG) 為了解決在各種硬體及平台下各式的程式語言所 發展的功能能夠彼此分享之考量下,透過標準之介面定義,發展出的一種共通物件請求經

紀架構的機制,使得各自發展之應用程式間能夠相互呼叫引用,因此在CORBA 的架構環

境下,各種應用程式便可以具有跨平台、跨作業系統、跨程式語言以及遠距分散式處理之

能力,為了整合CORBA 的應用物件、使用者介面物件、特定領域(如醫療、通訊、金融

等)與方便供通物件的分享物件管理組織制訂物件管理架構(Object Management Architecture ,OMA)規格,OMA 的四個主要架構規範如下: z CORBA Services:加強CORBA的功能,其中共定義了16種服務,可使得發展者更 容易對所建構的元件進行管理與分享的工作,如Naming Services。 z CORBA Facilities:是一群提供應用於Application上的元件規格,這些元件的功能 大都為處理使用者介面,工作流程等方面。 z CORBA Domain:提供用以發展特定領域之應用程式的規格,如醫療、通訊、金 融。 z CORBA Applications:是用以發展特定應用程式之物件的集合,基本上,每個使 用CORBA所寫成的應用程式,皆屬於CORBA Application,故使用者所定義的物 件,皆歸納於此類。 至於訂定這些規格所使用的語言,是由OMG 所創造出來的界面定義語言(Interface Definition Language,IDL)所寫成的,下節另外作介紹。

(49)

圖3-1、OMA 架構圖

物件需求經紀(Object Request Broker,ORB),就像 Socket 一樣,負責將訊息傳送到目

的地,只不過ORB 可在不同的作業系統、網路及 Application 間進行傳遞。當 OMG 決定

CORBA 中的各個元件及其規格後,軟體製造商便可依此規格做出 ORB。有了 ORB 後,

發展者才能做出不同功能的Application,達到跨平台、跨作業系統、跨語言之功能。簡而

言之,ORB 是一個仲介軟體(middleware) 用來確定主從物件主從的關係。ORB 可使客戶 端的程式能夠透明地呼叫位於伺服器端的物件,這個物件可以是位於遠方的物件,也可以 是同一部機器的物件。ORB 接收請求,並且負責找到一個執行這個請求的物件、傳給執行 參數、呼叫指定的方法、和傳回結果等工作,客戶端可以不知道這個物件的位置、使用的 程式語言、作業系統、或是任何和這個物件的界面(interface)無關的部份。這樣的作法,使

得ORB 提供在異質性(heterogeneous)分散式環境中的應用程式之互通性,並可以連接多個

物件系統,例如VBOrb,是一個提供 Visual Basic 利用 CORBA 架構來和其他程式語言所

Object Request Broker

etc.

CORBA Services

Life Cycle Naming Security

Event Time etc. Vertical CORBA Facilities Application Objects etc. Horizontal CORBA Facilities

Healthcare Financial User

Interface

Info. Mgmt

(50)

撰寫的程式進行溝通的橋樑[26],可以利用 Visual Basic 來撰寫一個 CORBA 架構的 Server

及Client,並且透過 VBOrb 去和任何語言所撰寫的 CORBA 程式溝通,Client 可以呼叫使

用遠端電腦所提供的物件功能,而遠端的電腦也可以透過Call Back 的方式來使用本端電腦 所提供的物件功能。 利用CORBA所建構的應用程式之各項元件及其關係如圖3-2所示,而ORB負責連接不 同的物件,並可達成以下幾點: 1. 物件位置的通透性(Location Transparency)。 2. 動態或靜態的物件呼叫(Invocations)。 3. 可用高階的物件語言來使用ORB(Language Binding)。 4. 物件間聯繫的安全性,以及其它物件導向應有的特性。 圖3-2 CORBA的運作架構圖

Object Request Broker

Client Object Server Object

1.呼叫 4.結果 傳回 5.傳回到 client 3.尋找物 件及使用 2.詢問 IDL Skeleton Interface

(51)

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

z IDL Client Stub:經由IDL編譯(compiler)器所產生的,讓Client可使用遠端物件。 z IDL Server Skeleton:經由IDL編譯(compiler)器所產生的,使Server在接收到Request

時,可以決定由Server中的那個物件進行處理。

一般而言,由於CORBA 物件可用多種程式語言所作成,但各式程式語言所支援的資

料型態皆不同,所以,在建構CORBA 物件時,皆必須先用 IDL 將物件定義出來後,交由

IDL 編譯器處理,以產生將某程式語言所使用的資料型態轉換為 CORBA 的資料形態的元

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

為Server Skeleton。

3-3 命名服務(Naming Service)

為處理分散式物件管理的問題,OMG 設計了 16 種分散式物件程式的伺服單元,來配

合CORBA 系統的運作,統稱為 CORBA Services,例如生命期伺服單元(Life Cycle

Service)、常駐伺服單元(Persistence Service)、命名伺服單元(Naming Service)、事件單元 (Event Service)、安全伺服單元(Security Service)等等[34]。其中 Naming Service 主要的功能 是依Server 端所註冊的元件名稱產生元件的 Reference,讓 Client 端在 Naming Service 上面 尋找所需要元件的Reference,進而告知 Client 端擁有該元件的 Server 端地址,讓 Client

端去使用該Server 端的元件,因此透過 Naming Service 提供的服務使個別開發的共通物件

(52)

Server 1 Client 1 Naming Service 1.物件的Reference註冊 Server 2 Server... Client 2 Client ... . . . . . 2.物件的Reference請求 3.物件的Referencec 回覆 . . . . . 4.使用物件 5.送回結果 圖3-3、Naming Service 功能示意圖

3-4 界面定義語言

CORBA 為了要以統一的方式來定義物件的界面(Interface),故制訂出界面定義語言 (Interface Definition Language,IDL),在透過一致的界面定義,使物件的界面(Interface)與 物件的實體(Implementation)各自獨立,且 IDL 的定義是與作業平台(Platform)及語言 (Language)是沒有相關的,所以當程式開發者使用 CORBA 的語言後,可以經由適當的 IDL

編譯器將IDL 轉換成該語言可使用之物件。而 IDL 主要只是用來定義物件界面的規格,並

不涉及物件之實際運作內容的處理。

3-4-1 IDL 編寫架構

由於IDL 是物件導向語言,故使用 IDL 描述定義物件的過程時,是相當類似 C++或

(53)

1.有那些物件及其名稱。 2.物件中需要有那些參數。

3.物件的用途與功能 (其輸入參數、輸出參數為何)。 4.物件之異常處理(exception)。

確定上述問題以後,即可進行IDL 之編寫,在 IDL file 編寫時,有以下幾點規則,須

先了解: 1.每一物件均須在『{}』中編寫。 2.每一物件動作(operation)、宣告或定義結束,後面須加上『;』做結尾。 3.多行註解以『/*註解內容*/』方式,單行註解則以『//註解內容』來表示。 上述範例中,宣告了一個Heart 的物件名,此物件中有一名為 compute 的動作 (operation),並無輸入、輸出參數,僅有一個型態為字串(String)的遞回參數,一般在一個 module 內可以容許有多個 interface,而 interface 內也可有多個 operation 的存在,其相關語 法會在下一節介紹。

3-4-2 IDL 語法介紹

了解IDL 的編寫架構後,必須知道 IDL 保留字(Keyword)及用法,才能編寫出編譯後

所需要的元件功能;CORBA 從發展至今,就是以 Java 及 C/C++為主體,因此編寫 IDL 的

IDL 程式參數對照:

module

模組名稱

{

interface

物件名稱

{

遞回參數 物件動作(輸入參數)

;

};

};

IDL 程式範例:

module Function

{

interface Heart

{

string compute( );

};

};

(54)

語法是相當類似C/C++的語法,故在市面上的參考書籍資料相當多;而 Visual Basic6.0 方 面,僅僅只有德國的Martin Both 所撰寫的 VBOrb(且並無支援 Visual Basic.NET),在這方

面的參考資料相當少,因此,另外自行整理出Visual Basic6.0 語言對應(Language Mapping)

的資料(如表 3-1),方便後續 IDL 的編寫及宣告。

表3-1、IDL 保留字及 VB6.0 語言對應表

IDL Keyword 說明 對應VB6.0 語言

[unsigned] short 16 bit [unsigned] integer Integer

[unsigned] long 32 bit [unsigned] integer Long

[unsigned] long long 64 bit [unsigned] integer Variant

Float 32 bit IEEE float-point number

(有效位數 7 位)

Single

Double 64 bit IEEE float-point number

(有效位數 15 位)

Double

loong double 128 bit IEEE float-point number

(有效位數 19 位)

cOrbLongdouble

octet 8 bit byte Byte

char 8 bit character (ISO latin-1)

存放 ASCII 碼或較小的整數

Byte

wchar 16 bit character (wide character)

國際字元碼(如日、韓文)

Integer

string char 的集合 String

wstring wchar 的集合 String

(55)

由於IDL 的資料型態相當多,研究重點並非在此,本文僅介紹部份常用的型態: typedef:可更改型態的名稱,定義出自己所需的新型態,亦可混合型態屬性,使新的型態

同時擁有兩種以上的型態屬性。 ex:typedef 型態 新的型態

array:此為固定大小的陣列型態,必須配合 typedef 的型態來定義,必須在 IDL 編寫時, 就給定陣列大小的值,方法如下。

ex:typedef short data; //data 參數擁有整數的屬性 //data_array 參數是大小為 5 的一維整數陣列 typedef date data_array[5];

//data_array_multi 參數是大小為 5x10 的二維整數陣列 typedef data_array data_array_multi[10];

//二維陣列另一寫法,此寫法只須一行即可有上述屬性 typedef short data_array_multi[5][10];

sequence:此為可固定、可變動大小的陣列型態,也必須配合 typedef 的型態來定義,當需

要改變陣列大小時,最好使用sequence,而不用 Array。sequence 亦可多維定義,

但值得注意的是在定義多維陣列時『> >』間須空一格,不然會出現編譯錯誤。 ex://data_array 參數是大小為 30 的一維整數陣列

typedef sequence<short,30> data_array;

//data_array_multi 參數是大小為 10 的二維整數陣列 typedef sequence< sequence<short,10> > data_array_multi; //date_array 參數為可變動大小的一維字串陣列

(56)

3-4-3 編寫 IDL 問題與對策

撰寫VB 程式時,為了變數命名的方便,常使用底線『_』來配合命名,但在 VBOrb

中Complier 編寫好 IDL 之後,會發現所產生的 c_ FunctionHeart 類別模組中(如圖 3-4),有 部分副程式會忽略掉底線,造成變數名稱不相同,必須再自行加上。 圖3-4、在 c_ FunctionHeart 的元件上發生之錯誤 IDL 程式範例說明:

module

Function

{

interface

Heart

{

string

compute_AAA();

};

};

(57)

3-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的方式來使用本端電腦所提供 的物件功能(如圖3-5)。VBOrb為免費軟體,目前最新版本為2002年12月所發表的1.20版, 相關資訊及範例程式可以在http://www.martin-both.de/ 取得。 以VB撰寫 Server程式 以VB撰寫 Client程式

ORB

以JAVA撰寫 Client程式

ORB

以C++撰寫 Server程式 以C++撰寫 Client程式 以JAVA撰寫 Client程式

ORB

圖3-5 ORB 的功能示意圖

數據

圖 1-8、查詢 G90 語法之畫面  分段鑽孔切削循環(G73)   程式指令: G73 X_Y_Z_R_Q_L_F   指令說明:  在刀具作快速定位後,鑽頭每往下切鑽削 Q 的距離後,往上做退刀的動作,退回 D 的 距離,快速定位後,再往下繼續切削,如圖 1-9。
圖 1-10、三軸銑切加工之線架構 3D 模擬圖  1-4  進入 NC 程式模擬系統  為了讓減少多人同時上網時,對 Server 端主機的負擔,採用了 COBRA 分散式架構, 將整個模擬系統程式分割成 NC 解碼及繪圖兩部分,在 Server 端僅僅只有 NC 解碼的主程 式,而繪圖程式則放在 Client 端,故使用本 NC 程式模擬系統前,須先下載在 Client 端之 繪圖程式,並取得使用授權碼後,才可使用。以下為使用 NC 程式模擬系統之步驟:  (1)  下載 Client 端之繪圖程式之安
圖 1-11、下載 Client 端之繪圖程式之網頁畫面  (2)  安裝 Client 端之 NC 程式模擬系統,如圖 1-12:
圖 1-13、NC 程式模擬系統主畫面
+7

參考文獻

相關文件

Sharma (1999), “An Intergrated Machine Vision Based System for Solving the Non-Covex Cutting Stock Problem Using Genetic Algorithms,” Journal of Manufacturing Systems, Vol..

Hogg (1982), “A State-of-the-art Survey of Dispatching Rules for Manufacturing Job Shop Operation,” International Journal of Production Research, Vol.. Gardiner (1997), “A

and Feng-Tsai Lin, “Analysis of the Transient Ground Surface Displacements Subject to a Point Sink in a Poroelastic Half Space,” Chung Hua Journal of Science and Engineering,

Gen, &#34;Minmax earliness/tardiness scheduling in identical parallel machine system using genetic algorithms,&#34; Computers &amp; Industrial Engineering, vol. Cheng,

48.McGrath M.E.and Romeri M.N, “From experience the R&amp;D effectiveness index: A metric for product development performance”, Journal of Product Innovation Management Vol. Jr,

(一)

本研究以河川生態工法為案例探討對象,應用自行開發設計之網

本研究以河川生態工法為案例探討對象,應用自行開發設計之網