跳轉到

程式分支 (The Program Branch)

執行實際上一行一行讀了什麼,而不是任務要它讀什麼。

執行頁面的控制樹有兩個根節點:上面是任務,下面是程式,位於控制樹路徑 execution/program。「程式」是唯讀的——它的節點是工作階段播放過或產出的東西:任務所指向的檔案、執行從那些檔案到達的檔案、NC 程式碼命令的行內文字(每個不同的標題一個節點),以及從某個播放過的檔案轉換而來的回寫檔案——而傳輸列位於控制樹窗格頂端的執行標頭裡,執行狀態徽章在它的右端,所以不必離開這個分支,就能開始、逐步執行與重置一次執行。

還沒有任何東西執行之前

執行之前,這個分支並不是空的。服務會依任務預先為它放入節點:先是已啟用的程式檔案命令所指名的每個不同檔案各一個節點——NC、CL 或 CSV 都一樣,因為預先放入時讀的是命令的路徑,而不是它的類型——依任務列出它們的順序,並深入巢狀的清單命令;接著是已啟用的NC 程式碼命令中每個不同的標題各一個節點——所以列在某個「程式檔案」上面的 NC 程式碼命令,放入的節點仍然排在每個檔案節點之下。這些節點是佔位用的——執行還沒打開的檔案——而分支面板也這麼說:它在檔案數旁邊給自己掛上尚未執行的徽章。

決定放入什麼的有三件事:

  • 停用的命令什麼都不放入。 任務裡反灰的程式檔案項目指名了一個永遠不會到達這個分支的檔案,而停用的「清單」底下的任何東西也都不會到達。
  • 指名同一個檔案的兩個命令只放入一個節點。 比對路徑時忽略大小寫與斜線方向,所以播放兩次的檔案只出現一次。在下面的截圖中,第一個 circle.ptp 命令位於收合的清單 [Roughing] 裡,第二個是頂層的程式檔案列,所以分支只顯示一個單純的 circle.ptp;兩個命令都播放過之後它得到的 ×2,在下一節。
  • NC 程式碼命令以它自己的標題放入,而不是以檔名,因為它沒有檔案——它的文字存在任務裡。分支把它標為 (inline),而兩個標題相同的 NC 程式碼命令共用一個節點。

執行前的執行頁面:控制樹窗格頂端的執行標頭顯示六個傳輸按鈕,右端是綠色的「就緒」徽章;其下是右緣帶著 + 的「任務」根節點列,列出九列命令,每一列都帶著核取方塊與拖曳把手,其中兩列反灰、未勾選,兩列「清單」各自帶著自己的 +;下方的「程式」根節點被選取,右端帶著「跟隨」切換鈕、圓形的重新整理按鈕與重新計算按鈕,底下有五個節點——circle.ptp、drill_slot.ptp、side.ptp、slide.ptp 與 (inline) Inline finishing pass;樹下方編輯器列裡的「程式」面板,在「5 個檔案」旁掛著「尚未執行」徽章,下方是提示執行任務的說明;3D 畫布畫著一塊未切削的毛胚,「工作階段訊息」的四個分頁都沒有標記

位於 /execution?tree=execution/program 的「程式」分支,專案還沒有播放過。「任務」裡停用的程式檔案項目在「程式」底下沒有節點;已啟用的NC程式碼命令則有一個,以它的標題命名。

執行之後

播放任務會把同樣的節點填上內容,並加入執行到達、而任務沒有指名的任何檔案——副程式或巨集呼叫會把被呼叫者巢狀放在呼叫者之下。找不到被呼叫者的呼叫在這裡什麼都不加:那個呼叫會被跳過,在NC 診斷上留下一則錯誤,執行則繼續下去,所以切削都在被呼叫者裡的工作,會在什麼都沒加工的情況下結束,而少掉的那個巢狀節點就是最快的徵兆。面板的徽章會從尚未執行變成執行資料,而執行在上面走了不只一趟的檔案,它在樹上的標籤會帶著一個 × 與次數。

