Skip to main content

Integrating via OPC UA Protocol

DataFromSky avatar
Written by DataFromSky
Updated today

This document describes the capabilities of FLOW’s integration with the OPC UA communication protocol and provides basic notes for its setup and configuration.

The OPC UA interface allows FLOW to communicate with external ATMS (Automated Traffic Management Systems), acting as a Video Analytics (VA) data source through which consolidated traffic information can be shared, both as aggregated traffic statistics and as event-based alarms.

This interface is compatible with the Multi-Traffic Lane feature, enabling the collection and communication of such data and events on the level of individual traffic lanes — including regular lanes, shoulders, inter-lane islands, and lanes that specifically allow reversibility of their traffic flow. More about the Multi-Traffic Lane feature and its specifics can be found in a separate article.

TrafficData and TrafficEvents

The OPC UA interface in FLOW provides two major types of communicated data structures — TrafficData and TrafficEvents — which together form the foundation of its communication model.

TrafficData

TrafficData represents time-segmented statistics aggregated for defined time blocks. TrafficData outputs include:

  • Total vehicle count

  • Level of Service (LOS)

  • Average speed

  • Average object length

  • Lane Occupancy

Data, per lane, are updated after each time block and provide ATMS systems with continuous traffic metrics.

TrafficEvents

TrafficEvents focus on discrete occurrences within traffic lanes that may require attention. Unlike TrafficData, which aggregates statistics over the whole time blocks, TrafficEvents report individual events that occurred at any time within a reporting interval.

The following event types per lane and time block are supported:

  • Presence

  • Wrong Way

  • Slow Trajectory

  • Stopped Trajectory

  • Level of Service (not trajectory specific)

Note: Any event lasting for any part of the interval will be reported, regardless of the set time block length for TrafficData statistics.

Interface Configuration in FLOW

To configure the OPC UA interface in FLOW, open Block → Interfaces → OPC UA interfaces, and provide:

  • Interface name

  • Server address

  • Communication port

  • Selection of analytics allowed to publish data

To configure more settings related to the traffic lanes, such as virtual detector length, slow vehicle threshold, LOS service speed thresholds and more, go to Traffic Lanes Settings. Read more information about these in the Multi-Traffic Lane article.

Publishing Data to the OPC UA Interface

The OPC UA interface exposes data in fixed time blocks defined by the user. After each time block closes, FLOW validates the data before making it available for reading by the ATMS client. Data become available a few seconds after the end of each interval, due to internal validation and synchronization processes that ensure data consistency and alignment with the OPC UA time clock.

TrafficEvents that span across several time blocks are reported in each affected block until the event condition ends. This ensures continuity in event tracking and clear temporal boundaries for both statistical and alarm data.

OPC UA Tags

Tags represent defined message types used to exchange information between FLOW and the ATMS systems. The following section provides an overview of the tag structure supported by FLOW’s OPC UA interface, describing the categories and their purpose in communication.

General Tags

OPC UA Tag

Type

Description

Avails_Sts

Boolean

Data availability flag

FailureEvents_Timestamp_Sts

DateTime

Service activity timestamp

Cam_List_by_Id / Cam_List_by_String

Array

Lists of cameras (IDs / names)

Vehicle_List_Classes / Vehicle_List_Lengths

Array

List of vehicle classes and lengths

Zone and Reversibility Tags

OPC UA Tag

Type

Description

Zone_List

Array Byte

Ordered list of lanes [1–9, 20–22]

Zone_Reversibility_Support

Array Byte

Marks reversible lanes (0 = non-reversible, 1 = reversible)

Camera-Level Status and Failure Tags

OPC UA Tag

Type

Description

ChangeCameraState

Boolean (R/W)

Enable / disable analytics per camera

CurrentCameraState_Sts

Boolean

True if at least one analytic is active

Analytics_Off_Alm

Boolean

Analytics disabled or video feed lost

HomePosition_Off_Alm

Boolean

PTZ camera out of home position

Georegistration_Off_Alm

Boolean

Geo-registration inactive

PoorVisibility_Alm

Boolean

Poor visibility detected

TrafficData Tags

Aggregated per-lane statistics provided for each completed time block.

OPC UA Tag

Type

Description

TrafficData_Avails_Sts

Boolean

Indicates data availability

TrafficData_Timestamp_Sts

DateTime

End timestamp of the interval

TrafficData_Period_Sts

UInt16

Interval duration [s]

CountCar_Sts … CountBus_Sts

UInt16

Object counts by class

CountTotal_Sts

UInt16

Total motor vehicle count

Speed_Sts

Float32

Average speed [km/h]

Occupancy_Sts

Float32

Occupancy [%]

AvgLength_Sts

Float32

Average object length [m]

LOS_Sts

Byte

Level of service [1–6]

Reversibility_Support

Byte

Reversible lane flag

CurrentDirection_Sts

Boolean

Current lane direction (for reversible lanes)

TrafficEvents Tags

Traffic event detections reported for each camera and lane.

OPC UA Tag

Type

Description

TrafficEvents_Avails_Sts

Boolean

Data availability flag

TrafficEvents_Timestamp_Sts

DateTime

End timestamp of the interval

TrafficEvents_Period_Sts

UInt16

Interval duration [s]

Shoulder_Pedestrian_Alm … Shoulder_Bus_Alm

Boolean

Object detections on shoulders or mid-isles

Road_LOS5_Alm / Road_LOS6_Alm

Boolean

LOS level ≥ 5 / 6 (congestion)

Kamikaze_Alm

Boolean

Wrong-way driving detected

FallenObject_Alm

Boolean

Detection of an obstacle or fallen object on the road

Each TrafficEvent includes a unique EventId, composed of identifiers for the server, camera, lane, event group, and timestamp epoch.

Did this answer your question?