<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://wiki.commander4j.com/index.php?action=history&amp;feed=atom&amp;title=ModbusClient</id>
	<title>ModbusClient - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.commander4j.com/index.php?action=history&amp;feed=atom&amp;title=ModbusClient"/>
	<link rel="alternate" type="text/html" href="https://wiki.commander4j.com/index.php?title=ModbusClient&amp;action=history"/>
	<updated>2026-06-11T01:42:57Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://wiki.commander4j.com/index.php?title=ModbusClient&amp;diff=1846&amp;oldid=prev</id>
		<title>Dgarratt at 10:42, 4 June 2026</title>
		<link rel="alternate" type="text/html" href="https://wiki.commander4j.com/index.php?title=ModbusClient&amp;diff=1846&amp;oldid=prev"/>
		<updated>2026-06-04T10:42:39Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en-GB&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 12:42, 4 June 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l143&quot;&gt;Line 143:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 143:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[ModbusServer]] — the server-side companion tool&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[ModbusServer]] — the server-side companion tool&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[AutoLab4j]] — uses the same Modbus stack to read &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;laboratory instruments&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[AutoLab4j]] — uses the same Modbus stack to read &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Modbus printing triggers&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[SocketTest]] — a raw TCP/IP testing utility&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[SocketTest]] — a raw TCP/IP testing utility&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Commander4j]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Commander4j]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key wikic_mw:diff:1.41:old-1845:rev-1846:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>Dgarratt</name></author>
	</entry>
	<entry>
		<id>https://wiki.commander4j.com/index.php?title=ModbusClient&amp;diff=1845&amp;oldid=prev</id>
		<title>Dgarratt: Updated by push_wiki.py</title>
		<link rel="alternate" type="text/html" href="https://wiki.commander4j.com/index.php?title=ModbusClient&amp;diff=1845&amp;oldid=prev"/>
		<updated>2026-06-04T10:39:55Z</updated>

		<summary type="html">&lt;p&gt;Updated by push_wiki.py&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en-GB&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 12:39, 4 June 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l45&quot;&gt;Line 45:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 45:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Running the Modbus Client ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Running the Modbus Client ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The recommended way to install the Modbus Client is to download a native installer for your platform from the [https://github.com/C4J/ModbusClient/releases GitHub releases page]. Native installers are provided for &#039;&#039;&#039;Windows, macOS and Linux&#039;&#039;&#039;. Each installer bundles its own Java 25 runtime, so &#039;&#039;&#039;no separate Java installation is required&#039;&#039;&#039;.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The recommended way to install the Modbus Client is to download a native installer for your platform&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;, either from the [[Downloads]] page or &lt;/ins&gt;from the [https://github.com/C4J/ModbusClient/releases GitHub releases page]. Native installers are provided for &#039;&#039;&#039;Windows, macOS and Linux&#039;&#039;&#039;. Each installer bundles its own Java 25 runtime, so &#039;&#039;&#039;no separate Java installation is required&#039;&#039;&#039;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Installing creates a native &amp;#039;&amp;#039;&amp;#039;ModbusClient&amp;#039;&amp;#039;&amp;#039; launcher that you run like any other desktop application — from the Start menu, Applications folder, or desktop — which opens the window described below.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Installing creates a native &amp;#039;&amp;#039;&amp;#039;ModbusClient&amp;#039;&amp;#039;&amp;#039; launcher that you run like any other desktop application — from the Start menu, Applications folder, or desktop — which opens the window described below.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key wikic_mw:diff:1.41:old-1843:rev-1845:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>Dgarratt</name></author>
	</entry>
	<entry>
		<id>https://wiki.commander4j.com/index.php?title=ModbusClient&amp;diff=1843&amp;oldid=prev</id>
		<title>Dgarratt: Updated by push_wiki.py</title>
		<link rel="alternate" type="text/html" href="https://wiki.commander4j.com/index.php?title=ModbusClient&amp;diff=1843&amp;oldid=prev"/>
		<updated>2026-06-04T10:39:08Z</updated>

		<summary type="html">&lt;p&gt;Updated by push_wiki.py&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en-GB&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 12:39, 4 June 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l35&quot;&gt;Line 35:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 35:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Checking that a device is reachable on a given host, port and unit ID&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Checking that a device is reachable on a given host, port and unit ID&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Driving the [[ModbusServer]] during testing, or reading values the server is staging&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Driving the [[ModbusServer]] during testing, or reading values the server is staging&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;== Source Code and Releases ==&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;The Modbus Client is open source and hosted on GitHub:&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* &#039;&#039;&#039;Repository:&#039;&#039;&#039; [https://github.com/C4J/ModbusClient https://github.com/C4J/ModbusClient]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* &#039;&#039;&#039;Releases (downloads):&#039;&#039;&#039; [https://github.com/C4J/ModbusClient/releases https://github.com/C4J/ModbusClient/releases]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Running the Modbus Client ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Running the Modbus Client ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Native &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;install packages &lt;/del&gt;for Windows, macOS&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;, &lt;/del&gt;and Linux &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;are available &lt;/del&gt;from the &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Downloads]] page and are &lt;/del&gt;the &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;preferred installation method&lt;/del&gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;The recommended way to install the Modbus Client is to download a native installer for your platform from the [https://github.com/C4J/ModbusClient/releases GitHub releases page]. &lt;/ins&gt;Native &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;installers are provided &lt;/ins&gt;for &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&#039;&#039;&lt;/ins&gt;Windows, macOS and Linux&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&#039;&#039;. Each installer bundles its own Java 25 runtime, so &#039;&#039;&#039;no separate Java installation is required&#039;&#039;&#039;.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Installing creates a native &#039;&#039;&#039;ModbusClient&#039;&#039;&#039; launcher that you run like any other desktop application — &lt;/ins&gt;from the &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Start menu, Applications folder, or desktop — which opens &lt;/ins&gt;the &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;window described below&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;=== Running from the jar ===&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Alternatively the tool can be run directly from its distribution folder&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;. It is a &lt;/del&gt;Java 25 &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;desktop &lt;/del&gt;(Swing) application:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Alternatively the tool can be run directly from its distribution folder &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;as an ordinary &lt;/ins&gt;Java 25 (Swing) application:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  java -jar modbusClient.jar&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  java -jar modbusClient.jar&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key wikic_mw:diff:1.41:old-1841:rev-1843:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>Dgarratt</name></author>
	</entry>
	<entry>
		<id>https://wiki.commander4j.com/index.php?title=ModbusClient&amp;diff=1841&amp;oldid=prev</id>
		<title>Dgarratt: Updated by push_wiki.py</title>
		<link rel="alternate" type="text/html" href="https://wiki.commander4j.com/index.php?title=ModbusClient&amp;diff=1841&amp;oldid=prev"/>
		<updated>2026-06-04T10:31:46Z</updated>

		<summary type="html">&lt;p&gt;Updated by push_wiki.py&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;The &amp;#039;&amp;#039;&amp;#039;Commander4j Modbus Client&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;util_modbusClient&amp;#039;&amp;#039;) is a desktop tool that acts as a [https://en.wikipedia.org/wiki/Modbus Modbus/TCP] client — a Modbus master. It connects to a remote Modbus server (a device, PLC, or the [[ModbusServer|Commander4j Modbus Server]]), continuously polls its four data tables across a chosen address window, and shows them in a single live grid. Coil and Holding Register values can be edited to drive the connected server. It is a test, troubleshooting and bench tool, and is the client-side companion to the [[ModbusServer|Commander4j Modbus Server]].&lt;br /&gt;
&lt;br /&gt;
== A Quick Modbus Primer ==&lt;br /&gt;
&lt;br /&gt;
If you are new to Modbus, the following terms are used throughout this page. Modbus is a simple, widely used industrial protocol for moving numeric and on/off values between automation equipment.&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Master / Client&amp;#039;&amp;#039;&amp;#039; — the device that initiates requests (reads and writes). This tool is a client.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Slave / Server / Device&amp;#039;&amp;#039;&amp;#039; — the device that holds the data and answers requests. The [[ModbusServer]] is a server.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Unit ID&amp;#039;&amp;#039;&amp;#039; (also &amp;quot;slave address&amp;quot;) — a number (0–247) identifying which device a request is for. A client must use the same unit ID the server is configured to answer as.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Modbus/TCP&amp;#039;&amp;#039;&amp;#039; — Modbus carried over an ordinary TCP/IP network connection, as opposed to serial (RTU) wiring. These tools speak Modbus/TCP only.&lt;br /&gt;
&lt;br /&gt;
Modbus organises all data into &amp;#039;&amp;#039;&amp;#039;four tables&amp;#039;&amp;#039;&amp;#039;, each addressed separately starting at zero:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Table !! Holds !! Size !! Can a client write it?&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Coils&amp;#039;&amp;#039;&amp;#039; || On/off output bits || 1 bit || &amp;#039;&amp;#039;&amp;#039;Yes&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Discrete Inputs&amp;#039;&amp;#039;&amp;#039; || On/off input bits || 1 bit || No — read-only&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Input Registers&amp;#039;&amp;#039;&amp;#039; || Numeric inputs (readings) || 16 bits (0–65535) || No — read-only&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Holding Registers&amp;#039;&amp;#039;&amp;#039; || Numeric settings / values || 16 bits (0–65535) || &amp;#039;&amp;#039;&amp;#039;Yes&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The two &amp;quot;input&amp;quot; tables represent values a device &amp;#039;&amp;#039;produces&amp;#039;&amp;#039; (sensor states, measurements), so a client can only read them. Coils and holding registers represent values a client is allowed to &amp;#039;&amp;#039;set&amp;#039;&amp;#039;. Each table also has a conventional &amp;#039;&amp;#039;&amp;#039;reference number&amp;#039;&amp;#039;&amp;#039; that operators quote instead of the raw zero-based address: coils start at 1, discrete inputs at 10001, input registers at 30001 and holding registers at 40001.&lt;br /&gt;
&lt;br /&gt;
== Purpose ==&lt;br /&gt;
&lt;br /&gt;
The Modbus Client is useful when:&lt;br /&gt;
&lt;br /&gt;
* Reading the live coils and registers of a PLC or other Modbus device to confirm it is responding&lt;br /&gt;
* Writing a coil or holding register to command a device during commissioning or fault-finding&lt;br /&gt;
* Checking that a device is reachable on a given host, port and unit ID&lt;br /&gt;
* Driving the [[ModbusServer]] during testing, or reading values the server is staging&lt;br /&gt;
&lt;br /&gt;
== Running the Modbus Client ==&lt;br /&gt;
&lt;br /&gt;
Native install packages for Windows, macOS, and Linux are available from the [[Downloads]] page and are the preferred installation method.&lt;br /&gt;
&lt;br /&gt;
Alternatively the tool can be run directly from its distribution folder. It is a Java 25 desktop (Swing) application:&lt;br /&gt;
&lt;br /&gt;
 java -jar modbusClient.jar&lt;br /&gt;
&lt;br /&gt;
The supplied &amp;lt;code&amp;gt;start_modbusClient.sh&amp;lt;/code&amp;gt; (macOS/Linux) and &amp;lt;code&amp;gt;start_modbusClient.cmd&amp;lt;/code&amp;gt; (Windows) scripts launch it the same way. Run the jar from its own folder so the bundled &amp;lt;code&amp;gt;lib/&amp;lt;/code&amp;gt; dependencies are found alongside it.&lt;br /&gt;
&lt;br /&gt;
== The Main Window ==&lt;br /&gt;
&lt;br /&gt;
The window has three parts: a &amp;#039;&amp;#039;&amp;#039;connection bar&amp;#039;&amp;#039;&amp;#039; across the top, the &amp;#039;&amp;#039;&amp;#039;register table&amp;#039;&amp;#039;&amp;#039; in the centre with a vertical button toolbar down the right-hand side, and an &amp;#039;&amp;#039;&amp;#039;activity log&amp;#039;&amp;#039;&amp;#039; along the bottom.&lt;br /&gt;
&lt;br /&gt;
=== Connection Bar ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Field !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Server host&amp;#039;&amp;#039;&amp;#039; || The host name or IP address of the Modbus server to connect to. Defaults to &amp;lt;code&amp;gt;127.0.0.1&amp;lt;/code&amp;gt; (this machine) for quick loopback testing against a local [[ModbusServer]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Port&amp;#039;&amp;#039;&amp;#039; || The TCP port of the server. The Modbus standard is &amp;#039;&amp;#039;&amp;#039;502&amp;#039;&amp;#039;&amp;#039;; match whatever the server is listening on.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Unit ID&amp;#039;&amp;#039;&amp;#039; || The unit / slave address to address requests to (0–247, default &amp;#039;&amp;#039;&amp;#039;1&amp;#039;&amp;#039;&amp;#039;). This must match the unit ID the server answers as, or every request will be rejected.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Status&amp;#039;&amp;#039;&amp;#039; || Shows &amp;#039;&amp;#039;&amp;#039;Disconnected&amp;#039;&amp;#039;&amp;#039;, or &amp;#039;&amp;#039;&amp;#039;Connected&amp;#039;&amp;#039;&amp;#039; with the server address and unit ID in green.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Connect / Disconnect&amp;#039;&amp;#039;&amp;#039; button (the toggle at the top of the right-hand toolbar) opens and closes the connection. The host, port and unit ID can only be changed while disconnected. Once connected, the client polls the server roughly four times a second and the grid updates live.&lt;br /&gt;
&lt;br /&gt;
=== Register Table ===&lt;br /&gt;
&lt;br /&gt;
A single grid shows one row per address, with every Modbus data table side by side and colour-coded:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Column group !! Contents !! Editable here&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Address&amp;#039;&amp;#039;&amp;#039; || The zero-based Modbus protocol address (the same address for the whole row). || —&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Coil&amp;#039;&amp;#039;&amp;#039; || Modbus reference (1…) and an on/off checkbox. || &amp;#039;&amp;#039;&amp;#039;Yes&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Discrete&amp;#039;&amp;#039;&amp;#039; || Discrete input reference (10001…) and an on/off checkbox. || No (read-only)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Input&amp;#039;&amp;#039;&amp;#039; || Input register reference (30001…), a decimal value and a read-only &amp;#039;&amp;#039;&amp;#039;Hex&amp;#039;&amp;#039;&amp;#039; view. || No (read-only)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Holding&amp;#039;&amp;#039;&amp;#039; || Holding register reference (40001…), a decimal value (0–65535) and a read-only &amp;#039;&amp;#039;&amp;#039;Hex&amp;#039;&amp;#039;&amp;#039; view. || &amp;#039;&amp;#039;&amp;#039;Yes&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Only the &amp;#039;&amp;#039;&amp;#039;Coil&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;Holding Register&amp;#039;&amp;#039;&amp;#039; value cells can be edited, and only while connected — because Modbus has no function code for a client to write the discrete-input and input-register tables. Editing a cell writes the new value straight through to the server; the displayed value updates immediately and is reverted if the server rejects the write.&lt;br /&gt;
&lt;br /&gt;
Below the table, the &amp;#039;&amp;#039;&amp;#039;Start address&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;Count&amp;#039;&amp;#039;&amp;#039; fields choose which window of addresses the client polls; click the tick button (Apply range) to apply them. Up to 2000 rows can be shown at once.&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Zero registers&amp;#039;&amp;#039;&amp;#039; button (eraser icon) on the toolbar opens a menu to clear the visible window of the writable tables — &amp;#039;&amp;#039;&amp;#039;Zero Coils&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Zero Holding Registers&amp;#039;&amp;#039;&amp;#039;, or &amp;#039;&amp;#039;&amp;#039;Zero All&amp;#039;&amp;#039;&amp;#039; for both. Only the writable tables appear, because the read-only ones cannot be cleared by a client.&lt;br /&gt;
&lt;br /&gt;
=== Activity Log ===&lt;br /&gt;
&lt;br /&gt;
Connection events, writes, and any errors are written to the log at the bottom with a millisecond timestamp. The log keeps the most recent 400 lines. The two buttons beside it &amp;#039;&amp;#039;&amp;#039;Save&amp;#039;&amp;#039;&amp;#039; the log to a text file and &amp;#039;&amp;#039;&amp;#039;Clear&amp;#039;&amp;#039;&amp;#039; it. If the connection is lost (for example the server stops or the network drops), the client reports it in the log and returns to the disconnected state automatically.&lt;br /&gt;
&lt;br /&gt;
== Toolbar Buttons ==&lt;br /&gt;
&lt;br /&gt;
The vertical toolbar to the right of the register table provides, from top to bottom: &amp;#039;&amp;#039;&amp;#039;Connect / Disconnect&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Open settings&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Save settings&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Zero registers&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;About&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Licences&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Help&amp;#039;&amp;#039;&amp;#039; (opens this wiki page) and &amp;#039;&amp;#039;&amp;#039;Close&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
The connection settings (server host, port and unit ID) are stored in a small XML file, by default &amp;lt;code&amp;gt;xml/config/config.xml&amp;lt;/code&amp;gt; beneath the application folder:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;config&amp;gt;&lt;br /&gt;
   &amp;lt;ip&amp;gt;127.0.0.1&amp;lt;/ip&amp;gt;&lt;br /&gt;
   &amp;lt;port&amp;gt;502&amp;lt;/port&amp;gt;&lt;br /&gt;
   &amp;lt;id&amp;gt;1&amp;lt;/id&amp;gt;&lt;br /&gt;
 &amp;lt;/config&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The default settings are loaded automatically at start-up. Use the &amp;#039;&amp;#039;&amp;#039;Open settings&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;Save settings&amp;#039;&amp;#039;&amp;#039; toolbar buttons to load or store a configuration from any location. If you change the settings and then close the application, you are prompted to save the changes first.&lt;br /&gt;
&lt;br /&gt;
== Using the Client and Server Together ==&lt;br /&gt;
&lt;br /&gt;
The Modbus Client and the [[ModbusServer|Modbus Server]] are designed to be used as a pair to exercise a Modbus link from both ends without any real hardware:&lt;br /&gt;
&lt;br /&gt;
# Start the [[ModbusServer]] on one machine (or the same machine), choose a &amp;#039;&amp;#039;&amp;#039;port&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;unit ID&amp;#039;&amp;#039;&amp;#039;, and press &amp;#039;&amp;#039;&amp;#039;Start&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
# In the Modbus Client, set &amp;#039;&amp;#039;&amp;#039;Server host&amp;#039;&amp;#039;&amp;#039; to that machine (&amp;lt;code&amp;gt;127.0.0.1&amp;lt;/code&amp;gt; if both run on the same PC), set the matching &amp;#039;&amp;#039;&amp;#039;port&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;unit ID&amp;#039;&amp;#039;&amp;#039;, and press &amp;#039;&amp;#039;&amp;#039;Connect&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
# &amp;#039;&amp;#039;&amp;#039;Client → Server:&amp;#039;&amp;#039;&amp;#039; edit a Coil or Holding Register in the client; the value is written to the server and appears in the server&amp;#039;s grid and activity log.&lt;br /&gt;
# &amp;#039;&amp;#039;&amp;#039;Server → Client:&amp;#039;&amp;#039;&amp;#039; edit any value in the server — including discrete inputs and input registers, which the client can only read; the client&amp;#039;s grid reflects it on the next poll.&lt;br /&gt;
&lt;br /&gt;
This makes the pair a complete bench setup: the server stands in for a device so you can develop or test a Modbus master, and the client stands in for a master so you can stage and inspect a device&amp;#039;s data. Either tool can also be pointed at real third-party Modbus/TCP equipment.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;&amp;quot;Connection refused&amp;quot; or a timeout on Connect&amp;#039;&amp;#039;&amp;#039; — check the server host and port, that the server is running and listening, and that no firewall is blocking the connection.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Connected, but every read fails or the connection drops immediately&amp;#039;&amp;#039;&amp;#039; — the &amp;#039;&amp;#039;&amp;#039;Unit ID&amp;#039;&amp;#039;&amp;#039; probably does not match the server. The client must address the exact unit ID the server answers as.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;A startup warning about &amp;lt;code&amp;gt;sun.misc.Unsafe&amp;lt;/code&amp;gt;&amp;#039;&amp;#039;&amp;#039; — harmless, and does not affect operation. The supplied start scripts suppress it; launching the jar directly may still print it.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
* [[ModbusServer]] — the server-side companion tool&lt;br /&gt;
* [[AutoLab4j]] — uses the same Modbus stack to read laboratory instruments&lt;br /&gt;
* [[SocketTest]] — a raw TCP/IP testing utility&lt;br /&gt;
&lt;br /&gt;
[[Category:Commander4j]]&lt;/div&gt;</summary>
		<author><name>Dgarratt</name></author>
	</entry>
</feed>