情境:通訊建立¶
1. 概述¶
本情境描述主機與設備之間完整的通訊建立流程,從 TCP 連線到 ONLINE REMOTE 狀態。
2. 前置條件¶
| 條件 | 狀態 |
|---|---|
| 設備電源開啟 | 是 |
| 網路已連線 | 是 |
| HSMS 已設定 | 是 |
| 設備處於正確狀態 | OFFLINE 或 HOST OFFLINE |
3. 完整時序圖¶
sequenceDiagram
participant Host
participant Equipment
rect rgb(240, 248, 255)
Note over Host,Equipment: 階段 1:TCP/IP 連線
Host->>Equipment: TCP SYN
Equipment-->>Host: TCP SYN-ACK
Host->>Equipment: TCP ACK
Note over Host,Equipment: TCP 連線已建立
end
rect rgb(255, 248, 240)
Note over Host,Equipment: 階段 2:HSMS 選擇
Host->>Equipment: Select.req (SType=1)
Equipment-->>Host: Select.rsp (SType=2, Status=0)
Note over Host,Equipment: HSMS 會話已選擇
end
rect rgb(240, 255, 240)
Note over Host,Equipment: 階段 3:SECS-II 通訊
Host->>Equipment: S1F13 W (Establish Communication)
Note over Equipment: 驗證請求
Equipment-->>Host: S1F14 (COMMACK=0, MDLN, SOFTREV)
Note over Equipment: 狀態:COMMUNICATING
end
rect rgb(255, 240, 255)
Note over Host,Equipment: 階段 4:上線轉換
Host->>Equipment: S1F17 W (Request Online)
Note over Equipment: 檢查是否允許上線
Equipment-->>Host: S1F18 (ONLACK=0)
Note over Equipment: 狀態:ONLINE LOCAL
end
rect rgb(255, 255, 240)
Note over Host,Equipment: 階段 5:初始狀態交換
Host->>Equipment: S1F3 W (Status Request)
Equipment-->>Host: S1F4 (Status Variables)
Host->>Equipment: S5F5 W (Alarm List Request)
Equipment-->>Host: S5F6 (Active Alarms)
end
4. 階段詳細說明¶
4.1 階段 1:TCP/IP 連線¶
設備在設定的連接埠上等待 TCP 連線。
| 設備模式 | 行為 |
|---|---|
| PASSIVE | 設備監聽,主機連線 |
| ACTIVE | 設備主動連線至主機 |
逾時:若在失敗後重新連線,適用 T5(連線分離)。
4.2 階段 2:HSMS 選擇¶
Select.req 標頭格式:
| 位元組 | 值 | 說明 |
|---|---|---|
| 0-3 | 0x00000000 | 訊息長度(控制訊息為 0) |
| 4-5 | 0xFFFF | Session ID |
| 6 | 0x00 | Header Byte 2 |
| 7 | 0x00 | Header Byte 3 |
| 8 | 0x00 | PType |
| 9 | 0x01 | SType (Select.req) |
| 10-13 | System Bytes | Transaction ID |
Select.rsp 狀態:
| 值 | 說明 |
|---|---|
| 0 | 通訊已建立 |
| 1 | 通訊已啟動 |
| 2 | 通訊尚未就緒 |
| 3 | 連線耗盡 |
逾時:適用 T6(控制交易)。
4.3 階段 3:SECS-II 建立通訊¶
S1F13 結構:
S1F14 結構:
COMMACK 值:
| 值 | 說明 | 下一步動作 |
|---|---|---|
| 0 | 已接受 | 繼續上線 |
| 1 | 拒絕,請重試 | 延遲後重試 |
4.4 階段 4:上線轉換¶
S1F17 結構:
S1F18 結構:
ONLACK 值:
| 值 | 說明 | 下一步動作 |
|---|---|---|
| 0 | 已接受 | 設備已上線 |
| 1 | 不接受,已上線 | 無需動作 |
| 2 | 不接受,設備離線 | 等待或操作員動作 |
4.5 階段 5:初始狀態交換¶
主機通常查詢: - 設備狀態變數(S1F3/F4) - 啟動中的警報(S5F5/F6) - 已啟用的事件和報告 - 目前製程狀態
5. 錯誤處理¶
5.1 TCP 連線失敗¶
sequenceDiagram
participant Host
participant Equipment
Host->>Equipment: TCP SYN
Note over Equipment: 無回應
Note over Host: 連線逾時
Note over Host: 等待 T5,重試
5.2 選擇被拒絕¶
sequenceDiagram
participant Host
participant Equipment
Host->>Equipment: Select.req
Equipment-->>Host: Select.rsp (Status=2, Not Ready)
Note over Host: 等待並重試
5.3 通訊被拒絕¶
sequenceDiagram
participant Host
participant Equipment
Host->>Equipment: S1F13 W
Equipment-->>Host: S1F14 (COMMACK=1)
Note over Host: 延遲後重試
5.4 上線被拒絕¶
sequenceDiagram
participant Host
participant Equipment
Host->>Equipment: S1F17 W
Equipment-->>Host: S1F18 (ONLACK=2)
Note over Host: 設備需要操作員動作
6. 狀態轉換¶
| 步驟 | 轉換前設備狀態 | 轉換後設備狀態 |
|---|---|---|
| TCP Connect | NOT CONNECTED | NOT SELECTED |
| HSMS Select | NOT SELECTED | SELECTED |
| S1F13/F14 | NOT COMMUNICATING | COMMUNICATING |
| S1F17/F18 | HOST OFFLINE | ONLINE LOCAL |
7. 產生的收集事件¶
| 事件 | CEID | 發生時機 |
|---|---|---|
| CommunicationEstablished | 1001 | S1F14 (COMMACK=0) 之後 |
| ControlStateChange | 2001 | S1F18 (ONLACK=0) 之後 |
| OnlineLocal | 2003 | 進入 ONLINE LOCAL 之後 |
8. 時間總結¶
| 階段 | 逾時 | 預設值 |
|---|---|---|
| TCP Connect | 應用程式定義 | 10 秒 |
| Select | T6 | 5 秒 |
| S1F13 回覆 | T3 | 45 秒 |
| S1F17 回覆 | T3 | 45 秒 |
9. Linktest 建議¶
通訊建立後,實作週期性 linktest:
sequenceDiagram
participant Host
participant Equipment
loop 每 30 秒
Host->>Equipment: Linktest.req
Equipment-->>Host: Linktest.rsp
end
這可確保連線健康狀態,並防止閒置連線的 T7 逾時。