隨著智慧交通的發展,傳統人工收費站逐漸被多車道自由流電子收費系統(Multi-Lane Free-Flow ETC)取代。車輛無需減速、停車或變換車道,即可完成通行費扣款。此系統仰賴高精度車牌辨識(ANPR)、RFID/DSRC/5G通訊、車輛偵測與後端扣款平台,廣泛應用於高速公路、都會快速道路、停車場入口等場景。
本狀態機圖描述的正是此類系統的核心控制邏輯:從車輛接近 → 偵測 → 辨識 → 扣款 → 放行或處罰的完整生命週期。透過UML狀態機圖,能清楚呈現系統在不同情境下的行為,幫助工程師設計韌體、軟體控制器,以及進行異常處理與壓力測試。
系統主要狀態與轉移說明
- Idle(閒置) 系統待機,無車輛接近。 → 觸發事件:vehicle_approaches_toll_plaza(車輛接近收費區)
- Toll Processing(收費處理)(複合狀態)
- Reading License Plate(讀取車牌) 啟動相機/雷達讀取車牌號碼 → plate_read → Checking Validity(檢查有效性)
- Checking Validity(檢查有效性) 比對資料庫(是否註冊、是否欠費、是否黑名單等) → valid_plate → Generating Receipt(產生收據) → invalid_plate → Error(錯誤)
- Generating Receipt(產生收據) 產生扣款指令並傳送至後端 → receipt_sent → PaymentReceived(已收到付款)
- InRange → Detect(範圍內 → 偵測) 車輛進入偵測區(通常為虛擬閘門範圍) → detect_vehicle_entry → PaymentReceived 或 NoPayment
- PaymentReceived(付款成功) 扣款完成,系統記錄交易 → payment_successful → TollCollected(收費完成)
- NoPayment(未付款) 未偵測到有效扣款(e.g. 未註冊、餘額不足、OBU故障) → no_payment_received → Penalty(罰單)
- TollCollected(收費完成) / Penalty(罰單) 兩條路徑最終匯合: → process_toll / apply_penalty → update_road_segment(更新路段紀錄) → Clear(清除 / 放行)
- Clear(清除) 車輛已離開收費區,系統恢復正常 → reset_system → Idle
- Error(錯誤) 讀取失敗、系統異常、通訊中斷等 → system_alert → 進入終止或等待人工介入
關鍵概念(UML 狀態機圖核心元素)
- 狀態(State) 系統在某段時間內的穩定條件,例如「Idle」、「Reading License Plate」、「Penalty」。 本圖使用簡單狀態與複合狀態(Toll Processing 包含子狀態)。
- 轉移(Transition) 狀態之間的箭頭,標示觸發事件(trigger),如 plate_read、valid_plate、payment_successful。 本圖未顯示守衛條件(guard),但實際系統常加入,例如 [餘額 ≥ 通行費]。
- 事件(Event) 引起狀態改變的外部或內部刺激,例如 vehicle_approaches_toll_plaza、invalid_plate、system_reset。
- 初始與終態 ● 表示起始偽狀態,● 表示終態(本圖有多個終態:Error、Clear)。
- 複合狀態與區域(Composite State & Region) Toll Processing 為複合狀態,內含並行或循序子狀態,有助於處理複雜邏輯。
- 自環與歷史狀態(本圖未出現,但常見於ETC) 例如讀取車牌失敗後可重試(self-transition),或記錄上次成功狀態(shallow/deep history)。
- 進入/離開/內部行為(Entry / Exit / Do) 雖然圖中未標示,但實作時常定義:
- Entry / 開啟相機
- Do / 持續偵測車輛
- Exit / 關閉雷射或記錄log
設計價值與工程應用
- 避免非法序列:確保未讀取車牌就不能扣款,未扣款就不能直接放行。
- 異常處理明確:invalid_plate → Error、no_payment_received → Penalty,提供完整追蹤路徑。
- 可測試性:狀態機可直接轉換為狀態表或自動測試案例,覆蓋率高。
- 實作參考:可對應到狀態模式(State Pattern)、有限狀態機(FSM)程式碼,或硬體描述語言(Verilog/VHDL)。
- 擴展性:未來可加入子狀態如「多車同時處理」、「5G通訊等待」、「違規車攔截」等。
結語
此狀態機圖完整呈現現代自由流電子收費系統的核心行為邏輯,是嵌入式系統、智慧交通、軟體工程領域極具代表性的案例。透過視覺化的狀態轉移,能大幅降低設計錯誤、加速開發與維護,並作為與硬體廠商、系統整合商溝通的重要規格文件。
若需進一步產生PlantUML程式碼、加入守衛條件、或繪製更細分的並行區域版本,皆可依此案例繼續擴展。
- 使用 Visual Paradigm AI 掌握狀態圖:自動收費系統指南:本指南示範如何使用AI 增強的狀態圖來建模和自動化自動收費系統軟體所需的複雜行為。
- 使用 AI 繪製 UML 狀態機圖的權威指南:這是一份詳細的技術指南,介紹如何使用AI 工具透過 UML 狀態機圖對物件行為進行建模,從而確保行為邏輯的清晰度和精確性。
- 狀態圖快速教學:幾分鐘內掌握 UML 狀態機:初學者的資源,用於使用 Visual Paradigm 掌握狀態機,涵蓋核心概念和實用建模技術。
- 在 Visual Paradigm 中從狀態機產生原始程式碼:本文檔提供了直接從狀態機圖產生實作程式碼的說明,以有效率地執行複雜的狀態驅動邏輯。
- 3D 列印機狀態機:全面的逐步指南:逐步解說如何將狀態機概念應用於3D 列印系統,詳細介紹其運作邏輯和自動化路徑。
- 狀態機圖教學與文法指南:本指南全面介紹了對單一類別物件和整個系統的動態行為進行建模所需的符號和語法。
- 系統行為視覺化:狀態圖實用指南及範例:分析狀態圖如何透過提供系統轉換的直覺式視覺化,成為早期辨識問題的強大工具。
- 互動式狀態機圖工具:一個專門用於建立和編輯狀態機圖的基於 Web 的工具,利用即時建模功能。
- 狀態機與活動圖:主要區別:一份比較指南,解釋了這兩種行為 UML 圖的不同用例和結構差異。
- 什麼是狀態機圖? UML綜合指南:深入解釋狀態機圖在現代系統設計中的用途、組成部分和實際應用。