Modubus RTU Werte schreiben

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • derhoeppi
    Extension Master
    • 10.02.2017
    • 116

    #1

    Modubus RTU Werte schreiben

    Moin,
    im Artikel Pool Dosieranlage Sugar Valley - loxforum.com konnte ich meine Bayrol Anlage dazu bringen Werte auszulesen und ebenfalls in einem Register zu schreiben. Nun habe ich jedoch ein Problem mit einem komplexeren Register und glaube das es nur an der Konfig liegt.
    Und zwar möchte ich im Register 0x0605 (MBF_PAR_UICFG_VISUAL_OPTIONS) einige Optionen aktivieren. Laut der gefunden Doku hat dieses Register 16 bit.
    Bit Wert Einstellung
    0 1 HIDE_TEMPERATURE
    1 2 HIDE_FILTRATION
    2 4 HIDE_LIGHTING
    3 8 HIDE_AUX_RELAYS
    4 16 MBMSK_VO_HIDE_EXTRA_REGS
    5 32 MBMSK_VO_HIDE_RELAY_CONFIG
    6 64 MBMSK_VO_SLOW_FILTER_HIDRO_LEVEL
    7 128 MBMSK_VO_HIDE_SALINITY_MAIN_WINDOW
    8 256 MBMSK_VO_SHOW_SPECIAL_REGS
    9 512 SHOW_HID_SHUTDOWN_BY_TEMPERATURE
    10 1024 SHOW_CELL_SELECTION
    11 2048 SHOW_PUMP_TYPE
    12 4096 SHOW_QUICK_MENU
    13 8192 SHOW_OXI_MAIN_DATA_SCREEN
    14 16384 SHOW_INSTALLER_MENU
    15 32768 SHOW_FACTORY_MENU
    Beim Auslesen des Registers habe ich einen Dezimalwert von 15040 erhalten, so dass die Bits 6,7,9,11,12,13 aktiv waren. Ich habe dann einfach versucht Bit 8 zu ergänzen, so dass ich auf einen Dezimalwert von 15296 komme. Das habe ich einfach über einen Virtuellen Eingang in den Modbus Aktor Ausgang geschrieben
    Klicke auf die Grafik für eine vergrößerte Ansicht

Name: Screenshot 2024-05-09 142936.png
Ansichten: 336
Größe: 4,6 KB
ID: 431845
    Der Aktor ist wie folgt konfiguriert:
    Klicke auf die Grafik für eine vergrößerte Ansicht

Name: Screenshot 2024-05-09 143110.png
Ansichten: 124
Größe: 25,9 KB
ID: 431846
    Wenn ich nun wieder das Register auslese, bekomme ich einen Dezimalwert von 9098 zurück. Leider gibt es an dem System kein Factory Reset. Mein Problem ist nun das ich das Fixen muss, weil mir das Display sonst nichts anzeigt. Aktuell ist es tot - Modubus liefert aber noch die entsprechenden Werte.

    Wenn jemand einen Tipp für mich hat, wäre ich sehr dankbar.
  • Noschvie
    LoxBus Spammer
    • 24.09.2018
    • 480

    #2
    Hast schon probiert den Wert 15040 zurückzuschreiben?
    Alternativ würde ich mit dem Tool QModbusMaster ein Debugging machen. Vermutlich ein Problem der Byte Order.

    Kommentar

    • derhoeppi
      Extension Master
      • 10.02.2017
      • 116

      #3
      Ja wenn ich 15040 zurückschreibe möchte, kommt ebenfalls eine hohe Dezimalzahl zurück. Habe es heute Morgen bereits mal mit QModbusMaster versucht, aber der konnte immer keine Verbindung herstellen. Hab leider kein Setting gefunden um den COM Port anzugeben.

      Hab gerade nochmal nachgesehen. Scheinbar gibt es mehrere Tools die mit qmod Anfangen. Werde das Tool mal ausprobieren.
      Zuletzt geändert von derhoeppi; 09.05.2024, 18:05.

      Kommentar

      • Noschvie
        LoxBus Spammer
        • 24.09.2018
        • 480

        #4

        Kommentar

        • derhoeppi
          Extension Master
          • 10.02.2017
          • 116

          #5
          Noschvie danke. Hab eben meinen Rechner angehabt. Habe doch schon das Tool genutzt nur eben eine Beta (Version 0.5.3 als Win64). Nun habe ich die stable 0.5.2 (Win32) verwendet und konnte erfolgreich Daten auslesen und schreiben. Mein Display funktioniert nun wieder. Wollte eigentlich noch ein paar Menü's einblenden, aber das habe ich nicht hinbekommen. Da ich das nur als Fehlerkorrektur für einen vorhergehenden Schreibversuch durchführen wollte, werde ich das ganze in Loxone nicht weiter verfolgen. Bei der Anlage geht es überwiegend um das Auslesen der Daten und das passt einwandfrei.

          Kommentar

          • Noschvie
            LoxBus Spammer
            • 24.09.2018
            • 480

            #6
            Welche Menüs und wie probiert ?

            Kommentar

            • derhoeppi
              Extension Master
              • 10.02.2017
              • 116

              #7
              Bei Bayrol (vermutlich auch die anderen Branded Versionen) gibt es im Default unter Konfiguration -> Service Menü das Untermenü Service Einstellungen. Anhand von Modbus Beschreibungen habe ich vermutet das ich bestimmte Menüpunkte im Register HEX 0x0605 setzen kann. Dort habe ich versucht das Bit 9 zu setzen. Dieses soll Spezial Regs freischalten. Leider erscheint danach jedoch nicht der Menüpunkt. Wenn ich andere Bits in dem Register ändere, gibt es sofort ne Änderung, wenn man das Menü erneut aufruft.

              Kommentar

              • Noschvie
                LoxBus Spammer
                • 24.09.2018
                • 480

                #8
                Die funktionierenden Bits sind welche, 1 bis 8 oder auch über 9?

                Kommentar

                • derhoeppi
                  Extension Master
                  • 10.02.2017
                  • 116

                  #9
                  Es sind alle bis auf Bit 8 (Wert 256) aus meiner Tabelle. In Binär habe ich die Bits ja lediglich mit 0 oder 1 in einem String stehen.
                  Getestet habe ich auch ein und ausschalten nach der Änderung und ich habe es ebenfalls mal versucht immer nur einen Bit in dem Register zu ändern. Hat leider auch nicht geklappt.

                  Kommentar

                  Lädt...