跳轉到

控制器 (Controller)

控制器是專案用來讀取其程式的 NC 解析器:一個廠牌、該廠牌所假定的機台與控制設定,以及 NC 程式所定址的座標、補正與變數表。設定它,就是先挑廠牌,再填入該廠牌長出來的那些表。

位置

設備 (Equipment) 頁面,路由 /equipment,從選單列的「設備」切換鈕進入。選取控制樹的控制器分支(/equipment?tree=equipment/controller);它排在「環境」之後(「顯示物理選項」關著時則排在「機構」之後),排在它下面的只有選用的 CSV 與 CL 控制器;選取哪一個節點,它的編輯器就在樹旁邊那一欄開啟。

只有在專案開著、而且專案上解析出了控制器時,這個分支才會長出子節點,所以一個孤零零的「控制器」節點是專案開啟前的狀態,而不是故障;沒有指名控制器的專案檔則沿用 Fanuc 預設組。一旦解析出執行器 (runner),根節點自己的面板就會以徽章標示生效中的廠牌,並啟用物件管理(⋮)選單:它的載入會開在出貨的廠牌預設組上,把一個 .Controller、.SoftNcRunner 或 .xml 執行器檔案裝成控制器;它的另存新檔則把目前的控制器寫出去,預設的檔名是 NcRunner.Controller。載入時哪些表會留在專案上、存出的檔案又不包含什麼,見兩個層面。

先挑廠牌

選取控制器品牌(equipment/controller/machine/brand),從 Fanuc、Siemens、Heidenhain、Syntec 與 Mazak 中挑一個,按下套用品牌,並在切換控制器品牌對話框中確認。在那之前,所挑的廠牌只是暫存:按還原會把它捨棄,選取樹上的另一列也會。

這件事要比其他任何設定都先做,因為它替換的是整個控制器,而不只是一個欄位:

  1. 方言會改變。 每個廠牌都是不同的讀取器;它的 G 與 M 字實際上做什麼,在 NC 方言。
  2. 節點組會改變。 分支會重新長出來,所以新廠牌沒有其概念的節點就不復存在,而新廠牌自己的節點會出現。
  3. 機台設定會重置為新預設組的預設值。屬於執行器本身的那些——換刀位置、單節跳過層、副程式資料夾與巨集迴圈防護——每次套用都會重置。行程極限、快速進給率、原點參考點、M 碼宣告與原生參數則存放在廠牌的參數表裡,只有在這次切換也把那張表一併清掉時才會重置;Fanuc 與 Mazak 共用同一張,所以在這兩者之間切換,它們會維持原樣。
  4. 舊廠牌自己的程式資料表會被移除——也就是只由該廠牌代理的那幾張:Siemens 的框架、$TC_DP 補正連同其刀具名稱,以及 R 參數;Heidenhain 的基準點預設與偏移,以及它的永久 Q 參數。刀具補正在每一次切換中都會保留,保持型共同變數則在 Fanuc、Syntec 與 Mazak 之間保留。被清掉的不會回來:切換回去時,這些表會依新預設組的預設值全新建立。將工作座標 XYZ (G54…) 帶入新品牌的資料表預設為勾選,會把工件偏移帶過去——只帶這些,而且只帶新廠牌也持有的 id:從 Fanuc 切到 Siemens 會保留 G54–G57,其餘捨棄。

NC 程式播放中時,切換廠牌與物件管理的載入都會被拒絕——見播放程式。

示範專案上的控制器品牌葉節點,路由 /equipment?tree=equipment/controller/machine/brand。它上面的機台層面已經展開,所以這個廠牌在那裡長出的每一個節點都列了出來,其中「參數(原生)」群組是收合的;樹旁邊的編輯器欄放著讀作 Fanuc 的控制器品牌下拉選單、已勾選的帶入核取方塊,以及只有在暫存了另一個廠牌時才會啟用的套用品牌與還原按鈕。

