OPC UA services: Browse, Read, Write, Call and Subscriptions

What a client actually does: browsing, reading and writing attributes, calling methods, and how subscriptions with monitored items replace polling.

Service sets you use

ServiceWhat it does
Browse / BrowseNextFollows references from a node to discover the address space
TranslateBrowsePathsToNodeIdsResolves a path like Objects/Plant/Motor1/Speed to a NodeId
ReadReads attributes (usually Value) of one or many nodes in one request
WriteWrites attributes; the server checks AccessLevel and data type
CallExecutes a Method with input arguments
CreateSubscription / CreateMonitoredItemsAsks the server to report changes
HistoryReadReads archived values if the node is historized

Group reads and writes: one Read with 500 nodes is far cheaper than 500 separate requests.

Subscriptions

A subscription belongs to a session and has a publishing interval — how often the server may send a notification message. Inside it, monitored items watch individual nodes:

ParameterMeaning
Sampling intervalHow often the server samples the source (can be faster than publishing)
Queue sizeHow many samples are kept between two publishes; 1 = latest value only
Discard oldestWhich value is dropped when the queue is full
Filter (DataChange)Trigger on Status / Status+Value / Status+Value+Timestamp; deadband absolute or percent

If nothing changes, the server sends keep-alive messages. A subscription is deleted when the client stops publishing requests for lifetime count × publishing interval.

Example: publishing 1000 ms, sampling 100 ms, queue 10 — the client receives up to 10 samples per second in one message, none lost.

Events

Event monitored items subscribe to an object's notifier (often Server) and deliver alarms and events with selected fields (Time, Severity, Message, SourceName). Alarms & Conditions add states such as Active, Acked and Confirmed.

Good practice

  • Do not poll with Read every 100 ms from many clients — subscribe.
  • Use deadbands for analog values to reduce traffic.
  • Check the StatusCode of every value: a "value" with Bad status is not a measurement.
  • Respect MinimumSamplingInterval: requesting 10 ms from a node that updates every 100 ms only creates duplicates.

Loading the map…

Sources

  1. OPC 10000-4 Part 4: Services (v1.05) — OPC Foundation
  2. OPC 10000-3 Part 3: Address Space Model (v1.05) — OPC Foundation

Updated 2026-10-02