Hallo Blade22,
sieht auf den ersten Blick gut aus.
Nur bei der Unit-ID habe ich gezweifelt, weil ich in deiner Beschreibung kein Modbus/ TCP nach Modbus/ RTU Gateway gefunden habe.
Ich würde hier die Unit-ID 255 versuchen.
Grüße
Konni
Nachtrag: Die Operandenklasse würde ich als Datentyp umschreiben, der übertragen wird.
I, ID: Datenbits
IA16, IA32: Input Wort (16 Bits), Input Doppelwort (32 Bits)
Gleiches gilt für QA16, QA32 (Quputs Wort und Doppelwort)
PS: Gut zusammengefasst von der Google KI:
Modbus TCP nutzt IP-Adressen zur Identifikation von Geräten im Netzwerk, während die Unit-ID (1–247) aus dem seriellen Modbus-Protokoll übernommen wurde. Sie dient in TCP-Netzwerken oft als Gateway-Adresse, um hinter einem Modbus-TCP/RTU-Gateway verbundene serielle Untergeräte (Slaves) anzusprechen oder spezifische interne Datenbereiche eines Geräts zu adressieren.
Kernpunkte des Zusammenhangs:
Identifikation (IP vs. Unit-ID): Bei Modbus TCP erfolgt das Routing primär über die IP-Adresse. Die Unit-ID im Modbus-Header ist oft redundant (oft 0 oder 255), wird aber von manchen Geräten als Unteradresse verwendet.
Gateway-Funktion: Bei Modbus TCP/RTU-Gateways (Brücke zwischen Ethernet und RS485) identifiziert die Unit-ID das spezifische serielle Endgerät.
Alternative Adressierung: Einige Geräte nutzen die Unit-ID, um auf unterschiedliche interne Speicherbereiche oder spezifische Module zuzugreifen, statt nur auf den Standard-Datenspeicher.
Standardverhalten: Wird keine Gateway-Funktionalität benötigt, ist die Unit-ID oft auf 00 oder FF (255) gesetzt und wird vom Zielgerät ignoriert.
Zusammenfassend: Die IP-Adresse findet das Gerät, die Unit-ID (im MBAP-Header) findet das spezifische Modul oder den seriellen Unter-Slave.