「控制樹」欄與編輯器欄並排:控制器分支的「機台/控制器」層面已展開,列出控制器品牌、機械極限(行程)、快速進給率、原點/G28 參考點、換刀位置、控制器參數、M 碼宣告、固定循環(啄鑽)、單節跳過/刪除、副程式資料夾,以及「參數(原生)」群組;標題為「控制器 / 機台/控制器 / 控制器品牌」的編輯器欄顯示讀作 Fanuc 的「控制器品牌」下拉選單、一個已勾選並讀作「將工作座標 XYZ (G54…) 帶入新品牌的資料表」的核取方塊,以及「套用品牌」與「還原」按鈕

兩個層面

控制器根節點底下的每一個節點,都掛在兩個群組主幹的其中一個上,而掛在哪一個,就說明了它描述的是什麼;選取一個主幹,會列出它的子節點。

層面 樹 id 上面有什麼
機台/控制器 equipment/controller/machine 機台被配置成要怎麼運作:行程極限、快速進給率、原點/G28 參考點、換刀位置、同時以分組形式與原生形式呈現的控制器參數、啄鑽退刀間隙、M 碼宣告、單節跳過層、副程式資料夾,以及在 Siemens 上的分度位置表
程式資料 equipment/controller/program-data 程式所讀寫的那些表:每個廠牌都有的工作座標 (G54…) 與刀具補正,再加上廠牌自己的——Siemens 的框架、$TC_DP 補正、刀具名稱與 R 參數,Heidenhain 的基準點預設與偏移,Fanuc 系的保持型共同變數

機台層面上的逐軸列由工具機的機構鏈驅動:每個廠牌預設組都已經宣告了 X、Y 與 Z,掛上一台工具機,則會在它們旁邊加上那條鏈自己的軸。程式資料留在專案上,廠牌的參數表也一樣:載入一個與目前生效廠牌相同的控制器檔案,兩者都會維持原樣——行程極限、快速進給率、原點參考點、M 碼宣告與原生參數都包括在內——只從檔案取用它的方言與屬於執行器本身的設定(換刀位置、單節跳過層、副程式資料夾與迴圈防護)。基於同樣的理由,另存新檔寫出的檔案,帶的是控制器當初進來時的那張參數表——它的廠牌預設組的,或所載入檔案的——而不是在「機台/控制器」層面上對它做的編輯。

參數(原生)(equipment/controller/machine/native)是一個由三個葉節點組成的群組——系統參數、軸參數與軸參數(整數)——以控制器自身的參數 id、原生單位的原始儲存值呈現廠牌的參數表,所以數值可以從真實控制器的參數畫面一對一抄過來。同一層面上那些介面形式的節點,編輯的是同一張表。

工作座標 (G54…) 一律列出它的廠牌那張表所持有的一般 G54–G59 各列——Siemens 只預置 G54–G57——在 Fanuc、Mazak 與 Syntec 上,還有位於廠牌表後面那張廠牌中立表裡的延伸 G59.1–G59.9 各列;G54.1P 與 G505–G599 各列,則要等到有值不為零、或顯示全部切換開著時才會顯示。在 Siemens 上,這些列就是框架 (Siemens) 也列出的那些可設定框架;在 Heidenhain 上,G54–G59 是基準點預設 (Q339) 的第 1–6 列,所以在任一處所做的編輯,兩處都看得到。每一列都帶著 P0——寫入工件的程式原點錨點所在的機械座標——與 M0——寫入機械零點;點選列的任何位置,也會在畫布上標出該座標。兩者都是寫進表裡;都不會移動零件。另一個方向——移動零件,讓程式原點落在某一列已持有的偏移上——在這個分支上沒有控制項。它以一個 HTTP 呼叫與一個任務腳本 (mission script) 呼叫的形式存在,兩者都會改寫夾具那條從它的幾何錨點直通它的床台安裝點的連接上的變換器;在頁面上,零件是在拓樸欄裡用手動擺放的——見程式原點對齊。同一頁也說明了一個記錄下來的偏移在鍵入之前可能需要處理的兩件事:一列量到的是主軸的刀具安裝點,而不是刀尖;而且沒有給 Fanuc 式外部工件偏移 (EXT) 的列,所以那個偏移要加進程式所用的每一列。

