Modbus TCP Gerät mit Eclipse debuggen?

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.

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

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

Gruß,
Stefan

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

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

Das snd die Werte:


Und das die Exception:

Kann mir da jemand weiter helfen?

Stefan

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

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

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)

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:

Gruß,
Stefan

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

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

Gruß,
Stefan

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

Stefan

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