← 所有文章

暫停 繼續 取消與重置 如何避免 PLC 流程重新做錯一步

· 站長

以四筆量測流程區分暫停、繼續、取消及重置,保存上下文並避免重做或漏做。

先把問題拆開 定義狀態 請求與完成條件

本篇把流程固定成LOAD、MEASURE、REPORT三步。Pause只暫停並保存現場脈絡,Resume回到保存的步驟後重新確認條件;Cancel是操作員放棄本次工作,Reset則是清除故障與初始化。四個命令不可共用一個清除線圈。

項目 應定義 不要混淆
Pause 可暫停檢查點 清除Step
Resume PAUSED且前提成立 盲目接續
Cancel 允許取消 冒充完成
Reset FAULT/待機 任意狀態清除

教學先用虛擬狀態與監看欄位,不接實體輸出。每一步都寫前置、操作、預期結果與失敗先查位置;這樣你在工程軟體中才能逐項核對,而不是只看最後一盞燈。

建立流程 先做狀態表 再寫轉移

建立State、Step、SampleCount、RecipeVersion與Pause、Resume、Cancel、Reset旗標。MEASURE每完成一筆才讓SampleCount加一,目標樣本數是4,代表要收四筆資料,不代表一個掃描週期收四筆。Pause時保存目前Step與已收筆數,並關閉量測輸出。

  1. 建立 State、Step、SampleCount、RecipeVersion、Pause、Resume、Cancel、Reset。

  2. MEASURE 安全點提出 Pause,確認資料快照保存。

  3. 改變 SensorReady 後 Resume,確認拒絕;恢復前提再測。

  4. PAUSED 提出 Cancel,確認部分結果不冒充完成並回 IDLE。

完成後應看到:狀態、操作請求、資料欄位與虛擬輸出一致。若不同,先查是否有其他程式段改寫狀態、在錯誤分支清除記憶,或取樣時機不一致。

具體合成案例 逐掃描核對正常與邊界

以下以事件E1~E7表示可跨多個掃描的觀察:已收兩筆後E1暫停,E2維持PAUSED;E3收到Resume且前提通過才回MEASURE,E4完成第三筆、E5完成第四筆,E6進REPORT提交一次,E7確認提交後回IDLE。若Resume前提失敗,本例維持PAUSED並顯示原因;若取消,清理本次資料但不回Done。

掃描/條件 判斷 狀態 應看到的結果
E1 第二筆後Pause PAUSED 保存筆數2與工作版本
E2 沒有Resume PAUSED 不取樣 不清舊資料
E3 Resume且前提有效 MEASURE 從第三筆接續
E4 第三筆完成事件 MEASURE 筆數3
E5 第四筆完成事件 MEASURE 筆數4 不再取樣
E6 完整四筆 REPORT 提交同一工作一次
E7 結果已確認 IDLE 保留歷史 不重複提交

本例每次只採用一個狀態轉移,故障優先於一般操作;取消、停止與完成的細節依下列固定案例核對。不同設備改用其他政策時,文字、事件表與程式必須一起修改。

本例同時命令採故障、Cancel、Pause、Resume的順序;Reset只在FAULT且原因排除時處理,不能用Reset跳過正常量測。Pause期間本步有效量測計時凍結,總工作經過時間仍記錄;另設暫停最長期限。REPORT已開始提交時先完成握手,不在半筆報告中間暫停。

暫停保存的資料要能支持恢復

暫停不是把所有變數凍住就結束。先列出恢復所需的最小上下文:工作識別碼、目前步驟、已收樣本數、每筆資料的有效旗標及工作配方版本。計時器也要分清楚是有效量測時間還是整件工作經過時間,兩者在暫停時可以有不同處理。

本例在第二筆資料已完整寫入後才接受暫停,因此筆數為二時,前兩格都必須有效。若先增加筆數才寫資料,暫停或故障插在中間,就會出現畫面顯示兩筆而第二格仍空白。把寫入完成和筆數更新放在明確提交點,能避免這類半完成狀態。

恢復時先確認工作識別碼和配方版本仍符合原工作。操作員在暫停期間修改的是下一件配方,不能讓目前兩筆舊資料和下一筆新條件混在一起。若現場已換掉工件,即使感測器準備完成,也應拒絕原工作接續,要求取消後建立新工作。

取消要留下最後進度與原因,並使未完成資料不能被當成正式報告。你可以保留兩筆樣本作故障分析,但必須標示取消,不得因陣列中仍有數值就送進良品判定。下一件接受時使用新的工作識別碼,再初始化本次有效旗標,避免舊資料混入。

最後驗收報告只提交一次。第四筆完成後進報告狀態,結果需要確認時保持同一識別碼重送;通訊重試不能重新量測四筆,也不能重新增加完成數。這就是為什麼暫停、取消與報告握手要一起看,不能只檢查狀態是否回到待機。

失敗先查 適用限制與常見問題

監看Step、State、SampleCount、RecipeVersion與命令旗標。完成結果是四筆資料各有索引且REPORT只執行一次;失敗先查Pause時是否保存了步驟與筆數,再查Resume是否重新驗證條件,最後確認Cancel沒有誤保留舊資料。

三個常見問題

Pause 可以在任何一步嗎?不行,要標示不可中斷區段。Resume 只改狀態就好嗎?還要重新核對前提與版本。Cancel 後資料全刪嗎?部分結果可清除,但原因與時間應保留。

暫停與取消的差異要在資料上看得出來。Pause 保存可以恢復的上下文,例如目前步驟、樣本數、配方版本與必要的輸入快照;Cancel 則結束本次工作,清除不能沿用的部分結果,留下取消時間與原因;Reset 主要清理故障狀態,不應偷偷宣告工作完成。請在每個步驟提出四種操作,製作矩陣並測試同時命令。特別觀察計時器是否在 Pause 停止或累計、Resume 是否重新確認 SensorReady、Cancel 後是否還有舊 Done 脈衝。若專案要求斷電後恢復,還要另外確認保存範圍,不能把暫停資料自然當成斷電保持。

流程恢復還要處理外部條件已改變的情況。Pause 後工件可能被移走、配方可能被更新、感測器可能重置,因此 Resume 必須重新驗證識別碼、位置和版本;驗證失敗則維持PAUSED並顯示原因;明確故障另進FAULT。取消後下一件工作要使用新識別碼,不能沿用舊的部分結果。把這些規則放進操作員畫面與交接紀錄,維護時才不會只看到一個模糊的「暫停中」。

測試人員要把 Pause、Resume、Cancel、Reset 的按鈕事件和 PLC 狀態同時記錄。若畫面顯示已繼續但 State 仍 PAUSED,先查請求是否被取樣;若 State 已 MEASURE 但樣本數倒退,查恢復時是否重新初始化;若 Cancel 後下一件帶著舊 RecipeVersion,查快照清除。完成這些核對,流程才具有可交接的恢復行為。

操作驗收與適用限制

驗收結果是Pause保留Step與SampleCount,Resume只在SensorReady重新成立後繼續,Cancel清除本次資料回IDLE,Reset清除故障後才可再啟動。限制是資料筆數、配方欄位與保存方式需依實際設備決定,本文沒有指定Q系列固定寄存器。

測試第2筆暫停後繼續、第2筆取消、量測故障後Reset,再確認REPORT只產生一次。重新RUN前檢查RecipeVersion與SampleCount是否已初始化;若畫面顯示四筆但資料缺一筆,先以索引逐筆核對寫入完成旗標。

適用型號與限制:概念可套用具備位元與狀態資料的 PLC;實際指令、資料型別、計時單位、模式切換與復歸行為必須依目標 CPU、工程軟體和設備規格確認。

參考:三菱 QnUCPU 使用手冊 程式執行與裝置資料

延伸閱讀


使用 PLC 工具箱 →