刀具補正(equipment/controller/program-data/tool-offsets)每個刀號一列,H 與 D 合在一起:理想高度 (mm)、軸向磨損 (mm)、理想半徑 (mm) 與徑向磨損 (mm)。理想補正值隨刀具庫連動開著時,理想欄位跟隨刀具庫(銑刀)——每把刀具一列,其高度是刀具從主軸安裝點到刀尖的長度——並且會在打開這個開關時、按下從刀具庫更新時,以及每次播放開始時重新寫入;這時列不能新增、重新編號或刪除,只有磨損欄位可以鍵入。補正基準決定那次重寫在理想半徑裡放什麼:刀具半徑(D 列=刀具半徑,NC 為零件輪廓)寫入刀具外形的最大半徑,適用於依零件輪廓後處理的程式;零基準(D 列只放磨耗,NC 為刀心路徑)寫入 0,適用於 CAM 已經輸出刀心路徑的程式。欄位跟隨刀具庫時變更基準,會立刻把它們重寫。在 Siemens 上,這個葉節點讀作刀具補正 (ISO G43 H),只服務 ISO G43 H 路徑:D 字讀的是刀具補正 ($TC_DP),當那張表沒有該刀具與切削刃的列時,會退回這張表的高度,並發出警告。

不存在的資料表

目前生效的廠牌沒有其概念的節點,根本不會建立,而不是顯示成停用——Fanuc 上的「框架」、Siemens 上的「保持型共同變數」、Heidenhain 上的「單節跳過/刪除」——而指名這種節點的 ?tree= 連結,在不對的廠牌上什麼也不做,所以分享任何 id 時都要一併寫出廠牌。id 也不保證能撐過版本變更——見畫面導覽。

另有兩列可能因為一個不相干的原因而與同事的樹不同:CSV 控制器與 CL 控制器是兩個獨立的、不屬於任何廠牌的控制器,在偏好設定下拉選單裡它們各自的方塊打開之前都不存在,而哪個方塊打開是各裝置各自的設定——見偏好設定。不過與受廠牌限定的節點不同,這兩個仍然可以經由連結到達:?tree=equipment/controller-csv 或 ?tree=equipment/controller-cl 不論方塊怎麼設,都會造出該節點並選取它——前提是設備頁的樹在專案已開啟時以這個網址建構,例如在新分頁開啟或重新載入時。若是從一個已經為這個專案顯示過設備頁的畫面跳過去,這個網址會被丟掉;詳情見連結到某個節點底下的提示。

「偏好設定」選單會回答你是否需要其中任何一個。 在兩個核取方塊各自的底下,它寫著本專案會播放 CSV/本專案會播放 CL,或本專案未使用,依開著的專案實際上播放什麼推算出來——它的任務命令所指名的種類、它的腳本所呼叫的播放動詞,以及就 CL 而言,一台只能由 CL 驅動的工具機。這兩個節點都不是獨立的設置任務:兩者都是沒有子節點、也沒有物件管理的葉節點,因為 CSV 或 CL 管線不像廠牌控制器那樣以檔案形式載入、貼上或儲存。打開方塊會顯示該管線的設定;在一個兩者都不播放的專案上把它關著,不會有任何損失。

延伸閱讀

  • NC 方言 — 挑好廠牌之後,各廠牌的 G 與 M 詞彙實際上做什麼
  • 工具機 — 其各軸填入機台層面上逐軸列的那條機構鏈
  • 程式原點對齊 — 工件偏移的另一半:程式原點在工件上的位置
  • 設置 — 仿真前配置的其餘部分