TCP Modbus Examiner tool with a modern UI

Modbus examiner is an open source TCP Modbus client tool, built from the ground up with newer software technologies and modern user interface. The main purpose of the tool is to read and write data from and to TCP Modbus slave devices. The tool is capable of performing periodic data pulls to keep your readings up to date. Modbus examiner is the product of numerous late night coding sessions, that I invested in order to enrich my knowledge and skills. The tool works in the Windows operating system. I provide the tool for download here for free. You are free to make use of the tool but keep in mind that the tool is provided AS IS, so I am hereby free of responsibility of any problems that occur from using the Modbus Examiner tool. 

Modbus Examiner code

Modbus Examiner makes use of WPF , C#, and .NET 4.6 to build a powerful tool with rich features and user friendly GUI. The code can be found here.

Modbus Examiner installer download

Modbus Examiner download (361 downloads)

Modbus Examiner screenshots

Modbus Examiner main read screen
Modbus Examiner read results window
Modbus examiner writes screen
Modbus Examiner settings page


How to use Modbus Examiner?

Modbus Examiner was designed to be as user friendly as possible. For the rest of this article we will cover how to use the software tool. The user interface of Modbus Examiner contains three main tabs: Read, Writes, and LOGS


Here is how the screen looks like before any configuration:

Read screen before configuration

All what you need to do is fill the connection information for your Modbus TCP slave device, then hit the Add button. The connection information includes the hostname\ip address, port number, slave id, start address, the count or number of addresses to read, the modbus device type (holding registers, input coils..etc), and an option for one based addresses. All the options are self explanatory, however an option that deserves a separate mention is the “One Based Addresses” checkbox. This option needs to be checked if your Modbus slave device starts it’s registers addresses with 1 instead of 0.  I added this options to ensure the tool can enjoy the support of a wide range of devices.

Once you hit the Add button, a new connection will get added to the table below the configuration options.

A connection is added

Each combination of an hostname, port number, and slave id will be considered a new connection, and will get a new row in the table.

Each row in the table contains a status, to make you aware whether the connection was successful  or not. There is a green view data button, and a red remove button. Obviously the remove button will effectively remove the connection, whereas the green view data button will open a new window where your data will be displayed.

Before we cover the view data window, it’s important to mention the Save and Load configuration buttons at the bottom. Those buttons will allow you to store your connection information in json files that can be reloaded later at any time.

Now if you click on view data green button, you will see the following window:

Results window

This window will show all the data you requested in the previous window for a specific connection. Each row represents either a 16 bit register for holding or input registers, or it represents true or false for coils.

Each row contains the register id, the alias, the value, the type, the sample rate, and finally a remove button if you would like to remove an id from the list. The two worthy mentions here are the alias and the sample rate. The alias options allows you to give a name for the specific register or coil, you can add an alias by simply clicking on the field at the row where you would like to make the change.


The sample rate on the other hand is the number of milliseconds that we would like to wait between Modbus reads. The default value for the sample rate is 3000 which means that we would perform a Modbus read every 3 seconds. You can change the sample rate by simply clicking on it, which will allow you to perform edits.


Modbus examiner writes screen

The writes screen allows you to perform writes to one address at a time, it supports similar configuration options as the Read tab, with the addition of a new value field to allow you to submit the value change. After a write is performed, a message will appear to show whether the write had been sent to the Modbus device, or  if there was an error.


The LOGS tab allows you to see a simple log messages describing what the Modbus Examiner tool had been doing thus far since the start of the application.



If you click on the SETTINGS option on the upper right hand side, you will get the option to change the appearance of the application, you can pick the theme that you would like, the font size, and the colors you prefer.

Modbus Examiner settings page


With this, we covered almost all the major features in the Modbus Examiner tool and how to utilize them. I hope the tool proves to be beneficial to you should you decide to use it 🙂