連接裝置
ThingWorx Kepware Server 可啟用工業自動化與工業 IoT 之間的通訊。它通常用於分散流程批次製造、石油和天然氣生產和分銷、建築自動化、能源生產和分配等生產系統。
在 ThingWorx 9.4 與較早版本中,以及 Kepware 6.15 與較早版本中,發現了一些情況,即「遠端內容」標記為 Read from Edge 顯示 UNKNOWN 品質,且不反映裝置的最新值。已觀察到下列情境。
情況
描述
平台重新啟動
平台重新啟動時,無法針對標記為 Read from Edge 的遠端內容從 Edge 讀取起始值。這是因為沒有使用中的網路通訊端連線。
Edge/Kepware 在中斷連線之後重新連線
當 Edge/Kepware 在連線中斷後重新連線時,會嘗試繫結。這會遵循平台重新啟動 (情境 1) 中所述的繫結模式。發生此情境的原因是工作流程中未讀取任何 Edge 內容。
RestartThing 服務或從 Composer 儲存
在此使用案例中,會先將「物件」標記為已停止。這會導致它失去與 Edge 端點的繫結。
在 RestartThing 方法期間,ThingWorx Platform 會先繫結至現有端點,然後呼叫 notifyPropertyUpdate 方法。此邊裝置會呼叫 GetPropertySubscriptions 以取得有關遠端內容與繫結的資訊。由於物件可能尚未啟動,因此此呼叫可能不會成功。有些內容可能會因呼叫 readPropertyValueFromEdge 而更新。
Kepware 冷啟動
當 Kepware 第一次在系統中啟動時,沒有內容繫結的相關資訊。啟動之後,Kepware 會連線至 ThingWorx Platform 並繫結至遠端物件。然後,Kepware 會嘗試根據從 ThingWorx Platform 擷取的內容詳細資訊來同步處理狀態。同時,Kepware 也會開始從工業裝置/硬體 (即 PLC、SCADA 或 DCS 系統等) 取得資料。在此期間,ThingWorx Platform 會嘗試在 Kepware 從裝置擷取其值之前讀取內容。這可能會導致資料的品質不明。
已提供修正
解決方案包括引入新的同步擷取機制,以取得遠端內容的目前值及重新組織內部服務呼叫,以使其僅在物件處於 Running 狀態時呼叫。
引入了新服務 SynchronizeModelState。ThingWorx Platform 將會使用此服務來傳送諸如內容訂閱、事件訂閱等模型資訊。此服務會預期從 Edge 收到目前的內容值作為回報。此服務也會解決當 ThingWorx Platform 啟動或重新啟動,或者遠端物件重新啟動時可能發生的驚群問題 (Thundering herd problem)。
當邊裝置重新連線時,會建立新的 websocket 連線,並收到繫結請求。在此解決方案中,邊裝置會等待繫結回應傳送至用戶端,然後執行同步呼叫來擷取目前內容以及觸發非同步請求。等待繫結完成的原因是為了防止循環呼叫及防止繫結遭到封鎖。
新增了兩個內容來追蹤 ThingWorx Platform 與邊裝置之間的同步處理狀態。這兩個內容會在成功將邊裝置的狀態與平台同步處理之後設定。當物件啟動或停止,或邊裝置中斷連線時,將會重設這些內容。
IsInitialStateSynchronized 布林值) - 邊裝置目前是否與 ThingWorx Platform 同步處理。
lastInitialStateSynchronized (日期時間) - 上次邊裝置將其狀態與 ThingWorx Platform 同步處理的時間。
這是否有幫助?