先看輸入與輸出要怎麼走
選計時器不要先看指令名稱,先寫出輸入何時成立、輸出何時應成立。TON 把輸入成立後的等待時間放在輸出變 ON 之前;TOF 在輸入由 ON 變 OFF 後,讓輸出再維持一段時間;TP 由觸發開始輸出固定脈衝。三者都可能有 IN、PT、Q、ET 這類欄位,但實際型別、時間解析度、啟動與重觸發規則要以目標平台文件為準。
| 需求 | 選擇方向 | 輸入提早消失時 | 輸出重點 |
|---|---|---|---|
| 輸入穩定一段時間才允許動作 | TON | 計時通常被重置或停止,須查平台 | 達到 PT 後 Q 才 ON |
| 輸入放開後延後關閉 | TOF | 下降緣開始計時 | PT 到期前 Q 維持 ON |
| 觸發後只輸出固定時間 | TP | 依平台決定重觸發 | Q 由觸發開始維持 PT |
| 按住才動 | 不一定用計時器 | 直接使用電平並設停止條件 | Q 跟隨輸入 |
本文選用 Schneider Electric EcoStruxure Machine Expert Standard Library 作為具體文件平台,因其官方頁面分別定義 TON、TOF、TP 與 TIME/PT/ET 介面。這只是文件核對平台,不代表 TON、TOF、TP 可直接套用到 Q06UDVCPU;Q 系列的計時器指令、時間單位和解析度仍須另查 Mitsubishi 對應 CPU 與工程軟體手冊。
分開畫出 TON TOF TP 的輸入時間線
以下是教學合成案例:PT=2 秒,時間由 0 到 6 秒,每 1 秒取樣一次。三條輸入時間線分開看:TON 的 IN 在 0 秒變 ON 並維持;TOF 的 IN 在 0 秒為 ON、1 秒變 OFF;TP 的 IN 在 0 秒產生上升緣,之後保持 OFF。表格是手算預期,沒有宣稱模擬器或實機已執行。實際 PLC 掃描不是每秒一次,正式測試應用更細的取樣記錄。
| 時間(s) | TON IN/Q | TOF IN/Q | TP 觸發/Q | 說明 |
|---|---|---|---|---|
| 0 | 1/0 | 1/1 | 1/1 | TON 開始計時;TOF 仍 ON;TP 開始 |
| 1 | 1/0 | 0/1 | 0/1 | TOF 下降後延時;TP 尚未到期 |
| 2 | 1/1 | 0/1 | 0/0 | TON 到 PT;TP 關閉;TOF 未到期 |
| 3 | 1/1 | 0/0 | 0/0 | TOF 已關閉;TON 仍 ON |
| 4 | 1/1 | 0/0 | 0/0 | 保持結果 |
| 5 | 1/1 | 0/0 | 0/0 | 保持結果 |
| 6 | 1/1 | 0/0 | 0/0 | 案例結束 |
案例中的 TOF 在 t=1 秒下降,若 PT=2 秒,時間線預期在 t=3 秒附近關閉;表格以取樣點展示,所以邊界落在哪一掃描要依平台時間基準。不要把『2 秒』誤讀成精確到毫秒。
提早消失 重複觸發與中途改 PT
先在規格表寫出 IN 的上升、下降與可能重複觸發時間,再決定計時器。
本篇 TON 在 IN 提早降為0時重置計時,Q維持0;例如只ON 1秒便放開,不會在原定2秒時突然輸出。
本篇 TOF 的 IN 再升為1時,Q保持1並取消目前的關閉延遲;下次下降再重新計時。
本篇 TP 在 PT 尚未到期時再次出現上升緣,不延長目前脈衝;不要把它當可重觸發的延長器。
在執行中改變 PT:分別測試縮短與延長,記錄當前 ET、Q 和下一次觸發的結果。
通用偽碼(需依目標 PLC 語法調整):
TonInst(IN := Start, PT := T#2s);
Ready := TonInst.Q;
TofInst(IN := Permit, PT := T#2s);
OutputEnable := TofInst.Q;
TpInst(IN := Trigger, PT := T#2s);
Pulse := TpInst.Q;
這段只表示資料流,實作時需建立符合平台語法的功能塊實例,並確認功能塊每個循環被呼叫。
參考:Schneider Machine Expert V1.1 TON 上升開始計時 下降重置
參考:Schneider Machine Expert V1.1 TOF 下降後延遲關閉
參考:Schneider Machine Expert V1.1 TP 固定脈衝與重觸發行為
完成後應看到什麼 失敗先查哪裡
| 測試 | 完成後應看到 | 不同時先查 |
|---|---|---|
| TON 穩定 ON 超過 PT | Q 在 PT 後 ON | PT 單位、掃描週期、IN 是否持續成立 |
| TON 提早 OFF | Q 不應提前 ON | 平台對 IN 下降時 ET/Q 的定義 |
| TOF 放開 | Q 維持至 PT 後關閉 | 下降緣是否被取樣、時間基準 |
| TP 單次觸發 | Q 維持約 PT 後關閉 | 觸發條件、實例是否重複呼叫 |
| 重複觸發 | 依官方規則重新開始或被忽略 | 功能塊版本與重觸發說明 |
若時間總是偏長或偏短,先查工程軟體顯示的 TIME 單位、CPU 時基、掃描時間與輸入更新,再查功能塊的 ET。若 Q 一直不變,查實例是否真的在週期程式呼叫;若同一實例在多個段被呼叫,先合併呼叫點。完成判定必須看 IN、ET、Q 三者,不只看輸出燈。把測試結果分成三種證據:邏輯證據是輸入序列與預期時間線;工程軟體證據是編譯器對型別、時間常數與功能塊實例的接受結果;設備證據則是實際輸入、輸出與量測時間。三者不能互相冒充。
適用型號與限制:本文適用於具計時功能的 PLC 概念教學;TON/TOF/TP 的名稱和 IEC 風格介面以 Schneider Machine Expert 文件為例。未提供特定 Q 系列 CPU 的計時器手冊,因此不得把本文偽碼或 TIME 行為當成 QCPU 可編譯程式。計時器也不是安全延遲或急停功能;安全時間需由安全控制器、硬體與風險評估確認。
常見問題與附錄檢查表
| 問題 | 回答 |
|---|---|
| TON 和 TP 都能延遲,怎麼分? | TON 要求輸入持續成立後才輸出;TP 是被觸發後輸出固定脈衝,需求不同。 |
| TOF 輸入一 OFF 就開始延遲嗎? | 在 Schneider 文件定義中,下降緣啟動延遲;其他平台仍須查其文件。 |
| PT 改了,計時會重新開始嗎? | 不能猜。把中途改 PT 列入測試,依目標平台的功能塊規則判定。 |
| 可不可以把計時器直接當防抖? | 可以是一般邏輯方案之一,但輸入濾波、脈衝寬度和設備安全需求仍要另行評估。 |
列出每個計時器的 IN、PT、Q、ET 資料型別與單位。
以 0~6 秒合成序列先手算,再逐掃描記錄實際值。
把提前消失、重複觸發、PT 中途改變列為邊界測試。
附錄操作建議:先用不接輸出的內部位元做測試,避免尚未核對的計時邏輯直接控制馬達、電磁閥或加熱器。將輸入強制值、時間設定和預期輸出寫在同一張表,測完解除強制並確認程式回到正常模式。若使用 HMI 修改 PT,還要測試空值、負值、超大值和運轉中變更;不符合範圍時應拒絕套用或回報錯誤,而不是讓計時器收到未定義參數。
當你要把計時器放進實際流程,請再問一次:輸入是狀態還是事件,輸出是持續允許還是一次脈衝,時間是否必須從硬體時間戳開始計算。TON 適合條件連續成立的確認,TOF 適合保留輸出一段時間,TP 適合把一次觸發轉成固定長度訊號。若需求同時包含確認時間、保持時間和逾時故障,可能需要多個計時器與明確狀態,而不是把三個功能混在一個線圈後面。先畫時間線,再決定程式結構。