Hallo,
gibt es eine Möglichkeit die RS485-Modbusabfrage vom USB auf TPC zu legen?
Oder ist MQTT der elegantere Weg?
Gebrauchen kann ich es jetzt aktuell noch nicht.
Aber eventuell mal in einem neuen Projekt.
Gruß Ralf
Die Suche ergab 166 Treffer
- Samstag 31. Januar 2026, 15:12
- Forum: Allgemeine Fragen
- Thema: rs485 to TCP über Python, Modul
- Antworten: 1
- Zugriffe: 635
- Freitag 16. Januar 2026, 17:47
- Forum: Allgemeine Fragen
- Thema: Dezimalstellen von Float abschneiden und verwenden
- Antworten: 5
- Zugriffe: 1053
Re: Dezimalstellen von Float abschneiden und verwenden
Danke__blackjack__ hat geschrieben: Freitag 16. Januar 2026, 17:40 Verschiedene Möglichkeiten:Code: Alles auswählen
In [9]: x Out[9]: 1234.5678 In [10]: x % 1 Out[10]: 0.5678000000000338 In [11]: math.modf(x) Out[11]: (0.5678000000000338, 1234.0) In [12]: x - math.trunc(x) Out[12]: 0.5678000000000338
- Freitag 16. Januar 2026, 17:34
- Forum: Allgemeine Fragen
- Thema: Dezimalstellen von Float abschneiden und verwenden
- Antworten: 5
- Zugriffe: 1053
Dezimalstellen von Float abschneiden und verwenden
Hallo,
ich komme wieder nicht weiter.
Gibt es etwas, mit dem ich von Float ohne Umwege die Dezimalstellen abtrennen kann?
Ich benötige nur die Dezimalstellen für eine Berechnung.
x = 1234.5678
Ich benötige 0.5678
Danke
ich komme wieder nicht weiter.
Gibt es etwas, mit dem ich von Float ohne Umwege die Dezimalstellen abtrennen kann?
Ich benötige nur die Dezimalstellen für eine Berechnung.
x = 1234.5678
Ich benötige 0.5678
Danke
- Sonntag 11. Januar 2026, 16:27
- Forum: Allgemeine Fragen
- Thema: HEX Länge ermitteln
- Antworten: 24
- Zugriffe: 1961
Re: HEX Länge ermitteln
'\x40\x50\x0c\x1c'
Hab ich wo stehen?
Ich bekomme im Fehlerfall nur b'@P\x0c\x1c'
Weißt du was HEX ist? Also Hexadezimaldarstellung?
Falls nicht, musst du dir das jetzt anlesen. Denn darauf basiert deine Dokumentation.
>>> b'@P' == b'\x40\x50'
True
>>> b'@P\x0c\x1c'.hex()
'40500c1c ...
- Sonntag 11. Januar 2026, 16:16
- Forum: Allgemeine Fragen
- Thema: HEX Länge ermitteln
- Antworten: 24
- Zugriffe: 1961
Re: HEX Länge ermitteln
Laut Dokumentation lesen wir doch 1 Byte aus.
Start | 1| 2 | 3 | 4| 5| 6| 7 | 8 Errorbit| ...
1-6 ist 6Bit Command
das 6 Bit Command ist unterschiedlich lang. Je nach Befehl kommt es unterschiedlich lang zurück.
Errorbit ist immer die Nr.8
Wir lesen ser.read(7) weil wir von 0 -7 = 8 lesen ...
Start | 1| 2 | 3 | 4| 5| 6| 7 | 8 Errorbit| ...
1-6 ist 6Bit Command
das 6 Bit Command ist unterschiedlich lang. Je nach Befehl kommt es unterschiedlich lang zurück.
Errorbit ist immer die Nr.8
Wir lesen ser.read(7) weil wir von 0 -7 = 8 lesen ...
- Sonntag 11. Januar 2026, 16:05
- Forum: Allgemeine Fragen
- Thema: HEX Länge ermitteln
- Antworten: 24
- Zugriffe: 1961
Re: HEX Länge ermitteln
Das ist doch das, was ich vom Geber zurück bekomme.
Laut Beschreibung "Pos.abfragen" Befehl 42
40 42 00 00 4d 8e c1
40 = Geräteadresse
42 = Befehl, Position abfragen
00+00+46+8e = Position = int.from_bytes(response[2:6],'big',signed=False)
c1 sollte, ist Checksum
Im Fehlerfall sollte ich doch ...
Laut Beschreibung "Pos.abfragen" Befehl 42
40 42 00 00 4d 8e c1
40 = Geräteadresse
42 = Befehl, Position abfragen
00+00+46+8e = Position = int.from_bytes(response[2:6],'big',signed=False)
c1 sollte, ist Checksum
Im Fehlerfall sollte ich doch ...
- Sonntag 11. Januar 2026, 15:46
- Forum: Allgemeine Fragen
- Thema: HEX Länge ermitteln
- Antworten: 24
- Zugriffe: 1961
Re: HEX Länge ermitteln
Ich lese also 1Byte bestehend aus 8 bit aus. Richtig?
- Sonntag 11. Januar 2026, 15:41
- Forum: Allgemeine Fragen
- Thema: HEX Länge ermitteln
- Antworten: 24
- Zugriffe: 1961
Re: HEX Länge ermitteln
'\x40\x50\x0c\x1c'
Hab ich wo stehen?
Ich bekomme im Fehlerfall nur b'@P\x0c\x1c'
Hab ich wo stehen?
Ich bekomme im Fehlerfall nur b'@P\x0c\x1c'
- Sonntag 11. Januar 2026, 15:23
- Forum: Allgemeine Fragen
- Thema: HEX Länge ermitteln
- Antworten: 24
- Zugriffe: 1961
Re: HEX Länge ermitteln
Kannst du bitte noch einmal Sirius3s Beitrag lesen?
Du verwechselst Bits und Bytes. Kennst du den Unterschied?
b'@P\x0c\x1c' sind 4 BYTES. Ist dir das bewusst?
Du abeitest da auf den BYTES und versuchst auf das 7. BYTE oder das letzte BYTE zuzugreifen. Das hat nichts mit einem BIT zu tun.
Wenn ...
- Sonntag 11. Januar 2026, 15:06
- Forum: Allgemeine Fragen
- Thema: HEX Länge ermitteln
- Antworten: 24
- Zugriffe: 1961
Re: HEX Länge ermitteln
Wenn ich das so mache, also Bit 7 abrufe, erhalte ich im Fehlerfall 28, sonnst unterschiedliche Zahlen
Code: Alles auswählen
errorbit =response[-1]
print(errorbit)- Sonntag 11. Januar 2026, 15:02
- Forum: Allgemeine Fragen
- Thema: HEX Länge ermitteln
- Antworten: 24
- Zugriffe: 1961
Re: HEX Länge ermitteln
Beispiel für falsche Fehlererkennung.
Der Befehl wird korrekt ausgeführt-
x07 steht für einen Teil der Position und wird hier als Fehler gedeutet.
b'@B\x07\xff\xb1\x8f\xc4'
134197647
07 - Geberreset durch Programmüberwachung aufgetreten
Errorbit ist b''
Der Befehl wird korrekt ausgeführt-
x07 steht für einen Teil der Position und wird hier als Fehler gedeutet.
b'@B\x07\xff\xb1\x8f\xc4'
134197647
07 - Geberreset durch Programmüberwachung aufgetreten
Errorbit ist b''
- Sonntag 11. Januar 2026, 14:41
- Forum: Allgemeine Fragen
- Thema: HEX Länge ermitteln
- Antworten: 24
- Zugriffe: 1961
Re: HEX Länge ermitteln
Hier noch mal mein kompletter Test - Code.
Das eigentliche Programm funktioniert soweit, nur eben meine Fehlerbehandlung nicht.
Deshalb hier meine Bastelstunde.
Ich rufe den Befehl Hex=42 auf. Es wird korrekt die Position ausgegeben.
Fehler wird keiner erkannt, er wird in meiner sick_error.py ...
Das eigentliche Programm funktioniert soweit, nur eben meine Fehlerbehandlung nicht.
Deshalb hier meine Bastelstunde.
Ich rufe den Befehl Hex=42 auf. Es wird korrekt die Position ausgegeben.
Fehler wird keiner erkannt, er wird in meiner sick_error.py ...
- Sonntag 11. Januar 2026, 08:17
- Forum: Allgemeine Fragen
- Thema: HEX Länge ermitteln
- Antworten: 24
- Zugriffe: 1961
Re: HEX Länge ermitteln
Ich werde falsch verstanden. Ist aber nicht so schlimm.
Ich sende den sick_string an das Gerät.
sick_string = "Rs485-Adresse + Befehl "
Erhalten werde ich wenn alles iO. ist
response = "Rs485-Adresse + Befehl + 4Bit Position+ Checksum "
Erhalten werde ich wenn nicht alles iO. ist
response ...
Ich sende den sick_string an das Gerät.
sick_string = "Rs485-Adresse + Befehl "
Erhalten werde ich wenn alles iO. ist
response = "Rs485-Adresse + Befehl + 4Bit Position+ Checksum "
Erhalten werde ich wenn nicht alles iO. ist
response ...
- Samstag 10. Januar 2026, 22:23
- Forum: Allgemeine Fragen
- Thema: HEX Länge ermitteln
- Antworten: 24
- Zugriffe: 1961
Re: HEX Länge ermitteln
ich zerlege
int.from_bytes(response[2:6],'big',signed=False)
und prüfe vorab ob
int.from_bytes(response[3:4],'big',signed=False)
etwas enthält.
wenn nicht, ist der Datensatz kürzer.
int.from_bytes(response[2:6],'big',signed=False)
und prüfe vorab ob
int.from_bytes(response[3:4],'big',signed=False)
etwas enthält.
wenn nicht, ist der Datensatz kürzer.
- Samstag 10. Januar 2026, 21:46
- Forum: Allgemeine Fragen
- Thema: HEX Länge ermitteln
- Antworten: 24
- Zugriffe: 1961
Re: HEX Länge ermitteln
b'@B\x0c' kann aber auch teil der Daten = Positionszahl sein.
b'@B\x0c\x01,\xc8\xe7' ... Zahl
b'@B\x0c ... Error
b'@B\x0c\x01,\xc8\xe7' ... Zahl
b'@B\x0c ... Error
- Samstag 10. Januar 2026, 20:32
- Forum: Allgemeine Fragen
- Thema: HEX Länge ermitteln
- Antworten: 24
- Zugriffe: 1961
HEX Länge ermitteln
Hi,
hätte mal wieder eine Frage.
Folgenden Hex hätte ich im Angebot
b'@B\x00\x01,\xc8\xe7'
Ich weiß, das sich das Ding aus 4 Segmente (Hex-Werte) zusammen setzt.
Nun erhalte ich wenn etwas nicht funktioniet statt diesem langen HEX nur einen kurzen.
b'@B\x0c
0c is der Fehlercode, mit dem ich was ...
hätte mal wieder eine Frage.
Folgenden Hex hätte ich im Angebot
b'@B\x00\x01,\xc8\xe7'
Ich weiß, das sich das Ding aus 4 Segmente (Hex-Werte) zusammen setzt.
Nun erhalte ich wenn etwas nicht funktioniet statt diesem langen HEX nur einen kurzen.
b'@B\x0c
0c is der Fehlercode, mit dem ich was ...
- Freitag 28. November 2025, 15:37
- Forum: Allgemeine Fragen
- Thema: String in Hex umwandeln
- Antworten: 1
- Zugriffe: 1086
Re: String in Hex umwandeln
hab es gefunden
setposition = f'{newposition:08x}'
setposition = f'{newposition:08x}'
- Freitag 28. November 2025, 15:26
- Forum: Allgemeine Fragen
- Thema: String in Hex umwandeln
- Antworten: 1
- Zugriffe: 1086
String in Hex umwandeln
Hallo,
hätte wieder ein kleines Problem.
Ich muss einen Wert (String) zum Beispiel "00000000" in einen Geber ablegen. Hier setze ich ihn auf Null zurück.
Alternativ kann ich auch einen Wert vorgeben.
Die Eingabe realisiere ich über tkinter, was auch funktioniert.
Wie erzwinge ich ein Hex-Format ...
hätte wieder ein kleines Problem.
Ich muss einen Wert (String) zum Beispiel "00000000" in einen Geber ablegen. Hier setze ich ihn auf Null zurück.
Alternativ kann ich auch einen Wert vorgeben.
Die Eingabe realisiere ich über tkinter, was auch funktioniert.
Wie erzwinge ich ein Hex-Format ...
- Sonntag 28. September 2025, 18:17
- Forum: Allgemeine Fragen
- Thema: mehrere dict nacheinander nach Keys durchsuchen.
- Antworten: 39
- Zugriffe: 6283
Re: mehrere dict nacheinander nach Keys durchsuchen.
@sparrow
Das funktioniert.
error_code = "01"
error_text = srs["initialisierung"].get(error_code, f"unknown error: {error_code}")
print(error_text)
Abgleichdaten fehlerhaft
Nur muss man dann ja wissen woher der Fehler kommt. Und das genau sagt mir der Geber nicht.
Aber trotzdem Danke ...
Das funktioniert.
error_code = "01"
error_text = srs["initialisierung"].get(error_code, f"unknown error: {error_code}")
print(error_text)
Abgleichdaten fehlerhaft
Nur muss man dann ja wissen woher der Fehler kommt. Und das genau sagt mir der Geber nicht.
Aber trotzdem Danke ...
- Sonntag 28. September 2025, 17:59
- Forum: Allgemeine Fragen
- Thema: mehrere dict nacheinander nach Keys durchsuchen.
- Antworten: 39
- Zugriffe: 6283
Re: mehrere dict nacheinander nach Keys durchsuchen.
@sparrow
Warum prüfst du dann die Fehler des Initialisierung-Kontext wenn eigentlich nur die der Positionen auftreten können?
Auch du hast hier recht.
Die ganze Unterteilung könnte ich mir sparen. Nur stand dies so gesplittet in der Doku er Geber.
Ich könnte beide Fehler in einem zusammen ...
Warum prüfst du dann die Fehler des Initialisierung-Kontext wenn eigentlich nur die der Positionen auftreten können?
Auch du hast hier recht.
Die ganze Unterteilung könnte ich mir sparen. Nur stand dies so gesplittet in der Doku er Geber.
Ich könnte beide Fehler in einem zusammen ...