執行結束後的同一頁:執行標頭右端的徽章讀作「已完成」,「任務」各列沒有改變,「程式」的第一個節點讀作 circle.ptp ×2,樹下方的「程式」面板在「5 個檔案」旁掛著「執行資料」徽章;3D 畫布畫著已切削的毛胚,上方有一把金色的刀具與綠色的刀具路徑;「工作階段訊息」的分頁帶著計數——「工作階段」11、「NC 診斷」7,「工步診斷」與「NC 操作」仍然沒有標記——底下是一份「系統」訊息清單

執行結束後的同一個深層連結。circle.ptp ×2 是一個承載兩趟的節點,因為有兩個程式檔案命令指名了同一個檔案。

播放中的分支不會自己重建(重要)

分支會在執行改變狀態時重建——開始、暫停、結束、被重置——而不是在它播放的過程中。在一次很長的執行裡,畫面上的節點是上一次狀態轉換所留下的,所以執行在那之後才打開的檔案可能還沒有列出來。控制樹程式列上的圓形重新整理按鈕——位於該列右端、跟隨切換鈕旁,工具提示是從目前工作階段重新讀取檔案樹——會當場重建分支,不必動到傳輸列;暫停也會重建它,因為暫停就是一次狀態改變。

讀一個檔案

選取一個節點,會以執行所看到的樣子打開那個檔案:讀取它的路徑、一個用來挑選在它上面走過的各趟的選擇器,以及文字本身,每一行旁邊都寫著那一行產出了什麼。

選取了 circle.ptp ×2 的「程式」分支,畫布欄與右側各欄都已關掉,所以控制樹窗格橫跨整個視窗:選單列在四個欄快速切換鈕旁帶著綠色的「已連線」標記,執行標頭綠色的「已完成」徽章位於最右端,「任務」根節點列已收合、右緣帶著一個 +,其下的「程式」根節點已展開,右端帶著「跟隨」切換鈕、重新整理按鈕與重新計算按鈕,底下有五個節點——以藍字標示為已選取的 circle.ptp ×2、drill_slot.ptp、side.ptp、slide.ptp 與 (inline) Inline finishing pass——編輯器列的標題讀作「程式 / circle.ptp ×2」;其中是路徑說明 NC/circle.ptp、讀作「趟次 (2)」與「#2 · re-entry」的趟次選擇器,接著是二十一行帶行號的 NC,其中十行的右側印著步範圍,面板底部讀作「21 行· 已執行 21 行」,視窗頁尾讀作「就緒」

位於 /execution?tree=execution/program/0 的一個檔案節點,畫布欄已關掉,好讓行檢視器有足夠的寬度。隱藏這一欄並不會關閉畫布的渲染連線,所以選單列標記仍讀作已連線(見應用程式視窗)。趟次選擇器指名這一趟,以及進入它的原因。

  • 趟次選擇器每一趟一個項目,以那一趟是怎麼進入的作為標籤。由 M98/M198 副程式呼叫開始的一趟,每一趟都帶著呼叫字與它的 P 編號——M98 P8——所以呼叫者以 L 次數重複、或第二次呼叫的副程式,會讀作 ×N,每一趟都以那個呼叫作為標籤,從來不會是 re-entry。背後沒有呼叫的一趟,在第一次到達那個路徑時讀作 top,之後在它上面走的每一趟都讀作 re-entry——不論是第二個程式檔案命令再次指名了這個檔案,還是它單次播放中的某個 WHILE 或 GOTO 開始了新的一趟。所以任務只指名一次的檔案,仍然可能讀作 ×N,第一趟之後的每一趟都標為 re-entry。G65 或 G66 的巨集本體,標籤方式和背後沒有呼叫的一趟相同——第一次到達時是 top,之後是 re-entry——即使它巢狀位於呼叫者之下:一支對同一個巨集檔案呼叫三次、每個工作偏移一次的主程式,會把那個檔案顯示為 ×3,各趟標為 top、re-entry、re-entry。對巨集而言,顯示它被呼叫過的是巢狀結構。
  • 一行旁邊的步範圍,就是那一行產出的東西。旁邊沒有範圍的行,執行了但沒有產出運動:設定狀態的 G 與 M 字詞,以及紙帶標記,都會執行,但不切削任何東西。
  • 完全沒有被標記的行,在那一趟中沒有執行。 這正是這個分支存在所要顯示的差別,而且它是逐趟的——同一行可能在某一趟反灰,在下一趟被標記。
  • 跟隨——控制樹程式列上的那個切換鈕——讓檢視器始終停在執行目前正在跑的那一行,把樹移到執行所在的那個檔案、把趟次選擇器切到它正在走的那一趟;關掉時,畫面就停在它被放著的地方。你自己的任何一次挑選都會把它關掉:選取樹上的節點、在時序圖上或刀具路徑上點選一步,或在檢視器裡點一行。在圖表或刀具路徑上點過之後,檢視器會顯示那一步的那一行,在該步自己的檔案與趟次裡——副程式的節點也包括在內——前提是當時選取的是「程式」分支的節點;選取的是「任務」節點時,樹就停在原處。點一行之後,它停在你點的那一行。

