遲滯是在記住目前狀態
單一門檻常寫成 Value>80 就 ON、否則 OFF;當數值在 80 附近跳動,輸出便會跟著每次取樣反覆切換。遲滯把門檻拆成兩個:高於 80 才啟用,低於 75 才解除,介於 75 到 80 時保持上一個狀態。這個保持不是延遲,也不是把數值平均,而是讓狀態轉換需要跨過不同邊界。
| 目前狀態 | 輸入條件 | 下一狀態 | 說明 |
|---|---|---|---|
| OFF | Value>80 | ON | 跨過啟用門檻 |
| OFF | Value≤80 | OFF | 尚未啟用 |
| ON | Value<75 | OFF | 跨過解除門檻 |
| ON | Value≥75 | ON | 包含 75 的邊界,保持 |
| 任一 | 75≤Value≤80 | 保持 | 遲滯區,不重新判斷另一側 |
題目案例採『高於 80 啟用、低於 75 解除』,因此 Value=80 不啟用、Value=75 不解除。若設備規格要用大於等於或小於等於,必須在表格和程式中一起改,不能只改註解。75 和 80 是教學參數,不是任何設備的保護設定。
用逐筆輸入驗證邊界
| 筆次 | Value | 前狀態 | 啟用條件 | 解除條件 | 後狀態 | 原因 |
|---|---|---|---|---|---|---|
| 1 | 74 | OFF | 否 | 是 | OFF | 低於 75 |
| 2 | 76 | OFF | 否 | 否 | OFF | 遲滯區 |
| 3 | 80 | OFF | 否 | 否 | OFF | 80 不含等於 |
| 4 | 81 | OFF | 是 | 否 | ON | 高於 80 |
| 5 | 79 | ON | 否 | 否 | ON | 遲滯區保持 |
| 6 | 75 | ON | 否 | 否 | ON | 75 不解除 |
| 7 | 74 | ON | 否 | 是 | OFF | 低於 75 |
| 8 | 82 | OFF | 是 | 否 | ON | 再次啟用 |
逐筆測試的關鍵是同時列前狀態和後狀態。只列 Value 與輸出,很容易漏掉『76 為什麼仍是 OFF』或『79 為什麼仍是 ON』。完成後應看到輸出只在第 4、8 筆啟用,並在第 7 筆解除;若每筆都依 Value>80 重新計算,就會在遲滯區得到錯誤結果。
遲滯 延時 濾波不是同一件事
| 方法 | 處理對象 | 何時適合 | 不會解決什麼 |
|---|---|---|---|
| 遲滯 | 上下轉換門檻 | 門檻附近反覆切換 | 不能消除真正的大幅雜訊 |
| 延時確認 | 條件持續時間 | 需穩定一段時間才允許轉換 | 不能改變門檻值 |
| 訊號平滑 | 數值波動 | 想降低高頻雜訊 | 會引入延遲與相位差 |
| 輸入濾波 | 硬體/取樣雜訊 | 輸入模組提供濾波設定 | 不能取代流程狀態規格 |
通用偽碼(僅示意):
IF State=OFF AND Value>80 THEN State:=ON; END_IF;
IF State=ON AND Value<75 THEN State:=OFF; END_IF;
Output:=State;
不能把兩個 IF 改成 IF Value>80 THEN ON ELSE OFF,因為那會消失遲滯記憶。此偽碼沒有指定 PLC 語言、資料型別或掃描執行順序,不能宣稱可直接編譯。
完成後應看到什麼 失敗先查哪裡
確認啟用門檻、解除門檻、等號規則和單位已寫進規格。
輸入從 74、76、80、81、79、75、74 逐筆變化,依表預測狀態。
監看 Value、前狀態、後狀態和輸出,不只看最後一個燈號。
比較遲滯版本與單門檻版本的切換次數,案例應顯示遲滯版本少掉門檻附近反覆切換。
把門檻極性顛倒、上下門檻相等、輸入超範圍列為失敗案例。
| 失敗現象 | 先查哪裡 | 不要先做什麼 |
|---|---|---|
| 75~80 間輸出一直翻轉 | 是否真的使用前狀態保持 | 不要只加更多延時 |
| Value=80 就啟用 | 比較運算子是否寫成 >= | 不要修改案例表來配合程式 |
| 輸出一直 OFF | 門檻單位、縮放和 State 初始化 | 不要直接把上限降很低 |
| 輸入跳很快仍切換 | 雜訊幅度是否跨過兩個門檻 | 不要把遲滯當成濾波 |
| 改門檻後狀態異常 | 更新時是否保留狀態、門檻順序是否合理 | 不要在運轉中無規則改參數 |
調整門檻時要保留版本和單位。若原始值先經工程縮放,遲滯門檻應在工程單位比較;若直接用模組原始值,則要記錄量程、倍率和正負號。不要一邊用原始值、一邊用工程值寫上下門檻。對浮點資料還要決定比較容差,避免數值因表示誤差在邊界附近反覆落入不同側。適用型號與限制:本文適用有比較指令與狀態記憶的 PLC 邏輯;Q06UDVCPU、FX、S7 等可採相同設計概念,但比較指令、資料型別、浮點精度和狀態保持方式要依目標平台確認。遲滯不是安全限位、過壓保護或急停功能,工程上必須另設獨立安全鏈。
常見問題與附錄
| 問題 | 回答 |
|---|---|
| 兩個門檻一定要差很多嗎? | 不一定,但差距小於輸入雜訊時仍可能切換;差距需依量測解析度和需求設定。 |
| 遲滯會讓輸出反應變慢嗎? | 跨越另一個門檻才改變,可能延後解除或啟用;這是設計效果,不是程式錯誤。 |
| 可以用平均值取代遲滯嗎? | 平均是平滑數值,遲滯是分離轉換門檻,兩者作用不同,必要時可分別使用。 |
| 上限小於下限怎麼辦? | 先視為參數錯誤,產生診斷旗標或拒絕啟用,不要讓狀態規則變得不明。 |
遲滯參數也要有變更規則。運轉中若有人把啟用門檻改到解除門檻以下,程式可能同時滿足兩個條件;建議先驗證上限與下限的關係,再以版本化設定套用。若輸入失聯、品質位元無效或超出量程,不要只把異常值送入遲滯判斷,應先決定輸出保持、關閉或進故障的策略,並留下診斷原因。
遲滯區的寬度應由輸入噪聲、允許波動和設備反應決定。太窄時,雜訊仍會跨過兩個門檻;太寬時,狀態可能在實際需要解除後仍保持。設定時先收集正常波動範圍,再把啟用與解除條件寫成可驗證的規格。若是壓力、溫度或液位,還要確認工程值的單位、量程和取樣週期,不要只把畫面上看到的數字直接當成 PLC 比較值。
完成遲滯邏輯後,請把狀態變化和原始輸入一起記錄一段時間。若狀態仍反覆切換,檢查是否有另一段程式直接寫輸出、是否在不同任務使用不同門檻,以及是否每次掃描都重新初始化狀態。若輸入品質無效,應先進入明確的故障處理,不要用遲滯保持假裝輸入正常。
遲滯判斷完成後,最重要的是保留門檻定義和邊界結果。換設備、換量程或換資料型別時,重新核對單位與比較子,避免沿用看似相同的 75 和 80。每次改參數都應重新跑等於門檻、剛跨過門檻和回到遲滯區的測試。測試表也要記錄輸入品質,避免把失聯資料誤當成正常遲滯。
請把每次門檻調整的原因、操作者與日期留下,並保留調整前後的逐筆表,方便判斷切換變少是遲滯有效,還是輸入被錯誤裁切。
參考:本文引用的官方來源為 Schneider Electric Machine Expert V2.2 ControlLoopLibrary;官方資料的控制器介面與門檻方向仍須按該函式庫版本閱讀。