What Is EOS MODBUS?

EOS MODBUS is a communication protocol developed for EOS systems, particularly to simplify data exchange between EOS hardware and EOS software.

The protocol is based on the standard MODBUS TCP communication structure. However, the supported operations have been limited to create a simpler communication interface for EOS systems.

This approach allows register data from an EOS device to be read over an Ethernet network by another EOS system or by a compatible MODBUS client. Supported write operations can also be used to transfer register values to the device.

EOS MODBUS should not be considered a new general-purpose MODBUS implementation supporting all MODBUS functions. Instead, it should be regarded as a simplified subset of MODBUS TCP optimized for the basic data exchange requirements of EOS devices.

EOS MODBUS Communication Architecture

In EOS MODBUS communication, one system operates as a MODBUS Master / Client, while an EOS device or system can operate as an EOS MODBUS Server.

Communication takes place over a TCP/IP network. The standard TCP port used by EOS MODBUS is 502.

MODBUS Master / Client

The application or system that reads data from or writes data to an EOS device. It creates request messages and processes the responses.

EOS MODBUS Server

The MODBUS server running on an EOS device or EOS system. It provides register values to the client and performs supported write operations.

TCP / Ethernet

EOS MODBUS communication is performed exclusively over TCP/IP. The default TCP port is 502.

Simplified Communication

Only two Function Codes are supported for the basic data reading and writing requirements of EOS systems.

