连接设备
ThingWorx Kepware Server 可实现工业自动化和工业 IoT 通信。它通常用于离散工艺批量制造、石油和天然气生产和分配、建筑自动化、能源生产和分配等生产系统。
标记为 Read from Edge 的远程属性显示 UNKNOWN 质量,但不反映设备的最新值。这种场景偶见于 ThingWorx 9.4 和早期版本以及 Kepware 6.15 和早期版本。以下为目前为止观察到的场景。
场景
说明
平台重新启动
平台重新启动时,无法从 Edge 读取标记为 Read from Edge 的远程属性的起始值。因为无活动的 Web 套接字连接。
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 启动或重新启动,或者远程事物重新启动时发生。
重新连接边缘设备后,会建立新的 Websocket 连接并接收绑定请求。在此解决方案中,边缘设备等待绑定响应发送至客户端,然后执行同步调用以获取当前属性并触发异步请求。等待绑定完成是为了防止循环调用和绑定受阻。
两个新增属性可跟踪 ThingWorx Platform 和边缘设备之间的同步状态。这两个属性将在边缘设备与 Platform 成功同步状态后设置。事物启动或停止,或边缘设备断开连接后,将重置这些属性。
IsInitialStateSynchronized (布尔型) - Edge 设备当前与 ThingWorx Platform 是否同步。
lastInitialStateSynchronized (日期时间) - Edge 设备上次与 ThingWorx Platform 同步状态的时间。
这对您有帮助吗?