1. 連線與會話管理 (Connection & Session Management)
這是在進行任何其他操作之前,建立通訊所必需的功能。
功能碼 (Hex) | 功能名稱 | 說明 |
---|---|---|
0xF0 | Setup Communication | 設定通訊。這是三階段交握的最後一步,用於客戶端 (Client) 與 PLC 之間協商通訊參數,例如 PDU (協定資料單元) 的最大長度和可同時處理的任務數量。 |
2. 核心資料讀寫 (Core Data Access)
這是最基本也是最常用的功能,用於與 PLC 的記憶體區域進行互動。
功能碼 (Hex) | 功能名稱 | 說明 |
---|---|---|
0x04 | Read Variable | 讀取變數。從指定的記憶體區域讀取一個或多個變數的值,例如輸入 (I)、輸出 (Q)、旗標 (M)、資料塊 (DB) 等。 |
**0x05 | Write Variable | 寫入變數。將一個或多個值寫入到指定的記憶體區域。 |
3. PLC 狀態控制 (PLC State Control)
這些功能用於改變 CPU 的運行模式。
功能碼 (Hex) | 功能名稱 | 說明 |
---|---|---|
0x28 | PLC Control | PLC 控制。這是一個多功能命令,透過不同的參數可以實現:<br>- Start (啟動)<br>- Hot Restart (熱啟動)<br>- Cold Restart (冷啟動) |
0x29 | PLC Stop | PLC 停止。將 CPU 的模式從 RUN 切換到 STOP ,停止使用者程式的執行。 |
4. 程式區塊操作 (Program Block Operations)
這些功能主要由 TIA Portal 或 STEP 7 等工程軟體使用,用於程式的上傳和下載。
功能碼 (Hex) | 功能名稱 | 說明 |
---|---|---|
0x1A | Request Download | 請求下載。開始一個下載流程,客戶端通知 PLC 準備接收一個程式區塊。 |
0x1B | Download Block | 下載區塊。傳輸程式區塊 (如 OB, FB, FC, DB) 的資料。 |
0x1C | Download Ended | 下載結束。通知 PLC 一個程式區塊已傳輸完畢。 |
0x1D | Start Upload | 開始上傳。客戶端請求從 PLC 上傳一個程式區塊。 |
0x1E | Upload | 上傳。傳輸從 PLC 讀取出的程式區塊資料。 |
0x1F | End Upload | 上傳結束。一個程式區塊已成功從 PLC 傳輸到客戶端。 |
5. 進階系統與診斷功能 (Advanced System & Diagnostic Functions)
許多更複雜的功能被封裝在一個通用的 PDU 類型 Userdata
(ROSCTR 類型為 0x07
) 中。客戶端透過 Userdata 請求,並在其中指定具體的子功能。
主要透過 Userdata
實現的功能包括:
功能領域 | 說明 |
---|---|
Read SZL (讀取系統狀態列表) | 這是最重要的診斷功能。透過指定不同的 SZL ID,可以讀取極其豐富的系統資訊,例如:<br>- CPU 硬體資訊、韌體版本、序列號 (ID: 0x001C )<br>- CPU 運行狀態、掃描時間<br>- 診斷緩衝區 (Diagnostic Buffer) 的內容<br>- 通訊連接的狀態 |
Time Functions (時間功能) | 讀取或設定 PLC 的內部時鐘。 |
Security Functions (安全功能) | 處理與 PLC 存取保護相關的操作,例如密碼驗證或 session 金鑰處理 (在較新的 S7-1200/1500 中更為複雜)。 |
Alarm/Message Functions (警報與訊息功能) | 用於訂閱、接收和確認來自 PLC 的程式警報或系統事件。 |
總結來說,S7 CPU 的功能遠不止簡單的讀寫,它提供了一套完整的、層次分明的命令系統,既能滿足基本的數據監控需求,也支援複雜的程式管理和深度系統診斷。