Skip to content
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
Logo
  1. ioBroker Community Home
  2. Deutsch
  3. ioBroker Allgemein
  4. [Adapter] Beckhoff ADS

NEWS

  • Wartung am 15.11. – Forum ab 22:00 Uhr nicht erreichbar
    BluefoxB
    Bluefox
    11
    2
    202

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.7k

[Adapter] Beckhoff ADS

[Adapter] Beckhoff ADS

Scheduled Pinned Locked Moved ioBroker Allgemein
beckhoff
241 Posts 39 Posters 53.4k Views 32 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • dkleber89D Offline
    dkleber89D Offline
    dkleber89
    wrote on last edited by
    #48

    Mir ist da grad noch was eingefallen.

    Ich bin ja grade an der Einbindung der BC Runtimes. Dort funktioniert das ganze zwar nicht aber es könnte eine Lösung für die älteren TC2 Runtimes sein die keine Datentypen bereitstellen.

    Wenn du magst kannst du gerne den Adapter aus dem Entwicklungsbranch testen ob der bei dir funktionieren würde.

    ACHTUNG: Auf eigenes Risiko ist definitiv ein Alphatest.

    Installation über "Installieren aus eigener URL" -> "Beliebig" -> "git://github.com/dkleber89/ioBroker.beckhoff.git#7-addOldTc2AndBcSupport"

    Selection_001.png

    Dort auf TC2 < 2.11.... gehen und die *.tpy deines PLC Projektes hochladen. Die restlichen Einstellungen unterscheiden sich nicht vom normalen Verbindungsaufbau. Und auch hier muss die AMS Route freigegeben werden wie sonst auch.

    Gruß,
    dkleber89

    dkleber89D M 2 Replies Last reply
    0
    • dkleber89D Offline
      dkleber89D Offline
      dkleber89
      wrote on last edited by
      #49

      Hallo,

      ich habe gestern leider einen ziemlichen Bug in die Version 1.0.5 eingebaut und published. Ich bin bereits an der Version 1.0.6 die ich in einer halben Stunde ausrolle. Leider geht es aber bis morgen bis die neue Version im ioBroker sichtbar ist.

      BITTE die Version 1.0.5 NICHT installieren!!! Da sind Infinity Loops drinnen.

      Bitte um Entschuldigung hab da schnell schnell was geändert ohne zu Testen weil ich gedacht habe das hat eh keine Auswirkungen 😬

      1 Reply Last reply
      0
      • S Offline
        S Offline
        stm
        wrote on last edited by
        #50

        Hallo,

        ich habe den ioBroker bei einer Suche nach Hausautomationssystemen gefunden, die eine Beckhoff Steuerung einbinden können - eigentlich gibt es nur noch den Home Assistant, der ADS out of the box spricht.

        Bevor ich anfange, mit dem ioBroker zu arbeiten eine Frage/Bitte:

        Soweit ich gelesen habe, funktioniert die Integration nicht allgemein, also Zugriff auf beliebige Variablen in der Steuerung sondern nur zu den bestimmten, die ich einer speziellen Struktur angelegt habe - was bei mir bedeuten würde, im SPS Programm Variablen ein zweites mal in der für ioBroker notwendigen Struktur anzulegen und dann in die bestehenden Variablen umzukopieren- irgendwie unelegant. (Umstellung ist keine Option, da das System auf der Basis von Arrays für Sensoren, Aktuatoren, Zustände etc aufgebaut ist.)

        Besteht die Möglichkeit einer Erweiterung zum Zugriff auf beliebige Variablen der Steuerung?
        Ist das grandios aufwendig ? (Ich kann grad a bisserl Python)
        Oder wurde der Design Ansatz mit einer Struktur gewählt, weil im ADS ReadByName für eine Menge beliebiger Variablen die Performanz unterirdisch wird? und ich damit nicht weiter käme, selbst wenn sich jemand meiner erbarmt, und das reinklopft?

        Ich sag schon mal Danke!

        1 Reply Last reply
        0
        • dkleber89D Offline
          dkleber89D Offline
          dkleber89
          wrote on last edited by
          #51

          Hallo,

          die Struktur wurde deshalb definiert da der Adapter einen automatischen Abgleich gegen diese Struktur macht und die Variablen im ioBroker anlegt. Zudem ist es immer Ratsam eine saubere Schnittstelle in den Systemen zu haben, weil sonst jede Änderung zu Problemen auf der Gegenseite führen kann. Zumal es auch sinnlos wäre jede Variable die nur was zwischenspeichert abzugleichen.

          Zudem stimmt auch das eine Subscription auf alle Variablen zu Performenzproblemen führt.

          Für dein Problem gibt es aus meiner Sicht zwei Möglichkeiten:

          1. In der Steuerung eine Struktur anlegen und über einen Baustein eine Bidirektionale Verbindung erstellen bzw. das ganze dann über Read sowie Write Variablen lösen. Ja ist ein Aufwand aber dann kannst du den Adapter verwenden der den ganzen Rest managed. -> Ich würde an deiner Stelle sogar hingehen die Funktionalität des Adapters testen und schauen ob er deinen Bedürfnissen entspricht. Wenn ja dann das SPS Programm Schritt für Schritt umbauen in dem du die Variablen austauscht.
          2. Du verwendest den Skripting Adapter des ioBroker und bindest die selbe Kommbibliothek ein, wie der Beckhoff Adapter. Dann kannst du jeder Variable die du möchtest Schreiben / Lesen oder auch Subscriptions darauf machen. Das ist dann halt alles individuell für jeder deiner Variablen zu machen.

          Gruß,
          dkleber89

          1 Reply Last reply
          0
          • dkleber89D dkleber89

            @mmeine

            Hallo Markus,

            ich bin immer noch mit Beckhoff dran an dem Problem ... Es ist echt manchmal mega mühsam -> Bis man da mal ne Antwort bekommt kann schon mal nen Monat vergehen. Könntest du mir evtl. nochmal den einen Test machen?

            Hier wäre das Skript das du nur oben bei options mit deinen Daten füllen müsstest:

            var ads = require('node-ads')
             
            var options = {
                //The IP or hostname of the target machine
                host: "10.0.0.2",
                //The NetId of the target machine
                amsNetIdTarget: "5.1.204.160.1.1",
                //The NetId of the source machine.
                //You can choose anything in the form of x.x.x.x.x.x,
                //but on the target machine this must be added as a route.
                amsNetIdSource: "192.168.137.50.1.1",
                //The tcp destination port
                port: 48898
                //The ams source port
                amsPortSource: 32905
                //The ams target port for TwinCat 3 Runtime 1
                amsPortTarget: 851 
            };
            
            var client = ads.connect(options, function () {
                this.getDatatyps(function (err, datatyps) {
                    if (err) {
                        console.log(`Error Code: ${err}`);
                    } else {
                        console.log(JSON.stringify(datatyps, null, 2));
                        this.end();
                    }
                });
            })
            

            Hier bräuchte ich den Fehler den er ausgiebt ... Du hattest da geschrieben das das timeout ist? War da noch eine Zusatzinfo dabei?

            Danke,
            dkleber89

            M Offline
            M Offline
            mmeine
            wrote on last edited by mmeine
            #52

            @dkleber89
            Hallo,

            nach der Sommerpause wieder zurück im Forum um meine Steuerung weiter aufzupeppen.

            Ich hab das script bei mir eingestellt und folgende Log erhalten:

            15:49:12.206	info	javascript.0 Start javascript script.js.Test.Test-Twincat-ADS
            15:49:12.207	info	javascript.0 script.js.Test.Test-Twincat-ADS: registered 0 subscriptions and 0 schedules
            15:49:12.714	info	javascript.0 script.js.Test.Test-Twincat-ADS: Error Code: timeout
            15:49:18.148	info	javascript.0 Stop script script.js.Test.Test-Twincat-ADS
            

            im übrigen habe ich die Zeile

            var ads = require('node-ads')
            

            in

            var ads = require('node-ads-api');
            

            ändern müssen. Ich hoffe da gibt es kein Versionsproblem.
            Gruß

            1 Reply Last reply
            0
            • dkleber89D dkleber89

              Mir ist da grad noch was eingefallen.

              Ich bin ja grade an der Einbindung der BC Runtimes. Dort funktioniert das ganze zwar nicht aber es könnte eine Lösung für die älteren TC2 Runtimes sein die keine Datentypen bereitstellen.

              Wenn du magst kannst du gerne den Adapter aus dem Entwicklungsbranch testen ob der bei dir funktionieren würde.

              ACHTUNG: Auf eigenes Risiko ist definitiv ein Alphatest.

              Installation über "Installieren aus eigener URL" -> "Beliebig" -> "git://github.com/dkleber89/ioBroker.beckhoff.git#7-addOldTc2AndBcSupport"

              Selection_001.png

              Dort auf TC2 < 2.11.... gehen und die *.tpy deines PLC Projektes hochladen. Die restlichen Einstellungen unterscheiden sich nicht vom normalen Verbindungsaufbau. Und auch hier muss die AMS Route freigegeben werden wie sonst auch.

              Gruß,
              dkleber89

              dkleber89D Offline
              dkleber89D Offline
              dkleber89
              wrote on last edited by
              #53

              Hallo @mmeine,

              schade das es da keine zusätzlichen Informationen gibt. Aber ich muss sagen, wenn ich alles was ich jetzt für dieses Problem zusammengesammelt habe anschaue, dann scheint es so zu sein das bei etwas älteren Versionen die Datentypen nicht aus der Steuerung abgerufen werden können.

              Ich weiß nicht ob du die Möglichkeit hast was zu testen:

              @dkleber89 sagte in [Neuer Adapter] Beckhoff ADS:

              Mir ist da grad noch was eingefallen.

              Ich bin ja grade an der Einbindung der BC Runtimes. Dort funktioniert das ganze zwar nicht aber es könnte eine Lösung für die älteren TC2 Runtimes sein die keine Datentypen bereitstellen.

              Wenn du magst kannst du gerne den Adapter aus dem Entwicklungsbranch testen ob der bei dir funktionieren würde.

              ACHTUNG: Auf eigenes Risiko ist definitiv ein Alphatest.

              Installation über "Installieren aus eigener URL" -> "Beliebig" -> "git://github.com/dkleber89/ioBroker.beckhoff.git#7-addOldTc2AndBcSupport"

              Selection_001.png

              Dort auf TC2 < 2.11.... gehen und die *.tpy deines PLC Projektes hochladen. Die restlichen Einstellungen unterscheiden sich nicht vom normalen Verbindungsaufbau. Und auch hier muss die AMS Route freigegeben werden wie sonst auch.

              Gruß,
              dkleber89

              Das wäre theoretisch die Variante als Lösung für dein Problem leider aber ungetestet. Ich hoffe ich komme in nächster Zeit mal dazu mir ein TC2 System auf einem Testsystem zu installieren.

              Gruß,
              dkleber89

              1 Reply Last reply
              0
              • dkleber89D dkleber89

                Mir ist da grad noch was eingefallen.

                Ich bin ja grade an der Einbindung der BC Runtimes. Dort funktioniert das ganze zwar nicht aber es könnte eine Lösung für die älteren TC2 Runtimes sein die keine Datentypen bereitstellen.

                Wenn du magst kannst du gerne den Adapter aus dem Entwicklungsbranch testen ob der bei dir funktionieren würde.

                ACHTUNG: Auf eigenes Risiko ist definitiv ein Alphatest.

                Installation über "Installieren aus eigener URL" -> "Beliebig" -> "git://github.com/dkleber89/ioBroker.beckhoff.git#7-addOldTc2AndBcSupport"

                Selection_001.png

                Dort auf TC2 < 2.11.... gehen und die *.tpy deines PLC Projektes hochladen. Die restlichen Einstellungen unterscheiden sich nicht vom normalen Verbindungsaufbau. Und auch hier muss die AMS Route freigegeben werden wie sonst auch.

                Gruß,
                dkleber89

                M Offline
                M Offline
                mmeine
                wrote on last edited by mmeine
                #54

                @dkleber89
                Hallo,

                hab die URL installiert, danach war dein Adapter von V1.06 auf V1.05 zurückgestuft.
                Komme dann aber nicht weiter. Wo stelle ich TC2 < 2.11.... ein und lade miene *.tpy hoch?
                Hab die alte Instanz gelöscht und ne neue anglegt. Konfigseite sieht genauso aus wie vorher.:man-shrugging:

                Gruß

                1 Reply Last reply
                0
                • dkleber89D Offline
                  dkleber89D Offline
                  dkleber89
                  wrote on last edited by
                  #55

                  @mmeine

                  Hallo mmeine,

                  konnte es bei mir auch nachstellen. Aus irgendeinem Grund aktualisiert da der ioBroker die Konfig Seite nicht sauber. Wenn du den Adapter komplett löscht (Nicht nur die Instanz entfernen sondern auch in der Adapterübersicht ganz rechts in der Spalte auf den Papierkorb klicken) dann kannst du den Adapter über diesen Pfad installieren und das Menü wird angezeigt wie es soll.

                  Warum sich das so Verhält kann ich auch nicht sagen.

                  Gruß,
                  dkleber89

                  M 1 Reply Last reply
                  0
                  • Christian PetersC Offline
                    Christian PetersC Offline
                    Christian Peters
                    wrote on last edited by
                    #56

                    Hallo,

                    Ich bin letztens auf den Beckhoff Adapter gestoßen und bin echt begeistert.
                    Wird an der Implementierung von Strings und Arrays als unterstützte Datentypen noch gearbeitet?

                    Gruß Christian

                    1 Reply Last reply
                    0
                    • dkleber89D Offline
                      dkleber89D Offline
                      dkleber89
                      wrote on last edited by dkleber89
                      #57

                      Hallo Christian,

                      das freut mich natürlich 😄

                      Leider ist es so das ich derzeit überhaupt nicht am Adpater arbeiten kann weil ich schlicht keine Zeit dafür habe. Ich wollte mit den Strings (zumindest mit einer fixen länge schon länger fertig sein -> Die Wahrheit ist aber das ich nicht mal damit angefangen habe.

                      Super wäre natürlich wenn sich jemand finden würde der das Implementiert. Ich werde mich bemühen um das evtl. mal an einem Wochenende reinzustapeln aber versprechen kann ich derzeit nix.

                      Gruß,
                      dkleber89

                      Christian PetersC 1 Reply Last reply
                      0
                      • dkleber89D dkleber89

                        @mmeine

                        Hallo mmeine,

                        konnte es bei mir auch nachstellen. Aus irgendeinem Grund aktualisiert da der ioBroker die Konfig Seite nicht sauber. Wenn du den Adapter komplett löscht (Nicht nur die Instanz entfernen sondern auch in der Adapterübersicht ganz rechts in der Spalte auf den Papierkorb klicken) dann kannst du den Adapter über diesen Pfad installieren und das Menü wird angezeigt wie es soll.

                        Warum sich das so Verhält kann ich auch nicht sagen.

                        Gruß,
                        dkleber89

                        M Offline
                        M Offline
                        mmeine
                        wrote on last edited by mmeine
                        #58

                        @dkleber89
                        Hallo,

                        danke, hab die V1.07 am laufen und die nötigen Einstellungen vorgenommen. Hab die Instanz mehrmals mit kleinsten Änderungen auf der Konfigseite gestartet. Immer kam der Fehler ADS Clien: Error: timeout.
                        Zwischendurch schien es plötzlich einmal funktioniert zu haben, anschließend nicht wieder. Ich bin mir bei den Einstellungen also nicht mehr zu 100% sicher welche da gerade aktuell war.
                        Entweder habe ich "TwinCat2" oder "TwinCat2 <2.11...." eingestellt.
                        Oder ich hatte bei der Zielstruktur ".iobroker" oder "iobroker" eingestellt (Was müsste denn hier drin stehen?)

                        Ergebnis ist folgender Log:

                        2019-10-25 10:55:18.292 - info: host.raspberrypi instance system.adapter.beckhoff.0 started with pid 17823
                        2019-10-25 10:55:20.034 - debug: beckhoff.0 objectDB connected
                        2019-10-25 10:55:20.410 - debug: beckhoff.0 statesDB connected
                        2019-10-25 10:55:21.074 - info: beckhoff.0 starting. Version 1.0.7 in /opt/iobroker/node_modules/iobroker.beckhoff, node: v8.15.1
                        2019-10-25 10:55:21.120 - debug: beckhoff.0 Start establish Connection to PLC
                        2019-10-25 10:55:21.660 - error: beckhoff.0 ADS Client: Error: timeout
                        2019-10-25 10:55:21.664 - info: beckhoff.0 Try to reconnect in 15 seconds
                        2019-10-25 10:55:36.667 - debug: beckhoff.0 Start establish Connection to PLC
                        2019-10-25 10:55:37.237 - error: beckhoff.0 ADS Client: Error: timeout
                        2019-10-25 10:55:37.242 - info: beckhoff.0 Try to reconnect in 15 seconds
                        2019-10-25 10:55:50.300 - debug: beckhoff.0 system.adapter.admin.0: logging false
                        2019-10-25 10:55:52.243 - debug: beckhoff.0 Start establish Connection to PLC
                        2019-10-25 10:55:52.506 - info: beckhoff.0 Connected to PLC. State of PLC: RUN
                        2019-10-25 10:55:57.397 - debug: beckhoff.0 PLC States received
                        2019-10-25 10:55:57.677 - debug: beckhoff.0 Release all Notification Handles first.
                        2019-10-25 10:55:57.679 - debug: beckhoff.0 All Notification Handles are released.
                        2019-10-25 10:55:57.727 - debug: beckhoff.0 Send Subscription for: .iobroker.TempAussen to PLC
                        2019-10-25 10:55:58.449 - debug: beckhoff.0 Subscription for: .iobroker.TempAussen done.
                        2019-10-25 10:55:58.476 - debug: beckhoff.0 Read Symbol Value from PLC to ioBroker: .iobroker.TempAussen -> 13.2
                        

                        Ich vermute es ist ein Geschwindigkeitsproblem. Kann man irgendwo die Timeout -Einstellung ändern und die Zeit etwas höher schrauben, bevor die Fehlermeldung kommt?

                        Gruß
                        Markus

                        1 Reply Last reply
                        0
                        • dkleber89D Offline
                          dkleber89D Offline
                          dkleber89
                          wrote on last edited by
                          #59

                          @mmeine
                          Aus meiner Sicht müsste es wie folgt sein:

                          TwinCat2 < 2.11...
                          Zielstruktur immer ohne Punkt
                          Und die .tpy Datei deines Projektes in der Konfigseite hochladen.

                          Die Timeoutzeit kannst du über "Intervall für Verbindungsaufbau" einstellen. Glaube aber weniger das es an dem liegt.

                          Gruß,
                          dkleber89

                          M 1 Reply Last reply
                          0
                          • dkleber89D dkleber89

                            @mmeine
                            Aus meiner Sicht müsste es wie folgt sein:

                            TwinCat2 < 2.11...
                            Zielstruktur immer ohne Punkt
                            Und die .tpy Datei deines Projektes in der Konfigseite hochladen.

                            Die Timeoutzeit kannst du über "Intervall für Verbindungsaufbau" einstellen. Glaube aber weniger das es an dem liegt.

                            Gruß,
                            dkleber89

                            M Offline
                            M Offline
                            mmeine
                            wrote on last edited by mmeine
                            #60

                            @dkleber89

                            Hallo,

                            habs jetzt glaube am laufen. Das timeout-Problem gab es nur als ich von der Ferne auf iobrober zugegriffen habe. Jetzt aus dem internen Netz scheint es zu funktioniern. Vielleich hat sich aber über Nacht der Raspberry etwas ausruhen können. 🙂

                            Also vielen Dank, für deinen schnellen und kreativen Support. Wirst du diese version später in die offiziellen Updates einbinden, oder bleibt es eine Beta-Version?

                            Super und viele Grüße.

                            1 Reply Last reply
                            0
                            • dkleber89D Offline
                              dkleber89D Offline
                              dkleber89
                              wrote on last edited by
                              #61

                              Hallo @mmeine,

                              okay ja super 🙂

                              Kein Thema ich sag danke für das mühevolle Testen so über die Ferne. Ich möchte das auf jeden Fall in das offizielle Repo bringen, da es sicher noch mehr Personen gibt die eine etwas ältere TC2 Version am laufen haben.

                              Ich würde dich aber, damit das sicher alles sauber Funktioniert, um ein paar Sachen bitten:

                              • Kannst du mal in deinem SPS Projekt eine Variable hinzufügen und eine entfernen und die aktualisierte *.tpy hochladen, um zu schauen ob das auch funktioniert?
                              • Mir nach einer Zeit so ein bis zwei Wochen eine Rückmeldung geben ob denn alles auch stabil läuft?
                              • Evtl. als Gegenprobe mal auf das normale TC2 zurückstellen und schauen ob es da jetzt noch immer nicht funktioniert.
                              • Sonstige Rückmeldung falls es noch was zu verbessern gibt.

                              Wäre super wenn das geht. Dann würde ich es als Update publishen.

                              Gruß,
                              dkleber89

                              M 1 Reply Last reply
                              0
                              • dkleber89D dkleber89

                                Hallo Christian,

                                das freut mich natürlich 😄

                                Leider ist es so das ich derzeit überhaupt nicht am Adpater arbeiten kann weil ich schlicht keine Zeit dafür habe. Ich wollte mit den Strings (zumindest mit einer fixen länge schon länger fertig sein -> Die Wahrheit ist aber das ich nicht mal damit angefangen habe.

                                Super wäre natürlich wenn sich jemand finden würde der das Implementiert. Ich werde mich bemühen um das evtl. mal an einem Wochenende reinzustapeln aber versprechen kann ich derzeit nix.

                                Gruß,
                                dkleber89

                                Christian PetersC Offline
                                Christian PetersC Offline
                                Christian Peters
                                wrote on last edited by
                                #62

                                @dkleber89 Würde mich gerne am Projekt beteiligen. Wo müsste angesetzt werden um Strings zu ermöglichen.
                                Kann nichts versprechen, will es aber mal probieren.

                                1 Reply Last reply
                                0
                                • dkleber89D Offline
                                  dkleber89D Offline
                                  dkleber89
                                  wrote on last edited by
                                  #63

                                  Hallo @Christian-Peters,

                                  das ist natürlich immer gut 😄

                                  Der Adapter basiert auf dieser Library.
                                  Diese Library hat einen String Datentyp mit einer fixen länge von 80 Zeichen und einer der flexibel ist.

                                  Der 1. Schritt ist über Skripte (entweder eigene Node Runtime oder ioBroker Javascript Adapter) herauszufinden wie sich der Datentyp verhält:

                                  • Fixe Länge:
                                    • Was ist wenn der String in der Steuerung zu lang oder zu kurz ist
                                    • Was passiert wenn der String im ioBroker zu lang oder zu kurz ist
                                  • Variable Länge:
                                    • Sollte gleich auf die flexible Länge gesetzt werden
                                    • Wie kann das aus der Auflistung der Datentypen ausgelesen werden
                                    • Was passiert wenn der String im ioBroker zu lang oder zu kurz ist

                                  Das müssten so im groben die Punkte sein die vor dem Implementieren herausgefunden werden müssen.

                                  Dann kommt der schöne Teil ... Implementieren 😉

                                  Gruß,
                                  dkleber89

                                  Christian PetersC 1 Reply Last reply
                                  0
                                  • Del-Didier A-GD Offline
                                    Del-Didier A-GD Offline
                                    Del-Didier A-G
                                    wrote on last edited by
                                    #64

                                    Hallo,

                                    Entschuldigung für mein Deutsch, aber ich bin Belgier.
                                    Ich habe Ihren ADS-Adapter für Beckhoff entdeckt und finde ihn großartig.
                                    Also habe ich das mit einer cx5020 getestet, aber ich habe ein kleines Stabilitätsproblem.
                                    Die Verbindung zur SPS wird alle 10 Minuten unterbrochen.
                                    Würdest du eine Idee haben warum?

                                    beckhoff.0 2019-11-02 14:33:39.364 info Connected to PLC. State of PLC: RUN
                                    beckhoff.0 2019-11-02 14:33:24.345 info Try to reconnect in 15 seconds
                                    beckhoff.0 2019-11-02 14:32:36.874 info Try to reconnect in 15 seconds
                                    beckhoff.0 2019-11-02 14:32:36.873 error ADS Client: timeout
                                    beckhoff.0 2019-11-02 14:22:51.041 info Connected to PLC. State of PLC: RUN
                                    beckhoff.0 2019-11-02 14:22:36.029 info Try to reconnect in 15 seconds
                                    beckhoff.0 2019-11-02 14:22:36.028 error ADS Client: Error: read ECONNRESET
                                    beckhoff.0 2019-11-02 14:22:32.376 info Connected to PLC. State of PLC: RUN
                                    beckhoff.0 2019-11-02 14:22:08.436 info Try to reconnect in 15 seconds
                                    beckhoff.0 2019-11-02 14:22:08.435 error ADS Client: timeout
                                    beckhoff.0 2019-11-02 14:12:22.562 info Connected to PLC. State of PLC: RUN
                                    beckhoff.0 2019-11-02 14:12:07.545 info Try to reconnect in 15 seconds
                                    beckhoff.0 2019-11-02 14:11:20.052 info Try to reconnect in 15 seconds
                                    beckhoff.0 2019-11-02 14:11:20.051 error ADS Client: timeout
                                    beckhoff.0 2019-11-02 14:01:34.241 info Connected to PLC. State of PLC: RUN
                                    beckhoff.0 2019-11-02 14:01:19.229 info Try to reconnect in 15 seconds
                                    beckhoff.0 2019-11-02 14:01:19.228 error ADS Client: Error: read ECONNRESET
                                    beckhoff.0 2019-11-02 14:01:15.839 info Connected to PLC. State of PLC: RUN
                                    beckhoff.0 2019-11-02 14:00:51.851 info Try to reconnect in 15 seconds
                                    beckhoff.0 2019-11-02 14:00:51.851 error ADS Client: timeout
                                    beckhoff.0 2019-11-02 13:50:51.042 info Connected to PLC. State of PLC: RUN
                                    beckhoff.0 2019-11-02 13:50:36.026 info Try to reconnect in 15 seconds
                                    beckhoff.0 2019-11-02 13:50:36.026 error ADS Client: Error: read ECONNRESET
                                    beckhoff.0 2019-11-02 13:50:08.736 info Try to reconnect in 15 seconds
                                    beckhoff.0 2019-11-02 13:50:08.736 error ADS Client: timeout
                                    beckhoff.0 2019-11-02 13:40:07.834 info Connected to PLC. State of PLC: RUN
                                    beckhoff.0 2019-11-02 13:39:52.826 info Try to reconnect in 15 seconds
                                    beckhoff.0 2019-11-02 13:39:52.826 error ADS Client: Error: read ECONNRESET
                                    beckhoff.0 2019-11-02 13:39:24.958 info Try to reconnect in 15 seconds
                                    beckhoff.0 2019-11-02 13:39:24.957 error ADS Client: timeout
                                    beckhoff.0 2019-11-02 13:29:24.432 info Connected to PLC. State of PLC: RUN
                                    beckhoff.0 2019-11-02 13:29:09.427 info Try to reconnect in 15 seconds
                                    beckhoff.0 2019-11-02 13:29:09.426 error ADS Client: timeout

                                    Viele Grüße

                                    Moustik

                                    1 Reply Last reply
                                    0
                                    • dkleber89D Offline
                                      dkleber89D Offline
                                      dkleber89
                                      wrote on last edited by
                                      #65

                                      Hallo @Del-Didier-A-G,

                                      ehrlich gesagt bin ich da komplett überfragt.

                                      Kannst du mir bitte den Adapter auf den Loglevel Debug stellen und das Log posten? Vielleicht kann man da noch etwas mehr sehen.

                                      Ansonsten kannst du nur schauen was für Operationen du alle 10 Minuten ausführst. z.B. Wird eine bestimmte Variable alle 10 Minuten geschrieben etc.

                                      Gruß,
                                      dkleber89

                                      1 Reply Last reply
                                      0
                                      • dkleber89D dkleber89

                                        Hallo @Christian-Peters,

                                        das ist natürlich immer gut 😄

                                        Der Adapter basiert auf dieser Library.
                                        Diese Library hat einen String Datentyp mit einer fixen länge von 80 Zeichen und einer der flexibel ist.

                                        Der 1. Schritt ist über Skripte (entweder eigene Node Runtime oder ioBroker Javascript Adapter) herauszufinden wie sich der Datentyp verhält:

                                        • Fixe Länge:
                                          • Was ist wenn der String in der Steuerung zu lang oder zu kurz ist
                                          • Was passiert wenn der String im ioBroker zu lang oder zu kurz ist
                                        • Variable Länge:
                                          • Sollte gleich auf die flexible Länge gesetzt werden
                                          • Wie kann das aus der Auflistung der Datentypen ausgelesen werden
                                          • Was passiert wenn der String im ioBroker zu lang oder zu kurz ist

                                        Das müssten so im groben die Punkte sein die vor dem Implementieren herausgefunden werden müssen.

                                        Dann kommt der schöne Teil ... Implementieren 😉

                                        Gruß,
                                        dkleber89

                                        Christian PetersC Offline
                                        Christian PetersC Offline
                                        Christian Peters
                                        wrote on last edited by Christian Peters
                                        #66

                                        @dkleber89 Habe die Library mit Verschiedenen Strings getestet.

                                        • STRING mit Fixer Länge im IoBroker sowie in der Steruerung funktionieren.
                                          Solange diese 80 Zeichen nicht überschreiten.
                                        • Bei Strings mit Variablen Längen muss der String in der SPS gleich oder größer als der im IoBroker sein. Sonst gibt es den Fehler "Value out of bounds" oder "parameter size not correct"
                                        • String im IoBroker die kleiner als der Text der übertragen werden soll sind führen zu einem kürzen des Textes, aber zu keinem Fehler.

                                        So wie ich das sehe, ist man mit den Strings mit Fixer länge
                                        (ads.STRING nicht ads.string(10)) am besten aufgestellt. Die Leerzeichen in den Strings werden ja eh abgeschnitten .

                                        Bei der Implementierung komme ich leider nicht weiter. Mit der Erweiterung der knownDatatypes ist es wohl nicht getan 🙂 Wo müsste dort angesetzt werden ?

                                        1 Reply Last reply
                                        0
                                        • dkleber89D dkleber89

                                          Hallo @mmeine,

                                          okay ja super 🙂

                                          Kein Thema ich sag danke für das mühevolle Testen so über die Ferne. Ich möchte das auf jeden Fall in das offizielle Repo bringen, da es sicher noch mehr Personen gibt die eine etwas ältere TC2 Version am laufen haben.

                                          Ich würde dich aber, damit das sicher alles sauber Funktioniert, um ein paar Sachen bitten:

                                          • Kannst du mal in deinem SPS Projekt eine Variable hinzufügen und eine entfernen und die aktualisierte *.tpy hochladen, um zu schauen ob das auch funktioniert?
                                          • Mir nach einer Zeit so ein bis zwei Wochen eine Rückmeldung geben ob denn alles auch stabil läuft?
                                          • Evtl. als Gegenprobe mal auf das normale TC2 zurückstellen und schauen ob es da jetzt noch immer nicht funktioniert.
                                          • Sonstige Rückmeldung falls es noch was zu verbessern gibt.

                                          Wäre super wenn das geht. Dann würde ich es als Update publishen.

                                          Gruß,
                                          dkleber89

                                          M Offline
                                          M Offline
                                          mmeine
                                          wrote on last edited by mmeine
                                          #67

                                          Moin,moin..

                                          also nochmal herzlichtsen Dank für deine Arbeiten. Super Leistung. Hier meine Erkenntnisse nach 2 Wochen Einsatz:

                                          Kannst du mal in deinem SPS Projekt eine Variable hinzufügen und eine entfernen und die aktualisierte *.tpy hochladen, um zu schauen ob das auch funktioniert?

                                          Habe ich mehrmals gemacht, hat ohne Probeme funktioniert.

                                          Mir nach einer Zeit so ein bis zwei Wochen eine Rückmeldung geben ob denn alles auch stabil läuft?

                                          Hab bisher keine Probleme feststellen können. Läuft soweit stabil.

                                          Evtl. als Gegenprobe mal auf das normale TC2 zurückstellen und schauen ob es da jetzt noch immer nicht funktioniert.

                                          Normales TC2 bringt immer noch timeout.

                                          Sonstige Rückmeldung falls es noch was zu verbessern gibt.

                                          Nach welchem Schema aktualisierst/änderst du die Variablen?
                                          Siehst du die Möglichkeit auch außerhalb der "iobroker_struct" manuell einzelne Objekt/Variablen zu verknüpfen?
                                          z.B. welche, die man manuell als Objekt hinzufügt wie "beckhoff.0.plc.P_Bel_Wohnen.TasterUpDown"?
                                          ("TasterUpDown" wäre in diesem Fall eine existierende lokale Variable in dem Programm "P_Bel_Wohnen" im TwinCAT)

                                          Gruß Markus.

                                          1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate
                                          FAQ Cloud / IOT
                                          HowTo: Node.js-Update
                                          HowTo: Backup/Restore
                                          Downloads
                                          BLOG

                                          135

                                          Online

                                          32.4k

                                          Users

                                          81.3k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe