其他命令 (The Other Commands)¶
除了把程式放進一次執行,任務還能在中途改變工作階段的設定、引導優化器、寫出這次執行產出的東西,以及用腳本驅動工作階段。
它們在哪裡¶
執行頁控制樹的任務分支,全都出自同一個新增命令——任務列或清單列上的 +。程式類別的另外兩個命令在播放程式,流程類別唯一的命令在建立任務。
設定,一個命令一項¶
設定類別有五個命令,每個帶著一項設定:
| 命令 | 設定的是什麼 | 預設值 |
|---|---|---|
| 加工解析度 | 材料移除的網格化解析度,單位 mm | 0.125 mm |
| 運動解析度 | 一段運動如何被取樣成步 | 每轉進給 |
| 碰撞偵測 | 是否偵測碰撞 | 開 |
| 失敗時暫停 | 執行遇到失敗時是否停下 | 關 |
| 物理模擬 | 是否模擬物理 | 開,前提是持有進階物理授權 |
每一個都從它自己在清單中的位置起生效。 排在它上面的程式,以它之前生效的設定播放;排在它下面的程式則以新值播放,直到更下面有別的東西再次改變工作階段為止。
這正是它們做成命令、而不是整個專案共用的設定的原因,而且值得善加利用:在粗加工程式上方放一個粗的加工解析度、在精加工程式上方放一個細的,一次執行就能讓兩者各以應得的解析度完成。
五個之中有四個只是單一欄位或核取方塊。運動解析度要說的比較多,帶著自己的編輯器:一個類型——每轉進給、每刃進給或固定——以及在選「固定」時,以 mm 計的線性解析度與以度計的旋轉解析度。
Note
一般組態不在選單上,而這不是它不見了。 它曾是一個同時帶著這五項設定的命令,上面這五個命令取代了它。仍存著一個一般組態的專案,載入時會在原處換成這五個命令,之後的儲存也寫出這五個。若那組設定指名了網格幾何檔,或打開了讀取網格幾何檔,它們前面還會有一個設為讀取的記錄網格幾何命令——只有在讀取是打開的地方才會勾選。沒有什麼要新增,也沒有什麼要找。
優化器,作為一個環節¶
NC 優化設定是優化類別唯一的命令,它之所以存在,是為了讓優化器的設定落在執行中的某一點,而不是涵蓋整次執行。排在它下面播放的一切都以這些值做優化,而更下面的第二個則會在任務途中把這些值改指成另一組。
它自己的節點只帶一項設定,輸出省略前導零,它只影響寫出的數字格式。引導優化器的一切都在它底下的節點上,依優化器使用它們的方式層層巢狀:開關是一個帶自己核取方塊的節點,開關底下的節點只在它勾選時才作用——未勾選時它們會變暗。
| 節點 | 核取方塊 | 上面有什麼 |
|---|---|---|
| 啟用優化 | 有 | 對排在命令下面播放的內容打開優化器;另外還有延伸前距離與延伸後距離、快速進給率與進給率指派比率,這些即使進給率優化關著也會作用 |
| 啟用進給率優化 | 有 | 依力與安全目標調整每一段切削的進給;它的數值在它底下的四個節點上 |
| 進給率 | — | 進給率的下限與上限,以及每刃進給的上下界 |
| 以原始進給率為下限 | 有 | 讓每一段切削維持在程式本身在該處所下令進給的某個比例以上——除非你更改,否則是 80 % |
| 運動動態 | — | 最大加速度 |
| 力與安全 | — | 優先力,以及降伏、熱降伏、主軸扭矩與主軸功率安全係數 |
| 啟用插值 | 有 | 允許把一行拆成多行,讓進給能在同一行內變化 |
| 補正 | — | 前向、側向與深度補正開關 |
啟用優化是命令正下方唯一的節點。啟用進給率優化、啟用插值與補正掛在它底下,而從進給率到力與安全這四個節點掛在啟用進給率優化底下。
以原始進給率為下限是給已經在量產中執行的程式用的。低於 100 % 時,力與安全目標仍能把最重的切削減速到程式進給的那個比例——刀具正是因此得以延壽——同時沒有任何切削會比那更慢,所以這個比例限制了執行最多會變長多少。設為 100 % 時,優化器只會加速切削:執行不會變長,但沒有任何切削被減載,所以刀具什麼也得不到。在下限讓某段切削維持在某個目標之上的地方,執行的訊息會依目標分別說明有多少步。
命令自己的核取方塊,和每個命令的一樣,決定的是任務是否執行這個命令——而不是優化器是否打開,那是它底下啟用優化的核取方塊。顯示物理選項關著時,整個命令會從樹上隱藏:優化器是依據模擬出的切削力運作的,沒有物理,它就無從著手。
這個命令沒有標題:它那一列永遠讀作 NC優化設定。每個量是什麼意思、以及優化的結果為什麼可能看起來不對,見 NC 優化。
範例任務的優化器命令,路由 /execution?tree=execution/mission/7。在這個任務裡,它排在兩個清單群組以及其後三個散置項目的下面,而不是上面,所以本節開頭的順序規則,就決定了它能涵蓋執行的多少部分。它自己在樹下方的面板,標題為任務 / NC優化設定,只放輸出的寫法;開關與數值節點在樹上縮排於它底下,其中以原始進給率為下限未勾選且變暗。因為這一列被選取,它的移動、產生副本與刪除按鈕會顯示在它的右緣。

