Pymodbus3 UDP Übertragung

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
Mesta
User
Beiträge: 10
Registriert: Donnerstag 16. August 2018, 10:40

Freitag 14. September 2018, 16:48

Hallo zusammen,
ich verwende Pymodbus3 um Daten via Modbus zu senden und empfangen. Über TCP/IP funktioniert auch alles super, aber bei der UDP-Übertragung bekomme ich immer ein None Rückgabewert.
Hier nochmal ein kleines Beispiel

Code: Alles auswählen

#from pymodbus.client.sync import ModbusTcpClient as ModbusClient # funktioniert
from pymodbus.client.sync import ModbusUdpClient as ModbusClient 

ip_udp = 'xxx.xxx.xxx.xxx'
port_udp = xxxx
address = 1000
size = 1
UNIT = 0x1

client = ModbusClient(ip_udp,  port_udp)
client.connect()

rr = client.read_holding_registers(address, size, unit=UNIT)
print(rr) # Über TCP/IP bekomme ich eine Liste, über UDP ein None ...

client.close()
Die Übertragung über UDP habe ich bereits mit einem anderen Programm getestet und alles lief soweit gut.
Hat jemand einen Rat für mich?
Grüße
Benutzeravatar
sls
User
Beiträge: 169
Registriert: Mittwoch 13. Mai 2015, 23:52
Wohnort: Tannhauser Gate

Samstag 15. September 2018, 09:23

Und welchen Port verwendest du? Vermutlich den selben wie bei einer TCP-Connection?

Übrigens gibt es keine `UDP`-artige IP-Adresse, du solltest den Variablennamen also überdenken.
With great processing power comes great responsibility.
Mesta
User
Beiträge: 10
Registriert: Donnerstag 16. August 2018, 10:40

Samstag 15. September 2018, 09:57

Ich verwende Port 502, das ist der Selbe den ich auch für die TCP-Connection verwende. Wie muss der UDP-Port den gestalltet sein?

Die Ip wäre dann am besten der UDP_Header, oder wie meinst du dass?
Benutzeravatar
__blackjack__
User
Beiträge: 1083
Registriert: Samstag 2. Juni 2018, 10:21

Samstag 15. September 2018, 11:17

@Mesta: Es war gemeint das `ip_udp` ”falsch” ist, weil es keine speziellen UDP-IPs gibt die man zum Beispiel von speziellen TCP-IPs unterscheiden könnte. Das wäre also einfach `ip_address`.
“Capitalism is the astounding belief that the most wickedest of men will do the most wickedest of things for the greatest good of everyone.” – John Maynard Keynes
Mesta
User
Beiträge: 10
Registriert: Donnerstag 16. August 2018, 10:40

Samstag 15. September 2018, 11:54

@__blackjack__: Ok das ist klar. Aber heißt es dann, dass es einen UDP-spezifischen Port gibt?
__deets__
User
Beiträge: 3300
Registriert: Mittwoch 14. Oktober 2015, 14:29

Samstag 15. September 2018, 12:46

Udp und tcp haben beide den gleichen Port-Bereich (1-65535), aber kommen sich nicht in die Quere.
Mesta
User
Beiträge: 10
Registriert: Donnerstag 16. August 2018, 10:40

Sonntag 16. September 2018, 09:16

Ok, ich versuche einfach mal eine andere library und vergleiche die Ergebnisse.
Ich vermute das irgendwas mit dem request nicht stimmt.
Antworten