HomeResourcesWhat is a Device Driver?
Device Protocols

What is a device driver?
in industrial automation?

An industrial device driver is the software module inside an OPC server that implements a specific device protocol, manages communication with a physical device, and translates raw device data into standardized OPC tags that any client application can read. Without a driver, an OPC server cannot talk to a PLC, meter, drive, or any other field device, regardless of what network they share.

Last reviewed: 2026Reading time: ~9 minTopics: device driver, OPC server, channel, tag, scan rate, deadband, automatic tag generation, TOP Server

What is an industrial device driver?

Before OPC and standardized drivers existed, every application that needed data from a field device had to contain its own communication code for every device it might connect to. A SCADA system connecting to five different PLC brands needed five separate communication implementations, each maintained independently, each potentially conflicting when run simultaneously, and each requiring re-engineering whenever a device firmware revision changed. The driver model, introduced with OPC in 1996, replaced that approach with a single shared communication layer.

An industrial device driver is a software module that knows one thing deeply: how to communicate with a specific device or family of devices using their native protocol. The driver handles all the low-level details: framing request packets in the format the device expects, parsing the response, managing connection state, retrying on failure, respecting timing constraints, and extracting individual register or tag values from the response payload. Everything above the driver, including the OPC server interfaces (OPC DA, OPC UA), the client applications (SCADA, historian, MES), and the enterprise data layer, works with the abstracted tag data that the driver produces rather than with the raw device protocol.

A driver is not the same as an OPC server. The OPC server (like TOP Server) is the host application that provides the OPC DA and OPC UA interfaces to client applications. Drivers are the components within the OPC server that handle specific device communication protocols. One instance of TOP Server can run dozens of drivers simultaneously, each talking to different device types. The OPC server aggregates all the device data from all its drivers into a single OPC namespace accessible to any OPC client.

Why drivers exist: the pre-OPC problem

The driver model solved a fragmentation problem that had made industrial integration expensive and fragile for decades. Understanding what that problem was explains why the driver abstraction layer remains important even in modern OT architectures.

Before OPC drivers
The custom driver problem

Each application (SCADA, historian, MES, reporting tool) contained its own communication code for each device it needed to reach. A plant with five PLC vendors and four software applications needed up to 20 separate custom communication implementations.

Each implementation competed for the same serial port or IP connection. Two applications attempting to poll the same PLC at the same time caused communication failures. Any device firmware update could break all implementations simultaneously.

Hardware vendors spent engineering resources maintaining drivers for dozens of software platforms. Software vendors spent engineering resources maintaining drivers for dozens of hardware platforms. Both duplicated each other's work with no shared benefit.

With OPC drivers
The driver abstraction model

One driver, inside one OPC server, handles all communication with a given device type. Every application that needs data from that device connects to the OPC server as an OPC client. The driver runs once, manages one connection to the device, and serves data to unlimited concurrent clients.

Adding a new client application requires no changes to the device communication layer. Updating a device's firmware requires only one driver update, not updates to every application. Troubleshooting communication problems has one place to look.

Hardware vendors write and maintain one OPC server driver for their device. Software vendors write and maintain one OPC client interface. Any client works with any driver. The N-squared custom integration problem becomes N+M.

Driver anatomy: channels, devices, tags

In TOP Server and similar OPC server architectures, the configuration hierarchy that organizes driver instances has three levels: channels, devices, and tags. Understanding these levels is essential for configuring drivers correctly and for diagnosing communication problems.

