Grafcet 是 IEC 60848 標準的順序控制建模方法,用於描述自動化系統中的狀態轉換邏輯。適用於 PLC 程式設計、嵌入式控制流程規劃。
| 欄位 | 類型 | 說明 |
|---|---|---|
StepNumber | 整數 | 步驟唯一 ID |
ModuleRef | 字串 | 對應的 IDEF0 模組 ID(如 A1) |
StepType | 字串 | initial | normal | sub_grafcet |
StepAction | 字串 | 步驟啟動時執行的動作 |
LinkOutputType | 字串 | 輸出連結類型(見下表) |
LinkInputNumber | 整數陣列 | 輸入步驟 ID 列表 |
LinkOutputNumber | 整數陣列 | 輸出步驟 ID 列表 |
Condition | 字串陣列 | 每個輸出轉換的布林條件 |
SubGrafcet | 陣列 | 巢狀子圖(用於 macro 步驟) |
| 類型 | 語義 | 用途 |
|---|---|---|
track | 單一順序段 | 直線流程 |
divergence_or | 條件分支(二擇一) | If-Else 邏輯 |
convergence_or | 條件匯合 | 分支合流 |
divergence_and | 並行分叉 | 同時啟動多個流程 |
convergence_and | 同步匯合 | 等待所有並行流程完成 |
[
{
"StepNumber": 0,
"ModuleRef": "A1",
"StepType": "initial",
"StepAction": "待機",
"LinkInputType": [],
"LinkOutputType": "track",
"LinkInputNumber": [2],
"LinkOutputNumber": [1],
"Condition": ["start_button"],
"SubGrafcet": []
},
{
"StepNumber": 1,
"ModuleRef": "A1",
"StepType": "normal",
"StepAction": "啟動馬達",
"LinkInputType": [],
"LinkOutputType": "track",
"LinkInputNumber": [0],
"LinkOutputNumber": [2],
"Condition": ["timer_done"],
"SubGrafcet": []
},
{
"StepNumber": 2,
"ModuleRef": "A1",
"StepType": "normal",
"StepAction": "停止馬達",
"LinkInputType": [],
"LinkOutputType": "track",
"LinkInputNumber": [1],
"LinkOutputNumber": [0],
"Condition": ["reset"],
"SubGrafcet": []
}
]
每個 Grafcet 步驟的 ModuleRef 必須對應到 IDEF0 層級中存在的活動 ID。這確保了功能分解(IDEF0)與行為建模(Grafcet)之間的雙向可追蹤性。
ModuleRef: "A1" → 這個步驟屬於 IDEF0 中 A1 活動的控制邏輯ModuleRef: "A11" 來對應子活動ModuleRef 或對應到不存在的 IDEF0 模組