Modbus Ethernet

Building Automation Suite Get Modbus Ethernet as a part of this suite. Learn More IT and Infrastructure Suite Get Modbus Ethernet as a part of this suite. Learn More Manufacturing Suite Get Modbus Ethernet as a part of this suite. Learn More Modbus Suite Get Modbus Ethernet as a part of this suite. Learn More Oil and Gas Suite Get Modbus Ethernet as a part of this suite. Learn More Power Suite Get Modbus Ethernet as a part of this suite. Learn More

Product Overview

The Modbus Ethernet device driver provides data exchange between OPC clients and Modbus Ethernet protocol compliant PLCs. Kepware automatically optimizes your data acquisition based on client demand. Data integrity is ensured with our extensive error handling.

Kepware's implementation of the Modbus Ethernet driver supports client and server operations simultaneously. The server mode allows the server to receive data by exception from other Modbus Ethernet devices.

The Modbus Ethernet driver now offers direct integration with Modicon Concept and ProWORX programming packages. If you are using either of these packages, you will be able to directly import the tags used in your PLC application directly into Kepware. This time-saving step instantly makes all of the relevant PLC data available to your OPC client applications.

  • Automatic Tag Generation
  • Supports Multiple PLCs via IP addressing
  • Supports Modicon Ethernet to Modbus Plus bridging
  • Supports Multiple or Single socket usage for better gateway resource management
  • Supports Tag import from Concept and ProWORX programming packages
  • Supports Advanced Statistics Tags, including _CommFailures and _ErrorResponses
  • Supports Memory Accesses to 65535
  • Hex Addressing Support (0-FFFF)
  • User Definable Read Block Sizes
  • Adjustable Address Base (0 or 1)
  • Word Order Swapping for Floating Point and Longs
  • 0xxxx - Output Coils, 1xxxx - Input Coils, 3xxxx - Internal Registers, 4xxxx - Holding Registers
  • All data types and arrays are supported
  • Modbus Ethernet
  • Applicom: Generic Modbus, TSX Premium, TSX Quantum
  • Fluenta FGM
  • Instromet
  • Mailbox
  • Modbus Ethernet
  • Roxar RFM
  • English
  • German
  • Japanese
  • Simplified Chinese
  • DDE Format CF_Text and AdvancedDDE
  • NIO Interface for iFIX
  • OPC .NET Service (OPC .NET) Version 1.00
  • OPC Alarms and Events (OPC AE) Version 1.10
  • OPC Data Access (OPC DA) Versions 1.0a, 2.0, 2.05a, and 3.0
  • OPC Unified Architecture (OPC UA) Clients
  • SuiteLink and FastDDE for Wonderware



  • Fixed an issue where the driver could fail to recognize a port closure.



  • Modified the _error tag to only toggle based on device communication status.



  • Unsolicited sockets are now only listened on when a device is pointing at a local IP address.
  • Fixed an issue where including a random character after the null terminator in the final word of even-length string writes.



  • Fixed an issue where a random character could appear after the null terminator in the final word of even-length string writes.



  • For the CEG model, the larger block sizes are now used for reading arrays.
  • Fixed an issue where Device ID in non-IP Address (DNS) form could fail to parse the bridge index correctly.



  • Updated to allow any local address to create an emulated slave device.
  • Fixed an issue where a write operation to an array would fail if it hadn't been read.



  • Added Chinese language support.



  • Fixed an issue where array length was converted to hex when the address is specified as hex.



  • Added German language support.
  • Added Japanese language support.


  • Changed formatting of array length to always be decimal when the address is specified as hex.


  • Fixed an issue introduced in the 5.19 release where the decimal array length was converted to hexadecimal if the address format was specified as hexadecimal.



  • Added support for expanded blocking modes for CEG device model.
  • Changed the driver behavior to no longer send a FIN in response to a request timeout.
  • Increased the maximum channel limit from 256 to 1024.



  • Added support for Advanced Statistics Tags, including _CommFailures and _ErrorResponses.
  • Added support for padding addresses for both 5 digit and 4 digit format. If 5 digits or more are used, the address entered is padded to 5 digits (400001). If 4 digits or fewer are used, the address entered is padded to 4 digits (40001). This applies to all model selections except Applicom and Fluenta.
  • Improved message logging to include socket errors in the Event Log.



  • The driver now reports an error when receiving a message length in the Modbus header that is less than the actual message length.
  • Added support for "Double Precision Unsigned Long" encoding of Ints and UInts.



  • Added the new CEG model and made protocol changes to slave mode to support a maximum of 500 register and 8000 coil tag reads.
  • Added the new CEG model and made protocol changes to slave mode to support a maximum of 500 register and 8000 coil tag reads.
  • The driver will now attempt a retry on receipt of a send socket error. Prior to this change, certain devices could respond with a socket error after the initial connection and cause an unnecessary disruption in communication with that device.
  • Fixed an issue introduced in KEPServerEX version 5.14 where tags on one or more devices may stop being serviced if another device under a channel has been deleted.



  • Changed the driver's minimum Timeout setting from 50 milliseconds to 10 milliseconds.
  • Fixed an issue where a buffer overflow could result in the driver writing to erroneous coils.
  • Added support for importing string type tags via the Variable Import Settings page.



  • Fixed an issue involving register block sizes of 1 to 4, or coil block sizes of 8 or 16 when using packed coils. The issue either resulted in a failure to add tags from a client or in tags being set to bad quality because of a malformed packet.



  • The driver now closes socket connections when a device is disabled.
  • Created a new CEG model.
  • Fixed an issue where some errors returned by the device were not being properly reported by the server.
  • Fixed an issue resulting in bad quality data for 32 and 64 bits tags residing in the upper block boundary.
  • Fixed an issue resulting in bad quality data for packed coil tags defined at the upper block boundary.


  • Updated the driver to change the unsolicited communications timeout value from -1 to 0 (if applicable) when loading a project. This invalid value may be present in projects that were saved using older driver versions, and will invoke an error pop-up message after the Unsolicited tab is viewed in Device Properties.



  • Added support for tag-level Byte and Word order swapping to the Applicom device model.
  • Fixed address parser issues occurring in the Applicom device model where various invalid characters were accepted at the end of a valid address. Also fixed an issue where the 'D' and 'F' address types were allowing bit within word syntax even though the driver does not support bit in 32-bit values.



  • Increased the character limit of the tag Description field from 64 to 255.
  • Fixed an issue where the driver was posting continuous "Failed to start unsolicited communications messages" in the Event Log when Port 502 was in use by another application at startup.
  • Added the new device-level internal tag "_FailedConnection" that indicates the driver failed on its attempt to connect to the device.


