# Modbus TCP Gerät mit Eclipse debuggen?

**URL:** <https://community.openems.io/t/modbus-tcp-gerat-mit-eclipse-debuggen/1839>\
**Category:** Deutsches Forum\
**Created:** [August 7, 2023, 10:02am UTC](https://community.openems.io/t/modbus-tcp-gerat-mit-eclipse-debuggen/1839 "2023-08-07T10:02:30Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![s\_h](https://community.openems.io/letter_avatar_proxy/v4/letter/s/85e7bf/32.png) [@s\_h](https://community.openems.io/u/s_h)\
**Post date:** [August 7, 2023, 10:02am UTC](https://community.openems.io/t/modbus-tcp-gerat-mit-eclipse-debuggen/1839/1 "2023-08-07T10:02:30Z")

</div>

Hallo,  
ist es möglich, aus Eclipse (unter MacOS) einen Modbus TCP Zähler (genauer, einen Modbus RTU Zähler an einem TCP-RS485 Konverter) anzusprechen und zu debuggen?  
Bei mir ist alles entsprechend konfiguriert, andere Anwendungen auf demselben Rechner kommunizieren mit dem Converter, jedoch nicht Eclipse, bzw. die EdgeApp.

```auto
2023-08-07T11:55:38,834 [_cycle] INFO [ebuglog.ControllerDebugLogImpl] [ctrlDebugLog0] _sum[State:Fault Grid:1377 W Consumption:1377 W] meter0[1377 W] meter3[L:UNDEFINED|State:FAULT: Modbus Communication failed] modbus0[CycleDelay:0 ms]
2023-08-07T11:55:39,194 [modbus0] INFO [e.modbus.api.task.AbstractTask] Execute FC4ReadInputRegisters [meter3;unitid=3;priority=LOW;ref=51/0x33;length=29] Elapsed [365ms]
2023-08-07T11:55:39,196 [modbus0] INFO [r.internal.DefectiveComponents] Increase wait for defective Component [meter3]. Wait [12s] Count [6]
2023-08-07T11:55:39,834 [_cycle] INFO [ebuglog.ControllerDebugLogImpl] [ctrlDebugLog0] _sum[State:Fault Grid:1407 W Consumption:1407 W] meter0[1407 W] meter3[L:UNDEFINED|State:FAULT: Modbus Communication failed] modbus0[CycleDelay:975 ms]

```

Stefan

---

<div class="post-metadata">

**Author:** ![stefan.feilmeier](https://community.openems.io/user_avatar/community.openems.io/stefan.feilmeier/32/2585_2.png) [@stefan.feilmeier](https://community.openems.io/u/stefan.feilmeier)\
**Post date:** [August 7, 2023, 9:11pm UTC](https://community.openems.io/t/modbus-tcp-gerat-mit-eclipse-debuggen/1839/2 "2023-08-07T21:11:03Z")

</div>

Hallo,

ja - im Prinzip dürfte das problemlos gehen. So entwickle ich nahezu täglich - allerdings aus Windows.

Ich würde evtl. mal starten, hier einen Break-Point zu setzen: [https://github.com/OpenEMS/openems/blob/develop/io.openems.edge.bridge.modbus/src/io/openems/edge/bridge/modbus/BridgeModbusTcpImpl.java#L102](https://github.com/OpenEMS/openems/blob/develop/io.openems.edge.bridge.modbus/src/io/openems/edge/bridge/modbus/BridgeModbusTcpImpl.java#L102)

Gruß,  
Stefan

---

<div class="post-metadata">

**Author:** ![s\_h](https://community.openems.io/letter_avatar_proxy/v4/letter/s/85e7bf/32.png) [@s\_h](https://community.openems.io/u/s_h)\
**Post date:** [August 8, 2023, 9:11am UTC](https://community.openems.io/t/modbus-tcp-gerat-mit-eclipse-debuggen/1839/3 "2023-08-08T09:11:38Z")

</div>

So, jetzt bin ich etwas weiter. Die Kommunikation funktioniert, aber beim Auswerten der Antwort wird eine Exception geworfen. Hier bin ich als Java-Anfänger überfragt.

Es passiert in

```auto
	protected void handleResponse(ModbusRegisterElement element, int position, InputRegister[] response)
			throws OpenemsException {
		element.setInputValue(Arrays.copyOfRange(response, position, position + element.length));
	}

```

Das snd die Werte:

 ![Bildschirmfoto 2023-08-08 um 11.10.33](https://community.openems.io/uploads/default/original/1X/a911ca0006f2f42968f20e2baf90c993a5ef835a.png)  
Und das die Exception:  
 ![Bildschirmfoto 2023-08-08 um 11.06.45](https://community.openems.io/uploads/default/original/1X/03836bc5971c9546a1ba63640ef31fd526f006dc.png)  
Kann mir da jemand weiter helfen?

Stefan

---

<div class="post-metadata">

**Author:** ![stefan.feilmeier](https://community.openems.io/user_avatar/community.openems.io/stefan.feilmeier/32/2585_2.png) [@stefan.feilmeier](https://community.openems.io/u/stefan.feilmeier)\
**Post date:** [August 8, 2023, 11:00am UTC](https://community.openems.io/t/modbus-tcp-gerat-mit-eclipse-debuggen/1839/4 "2023-08-08T11:00:57Z")

</div>

> [@s\_h](#):
>
> Die Kommunikation funktioniert, aber beim Auswerten der Antwort wird eine Exception geworfen. Hier bin ich als Java-Anfänger überfragt.

Dafür bin dann ja ich da 🙂 Ist das ein aktueller develop-Branch?

---

<div class="post-metadata">

**Author:** ![s\_h](https://community.openems.io/letter_avatar_proxy/v4/letter/s/85e7bf/32.png) [@s\_h](https://community.openems.io/u/s_h)\
**Post date:** [August 8, 2023, 12:43pm UTC](https://community.openems.io/t/modbus-tcp-gerat-mit-eclipse-debuggen/1839/5 "2023-08-08T12:43:17Z")

</div>

Das ist der Developer Branch vom 4.8.2023, als ZIP von Github kopiert. War zu faul, git einzurichten. Kommt aber noch.

---

<div class="post-metadata">

**Author:** ![stefan.feilmeier](https://community.openems.io/user_avatar/community.openems.io/stefan.feilmeier/32/2585_2.png) [@stefan.feilmeier](https://community.openems.io/u/stefan.feilmeier)\
**Post date:** [August 8, 2023, 1:35pm UTC](https://community.openems.io/t/modbus-tcp-gerat-mit-eclipse-debuggen/1839/6 "2023-08-08T13:35:10Z")

</div>

Ok danke, das ist eine wertvolle Information. Dann haben wir da noch einen Fehler in der neuen Modbus-Implementierung (siehe [Asking for feedback: new ModbusWorker implementation - #3 by stefan.feilmeier](https://community.openems.io/t/asking-for-feedback-new-modbusworker-implementation/1747/3))

Bis dahin kannst du die letzte Release-Version 2023.8.0 verwenden, da war die neue Implementierung noch nicht enthalten. Download als Zip-Datei hier:

> **[Release 2023.8.0 · OpenEMS/openems](https://github.com/OpenEMS/openems/releases/tag/2023.8.0)**
>
> Common/General
> 
> Comment Code-Coverage on Pull-Request by @da-Kai in #2255
> 
> This helps us visualize improvements in unit test coverage
> 
> 
> change contribution doc to describe "Eclipse \[built in\]" code...

Gruß,  
Stefan

---

<div class="post-metadata">

**Author:** ![s\_h](https://community.openems.io/letter_avatar_proxy/v4/letter/s/85e7bf/32.png) [@s\_h](https://community.openems.io/u/s_h)\
**Post date:** [August 8, 2023, 2:49pm UTC](https://community.openems.io/t/modbus-tcp-gerat-mit-eclipse-debuggen/1839/7 "2023-08-08T14:49:56Z")

</div>

Danke, mit der 2023.8.0 funktioniert es. Und ich dachte schon, ich hätte bei drei verschiedenen Installationen (Mac, Raspi, Win) denselben Konfigurations-Fehler gemacht.

Gruss

Stefan

---

<div class="post-metadata">

**Author:** ![stefan.feilmeier](https://community.openems.io/user_avatar/community.openems.io/stefan.feilmeier/32/2585_2.png) [@stefan.feilmeier](https://community.openems.io/u/stefan.feilmeier)\
**Post date:** [August 15, 2023, 11:32pm UTC](https://community.openems.io/t/modbus-tcp-gerat-mit-eclipse-debuggen/1839/8 "2023-08-15T23:32:18Z")

</div>

Dieser PR sollte das Problem beheben. Ich kann ihn aber selbst erst in zwei Wochen testen.

> <https://github.com/OpenEMS/openems/pull/2320>
>
> This fixes the issue reported in https://community.openems.io/t/modbus-tcp-gerat…-mit-eclipse-debuggen/1839/2

Gruß,  
Stefan

---

<div class="post-metadata">

**Author:** ![s\_h](https://community.openems.io/letter_avatar_proxy/v4/letter/s/85e7bf/32.png) [@s\_h](https://community.openems.io/u/s_h)\
**Post date:** [August 16, 2023, 7:05am UTC](https://community.openems.io/t/modbus-tcp-gerat-mit-eclipse-debuggen/1839/9 "2023-08-16T07:05:10Z")

</div>

Danke, den werde ich in Kürze mal testen.  
Gruss

Stefan

---

<div class="post-metadata">

**Author:** ![Sn0w3y](https://community.openems.io/user_avatar/community.openems.io/sn0w3y/32/636_2.png) [@Sn0w3y](https://community.openems.io/u/Sn0w3y)\
**Post date:** [August 16, 2023, 3:14pm UTC](https://community.openems.io/t/modbus-tcp-gerat-mit-eclipse-debuggen/1839/10 "2023-08-16T15:14:55Z")

</div>

Ich hänge mich hier mal an und frage euch 2 Modbus Profis, ob es in OpenEMS auch die Möglichkeit gibt, “beschrieben” zu werden, also quasi als ein Slave zu funktionieren, der die Werte geschrieben bekommt?  
Habe aktuell ein Gerät da (CMI von der Technischen Alternative) welches sehr oft in Wärmepumpen eingesetzt wird. Diese kann nur schreiben und nicht ausgelesen werden. Stellt also keine Register zur Verfügung sondern arbeitet nur als Master…

Gibt es da eine Impl ?

Danke !

Grüße
