Ankündigung

Einklappen
Keine Ankündigung bisher.

LBS: 19001030: Modbus TCP Master Read

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

    You can use for example:

    - Anybus AB7702
    or
    - Wachendorff HD67507
    or
    - Moxa MGate MB3080

    there may be cheaper ones out there, but these are reliable devices, wo also use them at work for years.

    Kommentar


      Zitat von johannes2912 Beitrag anzeigen
      You can use for example:

      - Anybus AB7702
      or
      - Wachendorff HD67507
      or
      - Moxa MGate MB3080

      there may be cheaper ones out there, but these are reliable devices, wo also use them at work for years.
      Thank you so much.

      I can get this one used for around €50, but I'm not sure it will work.

      http://www.icpdas.com/root/product/s....html#Features

      What do you think?

      Kommentar


        Change of plans...

        Would this installed on the Edomi server ( https://github.com/3cky/mbusd ) with a €1 usb to rs485 stick ( https://www.ebay.com/itm/181923018333 ) work...?

        Kommentar


          could work. haven't tried yet. But let us know if it works. May be usefull to others.

          Kommentar


            Zitat von johannes2912 Beitrag anzeigen
            could work. haven't tried yet. But let us know if it works. May be usefull to others.
            Will report as soon as I get the adapter (probably in 1 months time since it's comming from China...)

            Kommentar


              Zitat von johannes2912 Beitrag anzeigen
              could work. haven't tried yet. But let us know if it works. May be usefull to others.
              Got the first cheap RS-485 USB adapter today ( I ordered several different types) and can report that it worked wonderfully. I have not installed "mbusd" in Edomi as I am running this on a virtualized server, but it should also work there without any problems.

              So a €1 adapter together with some software can do the job wonderfully.

              Kommentar


                gulp2k
                Erstmal DANKE für deine Arbeit. Leider hat der LBS Fehler ins Log geschrieben, daher war ich gezwungen den LBS etwas zu modifizieren. Mein Ziel war unseren E3DC
                auszulesen, damit auf der Visu wenigstens ein paar Informationen vorhanden sind. Herausgekommen ist ein LBS, der schnell und ohne Vorkenntnisse Werte aus einem E3DC liefert. Vielleicht geht es ja Anderen genau wie mir...unkompliziert die Momentanwerte auf der Visu zu haben.

                Passend dazu ein Ressourcen schonender Taktgeber und die Splittung des Integerwertes für Autarkie und Eigenverbrauch.
                Das Ganze sieht dann so aus:

                Bildschirmfoto 2018-04-25 um 18.47.18.png

                Bildschirmfoto 2018-04-25 um 18.47.57.png
                >>Smelly One<<
                Grüße Armin

                Kommentar


                  Hi WagoKlemme ,
                  dafür hab ich den LBS orginär gebaut

                  Ich würde auch mal noch die Hilfe anpassen, die ist nämlich noch orginal und passt überhaupt nicht.

                  Was ist den der tiefere Sinn des Taktgebers? ( Du schreibst da auch noch auf Ausgang 2 den es nicht mehr gibt...)
                  Bei mir läuft der original LBS im Sekundentakt ohne große Probleme.

                  Kompletter neubau ohne phpmodbus steht auch schon ewig an bin aber leider noch nicht dazu gekommen
                  Gruß
                  Michael

                  Kommentar


                    gulp2k
                    Danke, für den Fehlerhinweis. Ich hatte aus Versehen die Bausteine meiner Edomi-Testinstallation reinkopiert.
                    Der E3DC LBS braucht keine Hilfe, da nur die IP eingetragen werden muss und der Takt. Der Rest ist vorkonfiguriert. Die Adressen, falls sich mal was ändert, sind absichtlich zugänglich geblieben.
                    Taktgeber: Daran bist Du Schuld.... Nein, im Ernst, die Loop (0) deines LBS hat nicht funktioniert und den Baustein immer in der Schleife laufen zu lassen, war mir zu ressourcenhungrig. Mein LBS beendet sich nach jedem Durchlauf und wird durch den Taktgeber alle 10s wieder neu gestartet. Eine 1s Schleife hat auch den Nachteil, dass sich die Werte auf dem Display zu schnell ändern, was ich verwirrend fand. Setstate möchte ich vermeiden, wenn es möglich ist.

                    Edit: PhpModbus: In Modbus würde/werde ich nichts mehr investieren. Wenn, dann RSCP - als Winterarbeit.
                    Zuletzt geändert von WagoKlemme; 26.04.2018, 12:28.
                    >>Smelly One<<
                    Grüße Armin

                    Kommentar


                      Bzgl. Ressourcenschonung wäre meine Empfehlung möglichst die Anzahl der DB Zugriffe zu reduzieren. Im Moment macht der Taktgeber LBS jede Sekunde ein logic_setOutput(), welches mindestens einen DB Zugriff ausführt, evtl. sogar mehrere. Da EDOMI ja Event basiert ist und du einen Taktgeber benötigst, reicht es vermutlich, wenn du das Rücksetzen auf 0 einfach weglässt, denn wenn die Taktzeit nicht erreicht ist, dann macht er einfach nichts, was ja aus meiner Sicht richtig ist.

                      Kommentar


                        Der Taktgeber läuft alle 10s bei mir. Ich habe verschiedene Varianten getestet (Loop mit setstate, Oszillator, Timer ...) und mich für eben diese Variante entschieden. Die anderen Versuche waren, vor allem mit setstate und Oszillator, merklich "hungriger". Bei diesen Versuchen habe ich, ohne die 0, mehrere Aufrufe in der 10ten Sekunde im Log gesehen, deshalb die 0. Mit der 0 dann nicht mehr.

                        Edit: Du hast Recht, die 0 kann weg. Habe es getestet, es wird nichts doppelt in einer Sekunde geschrieben. K.A. was da vor ein paar Tagen los war. Ressourcenmäßig bleibt es, wie zu erwarten, gleich.
                        Zuletzt geändert von WagoKlemme; 26.04.2018, 15:46.
                        >>Smelly One<<
                        Grüße Armin

                        Kommentar


                          Zitat von WagoKlemme Beitrag anzeigen
                          Der Taktgeber läuft alle 10s bei mir.
                          Aber nicht wenn du den mit der Systemzeit triggerst. Dann läuft er jede Sekunde und hätte auch jede Sekunde eine 0 auf A2 geschrieben. Sein Ausgang taktet alle 10 Sekunden auf 1, das ist vermutlich was du meintest.

                          Ich vermute mit setState würde es auch ressourcenschonend gehen, wenn du das delay entsprechend einstellst. Oder hast du das getestet? Damit wäre dann aus meiner Sicht ein beliebiger autarker Taktgeber möglich, der ohne externen Trigger (außer Start/Stop Signal) auskommt. Grundsätzlich sollte dasselbe aber auch mit dem EDOMI Telegramgenerator funktionieren.

                          PHP-Code:
                          ###[DEF]###
                          [name    = Sekunden Trigger ]
                          [e#1    = Start/Stop ]
                          [e#2    = Intervall (s) #init=5    ]
                          [a#1    = Trigger ]
                          ###[/DEF]###
                          ###[HELP]###
                          ###[/HELP]###
                          ###[LBS]###
                          <?php

                          function LB_LBSID($id)
                          {
                              if (
                          $E logic_getInputs($id)) {
                                  if (
                          $E[2]['refresh'] == 1) {
                                      if (
                          logic_getState($id))
                                          
                          logic_setState($id1$E[2]['value'] * 1000true);
                                      else
                                          return;
                                  }
                                  if (
                          $E[1]['refresh'] == 1) {
                                      if (
                          $E[1]['value'] == 0) {
                                          
                          logic_setState($id0);
                                          return;
                                      } elseif (
                          $E[1]['value'] == 1)
                                          
                          logic_setState($id1$E[2]['value'] * 1000true);
                                  }
                                  
                          logic_setOutput($id11);
                              }
                          }
                          ?>
                          ###[/LBS]###
                          ###[EXEC]###
                          ###[/EXEC]###

                          Kommentar


                            Zitat von jonofe Beitrag anzeigen
                            Aber nicht wenn du den mit der Systemzeit triggerst.
                            A2 ? Der schaut nur jede Sekunde nach, ob die Sekunden durch das Intervall teilbar ist, was zu verschmerzen ist. Anstieg der CPU-Auslastung = 0.

                            Zitat von jonofe Beitrag anzeigen
                            Ich vermute mit setState würde es auch ressourcenschonend gehen, wenn du das delay entsprechend einstellst. Oder hast du das getestet?
                            Ja, habe ich. Hierbei steigt meine CPU-Auslastung um 1-2%, weil eine Logik ständig aktiv bleibt.
                            >>Smelly One<<
                            Grüße Armin

                            Kommentar


                              Zitat von WagoKlemme Beitrag anzeigen
                              Ja, habe ich. Hierbei steigt meine CPU-Auslastung um 1-2%, weil eine Logik ständig aktiv bleibt.
                              Erstaunlich. Bei mir gibt es noch nicht mal einen beobachtbaren Unterschied, zwischen laufendem und nicht laufendem LBS. Naja, viele Wege führen nach Rom, und wenn es so bei dir funktioniert, umso besser.

                              Kommentar


                                Welche Edomi-CPU hast Du ?
                                >>Smelly One<<
                                Grüße Armin

                                Kommentar

                                Lädt...
                                X