來自 LUA 應用程式的輸入資料

如果檢查失敗,本機節點會先對用戶端應用程式所提供的資料執行某些檢查,再將它傳送至主機,並以 Status-Acknowledge (Nack-2) 訊息拒絕它。 如果資料通過檢查 (,則不會將任何通知傳回給應用程式,不過主機稍後可能會) 這麼做。

如果用戶端應用程式提供邏輯單元應用程式 (LUA) API,API 的設計可能需要在本機節點檢查資料之前,傳送資料到應用程式的 LUA 動詞命令才會完成。 因此,本機節點一律會在完成輸入訊息的傳送檢查之後,回應使用函式管理介面的 LUA 變體 (FMI) 用戶端應用程式。 這可讓用戶端應用程式完成 LUA 動詞處理,並將控制權傳回給 LUA 應用程式程式。

如果輸入訊息通過本機節點的傳送檢查,並將傳送至主機,本機節點會將 Status-Acknowledge (ACKLUA) 訊息傳送至用戶端應用程式以指出此問題。 用戶端應用程式接著可以使用 OK 傳回碼完成 LUA 動詞處理。 請注意, Status-Acknowledge (ACKLUA) 訊息並不表示資料已成功傳送至主機或主機收到。 稍後可能會接著 狀態認可 (Nack-1) 訊息,指出主機拒絕資料。

如果輸入訊息失敗本機節點傳送檢查,則會針對非 LUA 用戶端應用程式傳回 Status-Acknowledge (Nack-2) 訊息。 用戶端應用程式接著可以將非 OK 傳回碼回報給 LUA 應用程式程式,以傳送訊息的 LUA 動詞命令。

如果用戶端應用程式提供 LUA API,則應該等候 Status-Acknowledge (ACKLUA) Status-Acknowledge (Nack-2) ,以判斷是否要將 OK 或錯誤傳回碼傳回 LUA 傳送動詞命令。 如果不需要此相依于本機節點的傳送檢查,用戶端應用程式可以忽略 狀態通知 (ACKLUA) 訊息。

請注意,在某些情況下,本機節點無法在回復用戶端應用程式之前完成其傳送檢查。 在這些情況下,本機節點會傳回 Status-Acknowledge (ACKLUA) ,但後續可能會在剩餘傳送檢查期間偵測到錯誤時傳送 Status-Acknowledge (Nack-2) 。 因此,用戶端應用程式可能會針對相同的輸入訊息收到 Status-Acknowledge (ACKLUA) ,後面接著 Status-Acknowledge (Nack-2)

在 FMI LUA 變體的傳輸標頭 (TH) 中,會使用 EFI (加速流程指示器) 、目的地位址欄位 (DAF) ,以及 OAF) (原始位址欄位。 忽略其他欄位 (包括序號欄位) 。 在 FMI LUA 變體的 RH 中,會使用佇列回應指示器以外的所有欄位, (QRI) 和步調指示器 (PI) 。

針對輸入資料,第一個位元組是 FMI LUA 變體的 TH[0]。

下圖說明應用程式可傳送之不同訊息 的狀態認可 (ACKLUA) 通知通訊協定。

在第一個圖中,應用程式會傳送 資料 訊息,以傳遞本機節點的傳送檢查。

顯示應用程式如何傳送資料訊息,以傳遞本機節點的傳送檢查的影像。
應用程式會傳送資料訊息,以傳遞本機節點的傳送檢查

在下圖中,應用程式會傳送 Status-Acknowledge (Ack) 訊息,以傳遞本機節點的傳送檢查。

顯示應用程式如何傳送 Status-Acknowledge (Ack) 訊息,以傳遞本機節點的傳送檢查。
應用程式會傳送狀態通知 (Ack) 訊息,以傳遞本機節點的傳送檢查

在下圖中,應用程式會傳送 Status-Acknowledge (Nack-1) 訊息,以傳遞本機節點的傳送檢查。

顯示應用程式如何傳送 Status-Acknowledge (Nack-1) 訊息,以傳遞本機節點的傳送檢查。
應用程式會傳送 Status-Acknowledge (Nack-1) 訊息,以傳遞本機節點的傳送檢查

另請參閱

輸出資料
輸入資料