Skip to main content

OPC Classic™

Connect to OPC Classic™ servers using OIBus with the OIBus Agent.

Technology Context
  • Industrial communication protocol by OPC Foundation
  • Supports both HDA and DA mode
  • Requires Windows-based OIBus Agent
  • For OPC UA, see OPC UA connector
System Requirements

OIBus Agent must be installed on a Windows machine

Specific Settings

SettingDescriptionExample Value
Remote agent URLAgent endpoint (e.g., http://host:2224)http://192.168.1.100:2224
Retry intervalTime (ms) before connection retry10000
Server URLAddress of OPC server (from agent machine)localhost or IP address
Server nameOPC server name (ProgID)Matrikon.OPC.Simulation
ModeData access mode (DA or HDA)HDA

Throttling Settings

You can optimize data requests using throttling configurations. These settings help manage large data intervals and network conditions effectively.

Key Throttling Parameters

SettingDescriptionData TypeExample Value
Max read intervalMaximum duration (in seconds) for each data request interval. Larger intervals are automatically divided into smaller chunks not exceeding this value.Seconds3600
Read delayDelay (in milliseconds) between consecutive data requests. Helps prevent server overload.Milliseconds1000
OverlapTime overlap (in milliseconds) between consecutive queries to ensure data continuity. This value is subtracted from the @StartTime of the next query.Milliseconds60000

How Throttling Works

  1. Interval Division:
  • Large time ranges are automatically split into smaller intervals
  • Each sub-interval does not exceed the Max read interval duration
  • Example: A 24-hour request with Max read interval = 3600 (1 hour) will be split into 24 separate 1-hour requests
  1. Request Timing:
  • The Read delay introduces a pause between consecutive requests
  • Helps manage server load and prevents rate limiting
  • Particularly useful during network instability or when querying large datasets
  1. Data Continuity:
  • The Overlap setting ensures no gaps in your data
  • Creates a time buffer between consecutive queries
  • Example: With Overlap = 60000 (1 minute), each query will include 1 minute of overlapping data with the previous query
Overlap Functionality

The overlap setting modifies the @StartTime of each query by subtracting the overlap value from the calculated start time. This adjustment applies to the entire query range, not to individual sub-intervals when large requests are split into smaller chunks.

This functionality is particularly useful when:

  • New data is ingested after previous queries have executed
  • You need to account for potential ingestion delays in the source system

Example: With overlap=60000 (1 minute), a query for the interval [10:00-11:00] will actually request [9:59-11:00], ensuring capture of any late-arriving data from the previous time period.

ScenarioMax read intervalRead delayOverlap
Stable network, small datasets3600 (1 hour)5000 (no overlap)
Unstable network1800 (30 min)20000 (no overlap)
Large historical retrievals7200 (2 hours)10000 (no overlap)
Real-time with occasional gaps900 (15 min)20015000 (15 sec)

Item Settings

SettingDescriptionOptions/Examples
Node IDPath to data in OPC server namespaceChannel1.Device1.Tag1
AggregateData aggregation method (verify server support)Raw, Average, Minimum, Maximum, ...
ResamplingResample aggregated values at requested interval (requires non-Raw aggregate)None, 1s, 10s, 1h, ...
Compatibility Notes
  1. Aggregation Support: Not all servers support all aggregation methods
  2. Resampling: Only available when aggregate ≠ Raw
  3. Recommended Settings: Use Raw aggregation and None resampling for maximum compatibility
  4. Server Capabilities: Verify supported features with your OPC server documentation

Configuration Examples

  1. Basic Configuration:
  • Node ID: Simulation Random.Int4
  • Aggregate: Raw
  • Resampling: None
  1. Aggregated Values:
  • Node ID: Production.Line1.Temperature
  • Aggregate: Average
  • Resampling: 5m
  1. High-Frequency Data:
  • Node ID: Process.Vessel.Pressure
  • Aggregate: Minimum
  • Resampling: 1s