Introduction
Protocol drivers are the components that interpret the configuration of the tags linked to them, turn that into a data packet in the protocol’s format, send the packet through the communication port, receive the answer, decode it and update the tags’ values — or the reverse path, for writes.
It is the second component to be inserted in a data-acquisition application, right after the communication port and before every tag that will use the protocol driver.
Supported protocols
| Protocol class | Protocol | Protocol type | Talks to | Required port class | Supported tags | Tag properties to configure | Notes |
TModBusRTUDriver![]() |
Modbus RTU | 1 protocol component for many stations | Any device supporting Modbus RTU (station addresses 1 to 247) |
TSerialPortDriver |
TPLCTagNumber![]() TPLCBlock ![]() TPLCStruct ![]() TPLCString ![]() |
PLCStation MemReadFunction MemWriteFunction MemAddress TagType |
Blocks and structures use, by default, up to 125 registers per read/write block (driver properties HoldingRegsMaxBlockSize/AnalogRegsMaxBlockSize) and up to 2000 bits for digital inputs/outputs (InputsMaxBlockSize/OutputsMaxBlockSize) — all configurable. See Modbus RTU and TCP. |
TModBusTCPDriver![]() |
Modbus TCP | 1 protocol component for 1 or more devices, over the same connection | Any device supporting Modbus TCP | TTCP_UDPPort![]() |
TPLCTagNumber![]() TPLCBlock ![]() TPLCStruct ![]() TPLCString ![]() |
PLCStation MemReadFunction MemWriteFunction MemAddress TagType |
Same block limits as Modbus RTU. See Modbus RTU and TCP. |
TWestASCIIDriver![]() |
West ASCII | 1 protocol component for many stations | West n6100/P6100 controllers |
TSerialPortDriver |
TPLCTagNumber![]() |
PLCStation (1 to 99) MemAddress (0 to 27 — the West parameter) |
Every West register is a 32-bit float; the driver ignores the configured TagType and always delivers a float — leave it at pttDefault. Supports reads and writes. Has its own tag wizard. |
TIBoxDriver![]() |
Thermo King i-Box | 1 protocol component for many stations | Thermo King i-Box refrigeration controllers | TSerialPortDriver![]() |
TPLCTagNumber![]() |
PLCStation (0 to 255) MemAddress — only registers (PID) 0, 96, 168, 200 to 205 and 247 are accepted |
Read-only: the i-Box refuses write commands outright, any attempt returns an error. Values already arrive ready to use (percentage, hours, tenths of a degree) — TagType does not change the result. |
TISOTCPDriver![]() |
Siemens S7 (S7comm) over ISOTCP | 1 protocol component for 1 PLC |
S7-200 via a CP 243-1 S7-300 / S7-400 (Ethernet) LOGO! 7 and 8 (Ethernet) S7-1200 / S7-1500 (Ethernet, with PUT/GET enabled and non-optimized blocks) S7comm-compatible simulators/gateways (PLCSIM+NetToPLCSim, Snap7 server) |
TTCP_UDPPort![]() |
TPLCTagNumber![]() TPLCBlock ![]() TPLCStruct ![]() TPLCString ![]() |
PLCRack, PLCSlot, PLCStation — on the driver, not on the tag MemReadFunction (area) MemFile_DB (when the area is DB) MemAddress TagType SwapBytes/SwapWords/SwapDWords according to the type |
Does not speak the S7-1200/1500 native protocol (S7CommPlus) and does no symbolic addressing — see S7 Protocol over ISOTCP for the full area and type table. |
TMelsecTCPDriver![]() |
Mitsubishi MC Protocol (3E frame, binary) over TCP | 1 protocol component for 1 PLC | Mitsubishi Q, L and iQ-F/iQ-R series with an Ethernet port or a QJ71E71/LJ71E71 module, configured for binary MC Protocol/SLMP | TTCP_UDPPort![]() |
TPLCTagNumber![]() TPLCBlock ![]() TPLCString ![]() |
MemReadFunction / MemWriteFunction (device code: M, X, Y, D…) MemAddress (decimal — mind that X/Y are numbered in hexadecimal in the PLC) |
Timers, counters, link registers and the SB/DX/DY areas are not supported yet. See Mitsubishi Melsec TCP. |
| TS7CommPlusDriver | Siemens S7CommPlus | 1 protocol component for 1 PLC | S7-1200 and S7-1500 (the native protocol TIA Portal uses, with blocks in optimized access — no need to disable it, unlike ISOTCP) | TTCP_UDPPort![]() |
TPLCTagNumber![]() TPLCBlock ![]() TPLCString ![]() |
LongAddress — the tag’s symbolic path in the PLC (e.g. |
Addresses by the tag’s name in the PLC program, not by a memory offset. Dedicated page in preparation. |
| TLGXDriver | EtherNet/IP (CIP), Rockwell/Allen-Bradley | 1 protocol component for 1 PLC | Rockwell/Allen-Bradley Logix-family PLCs (ControlLogix, CompactLogix…) with an EtherNet/IP port | TTCP_UDPPort![]() |
TPLCTagNumber![]() TPLCBlock ![]() TPLCString ![]() |
LongAddress — the Logix tag name (e.g. |
Symbolic addressing, as in TIA Portal/Studio 5000: there is no memory offset to configure. Dedicated page in preparation. |
Basic structure of a data-acquisition application
The image below summarizes the port → driver → tags → controls chain, common to every protocol in the table above:
Basic structure of a data-acquisition application
Related examples
examples/laz_modbus_tcp_example,examples/laz_modbus_rtu_scanner— Modbus TCP and RTU.examples/laz_isotcp_demonstration— Siemens S7 over ISOTCP.examples/laz_west6100_plus_demonstration— West ASCII.examples/laz_ibox— Thermo King i-Box.