幾何差異

把加工後的工件與理想工件做過比對的執行,會把結果留在這個分支上:幾何差異 [1 mm]——「程式」底下的最後一個節點,以該次比對所用的偵測半徑作為標籤。只有當該次比對的著色還在工件上時,它才會在那裡;「重置」會把它連同其餘的執行資料一起拿走,而從不執行差異比對的專案,永遠不會長出這個節點。

比對不是從這裡開始的。它是任務的執行後作業 › 幾何差異偵測區段,或腳本的 Diff(...);這個節點是讀取結果的地方。它的面板放著唯一一項屬於結果、而不屬於執行的設定:顯示半徑,也就是著色達到飽和時的偏差量。旁邊的偵測半徑是唯讀的——改變色階,是重新讀取你已經有的比對,而改變偵測半徑則意味著重新執行比對。顯示半徑隨專案儲存,所以這個零件的每一張快照,都以同一把尺來判讀;要保留變更,就用檔案選單的儲存。

Note

在執行之外由腳本計算的差異——在兩次狀態轉換之間——不會自己出現。分支是在執行狀態改變時重建的,所以要在「程式」列上按重新整理,把這個節點帶進來。

分支不承載的東西

  • 回寫檔案不在檔案節點裡面。 執行後作業 › CL → NC 回寫啟用時,任務會把工作階段播放過的每個檔案重新序列化——NC 的播放和 CL 的播放都算——而每個轉換後的檔案各自成為一個節點,標籤是 → 加上輸出檔的名稱,位於分支的頂層,排在檔案節點之後,而不是在它們底下;「程式」面板在檔案數旁邊計數它們,而在任一側點一行,都會跳到另一側與它對應的那一行。那個區段停用時,分支只顯示來源檔案。
  • 節點位址是位置,不是檔案。 一個節點是 execution/program 後面接著每一層巢狀的一個索引——頂層檔案是 execution/program/0,巢狀在它底下的副程式是 execution/program/0/0——而回寫節點以 dst- 加上它自己的索引取代檔案索引:execution/program/dst-0。所以指向分支內部的深層連結,只在分支保持同樣形狀時才有效。要連結到分支本身,而不是連進它裡面。幾何差異節點是唯一的例外:在有這個節點的執行上,它永遠是 execution/program/geom-diff。
  • 被跳過的行不只記錄在這裡。 被單節跳過 (block skip) 抑制的行,也會在執行播放時於NC 診斷清單中宣告——見出了問題時。

延伸閱讀

  • 執行仿真 — 執行一件工作的其餘部分
  • 播放程式 — 把來源放到這裡的那兩個命令
  • 出了問題時 — 把讀這個分支當作診斷的一部分
  • 檢視一個步 — 在這些檔案面板上點一行時所帶動的那個「語句語法」面板
  • 觀看執行 — 這個分支列出執行來源的同時,執行所填滿的畫布與圖表