D0 Schnittstelle - Anpassung der Baudrate

  • Hallo,


    aufgrund von Hinweisen in einem alten Thread poste ich mein Problem "frisch":


    Ich habe eine Frage zum Umschalten der Baudrate über die D0 Schnittstelle.


    Die initiale Anfrage an den Zähler via Python Skript + pySerial Modul sieht so aus:



    Das readline() liefert mir:


    Code
    /ISk5MT173-0263


    Anschlließend möchte ich folglich die Baudrate auf 9600 umstellen (=Speedindex 5 an 4. Stelle der Antwortzeile). Dazu versuche weiterhin über 300 Baud folgenden Befehl zu senden:


    Code
    ser.write('\x06\x30\x35\x30\x0D\x0A')


    und passe danach meine Baudrate an:


    Code
    ser.baudrate = 9600


    ...ab hier ist Ruhe. Das Sktipt hängt bei der Abfrage der Antwort:


    Code
    ack = ser.readline()


    D.h. meine Baudrate wurde nicht angenommen, ich kann die eingehenden Daten nicht interpretieren.


    Ich habe hier natürlich noch die 7E1 Einstellung der 300 Baud Kommunikation. Aber auch ein Wechsel auf 8E0 wird mich hier nicht weiter bringen, oder? Muss die serielle Schnittstelle vor der Umstellung geschlossen und neu geöffnet werden?


    Ich möchte jedenfalls nicht die Menge an Daten mit 300 Baud auslesen, was grundlegend funktioniert. Nur eben die Anpassung der Komm.schnittstelle passt nicht.


    Ich danke für Eure Hilfe.

  • Hi,


    ich habe was auf Grundlage einer Volkszähler-Anleitung für meine Zwecke umgebaut, vielleicht hilft das weiter.


    Code
    # Very verbose
    ./IEC-62056-21.py -vvv


    Unterschied zu Dir auf den ersten Blick ist, dass ich zeichenweise und nicht zeilenweise abfrage.


    Knut

    20.12.11: 11,28 kWp | 22 (-10°) + 26 (-100°) Q.PRO 235 | STP 10000TL-10

    26.03.12: 9,18 kWp | 18 (80°) + 18 (-100°) Q.PEAK 255 | STP 8000TL-10

    17.08.15: 5,72 kWp | 22 (80°) Q.PRO 260 | STP 5000TL-20

    alle DN 22°


    FTP-Hosting für Photovoltaikanlagen - self.Logger.solar

    API für Prognosedaten zur Solarproduktion - Forecast.Solar