EOS Data Addressing for EOS Software (E#)

To access EOS data points within EOS SCADA, the data address starts with the E# prefix. The EOS register number is specified after the E# prefix.

E#EOS_REGISTER_NO

For example, for a data point with EOS register number 7:

E#7

The EOS client expects the data address to contain a numeric register number.

EOS MODBUS Features

MODBUS TCP

EOS MODBUS is a simplified MODBUS communication structure designed specifically for EOS systems and operating exclusively over TCP/IP (Ethernet).

Simplified Data Reading

MODBUS Function Code 03 is supported for reading 16-bit holding register values from EOS devices.

Simplified Data Writing

Function Code 16 is supported for writing multiple 16-bit register values within a single request.

Standard Register Structure

Register addresses in EOS systems are expressed using a 1-based addressing model. EOS MODBUS applications can use register addresses from 1 to 10000.

Designed for EOS Hardware

EOS MODBUS was developed to provide a simple and easy-to-understand MODBUS communication format for EOS hardware.

Simple Communication Structure

Instead of supporting a large number of MODBUS functions, EOS MODBUS focuses on basic data reading and writing operations.

EOS MODBUS Server

EOS devices can operate as EOS MODBUS Servers. An external MODBUS client can access the device's defined register values over TCP/IP.

Controlled Data Access

Communication is limited to the supported MODBUS functions and the defined register areas.

Register Addressing

EOS MODBUS data is addressed using 16-bit registers. Register addresses in EOS MODBUS are expressed using a 1-based addressing scheme.

EOS MODBUS applications can use register addresses from 1 to 10000. This provides a simplified implementation of the traditional MODBUS holding register addressing approach.

Register Address Example

EOS MODBUS Address Description
1 First register
2 Second register
10 Register 10
100 Register 100
1000 Register 1000
10000 Register 10000

Note: EOS MODBUS addresses are expressed using 1-based numbering from the user's perspective. In the actual MODBUS message fields, the register starting address is transmitted as a 16-bit value.

Supported Function Codes

EOS MODBUS does not support all of the many Function Codes defined by the standard MODBUS protocol. Two Function Codes are supported for basic data exchange in EOS systems.

Function Code 03

Read Holding Registers

Used to read one or more Holding Register values from an EOS device.

  • Starting address: 1 – 65535
  • Number of registers: 1 – 125
  • Data type: 16-bit unsigned register
  • Register values are transmitted as two bytes per register in the response.

Function Code 16

Write Multiple Registers

Used to write multiple register values to an EOS device.

  • Starting address: 1 – 65535
  • Number of registers: 1 – 123
  • Each register value is transmitted as 2 bytes.
  • Multiple registers can be written within a single request.

Function Code 03 – Reading Registers

Function Code 03 is used to read Holding Register values from an EOS MODBUS device.

The client sends the starting register address and the number of registers to be read. The EOS MODBUS Server returns the requested register values in the response message.

Request Message

  • Transaction ID – 2 bytes
  • Protocol ID – 2 bytes
  • Length – 2 bytes
  • Unit ID – 1 byte
  • Function Code – 1 byte
  • Start Address – 2 bytes
  • Quantity of Registers – 2 bytes

Response Message

  • Transaction ID – 2 bytes
  • Protocol ID – 2 bytes
  • Length – 2 bytes
  • Unit ID – 1 byte
  • Function Code – 1 byte
  • Byte Count – 1 byte
  • Register Data – N × 2 bytes

For example, if three registers starting at address 100 are requested, the client requests registers 100, 101 and 102.

Function Code 16 – Writing Registers

Function Code 16 is used to write multiple register values to an EOS MODBUS device within a single request.

Request Message

  • Transaction ID – 2 bytes
  • Protocol ID – 2 bytes
  • Length – 2 bytes
  • Unit ID – 1 byte
  • Function Code – 1 byte
  • Start Address – 2 bytes
  • Quantity of Registers – 2 bytes
  • Byte Count – 1 byte
  • Register Data – N × 2 bytes

Response Message

  • Transaction ID – 2 bytes
  • Protocol ID – 2 bytes
  • Length – 2 bytes
  • Unit ID – 1 byte
  • Function Code – 1 byte
  • Start Address – 2 bytes
  • Quantity of Registers – 2 bytes

For example, the values 1234h and 5678h can be written to two registers starting at address 200.

Unsupported MODBUS Function Codes

EOS MODBUS does not support the other Function Codes defined by standard MODBUS in order to keep communication between EOS devices as simple as possible.

Unsupported Function Codes

The following MODBUS Function Codes are not supported in EOS systems:

01, 02, 04, 05, 06, 15, 22, 23 and all other Function Codes

EOS MODBUS applications should use only Function Codes 03 and 16 for basic data exchange.

Why a Simplified MODBUS Protocol?

MODBUS is a widely used industrial communication protocol that has been used in industrial automation for many years. However, the standard MODBUS protocol provides a large number of Function Codes and supports different types of data access.

The goal of EOS MODBUS is not to use the entire feature set of standard MODBUS, but to make the basic data exchange required by EOS devices as simple as possible.

This approach provides a communication interface that is easy to implement in EOS hardware and software, has an understandable message structure, and focuses on basic register read and write operations.

Therefore, EOS MODBUS should not be considered a general-purpose protocol replacing standard MODBUS. It is more accurately described as a simplified MODBUS TCP-based protocol designed specifically for EOS systems.

Where Can EOS MODBUS Be Used?

EOS MODBUS can be used in applications where a simple Ethernet connection is required between EOS devices and data acquisition, monitoring, or control software.

  • Reading data from EOS devices
  • Transferring data to EOS SCADA systems
  • Monitoring register values of EOS devices
  • Centralized monitoring of multiple EOS devices
  • Writing register data to EOS devices
  • Testing and commissioning applications
  • Industrial data acquisition applications
  • Simple data exchange between EOS devices

EOS MODBUS Application Notes

  • Connection type: MODBUS TCP / Ethernet
  • TCP Port: 502
  • Data type: 16-bit unsigned register
  • Register addressing: 1-based
  • Register address range: 1 – 65535
  • Read: Function Code 03
  • Write: Function Code 16
  • Appropriate timeout and retry mechanisms are recommended for communication applications.
  • An error response may be returned by the EOS MODBUS Server when an invalid request is received.

EOS MODBUS Tools

Utility software, test tools, example applications, and other technical tools developed to simplify working with EOS MODBUS will be published here.

This section will be expanded over time with EOS MODBUS client and server applications, test tools, example source code, and developer utilities.

Coming Soon

EOS MODBUS tools and example applications are currently being prepared and developed.

EOS MODBUS at a Glance

EOS MODBUS is a simplified MODBUS TCP-based industrial communication protocol developed for EOS systems and EOS hardware.

Operating over TCP/IP and Ethernet, the protocol provides basic data exchange through Function Code 03 for register reading and Function Code 16 for writing multiple registers.

This simplified structure makes it easier to develop applications that communicate with EOS devices and enables straightforward data exchange between different EOS systems.