跳到主要内容

set_monitoring_mode

每个 MonitoredItem 有 3 种 monitoring mode:

Mode服务端采样服务端推送用途
Disabled (0)××完全停 (不采也不推)
Sampling (1)×采样但不推 (记历史 / 死区计算)
Reporting (2, 默认)正常运作
前置阅读
  • 想停整条订阅 (而不是逐 MI) 看下面 set_publishing_enabled.
  • 修改采样参数请看 Modify.

批量切

def set_monitoring_mode(self,
mode: MonitoringMode,
mi_handles: List[int]) -> List[StatusCode]: ...
from darra_opcua import MonitoringMode

# 临时停止全部采集 (例如设备维护期间)
statuses = sub.set_monitoring_mode(MonitoringMode.Disabled, all_handles)

单 MI 切

def set_mode(self,
monitored_item_handle: int,
mode: MonitoringMode) -> StatusCode: ...
sub.set_mode(handle, MonitoringMode.Disabled)    # 暂停某个 MI
sub.set_mode(handle, MonitoringMode.Reporting) # 恢复

整条订阅启停

def set_publishing_enabled(self, enabled: bool) -> StatusCode: ...
sub.set_publishing_enabled(False)  # 整条订阅停发布
sub.set_publishing_enabled(True) # 恢复

三种粒度对比

粒度API适用
整条订阅sub.set_publishing_enabled(bool)临时全停 (维护)
一批 MIsub.set_monitoring_mode(mode, handles)部分模块停
单 MIsub.set_mode(handle, mode)精细控制
完全删除sub.remove(handle) / sub.dispose()永久不要了

下一步