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.