寫出執行產出的東西¶
輸出類別有三個命令:執行後作業、記錄網格幾何與匯出網格幾何 (STL)。
執行後作業這個名稱說的是它消化什麼,而不是它放在哪裡。 它是清單中的一個普通項目,不是執行結束時的掛鉤 (hook),它寫出的一切,都衍生自工作階段在它上面已播放的內容。把它放在兩支程式之後,它就涵蓋兩者;在清單中途再放第二個,它就寫出同一次持續累積的執行的一份中途快照。放在哪裡,就是全部的問題。
它底下掛著五項輸出,每一項都是一個子節點,由它自己的核取方塊打開該項輸出:
| 輸出 | 寫出什麼 | 預設範本 |
|---|---|---|
| 步驟檔案輸出 | 已播放內容的步序列資料 | Output/[NcName].step.csv |
| 取樣檔案輸出 | 以你設定的週期做時間取樣的序列 | Output/[NcName].shot.csv |
| 優化輸出 | 優化後的程式 | Output/Opt-[NcName] |
| CL → NC 回寫 | 從已播放內容重新合成的 Fanuc NC | Output/[NcName].nc |
| 幾何差異偵測 | 在你設定的半徑下對工件幾何所做的比對 | — |
範本中的 [NcName] 會被替換為每一步所來自的程式的檔名(含副檔名)——副程式或巨集的步,會進到以被呼叫程式命名的檔案,而不是以呼叫它的程式命名。[NcFile] 則被替換為該程式相對於專案的路徑,其中每個 / 都換成 -,讓不同資料夾裡同名的兩支程式能分開。
打開它們之前要知道的四件事:
- 五項中有兩項只在「偏好設定」選單的「顯示物理選項」打開時才看得到——取樣檔案輸出與優化輸出。見偏好設定。
- 取樣檔案的時間解析度是取樣週期,不是加工解析度,它決定了那份資料的精度上限。週期細,檔案就大:一支六段切削的程式,在預設的 1 ms 下寫出約 13 MB,在 0.1 ms 下約 128 MB。要在打開之前估計檔案大小,就以三軸機台、1 ms 下每一分鐘的模擬加工約 13 MB 來估——一支四十分鐘的程式會寫出超過半 GB。
- CL → NC 回寫需要 CL 在 XYZABC 機構鏈上播放,所以播放它的程式檔案命令要放在這個命令上面。它會把工作階段播放過的每一個控制檔案重新序列化,所以 NC 的播放也會被回寫,而轉換後的檔案會以各自的節點出現在程式分支上——見程式分支。
- 步檔案與取樣檔案依來源程式分別寫出,而每當來源改變,檔案就重新建立。 寫出器依序走過執行的各步,每當某一步來自與前一步不同的程式,就重新開啟它的輸出——把它截斷。因此,一支被呼叫三次、呼叫者在各次呼叫之間也有移動的副程式,它的檔案只會留下第三次呼叫;呼叫者的檔案只留下呼叫者在最後一次呼叫之後所做的事;而不含
[NcName]或[NcFile]的範本,只會留下整個任務的最後一段。要保留每一次呼叫,就讓每次呼叫各自在一次執行中播放,並在兩次之間把檔案移走;或者在每次呼叫的程式檔案之後,各接一個自己的執行後作業,讓它的範本指向它自己的資料夾。在物理打開的三軸機台上,步檔案每一步約 1.7 KB,所以一次二十五萬步的執行會寫出約 400 MB;物理關閉時,每一列會比較短。
不論核取方塊是否勾選,每個欄位都保持可編輯:核取方塊決定的是什麼會執行,而不是什麼可以事先準備。各項輸出依命令自己的順序寫出——取樣檔案、步檔案、優化、回寫,然後是幾何差異——這不是樹上列出它們的順序,而且只有在你讀它們的時間戳記時才有關係。
範例任務的執行後處理命令,選取了步驟檔案輸出,路由 /execution?tree=execution/mission/8/step-files。每一項輸出都是帶著自己核取方塊的子節點——打開該項輸出的就是那個勾——而所選那一項的範本欄位位於下方的面板,標題為任務 / 執行後處理 / 步驟檔案輸出。在範例中,執行後處理這一列本身反灰、未勾選,而它的輸出照樣可以編輯。它們列在它底下,跟著它一起反灰——步驟檔案輸出、取樣檔案輸出、已勾選的優化輸出與 CL → NC 回寫——之後窗格的邊緣截斷了下一列。
![執行頁上的控制樹:樹上方是六個傳輸按鈕與綠色的「就緒」徽章,「任務」根節點列的右緣帶著一個 +;命令列一路往下,經過展開後露出一個收合且已勾選的「啟用優化」的「NC優化設定」,來到一列反灰、未勾選的「執行後處理」,它展開後露出反灰的輸出列——「步驟檔案輸出」、「取樣檔案輸出」、已勾選的「優化輸出」與「CL → NC 回寫」——以及一列在窗格底緣被截斷的列;樹下方的面板標題為「任務 / 執行後處理 / 步驟檔案輸出」,放著一個讀作 Output/[NcName].step.csv 的「步驟檔案範本」欄位](../the-other-commands-img/post-execution.zh-Hant.png)
在兩次執行之間保留工件¶
輸出類別的另外兩個命令,取用的都是工件在它們自己於清單中那一點時的樣子。記錄網格幾何以應用程式的網格格式把它存起來,讓之後的執行能再把它拿回來;匯出網格幾何 (STL) 則寫出一個 STL,給應用程式以外的東西讀取。
記錄網格幾何帶著一個路徑——預設為 Cache/Workpiece.wct,因為記錄下來的網格是一次執行所產生、可以重建的副產品,而不是專案資產——以及四種操作之一:
| 操作 | 做什麼 |
|---|---|
| 無操作 | 什麼都不做;這個項目只是佔位 |
| 讀取 | 一律把檔案載入工作階段 |
| 寫入 | 一律把工作階段的幾何寫入檔案 |
| 首次讀取,否則寫入 | 檔案存在而且自工作階段上次重置以來還沒有產生任何加工步時讀取檔案;否則寫入 |
第四種的條件,正是讓這個命令能在一個任務裡使用不只一次的原因:第一個這樣的項目讀取,而排在某支程式下面的每一個都寫入。這個條件是工作階段的性質,所以沒有先重置就開始的執行,會繼承上一次執行的步,其中每個這樣的項目都會寫入——第一個也不例外。圍繞這一點建立任務,見能接續的任務。
執行若還沒建出網格,寫入就會以工件的初始解析度把它建出來。 記錄上方或下方的加工解析度命令,不會改變它寫出的毛胚的格寬;它管的是它下面的程式切得多細。檔案不存在不是錯誤:寫出它正是執行要做的事。命令面板上的重設會刪除它所指向的檔案,讓下一次執行重新記錄。
匯出網格幾何 (STL) 帶著一個路徑——預設為 Output/MeshedGeom.stl,因為匯出是你要求的東西,而不是快取——以及它所寫出三角形的解析度,單位為 mm;0 表示採用顯示網格的解析度。它三角化的,就是記錄網格幾何寫出的同一份網格,也以同樣的方式建出——在還沒有任何切削時,以工件的初始解析度——所以 STL 解析度決定的是那份網格被細分成三角形的精細程度,而不是它被切削的精細程度。
把量測資料映射到執行上¶
映射類別有兩個命令。每一個都把專案資料夾中的一個 CSV 檔,讀到工作階段到目前為止已播放的步上,所以兩者都要放在它們所映射的程式下面。
| 命令 | 讀什麼 | 步得到什麼 |
|---|---|---|
| CSV 一對一映射 | 控制器日誌——每個程式行一列或更細,以檔案編號與行號為鍵 | 每一步的實際時間,而檔案其他每一欄都成為一個自訂欄位 |
| CSV 一對多映射 | 感測器錄製資料——一個時間欄,加上力、力矩或加速度通道 | 每一步的一段樣本窗,供感測器週期圖、映射的步屬性與訓練讀取 |
一對多命令是透過各步的實際時間來配對樣本的,所以它接在一對一命令之後:程式檔案、CSV 一對一映射、CSV 一對多映射,依此順序。
兩個面板都以 CSV 檔案 開頭,也就是相對於專案資料夾的路徑,接著列出讀取器要查找的每一欄各一個欄位,每個欄位存著該欄在檔案中的標題。預設值就是本產品寫出的標題,所以它匯出的檔案不必改任何東西就能映射;控制器日誌或廠商的錄製資料,則是鍵入它自己的標題來映射——檔案本身不必編輯。欄位在失去焦點或按 Enter 時才提交,打字途中從不提交,而清空的欄位會回到它的預設值。
- 在 CSV 一對一映射上,檔案編號欄與行號欄是必要的,而步的時間取自三個來源中第一個可用的:實際時間碼(及其選用的日期時間搭檔)、實際時間、模擬時間。只有一個時間欄的日誌,就把那一欄填為 實際時間欄位;它的儲存格可以是時間碼,也可以是帶日期的時刻。
- 在 CSV 一對多映射上,保留預設值的欄位也接受該通道的其他內建標頭,而且該通道維持選用——沒有它的錄製資料,就映射它有的那些通道。你改過的欄位會被精確查找,檔案必須帶有那一欄。 欄位旁的單位,是讀取器認定該欄所用的單位;指名一欄並不會轉換它。週期取樣模式 設定每一步與錄製資料配對多少——一圈主軸迴轉,或一個刃的弧長;除非訓練研究另有結論,否則預設值就夠用。
檔案不存在、或缺少某個欄位所指名的欄,都不會讓任務停下:命令會在工作階段分頁回報 Map-SingleCsv--Fault 或 Map-SeriesCsv--Fault,訊息中帶著缺少的標題,而執行繼續進行到下一個項目。檔案格式、儲存格可採用的時間形式,以及映射後的資料顯示在哪裡,見感測器資料映射。
用腳本驅動工作階段¶
腳本是程式類別的第三個命令:針對執行中的工作階段求值的 C#,用於其他命令種類沒有涵蓋的任何事。腳本回傳一串動作時,那串動作會作為執行的一部分播放。
編輯器的自動完成,依據的正是執行時用來編譯腳本的那一套 API,所以它提供的就是執行會接受的,而成員的簽章與摘要會顯示在建議旁邊。挑選一個方法會插入該呼叫,每個引數都是一個停駐點,所以 Tab 會逐一走過各參數。
沒有「儲存」按鈕。 停止打字後不久就會儲存,標題旁的狀態標記會回報文字所處的狀態:Idle、Dirty、Staging…、Staged,或是 Error,其工具提示寫出原因。Staged 表示服務持有這份腳本,而不是專案已經儲存——要保留它,請儲存專案。
兩個提示框守著邊界,兩者都不是是非題,所以各有三個按鈕:
- 未儲存的變更:腳本還有未儲存的編輯,而你選取了另一個節點,或從樹的各列移動、產生副本、刪除或新增命令時出現——已經在途中的儲存會先讓它完成,提示只針對那之後仍未儲存的部分出現。儲存並切換會先儲存再繼續,而且只在儲存完成後才繼續;捨棄丟掉這些編輯;取消讓選取留在原處,被取消的列操作則被放棄,並附上一則通知,說明編輯器保留它未儲存的編輯。
- 腳本已在他處變更:命令在你不知情時被改動——另一個分頁,或專案重新載入——時出現。捨棄並重新載入採用伺服器的版本,強制覆寫用你的版本蓋過它,取消則把你的編輯留在編輯器中、不儲存,伺服器的版本也維持原樣。
和 NC 程式碼一樣,標題是選填的,也就是該列在方括號中標出的文字。
清單不是封閉的¶
新增命令提供的是應用程式所知道的一切,而不是內建在介面裡的一份選單。沒有自己編輯器的種類,由一個依該種類所宣告的設定建出的通用編輯器來服務——碰撞偵測、失敗時暫停與物理模擬就是這樣編輯的。所以,一個命令種類可能在本手冊還沒有為它寫一頁之前,就已經能新增,而且能完整編輯。
延伸閱讀¶
- 執行仿真 — 執行一件工作的其餘部分
- 感測器資料映射 — 兩個映射命令讀取的檔案,以及映射後的資料顯示在哪裡
- 建立任務 — 這些命令所放入的清單
- 能接續的任務 — 這些命令所排成的配置,以及它帶來什麼
- 播放程式 — 把 NC 程式碼放進執行的兩個命令
- PreSettingCommand 面板(英文,未鏡像) — 一般組態背後的元件,以及存著的一組設定會展開成什麼
- NC 優化選項面板(英文,未鏡像) — NC 優化設定背後的元件,逐欄說明
- PostExecutionCommand 面板(英文,未鏡像) — 執行後作業背後的元件:它的五個區段與各自寫出什麼
- 腳本命令面板(英文,未鏡像) — 腳本背後的元件:它的編輯器、自動完成與儲存狀態