Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. [Adapter] Beckhoff ADS

    NEWS

    • Monatsrückblick - April 2025

    • Minor js-controller 7.0.7 Update in latest repo

    • Save The Date: ioBroker@Smart Living Forum Solingen, 14.06.

    [Adapter] Beckhoff ADS

    This topic has been deleted. Only users with topic management privileges can see it.
    • M
      mmeine last edited by

      Hallo,

      vielen Dank erstmal für deine Mühe. Hier meine Ergebnisse:

      Test 1 bis 3 funktionieren.

      Test 4 bringt Fehler: timeout

      Ich hoffe das hilft.

      Gruß Markus

      dkleber89 1 Reply Last reply Reply Quote 0
      • M
        mmeine last edited by

        Hallo dkleber89,

        danke erstmal für das Script. Hab es gleich erweitert um die Schnittstelle zur Beckhoff mit meinen gewünschten Variablen herzustellen (ohne mein PLC-Programm umzustrukturieren). Ich nutze vorerst MultiRead, das funktioniert soweit prima und würde mir auch ausreichen. Wie hast du in deinem Adapter das mit der beschriebenen automatischen Synchronisation der Variablen bei Änderung gelöst. Die Werte über eine zeitabhängige Abfrage (z.B. alle Sekunde) abzurufen erscheint mir bei einigen Werten im Hinblick auf die Echtzeitfähigkeit zu ungenau.

        Gruß Markus.

        1 Reply Last reply Reply Quote 0
        • dkleber89
          dkleber89 last edited by

          Hallo,

          für mich stellt sich jetzt noch die Frage geht das nicht wegen einer Einstellung bei TwinCat oder liegt das tatsächlich daran das dies eine ältere Version ist.

          Auf jeden Fall ist es so das diese Datentypabfrage für das funktionieren des Adapters essenziell ist bzw. sobald es bei den Variablen eine Verschachtelung gibt ist dies zwingend notwendig.

          Ich werde bei Beckhoff mal nachfragen was da das Problem sein könnte.

          Ich werde das Versuchen einzubauen das diese Datentypanfrage nur benutzt wird wenn ich sie auch wirklich brauche (Verschachtelung). Dann wäre es möglich auch für TwinCat Systeme die dies noch nicht können.

          Es gibt in dieser Bibliothek node-ads-api die Möglichkeit die Variablen der PLC zu subscriben … Dann wird bei jeder Variablenänderung auf der PLC ein Event im Skript ausgelöst.

          Gruß

          1 Reply Last reply Reply Quote 0
          • N
            Nyquist last edited by

            Hallo,

            ich wollte den ADS Adapter gerade testen, bei mir kommt beim öffnen und beim speichern der Adapter Konfiguration folgende Meldung:

            "Please implement save function in your admin/index.html"

            Meine Einstellungen werden dann nicht gespeichert.

            Woran kann das liegen?

            Infos:

            ioBroker.admin 3.5.10

            Installierte Adapter Version: 0.2.0

            Log bringt keine Einträge

            Ich verwende den Internet Explorer 11

            Version 11.0.9600 Update Version 11.0.43

            Gruß

            1 Reply Last reply Reply Quote 0
            • dkleber89
              dkleber89 last edited by

              Hallo,

              zuerst mal die Information das der Adapter leider bei BC´s nicht funktionieren wird da benötigte Systeminformationen nicht in der BC Laufzeit abgespeichert werden. Ich bin aber derzeit dran am schauen ob ich für die BC eine manuelle Variante bereitstellen kann.

              Zu der Geschichte mit dem TC2 in der Version v2.11(Build 2240) wollte mir der Herr bei Beckhoff vor Weihnachten nicht weiterhelfen und jetzt über die Feiertage erwarte ich nix. Ich werde der Sache im neuen Jahr nachgehen.

              Zum Problem mit dem IE 11 -> Auf diesem Browser hab ich nicht getestet und deswegen was gemacht was der doofe IE nicht kann …

              Werd ich aber schnell richten ... Ab morgen sollte die neue Version 0.2.1 über den ioBroker downloadbar sein.

              Gruß

              1 Reply Last reply Reply Quote 0
              • N
                Nyquist last edited by

                Hallo,

                mit dem Adapter 0.2.1 kann ich den Adapter mit dem Internet Explorer 11 konfigurieren.

                Mein Plan war eigentlich, den ioBroaker auf dem CX51xx mit Windows embedded Standard laufen zu lassen, auf dem auch die PLC läuft, damit ich keinen zusätzlichen raspberry pie laufen lassen muss, ist das möglich oder geplant?

                Gruß

                1 Reply Last reply Reply Quote 0
                • dkleber89
                  dkleber89 last edited by

                  Hallo,

                  das hängt nicht vom Adapter ab ob das auf dem CX läuft und so auf die schnelle hängt es auch nicht vom ioBroker ab.

                  Du müsstest es hinkriegen das der Node.js Server auf dieser Plattform läuft -> Soll heißen mit den Binaries von Github eigene Builds erstellen und diese lauffähig kriegen (Wenn das überhaupt möglich ist -> keine Ahnung, Vielleicht hat das aber auch schon jemand gemacht) wenn dann der CX auch noch halbwegs Arbeitsspeicher hat und nicht ne ganz lahme CPU würde sicher der ioBroker auch drauf laufen.

                  Gruß

                  1 Reply Last reply Reply Quote 0
                  • N
                    Nyquist last edited by

                    Hallo,

                    der ioBroaker läuft auf dem CX.

                    Ich dachte ich gebe die lokale NetId an und den Port der PLC Task 350, andem ich die Symbole erzeuge, und würde so die ADS Verbindung aufbauen können.

                    Die IP Adresse will ich eigentlich gar nicht angeben weil ich ja über keinen TCP Port raus muss. Da ich aber eine angeben muss, hab ich die von der Netzwerkkarte angegeben.

                    Der Adapter meldet:

                    Verbunden mit Host –> wahr

                    Lebenszeichen --> wahr

                    Verbunden mit Beckhoff --> falsch

                    Der Log bringt:

                    ADS Client: Error: connect ECONNREFUSED x.x.x.x:350

                    Gruß

                    1 Reply Last reply Reply Quote 0
                    • dkleber89
                      dkleber89 last edited by

                      Hallo,

                      Achtung der TCP Port und der AMS Port sind zwei paar Schuhe.

                      Den Port den du im Adapter einstellen kannst ist der TCP Port und der sollte wenn du nichts verändert hast 48898 sein. Der AMS Port ist fix und es wird je nach dem ob TC2 oder 3 ausgewählt ist der richtige hergenommen (Auch hier gilt wenn du nicht manuell herumgeschraubt hast).

                      Bei der IP-Adresse kannst du natürlich deine IP-Adresse der Netzwerkkarte eingeben in der Regel wird aber die Loopback-Adresse verwendet -> 127.0.0.1

                      Wäre vielleicht super wenn du noch schreiben könntest was berücksichtigt werden muss um Node.js auf ein Windows Embedded Standard zu bringen. Kann evtl. mal jemand brauchen.

                      Gruß

                      1 Reply Last reply Reply Quote 0
                      • N
                        Nyquist last edited by

                        Hallo,

                        das war der entscheidende Hinweis, jetzt klappt es bei mir auch 🙂

                        Zusammenfassung:

                        ioBroaker auf dem CX installiert, auf dem auch TwinCAT 3 XAR läuft.

                        Betriebssystem –> Windows embedded Standard 7 (nicht das CE Betriebssystem Windows embedded compact 7) somit konnte ich die Windows Installationsroutine nutzen.

                        Route auf dem CX eingetragen mit AMSNetId vom Adapter (freie AmsNetId) und Loopback Addresse 127.0.0.1

                        In der Adapter Konfiguration:

                        Ziel IP: 127.0.0.1 (Loopback)

                        Ziel AmsNetId --> NetId CX

                        ZielTCP Port --> 48898 (default)

                        Adapter AmsNetId --> NetId aus der Route

                        Adapter AMS Port --> 32905

                        @dkleber89 herzlichen Dank für die Unterstützung und die Arbeit

                        Gruß

                        1 Reply Last reply Reply Quote 0
                        • M
                          MM62 last edited by

                          Hallo, ich bin an dieser Stelle neu und habe Probleme.

                          Mein IoBrocker läuft auf einem Rasspberry Pi (192.168.2.120) mit dem ADS-Adapter.

                          Die vorhandene Haussteuerung ist ein Cx2030 mit TC3 V4022.20 (192.168.2.107).

                          Den ADS-Adapter im IoBroker bekomme ich nicht zum laufen. (Verbunden mit Beckhoff: Falsch)

                          In der AdapterConfig habe ich folgendes eingetragen:

                          Ziel IP-Adresse : 192.168.2.107

                          Ziel AMS-Net-ID : 192.168.2.107.1.1

                          Ziel Port :48898

                          Ziel Variablentabelle: GVL_IOBroker ( Hier sind die Lese- und Schreib-Variablen enthalten)

                          Ich habe schon einige Routen eingetragen und getestet, aber der Adapter scheint diese nicht zu finden.

                          Wie muß dann die Route von der SPS zum RaspPi aussehen und was bedeutet die Opionale "Adapter AMS-Net-ID"?

                          Als Fehlermeldung bekommen ich im Adapter sofort und ständig "Firing 'Write after End' Error"

                          Schon mal Danke für einen Tipp

                          1 Reply Last reply Reply Quote 0
                          • dkleber89
                            dkleber89 last edited by

                            Hallo,

                            das mit der Fehlermeldung ist ein Bug der mir bekannt ist … Hab im Moment aber keine Zeit um mich da mal länger damit zu beschäftigen. Dieser ist aber nicht kritisch und beeinträchtigt nicht die Funktion des Adapters.

                            Adapter stoppen ... Deine Einstellungen auf dem CX und dem Adapter sauber machen ... Wieder starten

                            So wirklich weiterhelfen kann ich dir schlecht, es gibt viele Möglichkeiten warum die Verbindung nicht aufgebaut werden kann.

                            • Ziel AMS Net ID ist richtig? Diese muss ja nicht zwingend den gleichen Anfang wie die IP haben
                            • Ziel Port richtig? Dies ist der Defaultport kann aber auch ein anderer sein sofern das mal geändert wurde
                            • Ziel Port in der CX Firewall freigegeben oder Firewall deaktiviert?
                            • Die Route auf dem CX richtig eingetragen -> Remote IP und AMS Net ID muss mit den Daten des Raspi bzw. des Adapters zusammenpassen. Deswegen gibt es ja auch den Eintrag Adapter AMS-Net-ID falls du da eine spezielle ID haben möchtest
                            • Hast du die Einstellung im TC3 nach Doku gemacht? -> Symbole erzeugen?

                            Bitte nochmals alles Checken ansonsten die Screenshots von den Routen und den Firewalleinstellungen der CX posten. Zusätzlich auch noch die Einstellungen im Adapter posten.

                            Gruß

                            1 Reply Last reply Reply Quote 0
                            • M
                              MM62 last edited by

                              Hallo dkleber89,

                              mir ist im Tc3-Projekt noch nicht alles klar. Daher hier einige Fragen dazu.

                              1.

                              Welche Schnittstelle hast du für ADS freigegeben, X000 oder X001.

                              2.

                              Hast du evtl eine EAP-Protokoll auf Schnittstelle X001(192.168.2.106) eingefügt und dort das ADS freigegeben? Programmiert wird dann auf X000 (192.168.2.107)

                              3.

                              Ist auf dem Cx noch ein Tool installiert worden?

                              Weil der Adapter immer

                              ****"Add Support for Compact mode (js-Controller 2.0 Feature)" und

                              "Adding Tags manually for some Runtimes" und

                              "Firing 'Write after End' Error"****

                              als Fehler oder Status meldet.

                              Ich habe alle möglichen Kombinationen mit Port, AmsNetId, oder Schnittstelle

                              getestet. Firewall ist auch ausgeschaltet bzw Freigabe der Ports erteilt. Die Fehlermeldungen bleiben immer die gleichen.

                              Wenn die Verbindung von IoBroker und TwinCat klappen würde, wäre das echte eine coole Sache um die Dinge zu verbinden. Leider habe ich nicht jeden Abend Zeit um dort was zu testen, aber evtl kannst du mit meinen Einstellungen oder Fragen was anfangen.

                              Hier meine Einstellungen: 12679_einstellungen_in_tc3.zip

                              Mit würde auch ein Beispiel Tc3-Projekt etwas weiterhelfen, evtl mit dem du getestet hast.

                              Danke nochmal.

                              1 Reply Last reply Reply Quote 0
                              • dkleber89
                                dkleber89 last edited by

                                Hallo,

                                auf der Beckhoff habe ich garnix gemacht bis auf das was in der Anleitung steht.

                                Soll heißen ->

                                • Den Haken bei Symbole erzeugen aktiviert und die Route im Router hinzugefügt.
                                • Die Route hinzugefügt. Auf der Beckhoff ist Remote der Adapter. Also die IP-Adresse des ioBrokers und die AMS-Net-Id der Adapters (Eintrag im Bereich optional)
                                • Auf der Firewall der Beckhoff oder einer anderen Firewall die evtl. noch dazwischen hängt muss natürlich der TCP und UDP Port eingehend freigegeben werden. Hier die Beckhoff Infosys

                                Wichtig noch der Ziel TCP Port muss natürlich auf Default bleiben -> Sonst müsste das auf der Beckhoff umgestellt werden. Falls du das evtl. gemacht hast dann müssten zusätzlich logischerweise auch ein anderer Port in der Firewall geöffnet werden.

                                Das sollte es gewesen sein.

                                Adding Support for Compact mode und firing write after end error kannst vorerst mal ignorieren.

                                Zu deinen Screens:

                                • Also nur zur Sicherheit: Du darfst nicht die EtherCat Schnittstelle verwenden sondern nur die TCP/IP also über die du dich auch vom Engineering oder normalen Netzwerk aus verbindest.
                                • Im Router beim Routen hinzufügen unten immer IP Address anstatt Host Name verwenden.
                                • Auf das EtherCat Device kannst du nicht zugreifen -> deswegen nützt es auch nix da was aktivieren -> es kann nur auf die CX mit der TwinCat Runtime zugegriffen werden. Direktzugriff auf die ADS Feldgeräte ist derzeit mit dem Adapteraufbau nicht möglich.

                                Viel mehr weiß ich leider im Moment auch nicht.

                                Gruß

                                1 Reply Last reply Reply Quote 0
                                • dkleber89
                                  dkleber89 @mmeine last edited by 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 1 Reply Last reply Reply Quote 0
                                  • dkleber89
                                    dkleber89 last edited by

                                    Hallo Zusammen,

                                    bei dem Beckhoff Adapter hat ein User derzeit gerade das Problem, das wenn auf einem TC2 System die Configuration über den Systemmanager geladen wird, keine Variablen mehr von der Steuerung in den ioBroker gesynct werden.

                                    Meine Vermutung ist dadurch das weder der Socket geschlossen wird noch die PLC state von Run auf Stop geht, der Adapter gar nix von dem Neustart mitbekommt. Die ganzen Subscriber sind aber in der Steuerung abgelöscht.

                                    Da ich kein TC2 System habe, kann ich es aber nicht nachstellen.

                                    Hat jemand von euch auch so ein Problem oder kann es nachstellen?

                                    Github Issue: https://github.com/dkleber89/ioBroker.beckhoff/issues/12

                                    Gruß

                                    Andrey2509 created this issue in dkleber89/ioBroker.beckhoff

                                    closed The driver does not detect a hard reset (power loss) plc. #12

                                    1 Reply Last reply Reply Quote 0
                                    • D
                                      damichi85 last edited by

                                      Hallo dkleber89,

                                      seid ihr in dem Fall "Twincat 2.11" schon weiter gekommen?
                                      Ich habe ein solches System und die gleiche Fehlermeldung.
                                      Soll ich was testen auf dem System, das dich weiter bringt?

                                      Viele Grüße
                                      Michi

                                      1 Reply Last reply Reply Quote 0
                                      • dkleber89
                                        dkleber89 last edited by dkleber89

                                        Hallo Michi,

                                        sorry war schon ewig nicht mehr aktiv hier ... In den Sommermonaten bin ich eher weniger am PC.

                                        Nein wir sind nicht weiter ... mit den TwinCat 2 Systemen gibt es generell immer wieder Probleme. Das hier im Thread bekannte Problem (Variablensync bei älteren TC2 Systemen), zu keines Mengengerüst (nach 64 Variablen ist fertig) und aktuell versuche ich gerade die BC Steuerungen über ADS anzusprechen scheint aber nicht zu funktionieren. Keine Ahnung wo das Problem ist.

                                        Leider ist der Support in solchen Sachen von Beckhoff, sagen wir mal überschaubar 😉

                                        Ich denke testen bringt nur was, wenn sich jemand hinsetzt und eine Testumgebung aufsetzt, damit direkt ein debugging des Adapters durchgeführt werden kann. Leider habe ich selbst kein so ein System um das zu machen.

                                        Gruß,
                                        dkleber89

                                        1 Reply Last reply Reply Quote 0
                                        • dkleber89
                                          dkleber89 last edited by

                                          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

                                          dkleber89 M 2 Replies Last reply Reply Quote 0
                                          • dkleber89
                                            dkleber89 last edited by

                                            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 Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

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

                                            1.0k
                                            Online

                                            31.6k
                                            Users

                                            79.4k
                                            Topics

                                            1.3m
                                            Posts

                                            beckhoff
                                            38
                                            227
                                            36394
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo