PLC 控制流程圖的畫法 — 先決定狀態與轉移條件,再寫階梯圖

最後更新: 2026-09-23 / 分類: PLC 程式設計、控制邏輯設計

控制流程圖是在寫階梯圖之前,先決定裝置的狀態與狀態之間轉移條件的圖。本文寫給曾用自保持與互鎖的組合來組工程、停止後不知道該從哪裡重新啟動的人。

1. 工程的順序只能以狀態來保存

現在工程走到哪裡,除非設計者以狀態保存,否則不會出現在程式的任何地方。因為 PLC 每次掃描都會從上到下重新評估所有迴路。沒有哪一行會「等到下一個輸入來」。

不決定狀態就組程式,工程的進度就變成用自保持迴路與互鎖的組合來表示。現在走到哪裡散落在許多線圈裡,就會發生下列情況。

把工程分成步驟(狀態),隨時只讓一個步驟有效。這樣一來,要送出的輸出與離開的條件,就在該步驟之內完結。流程圖的處理框是一個步驟,判斷的菱形是離開該步驟的條件。畫流程圖,就是在設計步驟。

2. 處理與判斷分開,等待要設時間上限

  1. 處理(框)與判斷(菱形)分開 框是步驟,也就是那段期間持續送出的輸出。菱形是離開該步驟的條件。把「前進並等待前進端」寫在同一個框,步驟切換的地方就定不下來。
  2. 等待動作的地方,要設時間上限與去處 感測器故障或工件卡住而輸入不來時,就會一直等。因為除了把逾時當異常處理之外,PLC 沒有辦法知道已經停了。等人操作的地方,例如啟動按鈕或重置,可以不設上限一直等。
  3. 畫出異常的去處與回來的路 連異常停止 → 復歸原位 → 等待啟動的路都要畫。可重新啟動的步驟沒決定,停下來之後就得在現場摸索。
  4. 步驟編號要留間隔(10、20、30…) 這樣之後加工程也不必重新編號。步驟編號也會被人機介面的顯示與異常履歷參照。
  5. 同時啟動的動作,要等兩者都完成再前進 進到下一步的判斷要確認兩者都完成。只靠一邊完成就前進,另一邊還沒結束下一個動作就開始,會互相干涉。
  6. 不要讓一次掃描前進多個步驟 每個判斷都要分別寫清楚是看上升緣還是看 ON 狀態。步驟切換的同一次掃描裡下一個條件已成立,步驟就會一口氣衝過去。按著不放的啟動按鈕常造成這種情況。

3. 範例 — 把框分開,停止的位置與回來的路就出現在圖上

處理與等待放在同一個框,看不出在哪裡前進

只有一條線從「Step 20 讓氣缸前進,等到前進端 LS 變 ON」這一個處理框連到「Step 30 關閉夾爪」的流程圖。
讓氣缸前進與等待前進端放在同一個框裡。

從圖上看不出 Step 20 在哪裡進到下一步、前進端沒來時要去哪裡。變成由實作的人各自決定。

處理與判斷分開,就直接成為步驟編號的迴路

Step 10 驅動工件進料輸送帶,進到「進料端感測器 ON?」的判斷。YES 往下到 Step 20,NO 往右出到「異常:進料逾時(經過 5.0s)」。接下來的「夾爪閉端 LS ON?」判斷也一樣,YES 到 Step 30,NO 分支到「異常:夾爪失效(經過 2.0s)」。
處理與判斷分開、在判斷的 NO 側放逾時出口的形式。

這個形式可以直接換成只有一個步驟編號暫存器的階梯圖。「現在的步驟編號」與「判斷條件」都成立時,就寫入下一個編號的迴路。步驟編號直接就是裝置狀態的顯示,所以也知道停在哪裡。

從異常回來的路,做成回到等待啟動的環

在等待啟動(原位)等「啟動?」後進入自動運轉,「逾時、異常?」為 NO 就回到等待啟動。YES 則進入異常停止(切斷輸出並顯示異常),等「重置?」。YES 後等「啟動原點復歸?」,YES 就執行原點復歸(依不干涉的順序讓各軸返回)。「在時間內完成了?」YES 回到等待啟動,NO 回到異常停止的流程圖。
不管停在哪裡,都能經由異常停止 → 原點復歸 → 等待啟動的路回到原狀。原點復歸在重置之後由操作者啟動。

週期走到最後時,因逾時或異常停止時,最後都回到等待啟動。裝置永遠在這個環的某處,所以不會不知道從哪裡重新啟動。

原點復歸要由操作者按按鈕啟動才開始。若只是用重置清除異常軸就動起來,會在操作者確認周圍之前就動。要進入內部確認時,先打開安全門、讓安全迴路切斷動力再進去。緊急停止之後的流程見緊急停止復歸流程圖(範例)。

4. 畫的順序是:狀態 → 條件 → 上限 → 回來的路 → 編號

  1. 列出裝置會有的狀態 等待啟動、進料、加工、出料、異常停止等。還不用連起來。
  2. 每個狀態決定要送出的輸出與進到下一步的條件 有時序圖的話,變化觸發的箭頭直接就是前進的條件。
  3. 等待動作的地方設時間上限與異常去處 上限是正常動作時間加上餘裕的值。
  4. 畫出從異常回來的路 先決定復歸原位的步驟,以及可重新啟動的步驟。
  5. 編步驟編號 留間隔來編。

5. 容易出錯的是手動的流程、原點復歸的順序、判斷的名稱

6. 和時序圖搭配,階梯圖要寫的內容幾乎就定了

用時序圖決定順序與觸發,用流程圖決定分支與異常的去處,階梯圖要寫的內容幾乎就定了。因為時序圖以時間順序表示一條劇情,流程圖以狀態的轉移表示所有劇情。

製作本文的圖所用的工具

本文的圖全部用 Flowchart Editor 畫好,再匯出成 SVG。

  • Flowchart Editor — 排列處理與判斷並連接,自動編步驟編號。也能從時序圖的箭頭組出判斷與等待。
  • Timing Chart Editor — 決定流程的來源:訊號的順序與觸發。
  • Address Map Editor — 為流程中使用的訊號分配 PLC 元件。

不用安裝也不用註冊,只要瀏覽器就能使用。

相關文章

yk.builds