Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Node-Red
  5. S7 mit Node Red (node-red-contrib-s7)

NEWS

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    11
    1
    493

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.7k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.6k

S7 mit Node Red (node-red-contrib-s7)

Geplant Angeheftet Gesperrt Verschoben Node-Red
92 Beiträge 9 Kommentatoren 12.2k Aufrufe 9 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • fu_zhouF fu_zhou

    @wal zeichnest du den gesteuerten Wert "s7.0.DBs.DB2.zisterne_offset_voll" auf (z.B. SQL) und hast dir die Werte mal angeschaut? Ich bin mir fast sicher, dass du da Ausreißer wie im Issue beschrieben finden wirst. Snap7 ist ja auch schon viele Jahre etabliert, ich kann mir nicht vorstellen, dass das Verhalten übersehen wurde und ein Snap7-Problem ist. Aber die Frage wäre, ob jemand (du?) den Adapter mal auf nodes7 umbaut? Ich teste dann gerne...

    WalW Online
    WalW Online
    Wal
    Developer
    schrieb am zuletzt editiert von
    #11

    @fu_zhou ,
    habe das jetzt eine halbe Stunde mit 1000 und -1000 laufen lassen und kein Fehler bekommen.
    snap7.jpg

    Kann ich das irgendwie nachstellen ?

    Gruß
    Walter

    DoorIO-Adapter
    wioBrowser-Adapter und wioBrowser

    fu_zhouF 2 Antworten Letzte Antwort
    0
    • WalW Wal

      @fu_zhou ,
      habe das jetzt eine halbe Stunde mit 1000 und -1000 laufen lassen und kein Fehler bekommen.
      snap7.jpg

      Kann ich das irgendwie nachstellen ?

      fu_zhouF Offline
      fu_zhouF Offline
      fu_zhou
      schrieb am zuletzt editiert von
      #12

      @wal das Verhalten ist leider hoch sporadisch und wir haben noch keinen Weg gefunden, das zu reproduzieren.
      8a4d54c9-f04a-4d9e-93fe-fa85b1a965db-image.png

      Kannst du mit einem Vergleicher in der S7 mal einen Ausreißer fangen.: Wenn IN <> der Grenzen von der Zufallszahl => schreibe den Wert in einen DB. Und damit mal ein paar Stunden laufen lassen? Oder alternativ den Wert mit SQL loggen (s. Screenshot oben). Was hast du für eine Poll Delay im Adapter eingetragen? (bei mir sind es 200ms bei einer durchschnittlichen Zykluszeit von 15ms)

      Synology DS920+ VM, S7-315 PN mit ET200S

      WalW 1 Antwort Letzte Antwort
      0
      • WalW Wal

        @fu_zhou ,
        habe das jetzt eine halbe Stunde mit 1000 und -1000 laufen lassen und kein Fehler bekommen.
        snap7.jpg

        Kann ich das irgendwie nachstellen ?

        fu_zhouF Offline
        fu_zhouF Offline
        fu_zhou
        schrieb am zuletzt editiert von
        #13

        @wal Geh vielleicht mit dem Trigger auch mal auf eine Sekunde runter

        Synology DS920+ VM, S7-315 PN mit ET200S

        1 Antwort Letzte Antwort
        0
        • Z Offline
          Z Offline
          Zero_two
          schrieb am zuletzt editiert von
          #14

          @Wal der Fehler läst sich schnell reproduzieren wenn du dir einfach die aktuelle Uhrzeit vom iobroker als dint wert in die s7 schreibst dabei entsteht der Fehler Recht schnell.

          WalW 1 Antwort Letzte Antwort
          0
          • fu_zhouF fu_zhou

            @wal das Verhalten ist leider hoch sporadisch und wir haben noch keinen Weg gefunden, das zu reproduzieren.
            8a4d54c9-f04a-4d9e-93fe-fa85b1a965db-image.png

            Kannst du mit einem Vergleicher in der S7 mal einen Ausreißer fangen.: Wenn IN <> der Grenzen von der Zufallszahl => schreibe den Wert in einen DB. Und damit mal ein paar Stunden laufen lassen? Oder alternativ den Wert mit SQL loggen (s. Screenshot oben). Was hast du für eine Poll Delay im Adapter eingetragen? (bei mir sind es 200ms bei einer durchschnittlichen Zykluszeit von 15ms)

            WalW Online
            WalW Online
            Wal
            Developer
            schrieb am zuletzt editiert von
            #15

            @fu_zhou ,
            der poll ist auf 1sec.
            Die Zufallszahl habe ich jede Sekunde erzeugt,sieht man im Log.

            @Zero_two ,
            das mit der Uhrzeit teste ich mal.

            Gruß
            Walter

            DoorIO-Adapter
            wioBrowser-Adapter und wioBrowser

            1 Antwort Letzte Antwort
            0
            • Z Zero_two

              @Wal der Fehler läst sich schnell reproduzieren wenn du dir einfach die aktuelle Uhrzeit vom iobroker als dint wert in die s7 schreibst dabei entsteht der Fehler Recht schnell.

              WalW Online
              WalW Online
              Wal
              Developer
              schrieb am zuletzt editiert von
              #16

              @zero_two ,
              jetzt musst du mir nur noch zeigen wie du die Uhrzeit in DInt umrechnest.
              Mein Script erzeigt ein Überlauf, da die Zahl anscheinend zu groß ist.

              schedule("* * * * * *", async () => {
                setState('s7.0.DBs.DB2.test1', (new Date().getTime()));
              });
              

              Gruß
              Walter

              DoorIO-Adapter
              wioBrowser-Adapter und wioBrowser

              1 Antwort Letzte Antwort
              0
              • Z Offline
                Z Offline
                Zero_two
                schrieb am zuletzt editiert von
                #17

                382064db-3fd3-43ff-9e6d-03cf4fb5b017-grafik.png

                b0630757-33c3-4ee3-9dee-26719a3d164f-grafik.png

                1 Antwort Letzte Antwort
                0
                • WalW Online
                  WalW Online
                  Wal
                  Developer
                  schrieb am zuletzt editiert von Wal
                  #18

                  So, ich habe den Poll auf 200ms gestellt und das Script von @Zero_two erweitert.
                  Nach 10 Minuten hatte ich einen Objektunterschied festgestellt.
                  Realtest2.jpg
                  Wenn ich das aber auswerte, liegt der Fehler nicht am S7 Adapter, sondern am Javascript ?
                  Wie zu sehen lese ich das Objekt vom S7 Adapter wieder aus das ich mit Javascript beschrieben habe und es ist 0.

                  Edit: In der S7 habe ich den DB1.DBD8 (real_test1) auf den DB1.DBD12 (real_test2) geschrieben.

                  Gruß
                  Walter

                  DoorIO-Adapter
                  wioBrowser-Adapter und wioBrowser

                  B 1 Antwort Letzte Antwort
                  0
                  • WalW Wal

                    So, ich habe den Poll auf 200ms gestellt und das Script von @Zero_two erweitert.
                    Nach 10 Minuten hatte ich einen Objektunterschied festgestellt.
                    Realtest2.jpg
                    Wenn ich das aber auswerte, liegt der Fehler nicht am S7 Adapter, sondern am Javascript ?
                    Wie zu sehen lese ich das Objekt vom S7 Adapter wieder aus das ich mit Javascript beschrieben habe und es ist 0.

                    Edit: In der S7 habe ich den DB1.DBD8 (real_test1) auf den DB1.DBD12 (real_test2) geschrieben.

                    B Offline
                    B Offline
                    Blockmove
                    schrieb am zuletzt editiert von
                    #19

                    @wal said in S7 mit Node Red (node-red-contrib-s7):

                    Wenn ich das aber auswerte, liegt der Fehler nicht am S7 Adapter, sondern am Javascript ?
                    Wie zu sehen lese ich das Objekt vom S7 Adapter wieder aus das ich mit Javascript beschrieben habe und es ist 0.

                    Ohne jetzt im Detail dein Problem nachvollziehen zu wollen, aber schau dir mal bei Javascript / Node.js das Thema async / await an.

                    The difference beetween Man and Boys:
                    The price of their toys 😀

                    WalW fu_zhouF 2 Antworten Letzte Antwort
                    0
                    • B Blockmove

                      @wal said in S7 mit Node Red (node-red-contrib-s7):

                      Wenn ich das aber auswerte, liegt der Fehler nicht am S7 Adapter, sondern am Javascript ?
                      Wie zu sehen lese ich das Objekt vom S7 Adapter wieder aus das ich mit Javascript beschrieben habe und es ist 0.

                      Ohne jetzt im Detail dein Problem nachvollziehen zu wollen, aber schau dir mal bei Javascript / Node.js das Thema async / await an.

                      WalW Online
                      WalW Online
                      Wal
                      Developer
                      schrieb am zuletzt editiert von
                      #20

                      @blockmove ,
                      zu Glück habe ich das Problem nicht, aber danke für die Info, sollen die Jungs sich das mal reinziehen. ;-)

                      Gruß
                      Walter

                      DoorIO-Adapter
                      wioBrowser-Adapter und wioBrowser

                      1 Antwort Letzte Antwort
                      0
                      • B Blockmove

                        @wal said in S7 mit Node Red (node-red-contrib-s7):

                        Wenn ich das aber auswerte, liegt der Fehler nicht am S7 Adapter, sondern am Javascript ?
                        Wie zu sehen lese ich das Objekt vom S7 Adapter wieder aus das ich mit Javascript beschrieben habe und es ist 0.

                        Ohne jetzt im Detail dein Problem nachvollziehen zu wollen, aber schau dir mal bei Javascript / Node.js das Thema async / await an.

                        fu_zhouF Offline
                        fu_zhouF Offline
                        fu_zhou
                        schrieb am zuletzt editiert von
                        #21

                        @blockmove hmh... im Issue wurde "postuliert", dass das Verhalten nicht auf Werte beschränkt ist, die vom Script kommen:
                        Es ist dabei auch egal ob es sich um einen Wert aus der Vis oder Javascript handelt. Über VIS fällt das natürlich weniger auf, da hier wesentlich seltener Werte gesendet werden (s. Link oben zum entsprechenden Kommentar).
                        Ich bin leider nur Anwender, kein Programmierer, d.h. ein bisschen Blockly kriege ich noch hin, aber Codezeilen übersteigen meine Fantasie und Fähigkeiten. Wenn ich mir jetzt async/await anschaue, verstehe ich da erst mal nur Bahnhof, aber: Meinst du dass async/await im Adapter oder in unseren Scripten zum Einsatz kommen sollte, um das Problem der sporadischen, fehlerhaften Datenübertragung zu beheben? Warum hat Node-Red das Problem nicht?

                        Synology DS920+ VM, S7-315 PN mit ET200S

                        1 Antwort Letzte Antwort
                        0
                        • mickymM Online
                          mickymM Online
                          mickym
                          Most Active
                          schrieb am zuletzt editiert von mickym
                          #22

                          Mit dem Eingangspost hat das alles nichts mehr zu tun. Sobald jemand NodeRed nutzen will, weil vielleicht ein Adapter Probleme macht, dann wird daraus sofort ein Supportthread für den Adapter gemacht.

                          Warum gibt es eigentlich die NodeRed Integration im iobroker, wenn man genau damit die Probleme eines Adapters umgehen kann?

                          Vielleicht lässt man den Threadersteller einfach mal mit dem Tool arbeiten und diskutiert den Rest parallel

                          Ich nutze mal die iobroker Adapter, mal die NodeRed Nodes. Ich kann zwar nichts zu S7 beitragen, aber der Harmony-Adapter im iobroker oder der snmp v1 Adapter waren auch schlechter, als die entsprechenden Nodes.

                          Wenn der Adapter Vorteile bringt kann man ja wieder umsteigen. Außerdem kann der Threadersteller so auch die Logik von NodeRed verstehen lernen und muss sich nicht mehr puzzeln rumschlagen, noch zu codieren anfangen.

                          @Homoran
                          Vielleicht verschiebt man den Thread hier mal aus dem NodeRed Bereich?

                          Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                          fu_zhouF 1 Antwort Letzte Antwort
                          0
                          • mickymM mickym

                            Mit dem Eingangspost hat das alles nichts mehr zu tun. Sobald jemand NodeRed nutzen will, weil vielleicht ein Adapter Probleme macht, dann wird daraus sofort ein Supportthread für den Adapter gemacht.

                            Warum gibt es eigentlich die NodeRed Integration im iobroker, wenn man genau damit die Probleme eines Adapters umgehen kann?

                            Vielleicht lässt man den Threadersteller einfach mal mit dem Tool arbeiten und diskutiert den Rest parallel

                            Ich nutze mal die iobroker Adapter, mal die NodeRed Nodes. Ich kann zwar nichts zu S7 beitragen, aber der Harmony-Adapter im iobroker oder der snmp v1 Adapter waren auch schlechter, als die entsprechenden Nodes.

                            Wenn der Adapter Vorteile bringt kann man ja wieder umsteigen. Außerdem kann der Threadersteller so auch die Logik von NodeRed verstehen lernen und muss sich nicht mehr puzzeln rumschlagen, noch zu codieren anfangen.

                            @Homoran
                            Vielleicht verschiebt man den Thread hier mal aus dem NodeRed Bereich?

                            fu_zhouF Offline
                            fu_zhouF Offline
                            fu_zhou
                            schrieb am zuletzt editiert von
                            #23

                            @mickym Die Idee war schon, hier die Anwendungsfälle von Node-Red mit S7 zusammenzutragen, das hat jetzt ein Eigenleben entwickelt. Ich würde gerne den initialen Post lassen und den Rest vielleicht nach "S7 Adapter" verschieben?

                            Synology DS920+ VM, S7-315 PN mit ET200S

                            mickymM WalW 2 Antworten Letzte Antwort
                            0
                            • fu_zhouF fu_zhou

                              @mickym Die Idee war schon, hier die Anwendungsfälle von Node-Red mit S7 zusammenzutragen, das hat jetzt ein Eigenleben entwickelt. Ich würde gerne den initialen Post lassen und den Rest vielleicht nach "S7 Adapter" verschieben?

                              mickymM Online
                              mickymM Online
                              mickym
                              Most Active
                              schrieb am zuletzt editiert von
                              #24

                              @fu_zhou sagte in S7 mit Node Red (node-red-contrib-s7):

                              @mickym Die Idee war schon, hier die Anwendungsfälle von Node-Red mit S7 zusammenzutragen, das hat jetzt ein Eigenleben entwickelt. Ich würde gerne den initialen Post lassen und den Rest vielleicht nach "S7 Adapter" verschieben?

                              Gut wenn Du allgemeine Fragen zu Node Red hast, kann ich Dir helfen. Zu S7 und auch der entsprechenden Node kann ich Dir nicht helfen.

                              Zu den einzelnen Punkten.

                              sinnvolle Erstellung/ Strukturierung von Flows (z.B. an S7 senden, von S7 lesen)

                              ich würde erst mal alles in einen Flow packen - ich kann aber nicht beurteilen wie umfangreich das wird, kann man aber auch im Nachhinein noch aufteilen mit etwas Nacharbeit.

                              Spreadsheet-Engineering (z.B. Anlegen der S7 Variablen über Excel und Import in Node Red)

                              habe ich persönlich noch nicht gemacht. Aber es gibt wohl eine Node, die mächtig ist und auch gepflegt wird. Kannst Du Dir hier mal anschauen: https://flows.nodered.org/node/node-red-contrib-spreadsheet-in

                              Das könnte ich mit einem einfachen Excelsheet mal in einer Testumgebung mit nachvollziehen.

                              automatisiertes Verknüpfen der Variablen (z.B. über JSON Import)

                              Weiß zwar nicht was das bedeutet. Grundsätzlich werden alle Javascript Objekte über JSON ausgetauscht und das beherrscht NodeRed von sich aus, sehr gut - jedenfalls besser als Blockly. Kommt halt darauf an, wo was gespeichert ist und ob bereits im JSON-Format.

                              Funktionen in Node Red (z.B. Signalverarbeitung als Alternative zu Blockly/ Java-Script)

                              Man kann in function Nodes komplettes Javascript schreiben. Ich würde Dir jedoch empfehlen, solange wie möglich darauf zu verzichten und ggf. lieber Subflows verwenden, damit Du die Vorteile der grafischen Programmierung nicht verlierst und wieder ins Codieren verfällst. ;)

                              Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                              1 Antwort Letzte Antwort
                              0
                              • fu_zhouF fu_zhou

                                @mickym Die Idee war schon, hier die Anwendungsfälle von Node-Red mit S7 zusammenzutragen, das hat jetzt ein Eigenleben entwickelt. Ich würde gerne den initialen Post lassen und den Rest vielleicht nach "S7 Adapter" verschieben?

                                WalW Online
                                WalW Online
                                Wal
                                Developer
                                schrieb am zuletzt editiert von
                                #25

                                @fu_zhou ,
                                nur zur Info, habe jetzt einen Negativen Wert geloggt und der kommt vom S7 Adapter, ihr hattet recht.

                                Gruß
                                Walter

                                DoorIO-Adapter
                                wioBrowser-Adapter und wioBrowser

                                fu_zhouF 1 Antwort Letzte Antwort
                                0
                                • WalW Wal

                                  @fu_zhou ,
                                  nur zur Info, habe jetzt einen Negativen Wert geloggt und der kommt vom S7 Adapter, ihr hattet recht.

                                  fu_zhouF Offline
                                  fu_zhouF Offline
                                  fu_zhou
                                  schrieb am zuletzt editiert von fu_zhou
                                  #26

                                  @wal danke für die Info... eigentlich gut oder auch schade. Coole Antwort wäre gewesen: Ihr Blinden, das liegt nicht am Adapter, sondern an... ;-)

                                  Hast du eine Idee, wo du nachschauen kannst?

                                  Synology DS920+ VM, S7-315 PN mit ET200S

                                  WalW 1 Antwort Letzte Antwort
                                  0
                                  • fu_zhouF fu_zhou

                                    @wal danke für die Info... eigentlich gut oder auch schade. Coole Antwort wäre gewesen: Ihr Blinden, das liegt nicht am Adapter, sondern an... ;-)

                                    Hast du eine Idee, wo du nachschauen kannst?

                                    WalW Online
                                    WalW Online
                                    Wal
                                    Developer
                                    schrieb am zuletzt editiert von
                                    #27

                                    @fu_zhou ,
                                    bin dabei mir logs in den Adapter einzubauen.
                                    Viel Hoffnung habe ich jetzt erst einmal nicht, aber "schaun wir mal".

                                    Gruß
                                    Walter

                                    DoorIO-Adapter
                                    wioBrowser-Adapter und wioBrowser

                                    fu_zhouF 1 Antwort Letzte Antwort
                                    0
                                    • WalW Wal

                                      @fu_zhou ,
                                      bin dabei mir logs in den Adapter einzubauen.
                                      Viel Hoffnung habe ich jetzt erst einmal nicht, aber "schaun wir mal".

                                      fu_zhouF Offline
                                      fu_zhouF Offline
                                      fu_zhou
                                      schrieb am zuletzt editiert von
                                      #28

                                      @wal wenn was zeitaufwändiges zu testen wäre, übernehme ich gerne Aufgaben! (so dass sich deine Verschwendung minimiert)

                                      Synology DS920+ VM, S7-315 PN mit ET200S

                                      WalW 1 Antwort Letzte Antwort
                                      0
                                      • fu_zhouF fu_zhou

                                        @wal wenn was zeitaufwändiges zu testen wäre, übernehme ich gerne Aufgaben! (so dass sich deine Verschwendung minimiert)

                                        WalW Online
                                        WalW Online
                                        Wal
                                        Developer
                                        schrieb am zuletzt editiert von
                                        #29

                                        @fu_zhou ,
                                        habe direkt vor dem Senden an die PLC im S7-Adapter ein Info Log eingefügt und festgestellt das die Daten korrekt an die Node Snap7 Erweiterung übergeben wird, damit wäre der S7-Adapter wieder raus.
                                        Evtl. kann @apollon77 noch dazu was sagen.

                                        adapter.log.info(data.native.dbId + ' - ' + data.native.address + ' - ' + buf.readInt32BE(0));
                                        s7client.DBWrite(data.native.dbId, data.native.address, getByteSize(type, data.native.len), buf, err => 
                                        next(err));
                                        

                                        Gruß
                                        Walter

                                        DoorIO-Adapter
                                        wioBrowser-Adapter und wioBrowser

                                        fu_zhouF 1 Antwort Letzte Antwort
                                        0
                                        • WalW Wal

                                          @fu_zhou ,
                                          habe direkt vor dem Senden an die PLC im S7-Adapter ein Info Log eingefügt und festgestellt das die Daten korrekt an die Node Snap7 Erweiterung übergeben wird, damit wäre der S7-Adapter wieder raus.
                                          Evtl. kann @apollon77 noch dazu was sagen.

                                          adapter.log.info(data.native.dbId + ' - ' + data.native.address + ' - ' + buf.readInt32BE(0));
                                          s7client.DBWrite(data.native.dbId, data.native.address, getByteSize(type, data.native.len), buf, err => 
                                          next(err));
                                          
                                          fu_zhouF Offline
                                          fu_zhouF Offline
                                          fu_zhou
                                          schrieb am zuletzt editiert von
                                          #30

                                          @wal hieße aber, dass ggf. Snap7 doch das Problem ist?

                                          Synology DS920+ VM, S7-315 PN mit ET200S

                                          WalW 1 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          325

                                          Online

                                          32.5k

                                          Benutzer

                                          81.8k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe