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
    197

  • 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
    #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
                                        • dkleber89D Offline
                                          dkleber89D Offline
                                          dkleber89
                                          wrote on last edited by
                                          #68

                                          Hallo,

                                          Klingt ja schon mal gut @Christian-Peters 🙂

                                          Ja hätte vom Gefühl her auch erst mal mit der fixen Länge angefangen. Dann kann immer noch geschaut werden ob noch mehr benötigt wird.
                                          Bei der Implementierung ist auf jeden Fall noch mehr zu tun. Ich glaube auch noch zu wissen das bei den Strings die Informationen für die Strings anderst formatiert in der ausgelesenen "Symbol List" stehen.

                                          ToDo:

                                          • Wie liegen die Stringinformationen vor (Symbol List und Datatyp List)
                                          • Anpassung von plcVarSyncronizing je nach dem wie die Stringinfos vorliegen.
                                            • Wichtig ist dort natürlich auch zu prüfen ob es evtl. Strings sind die eine falsche Länge in der Steuerung haben
                                          • Anpassung createObjectAndHandles je nach dem wie die Stringinfos vorliegen.
                                          • Anpassung des tpyParser für die älteren TC2 Systeme

                                          @mmeine
                                          Danke dir für die Testerei ... Da ich selbst kein so ein System habe und TC 2 auf keinem x64 System läuft bin ich aufgeschmissen wenn mir niemand testet.

                                          Ich werde es morgen oder so Releasen mit der Version 1.1.0

                                          Gruß,
                                          dkleber89

                                          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

                                          169

                                          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