跳到主要内容

服务集 (Services)

OPC UA 定义了一组标准服务, 客户端通过 RPC 形式调用. 服务按用途分组, 本 SDK 实现状态如下.

配套阅读

Discovery 服务集

服务本 SDK API说明
FindServersDiscovery.FindServers(url)通过 LDS 列出域内全部 Server
GetEndpointsDiscovery.GetEndpoints(url)列出某 Server 的全部 Endpoint (URL+Mode+Policy+Token)
RegisterServer / RegisterServer2× (Server 用)客户端不需要

SecureChannel 服务集

服务本 SDK说明
OpenSecureChannel(Connect 内部)协商加密通道
CloseSecureChannel(Disconnect 内部)关闭通道

Session 服务集

服务本 SDK API
CreateSession(Connect 内部)
ActivateSession(Connect 内部)
CloseSessionDisconnect()
Cancelua.Cancel(requestHandle)

NodeManagement 服务集

服务本 SDK说明
AddNodes / AddReferences / DeleteNodes / DeleteReferences×客户端通常不动 Server 拓扑

View 服务集

服务本 SDK API
Browseua.Browse(nodeId)
BrowseNextua.BrowseNext(continuationPoint)
TranslateBrowsePathsToNodeIdsua.TranslateBrowsePaths(paths)
RegisterNodesua.RegisterNodes(nodeIds)
UnregisterNodesua.UnregisterNodes(registeredIds)

Query 服务集

服务本 SDK说明
QueryFirst / QueryNext×复杂查询, 极少 Server 实现

Attribute 服务集

服务本 SDK API
Readua.Read(nodeId, attribute) / ReadMany(nodeIds)
Writeua.Write(nodeId, variant, attribute)
HistoryReadua.ReadHistory(...) 5 模式
HistoryUpdateua.History.UpdateData(...) / DeleteRange(...)

Method 服务集

服务本 SDK API
Callua.Call(objectId, methodId, ...inputs)

MonitoredItem 服务集

服务本 SDK API
CreateMonitoredItemssub.Add(nodeId) / sub.AddMany(nodeIds)
ModifyMonitoredItemssub.ModifyMonitoredItems(requests)
SetMonitoringModesub.SetMonitoringMode(mode, miHandles)
SetTriggering× (本 SDK 暂不暴露)
DeleteMonitoredItemssub.Remove(handle)

Subscription 服务集

服务本 SDK API
CreateSubscriptionua.CreateSubscription(intervalMs)
ModifySubscriptionsub.Modify(...)
SetPublishingModesub.PublishingEnabled
Publish(内部 AutoPublish 自动循环)
Republishsub.Republish(seqNo)
TransferSubscriptionsua.TransferSubscriptions(ids, sendInitial)
DeleteSubscriptionssub.Dispose()

总结覆盖率

本 SDK 实现了 OPC UA 标准服务集中:

  • Discovery: 2/2 客户端服务 (FindServers, GetEndpoints)
  • SecureChannel: 2/2 (Open/Close 内部封装)
  • Session: 4/4 (Create/Activate/Close/Cancel)
  • View: 5/5 (Browse/BrowseNext/Translate/Register/Unregister)
  • Attribute: 4/4 (Read/Write/HistoryRead/HistoryUpdate)
  • Method: 1/1 (Call)
  • MonitoredItem: 4/5 (除 SetTriggering)
  • Subscription: 7/7

不实现的服务:

  • NodeManagement (服务端拓扑变更, 客户端罕用)
  • Query (复杂场景, 极少 Server 实现)
  • SetTriggering (高级触发, 极少应用需要)

相关链接