5
OPC clients
Client applications (SCADA, historian, MES, analytics)
SCADA systems, historians, dashboards, N3uron, OPC Router, and any other OPC client. Each client subscribes to the tags it needs. The OPC server delivers data updates to all subscribed clients simultaneously. Clients are completely decoupled from the driver layer below.
4
OPC server
OPC server (TOP Server): OPC DA and OPC UA interfaces
TOP Server aggregates tag data from all configured drivers into a single OPC namespace. Exposes the complete tag tree to clients via OPC DA 2.0/3.0 and OPC UA. Manages client subscriptions, update rate negotiation, data quality reporting, and tag caching. The OPC server layer is protocol-agnostic; it does not know or care what device protocol the driver below it uses.
3
Driver
Device driver: the protocol-specific communication engine
The driver knows the device protocol: packet format, function codes, data types, addressing conventions, connection state management, and error handling. Each driver is specific to a protocol or device family (Modbus, Siemens S7, EtherNet/IP CIP, DNP3, Fisher ROC, etc.). The driver converts the OPC server's tag read and write requests into protocol-specific device commands, and converts device responses back into OPC tag values with quality stamps.
2
Channel
Channel: one communication path (one serial port, one Ethernet NIC, one protocol instance)
A channel defines the physical or logical connection over which device communication occurs: a serial COM port and its settings (baud rate, parity, stop bits), an Ethernet adapter with its IP stack settings, or an OPC UA endpoint URL. Multiple devices of the same protocol type can be addressed through one channel. A Modbus TCP channel, for example, might poll 30 different Modbus slave devices, all reached over the same Ethernet NIC.
1
Device
Device: one physical or logical device endpoint (one IP address, one slave ID, one PLC node)
A device object represents one specific device: a single Modbus slave at Unit ID 5, a single ControlLogix PLC at 192.168.1.100, a single Siemens S7 CPU at rack 0 slot 2. Each device object holds its address parameters, connection retry settings, scan mode configuration, and the tag database for that specific device. Multiple device objects can exist under a single channel, each addressing a different physical device of the same protocol type.
0
Tags
Tags: individual data points within a device
Each tag maps a human-readable name ("Tank1_Level") to a specific device address ("40001" in Modbus, "N7:10" in PLC-5, "FlowRate" in ControlLogix). Tags carry data type, scan rate, scaling, and quality information. Client applications subscribe to tags by name without knowing anything about the device address, protocol, or polling mechanics below. Tags can be created manually, imported from a CSV file, or generated automatically from the connected device.

Tag addressing across different drivers

Every driver has its own tag addressing syntax, because every device protocol has its own way of identifying data points. Understanding the addressing convention for a given driver is the most common practical task when configuring a new device connection.

Tag address syntax: examples across TOP Server driver families
Modbus TCP/Device1.400001Holding register 1
Modbus TCP/Device1.30001Input register 1 (read-only)
Allen-Bradley ControlLogix/PLC1.Program:Main.FlowRateProgram-scope tag by name
Allen-Bradley ControlLogix/PLC1.TankLevel_Array[2]Array element access
Siemens S7/S7_PLC.DB10,REAL4Data Block 10, REAL at byte 4
Siemens S7/S7_PLC.M10.2Merker byte 10, bit 2
Allen-Bradley PLC-5/PLC5.N7:10Integer file 7, element 10
DNP3/RTU1.AI30002Analog input object group 30, variation 2
Omron FINS/NJ501.D00100Data memory area, word 100
Fisher ROC/ROC809.TLP:1.0.12Type/Logic Point: param 1, log 0, param 12

For drivers like the ControlLogix Ethernet driver, automatic tag generation (ATG) eliminates manual tag address entry by querying the tag database directly from the connected controller and importing all tags with their data types, array sizes, and UDT structures automatically. For drivers like Modbus where no tag database exists on the device itself, tags must be entered manually or imported from a CSV mapping file prepared from the device's register documentation.

Scan modes and polling behavior

How often a driver polls a device for new data, and under what conditions, is controlled by the scan mode configured for each device object. TOP Server provides five scan mode options, each designed for a different integration scenario.

Scan modeBehaviorWhen to use it
Respect client rate
Default
Polls the device at the rate requested by the fastest connected OPC client. If no client is connected, polling stops.Most SCADA and OPC DA/UA scenarios. The client application controls how frequently it needs data updates, and the server matches that rate. Efficient: no polling when nothing is listening.
Fixed ratePolls the device at a configured fixed interval regardless of what clients request. The fixed rate overrides any client-requested rate.When you need consistent device polling independent of client activity. Useful when clients connect and disconnect frequently and you want to ensure tag cache freshness.
Respect client, floorFollows client-requested rate, but will not poll faster than a configured minimum interval even if a client requests a faster rate.When device responsiveness or network constraints limit how fast you can realistically poll. Prevents a misconfigured client from overloading a slow or constrained device.
Demand pollThe device is not polled automatically. Reads are only triggered by an explicit client request or by writing to a special _DemandPoll system tag.SCADA systems in oil and gas, water/wastewater, and other telemetry applications where devices are geographically distributed, bandwidth is constrained, and the client controls when each device is polled.
Do not pollThe driver never polls the device. Only explicit write operations from clients cause device communication.Devices that are write-only from the OPC server's perspective, or scenarios where the device pushes data to the server via unsolicited messaging.

Scan rate is not the same as data update frequency. The scan rate tells the driver how often to ask the device for new values. The device's own response time, the network latency, and the protocol's efficiency all determine how quickly a new value arrives after the request. On a fast Ethernet network with a responsive PLC, a 100 ms scan rate typically achieves near-100 ms update latency. On a slow serial RTU over a cellular modem, the same scan rate might produce 2-5 second actual update latency as the driver waits for the device's response.

Deadband filtering