Added support for Channel Serialization.

Note: Channel Serialization is not supported for unsolicited devices or mailbox model types.


  • The "Use holding register bit mask writes" setting is now disabled by default for the Applicom sub-model type TSX Premium.
  • Added Boolean support for the "%M" and " %MX" syntax.
  • Added " %MWaaaa:Xb" to read a bit in a word (in addition to the current "%MWaaaa.b").
  • Added the ability to append an 'H' or 'L' to the end of an Applicom string address when defining byte order.
  • Fixed an issue where concurrent writes to multiple bits within the same register were not being retained if the channel was configured to use more than one socket per device and the device property "Use holding register bit mask writes" was unchecked.
  • Corrected Applicom string address syntax to use string length as length in words, not bytes.


  • Added an Applicom model type to support Applicom-centric address syntax for Modbus Ethernet enabled devices. Selecting the Applicom model in the Device Wizard prompts a "Sub-Model" dialog that includes options for "Generic Modbus," "TSX Premium," and "TSX Quantum."


  • Fixed an issue with unsolicited connections management and expanded the maximum unsolicited socket connections from 32 to 256.
  • Added a setting that allows users to select whether the driver will close the socket on timeout.
  • The driver will now check for License Activation upon receiving unsolicited communications.


  • In a fix carried over from a patch to 4x, fail now tags immediately if the packet can't be transmitted (instead allowing retry logic to execute).


  • Fixed issue with write-only tags introduced in 5.0. The value of the tag was not updating when a value was written to it. The correct value was written to the device, just not displayed in the data client.
  • Allow global settings that control unsolicited port and protocol to change on the fly.


  • Added string data type support for Internal Registers.