Ankündigung

Einklappen
Keine Ankündigung bisher.

LBS: 19001030: Modbus TCP Master Read

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    #31
    Kannst du mal bitte den Log level auf 8 setzten und das Ergebniss posten?
    Gruß
    Michael

    Kommentar


      #32
      Zitat von gulp2k Beitrag anzeigen
      Kannst du mal bitte den Log level auf 8 setzten und das Ergebniss posten?
      Gerne:


      Code:
       [TABLE="border: 0, cellpadding: 0, cellspacing: 0"]
      [TR]
      [TD="colspan: 5"]{EDOMI,CUSTOMLOG_ModBusMaster_Read-LBS19001030.htm,22.04.2017,23:31:20,453602,5885}[/TD]
       		[/TR]
      [TR]
      [TD]Zeitstempel[/TD]
       			[TD]ms[/TD]
       			[TD]PID[/TD]
       			[TD]LogLevel[/TD]
       			[TD]Meldung[/TD]
       		[/TR]
      [TR]
      [TD]2017-04-22 23:31:20[/TD]
       			[TD]453485[/TD]
       			[TD]5885[/TD]
       			[TD]debug[/TD]
       			[TD]EXE19001030 [v0.4]: START ModbusMaster Daemon[/TD]
       		[/TR]
      [TR]
      [TD]2017-04-22 23:31:20[/TD]
       			[TD]455828[/TD]
       			[TD]5885[/TD]
       			[TD]debug[/TD]
       			[TD]EXE19001030 [v0.4]: v3:9[/TD]
       		[/TR]
      [TR]
      [TD]2017-04-22 23:31:20[/TD]
       			[TD]456358[/TD]
       			[TD]5885[/TD]
       			[TD]debug[/TD]
       			[TD]EXE19001030 [v0.4]: inputs:[/TD]
       		[/TR]
      [TR]
      [TD]2017-04-22 23:31:20[/TD]
       			[TD]456410[/TD]
       			[TD]5885[/TD]
       			[TD]debug[/TD]
       			[TD]EXE19001030 [v0.4]: ================ ARRAY/OBJECT START ================[/TD]
       		[/TR]
      [TR]
      [TD]2017-04-22 23:31:20[/TD]
       			[TD]456448[/TD]
       			[TD]5885[/TD]
       			[TD]debug[/TD]
       			[TD]EXE19001030 [v0.4]: ["9"][/TD]
       		[/TR]
      [TR]
      [TD]2017-04-22 23:31:20[/TD]
       			[TD]456474[/TD]
       			[TD]5885[/TD]
       			[TD]debug[/TD]
       			[TD]EXE19001030 [v0.4]: ================ ARRAY/OBJECT END ================[/TD]
       		[/TR]
      [TR]
      [TD]2017-04-22 23:31:20[/TD]
       			[TD]457043[/TD]
       			[TD]5885[/TD]
       			[TD]debug[/TD]
       			[TD]EXE19001030 [v0.4]: i:0[/TD]
       		[/TR]
      [TR]
      [TD]2017-04-22 23:31:20[/TD]
       			[TD]457578[/TD]
       			[TD]5885[/TD]
       			[TD]debug[/TD]
       			[TD]EXE19001030 [v0.4]: input:9[/TD]
       		[/TR]
      [TR]
      [TD]2017-04-22 23:31:20[/TD]
       			[TD]457967[/TD]
       			[TD]5885[/TD]
       			[TD]debug[/TD]
       			[TD]EXE19001030 [v0.4]: address:30001[/TD]
       		[/TR]
      [TR]
      [TD]2017-04-22 23:31:20[/TD]
       			[TD]495371[/TD]
       			[TD]5885[/TD]
       			[TD]debug[/TD]
       			[TD]EXE19001030 [v0.4]: File: /usr/local/edomi/main/include/php/ModbusMaster.php | Error: 8 | Line: 180 | Uninitialized string offset: 8[/TD]
       		[/TR]
      [TR]
      [TD]2017-04-22 23:31:20[/TD]
       			[TD]495628[/TD]
       			[TD]5885[/TD]
       			[TD]debug[/TD]
       			[TD]EXE19001030 [v0.4]: Modbus Error:[/TD]
       		[/TR]
      [TR]
      [TD]2017-04-22 23:31:20[/TD]
       			[TD]495666[/TD]
       			[TD]5885[/TD]
       			[TD]debug[/TD]
       			[TD]EXE19001030 [v0.4]: ================ ARRAY/OBJECT START ================[/TD]
       		[/TR]
      [TR]
      [TD]2017-04-22 23:31:20[/TD]
       			[TD]495702[/TD]
       			[TD]5885[/TD]
       			[TD]debug[/TD]
       			[TD]EXE19001030 [v0.4]: {"host":"192.168.178.65","port":"502","client":"","client_port":"502","status":"readMultipleRegisters: START\nConnected\nPacket: a01000000006000375310001\nSend\nWait data ... \nData received\nPacket: a010000000030083\n","timeout_sec":5,"endianness":0,"socket_protocol":"TCP"}[/TD]
       		[/TR]
      [TR]
      [TD]2017-04-22 23:31:20[/TD]
       			[TD]495734[/TD]
       			[TD]5885[/TD]
       			[TD]debug[/TD]
       			[TD]EXE19001030 [v0.4]: ================ ARRAY/OBJECT END ================[/TD]
       		[/TR]
      [TR]
      [TD]2017-04-22 23:31:20[/TD]
       			[TD]495912[/TD]
       			[TD]5885[/TD]
       			[TD]debug[/TD]
       			[TD]EXE19001030 [v0.4]: Modbus Error:[/TD]
       		[/TR]
      [TR]
      [TD]2017-04-22 23:31:20[/TD]
       			[TD]495943[/TD]
       			[TD]5885[/TD]
       			[TD]debug[/TD]
       			[TD]EXE19001030 [v0.4]: ================ ARRAY/OBJECT START ================[/TD]
       		[/TR]
      [TR]
      [TD]2017-04-22 23:31:20[/TD]
       			[TD]495968[/TD]
       			[TD]5885[/TD]
       			[TD]debug[/TD]
       			[TD]EXE19001030 [v0.4]: {}[/TD]
       		[/TR]
      [TR]
      [TD]2017-04-22 23:31:20[/TD]
       			[TD]495990[/TD]
       			[TD]5885[/TD]
       			[TD]debug[/TD]
       			[TD]EXE19001030 [v0.4]: ================ ARRAY/OBJECT END ================[/TD]
       		[/TR]
      [TR]
      [TD]2017-04-22 23:31:20[/TD]
       			[TD]496161[/TD]
       			[TD]5885[/TD]
       			[TD]debug[/TD]
       			[TD]EXE19001030 [v0.4]: Retries:0[/TD]
       		[/TR]
      [TR]
      [TD]2017-04-22 23:31:20[/TD]
       			[TD]496385[/TD]
       			[TD]5885[/TD]
       			[TD]debug[/TD]
       			[TD]EXE19001030 [v0.4]: Looping:false[/TD]
       		[/TR]
      [TR]
      [TD]2017-04-22 23:31:20[/TD]
       			[TD]496963[/TD]
       			[TD]5885[/TD]
       			[TD]debug[/TD]
       			[TD]EXE19001030 [v0.4]: Delay:1000[/TD]
       		[/TR]
      [TR]
      [TD]2017-04-22 23:31:21[/TD]
       			[TD]498644[/TD]
       			[TD]5885[/TD]
       			[TD]debug[/TD]
       			[TD]EXE19001030 [v0.4]: end of delay[/TD]
       		[/TR]
      [TR]
      [TD]2017-04-22 23:31:21[/TD]
       			[TD]500137[/TD]
       			[TD]5885[/TD]
       			[TD]debug[/TD]
       			[TD]EXE19001030 [v0.4]: STOP ModbusMaster Daemon[/TD]
       		[/TR]
      [/TABLE]

      Kommentar


        #33
        Also so bekomme ich über den QModbusMaster meine aktuelle Energieproduktion:

        2017-04-23 11_19_47-Modbus Master.png

        Ich weis nur noch nicht ganz welche Werte ich nun in E10 und E11 angeben muss damit aus dem LBS Werte bekomme...

        Kommentar


          #34
          http://en.radzio.dxp.pl/modbus-master-simulator/

          Probier mal die software aus da kann mans genauer einstellen um die werte rauszubekommen

          Kommentar


            #35
            bin grad nicht vor dem PC, aber versuchs mal mit der SlaveID 3. zumindest scheint es so in dem Screenshot von dir zu sein.
            Gruß
            Michael

            Kommentar


              #36
              gulp2k
              Funtkioniert der Modbus-Adapter! Danke!

              Ein Problem hab ich jedoch:
              Mein Fronius Wechselrichter benutzt teilweise uint64 (http://www.fronius.com/Applikationen...aspx?id=361552) z.B. Adresse 510.
              Damit scheint er noch nicht zurecht zu kommen?! Der LBS bleibt einfach stehen.
              Hast du da ne Idee?

              Gruß,
              Christian

              Kommentar


                #37
                Zitat von Peterich Beitrag anzeigen
                http://en.radzio.dxp.pl/modbus-master-simulator/

                Probier mal die software aus da kann mans genauer einstellen um die werte rauszubekommen
                Danke aber ich bekomme da keine stabilen Werte raus. Einstellungen gleich wie beim QModbusMaster, wenn ich dann beim Radzio bei Lengh die Werte verstelle kommen sporadisch ein paar Werte aber nicht rekonstruierbar.

                Zitat von gulp2k Beitrag anzeigen
                bin grad nicht vor dem PC, aber versuchs mal mit der SlaveID 3. zumindest scheint es so in dem Screenshot von dir zu sein.
                Danke. So kommen nun zumindest mal Werte rein, allerdings noch nicht die richtigen:

                Code:
                {EDOMI,CUSTOMLOG_ModBusMaster_Read-LBS19001030.htm,24.04.2017,11:03:22,908931,9096}
                Zeitstempel    ms    PID    LogLevel    Meldung
                2017-04-24 11:03:22    908843    9096    debug    EXE19001030 [v0.4]:    START ModbusMaster Daemon
                2017-04-24 11:03:22    910933    9096    debug    EXE19001030 [v0.4]:    v3:9
                2017-04-24 11:03:22    911884    9096    debug    EXE19001030 [v0.4]:    inputs:
                2017-04-24 11:03:22    911946    9096    debug    EXE19001030 [v0.4]:    ================ ARRAY/OBJECT START ================
                2017-04-24 11:03:22    911982    9096    debug    EXE19001030 [v0.4]:    ["9"]
                2017-04-24 11:03:22    912056    9096    debug    EXE19001030 [v0.4]:    ================ ARRAY/OBJECT END ================
                2017-04-24 11:03:22    913311    9096    debug    EXE19001030 [v0.4]:    i:0
                2017-04-24 11:03:22    913903    9096    debug    EXE19001030 [v0.4]:    input:9
                2017-04-24 11:03:22    914660    9096    debug    EXE19001030 [v0.4]:    address:30775
                2017-04-24 11:03:23    068598    9096    debug    EXE19001030 [v0.4]:    File: /usr/local/edomi/main/include/php/ModbusMaster.php | Error: 8 | Line: 506 | Uninitialized string offset: 12
                2017-04-24 11:03:23    069168    9096    debug    EXE19001030 [v0.4]:    Status:<pre>readMultipleRegisters: START[LF]Connected[LF]Packet: 5e7000000006030378370002[LF]Send[LF]Wait data ... [LF]Data received[LF]Packet: 5e700000000703030400000b[LF]Modbus response error code: NOERROR[LF]Disconnected[LF]readMultipleRegisters: DONE[LF]</pre>
                2017-04-24 11:03:23    069433    9096    debug    EXE19001030 [v0.4]:    Type:0
                2017-04-24 11:03:23    069650    9096    debug    EXE19001030 [v0.4]:    Data:184549376
                2017-04-24 11:03:23    070117    9096    debug    EXE19001030 [v0.4]:    Looping:false
                2017-04-24 11:03:23    070895    9096    debug    EXE19001030 [v0.4]:    Delay:1000
                2017-04-24 11:03:24    075366    9096    debug    EXE19001030 [v0.4]:    end of delay
                2017-04-24 11:03:24    077449    9096    debug    EXE19001030 [v0.4]:    STOP ModbusMaster Daemon
                Soll hätte ungefähr 2814 sein sollen, hier die Detail vom QModbus Master:
                2017-04-24 11_05_46-LBS_ 19001030_ Modbus TCP Master Read - KNX-User-Forum.png
                2017-04-24 11_06_35-Bus Monitor.png


                In der Herstellerdoku steht das es ein Vorzeichenbehaftetes Doppelwort (S32) sein soll, also Typ Int (E11 = 0), richtig?

                Und entspricht E10 (the length of data) den "Number of Registers"?
                Ich habe bemerkt das wenn ich bei "Number of Registers" nur 1 angebe ein Fehler kommt, wenn ich aber mit Adresse 30776 starte und die 1 lasse wird 65535 ausgegeben (erwartet hätte ich wieder die 2814).


                Kommentar


                  #38
                  Hi, ich bin grad am Umbauen des Bausteins weil er bei mir manchmaletwas zickt. Hängt aber anscheinend eher mit der Gegenstelle zusammen als mit dem LBS selbst.

                  Ich bin leider kein ModBus Experte aber ein paar Sachen sind mir bei meinen eigenen Experimenten aufgefallen:

                  1. Die Start Addresse ist ist nicht immer die die in der Doku steht. Mal mit Addresse +-1 Experimentieren...
                  Das hängt mit der Zählweise zusammen das Low Level eigendlich bei 0 angefangen wird und das oft nicht korrekt in der Firmware umgesetzt wurde. Bei mir hat es meistens mit Addresse -1 funktioniert.
                  2. Je nach System ist auch die Bytereihnfolge wichtig (Endianess). Wenn als Ergebniss immer riesige Zahlen kommen das mal umdrehen.

                  hx5 Was mir auch gerade auffällt ist das du Funktion 3 - Read Holding Register nutzt, ich hab aber bis jetzt nur Read Multiple Registers implementiert. Bin mir nicht sicher ob das das gleiche ist...
                  Gruß
                  Michael

                  Kommentar


                    #39
                    Zitat von crushervx Beitrag anzeigen
                    gulp2k
                    Funtkioniert der Modbus-Adapter! Danke!

                    Ein Problem hab ich jedoch:
                    Mein Fronius Wechselrichter benutzt teilweise uint64 (http://www.fronius.com/Applikationen...aspx?id=361552) z.B. Adresse 510.
                    Damit scheint er noch nicht zurecht zu kommen?! Der LBS bleibt einfach stehen.
                    Hast du da ne Idee?

                    Gruß,
                    Christian
                    Wie hast du den den LBS konfiguriert? Einfach stehen bleiben sollte er eigendlich nicht...
                    Bist du sicher das du so große Werte überhaupt zurück erwartest? Fall nicht kannst du mal versuchen die Address +2 und Length =2 dann bekommst du halt nur einen uinit32 aber vielleicht reichts ja...
                    Gruß
                    Michael

                    Kommentar


                      #40
                      Zitat von gulp2k Beitrag anzeigen
                      2. Je nach System ist auch die Bytereihnfolge wichtig (Endianess). Wenn als Ergebniss immer riesige Zahlen kommen das mal umdrehen.
                      .
                      Zufall oder nicht aber wenn ich A1 durch 65535 teile kommt der gesuchte Wert heraus .

                      Hat das evtl. was mit der Bytereihenfolge zu tun?
                      Habe dafür noch zu wenig Verständnis .

                      Kommentar


                        #41
                        Hab die neuste Version des LBS hochgeladen. Mal mit dieser testen und bei Loglevel 8 eingeben.
                        Aber nicht als Loop laufen lassen sonst wächst das log gaaanz schnell

                        hx5 Du kannst im Code V4 auf 1 setzten und mal schauen was passiert.
                        Bis jetzt hab ich die Endianess Option nicht als Eingang konfiguriert...
                        Gruß
                        Michael

                        Kommentar


                          #42
                          Zitat von gulp2k Beitrag anzeigen
                          hx5 Du kannst im Code V4 auf 1 setzten ...
                          Nein das brachte nur kuriose, springende Werte.....

                          Bei der neuen Version lässt sich bei mir das looping nicht deaktivieren / es läuft ständig ein Timer:

                          2017-04-24 16_52_31-EDOMI · Administration.png


                          Kommentar


                            #43
                            wenn du jetzt noch einen Auszug aus Log schicken könntest dann kann ich mal versuchen zu verstehen was passiert.
                            Gruß
                            Michael

                            Kommentar


                              #44
                              gerne:

                              Code:
                              {EDOMI,CUSTOMLOG_ModBusMaster_Read-LBS19001030.htm,24.04.2017,21:30:36,157264,11128}
                              Zeitstempel    ms    PID    LogLevel    Meldung
                              2017-04-24 21:30:36    157150    11128    debug    EXE19001030 [v0.5]:    START ModbusMaster Exec
                              2017-04-24 21:30:36    159585    11128    debug    EXE19001030 [v0.5]:    v3:9;13;17
                              2017-04-24 21:30:36    160168    11128    debug    EXE19001030 [v0.5]:    inputs:
                              2017-04-24 21:30:36    160218    11128    debug    EXE19001030 [v0.5]:    ================ ARRAY/OBJECT START ================
                              2017-04-24 21:30:36    160263    11128    debug    EXE19001030 [v0.5]:    ["9","13","17"]
                              2017-04-24 21:30:36    160348    11128    debug    EXE19001030 [v0.5]:    ================ ARRAY/OBJECT END ================
                              2017-04-24 21:30:36    161021    11128    debug    EXE19001030 [v0.5]:    Memory before New ModBusMaster: 2016544
                              2017-04-24 21:30:36    161633    11128    debug    EXE19001030 [v0.5]:    Memory after New ModBusMaster: 2017952
                              2017-04-24 21:30:36    162074    11128    debug    EXE19001030 [v0.5]:    i:0; input:9; address:30775; length:2; type:0
                              2017-04-24 21:30:36    327810    11128    debug    EXE19001030 [v0.5]:    File: /usr/local/edomi/main/include/php/ModbusMaster.php | Error: 8 | Line: 506 | Uninitialized string offset: 12
                              2017-04-24 21:30:36    328165    11128    debug    EXE19001030 [v0.5]:    Memory after Read: 2019848
                              2017-04-24 21:30:36    328394    11128    debug    EXE19001030 [v0.5]:    Status:<pre>readMultipleRegisters: START[LF]Connected[LF]Packet: bb0700000006030378370002[LF]Send[LF]Wait data ... [LF]Data received[LF]Packet: bb0700000007030304800000[LF]Modbus response error code: NOERROR[LF]Disconnected[LF]readMultipleRegisters: DONE[LF]</pre>
                              2017-04-24 21:30:36    328591    11128    debug    EXE19001030 [v0.5]:    Type:0Raw Data:
                              2017-04-24 21:30:36    328625    11128    debug    EXE19001030 [v0.5]:    ================ ARRAY/OBJECT START ================
                              2017-04-24 21:30:36    328654    11128    debug    EXE19001030 [v0.5]:    [128,0,0,0]
                              2017-04-24 21:30:36    328717    11128    debug    EXE19001030 [v0.5]:    ================ ARRAY/OBJECT END ================
                              2017-04-24 21:30:36    328917    11128    debug    EXE19001030 [v0.5]:    Data:32768
                              2017-04-24 21:30:36    329359    11128    debug    EXE19001030 [v0.5]:    i:1; input:13; address:30533; length:1; type:0
                              2017-04-24 21:30:36    477611    11128    debug    EXE19001030 [v0.5]:    File: /usr/local/edomi/main/include/php/ModbusMaster.php | Error: 8 | Line: 180 | Uninitialized string offset: 8
                              2017-04-24 21:30:36    477957    11128    debug    EXE19001030 [v0.5]:    Modbus Error:
                              2017-04-24 21:30:36    478004    11128    debug    EXE19001030 [v0.5]:    ================ ARRAY/OBJECT START ================
                              2017-04-24 21:30:36    478049    11128    debug    EXE19001030 [v0.5]:    {"host":"192.168.178.65","port":"502","client":"","client_port":"502","status":"readMultipleRegisters: START\nConnected\nPacket: 591300000006030377450001\nSend\nWait data ... \nData received\nPacket: 5913000000030383\n","timeout_sec":5,"endianness":0,"socket_protocol":"TCP"}
                              2017-04-24 21:30:36    478080    11128    debug    EXE19001030 [v0.5]:    ================ ARRAY/OBJECT END ================
                              2017-04-24 21:30:36    478327    11128    debug    EXE19001030 [v0.5]:    Modbus Error:
                              2017-04-24 21:30:36    478363    11128    debug    EXE19001030 [v0.5]:    ================ ARRAY/OBJECT START ================
                              2017-04-24 21:30:36    478389    11128    debug    EXE19001030 [v0.5]:    {}
                              2017-04-24 21:30:36    478411    11128    debug    EXE19001030 [v0.5]:    ================ ARRAY/OBJECT END ================
                              2017-04-24 21:30:36    478585    11128    debug    EXE19001030 [v0.5]:    Retries:0
                              2017-04-24 21:30:36    478761    11128    debug    EXE19001030 [v0.5]:    Memory in error: 2027184
                              2017-04-24 21:30:36    478790    11128    debug    EXE19001030 [v0.5]:    ================ ARRAY/OBJECT START ================
                              2017-04-24 21:30:36    478815    11128    debug    EXE19001030 [v0.5]:    4
                              2017-04-24 21:30:36    478835    11128    debug    EXE19001030 [v0.5]:    ================ ARRAY/OBJECT END ================
                              2017-04-24 21:30:36    479602    11128    debug    EXE19001030 [v0.5]:    end of delay
                              2017-04-24 21:30:36    480431    11128    debug    EXE19001030 [v0.5]:    Memory at End: 2025376
                              2017-04-24 21:30:36    480632    11128    debug    EXE19001030 [v0.5]:    STOP ModbusMaster EXEC
                              2017-04-24 21:30:41    150088    11162    debug    EXE19001030 [v0.5]:    START ModbusMaster Exec
                              Das geht immer weiter so obwohl E7 = 0 ist. E8 habe ich jetzt auf 5000 ms....

                              Kommentar


                                #45
                                Hm, das mit dem Loop ist tatsächlich ein Bug vom Refactoring, da ich nur Loop nutze ist mir das gar nicht aufgefallen.

                                Einfach mal folgende Zeile durch ersetzten dann sollte es gehen:
                                PHP-Code:
                                            logic_setState($id,1,$delay); 
                                PHP-Code:
                                if ($loop=1){
                                            
                                logic_setState($id,1,$delay);
                                        } 
                                Mich wundern ein paar Sachen da im Log...
                                1. Die Fehler die aus ModbusMaster.php kommen, das sollte eigendlich nicht passieren.
                                2. Es sieht so aus als ob du 3 Eingänge konfiguriert hast aber nur bein ersten kommt was zurück, der 2. Läuft in einen Fehler und der 3. wird gar nicht richtig angezogen...
                                Falls die anderen Eingänge nicht genutzt werden, dann mal bitte E13 und E17 zurücksetzten.

                                Es währe noch hilfreich wenn du mal Zeitgleich den "richtigen" Wert protokolieren (zumindest nährungsweise) damit man sieht ob was bei der Kodierung falsch läuft oder schon die Werte falsch ausgelesen werden.

                                Gruß
                                Michael

                                Kommentar

                                Lädt...
                                X