A deadband is a filtering threshold that suppresses tag updates when a value changes by less than a configured amount. It exists to prevent noisy or slowly drifting analog measurements from generating a flood of updates, most of which carry no actionable information change.

A temperature sensor with natural noise that fluctuates ±0.3°C around its true value without a deadband would generate a new OPC update on every scan, even though nothing operationally significant has changed. With a 0.5°C absolute deadband configured, updates are only delivered to clients when the value moves more than 0.5°C from the last reported value. For a process where ±1°C of drift is operationally insignificant, this reduces the tag update rate by 80% or more without losing any meaningful information.

Deadbands are typically configured as a percentage of the tag's engineering unit range (a 2% deadband on a 0-100% level tag means updates are suppressed for changes smaller than 2 units) or as an absolute value (a 0.5°C deadband on a temperature tag). The OPC server applies the deadband before delivering updates to client applications: the device is still polled at the scan rate, but the OPC server filters what it reports to clients.

Driver categories in TOP Server

TOP Server's 140+ driver library covers the full range of industrial device communication scenarios. Drivers are organized by vendor, protocol family, and industry application.

💻
PLC and controller drivers
Dedicated drivers for PLC and PAC families from all major vendors, each optimized for the specific protocol and addressing conventions of that product line.
Allen-Bradley, Siemens, Omron, Mitsubishi, Fanuc, GE/Emerson, Yokogawa, Beckhoff, CODESYS, AutomationDirect
📐
Open protocol drivers
Drivers for non-vendor-specific open standards that appear across hundreds of different device types from any manufacturer.
Modbus TCP/RTU/ASCII, EtherNet/IP (CIP), DNP3, IEC 60870-5, IEC 61850 MMS, BACnet, SNMP, MTConnect, MQTT
Oil, gas, and energy drivers
Specialized drivers for flow computers, RTUs, and energy metering devices with EFM (Electronic Flow Measurement) data support.
Fisher ROC, ABB Totalflow, Omni Flow Computer, Lufkin Modbus, Bristol/IP, WITS, Enron Modbus, IEC 61850
🏭
CNC and machine tool drivers
Drivers for CNC controllers that collect machining data, tool status, alarm states, and production counts for MES, OEE, and predictive maintenance.
Fanuc FOCAS 1 and 2, EUROMAP 63 for injection molding, KraussMaffei MC4
🏗️
Building automation drivers
Drivers for building management systems, UPS devices, and IT/OT infrastructure monitoring in data centers and commercial buildings.
BACnet, SNMP, AB Bulletin 1609 UPS, system monitor, IT and Infrastructure Suite
🔧
Custom and universal drivers
When no named driver exists, OmniServer and UCON allow engineers to define request/response packet structures for any TCP/IP, UDP, or serial ASCII protocol.
OmniServer (any TCP/UDP device), UCON (ASCII serial/Ethernet), Custom Interface (shared memory)

Configuring a driver: what the process looks like

Setting up a new device connection in TOP Server follows a consistent workflow regardless of the specific driver being used.

1
Create a channel
Add a new channel in TOP Server and select the driver (protocol). Configure the physical or network transport: for serial drivers, select the COM port, baud rate, parity, and stop bits. For Ethernet drivers, select the network adapter. For drivers like Modbus TCP or EtherNet/IP, the channel is the protocol instance; the device IP address is configured at the device level below.
2
Add a device under the channel
Define the specific device endpoint: its IP address and port (for Ethernet), its slave ID or node address (for serial bus protocols), and any protocol-specific parameters (rack/slot for Siemens S7, CIP routing path for ControlLogix, Modbus protocol mode for RTU vs TCP). Set the scan mode and configure retry and timeout settings appropriate for the device's expected response characteristics.
3
Generate or add tags
For drivers that support it (ControlLogix, Siemens S7 Plus, many others), use Automatic Tag Generation to import the device's entire tag database directly from the connected controller. For drivers without ATG, import tags from a CSV file prepared from the device's register documentation, or add tags manually by entering the device address syntax for each data point you need to access.
4
Verify connectivity
Use the TOP Server Quick Client to browse the OPC namespace, subscribe to tags, and confirm that values are updating correctly and that data quality shows "Good." Review the TOP Server event log for any driver-level warnings or errors. Check communication statistics to verify scan rates are being met.
5
Connect client applications
Connect SCADA, historian, N3uron, OPC Router, or any other OPC client to TOP Server using the OPC UA endpoint or OPC DA ProgID. The client subscribes to the tags it needs. The driver continues polling the device and delivering updates to all connected clients at their requested rates. Multiple clients can connect simultaneously without any additional configuration on the driver.

Frequently asked questions

What is the difference between a driver and a protocol?+

A protocol is a specification: a defined set of rules for how messages should be structured, addressed, and exchanged between two parties over a network. Modbus, EtherNet/IP, and DNP3 are protocols. The protocol specification is a document (sometimes a standard, sometimes a vendor specification) that describes what bytes should appear in what order under what circumstances.

A driver is an implementation of a protocol in software, specifically one that implements a protocol in the context of an OPC server to provide OPC tag access to devices that use that protocol. The Modbus driver in TOP Server is a software implementation of the Modbus protocol specification. The protocol tells you what the communication should look like; the driver is the code that actually produces that communication and handles all the edge cases, errors, and device-specific quirks that real implementations encounter.

How does automatic tag generation (ATG) work?+

Automatic Tag Generation is a driver feature that queries a connected device's internal tag or symbol database over the same communication channel used for data access, then creates corresponding tag objects in the OPC server configuration without requiring manual entry. The ControlLogix Ethernet driver, for example, sends CIP service requests to retrieve the controller's symbol table, which lists every controller-scope and program-scope tag with its data type, array size, and UDT structure. TOP Server creates a tag for each entry in that symbol table.

ATG is also available as an offline operation: the ControlLogix driver can import from an exported .L5X or .L5K file, allowing the tag database to be configured before the PLC is accessible over the network. For Siemens S7 drivers, ATG imports tags from TIA Portal exported files or directly from the connected CPU. For protocols without device-side tag databases (Modbus, DNP3), ATG from device is not possible, and tags must be entered from the device's register documentation.

Can multiple client applications connect to the same driver simultaneously?+

Yes. This is one of the core benefits of the OPC server and driver model. The driver runs once inside TOP Server and manages one connection to the device. Any number of OPC client applications can subscribe to tags from that driver through the OPC server simultaneously. The OPC server handles client subscription management: it polls the device at the rate needed to satisfy the fastest client's request, caches the current values, and delivers updates to each client at that client's subscribed rate.

The device sees only one connection from TOP Server, regardless of how many clients are connected to TOP Server. This is a significant operational advantage: adding a new analytics tool, connecting a historian, and running a SCADA display all against the same PLC does not multiply the number of connections the PLC must handle.

What happens to OPC clients when the device connection is lost?+

When the driver loses communication with a device (network failure, device power loss, timeout), it immediately sets the quality of all tags in that device to "Bad." OPC clients receive the "Bad" quality notification along with the last known value. Well-designed SCADA systems monitor tag quality and alarm on "Bad" quality, preventing operators from acting on stale data. N3uron and Cogent DataHub both propagate the OPC quality field through their data pipelines.

TOP Server's driver continuously attempts to re-establish the device connection according to the configured retry settings. When the connection is restored, tags transition back to "Good" quality with the newly read values. The reconnection is automatic and transparent to connected clients, which simply see tags change from "Bad" back to "Good" without requiring any operator intervention or application restart.

What is the OmniServer and when should I use it?+

OmniServer is SWTB's custom driver development environment for devices that are not covered by a standard named driver in TOP Server. It provides a visual interface for defining the request and response packet structures of any TCP/IP, UDP, or serial ASCII protocol, without requiring any programming. Engineers specify the request format (what bytes to send to the device), the response format (how to parse the response bytes into tag values), and the timing and retry behavior.

Common use cases include proprietary vendor protocols not covered by standard drivers, vendor-specific EtherNet/IP extensions with custom application-layer behavior, legacy serial ASCII devices with documented but non-standard framing, and any device where the communication protocol is known but no off-the-shelf driver exists. OmniServer is particularly useful in process industries, water/wastewater, and oil and gas, where older specialized devices with well-documented but non-standard protocols are common.

What is the Scheduler Plug-in and how does it relate to scan modes?+

The TOP Server Scheduler Plug-in provides time-based control over which devices are polled at what time, independent of client-requested scan rates. It complements the Demand Poll scan mode particularly well: with Demand Poll, clients can trigger device reads, but the Scheduler allows TOP Server itself to trigger reads on a defined schedule without relying on client-side configuration.

This is most useful in telemetry applications (oil and gas wells, water/wastewater lift stations, remote substations) where a large number of geographically distributed devices share limited bandwidth. Rather than all devices being polled simultaneously, the Scheduler staggers device polls across the bandwidth window: device 1 polled at 0:00, device 2 at 0:30 seconds, device 3 at 1:00, and so on. This prevents the simultaneous polling collision that occurs when all devices respond to client-driven scan rate requests at the same moment.

Need a driver for your device?

TOP Server's 140+ driver library covers PLCs, RTUs, drives, CNCs, flow computers, and more from virtually every industrial vendor. If your device is not covered by a named driver, OmniServer lets you build a custom driver without writing code.

Talk to an engineer