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

    • 15. 05. Wartungsarbeiten am ioBroker Forum

    • Monatsrückblick - April 2025

    • Minor js-controller 7.0.7 Update in latest repo

    [Adapter] Beckhoff ADS

    This topic has been deleted. Only users with topic management privileges can see it.
    • Christian Peters
      Christian Peters @dkleber89 last edited by Christian Peters

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

        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 Reply Quote 0
        • dkleber89
          dkleber89 last edited by

          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 Reply Quote 0
          • S
            stm last edited by

            Subj: Fehlermeldung beim Steuerungszugriff adsClientGetSymbolsError: timeout

            Hallo,

            ich fange an, mich in den iobroker einzuarbeiten, und da komm ich sofort am ADS Adapter vorbei, da mein Haus auf einer Beckhoff Steuerung mit TC2.11 läuft.

            Das SPS Programm wird von einem Hilfsprogram, dem sog. Building Automation Framework erzeugt - es entstehen dabei zwei Tasks: Control Task und Subsystem Task

            Bei keiner der zwei Tasks kann ich im Beckhoff System Manager das "Create Symbols" anwählen - das ist ausgegraut. Scheint vorzukommen, da bei der ADS node Library der Satz " To do this click on your task and then enable the checkbox before Create symbols (if he is not disabled). " steht.

            Also: Route zum Raspberry Pi eingerichtet, im iobroker Adapter die Konfiguration eingegeben....scheint alles zu passen....

            nur der Fehler:

            beckhoff.0	2019-11-19 22:35:49.970	error	(5047) adsClientGetSymbolsError: timeout
            beckhoff.0	2019-11-19 22:35:49.442	info	(5047) Connected to PLC. State of PLC: RUN
            beckhoff.0	2019-11-19 22:35:49.299	info	(5047) starting. Version 1.0.6 in /opt/iobroker/node_modules/iobroker.beckhoff, node: v10.17.0
            

            Also wohl alle Adressen OK. Könnte es noch an den Ports liegen?

            Im Twincat PLC Control, also der Datei zum Erzeugen des SPS Programmes habe ich Symbole erzeugen angewählt.

            Grundsätzlich scheinen Symbole aus der Steuerung Abfragbar, da ich ein anderes Tool zur Erzeugung von Graphischen Oberflächen einsetze (ATVISE) und das dabei eingesetzte Tool per ADS die Variablennamen der Tasks auslesen kann....

            jetzt bin ich a bisserl ratlos und dankbar für Hilfe...

            Eine weitere Frage: Das SPS Laufzeitsystem kann vier verschiedene unabhängige SPS erzeugen (intern mit den Ports 801 bis 804 bezeichnet)

            Wo kann ich im Adapter einstellen, auf welche der Systeme der Adapter geht (im ADS-Node scheint es noch eine Einstellung zu geben...)

            Also schon mal Danke im Voraus!

            1 Reply Last reply Reply Quote 0
            • S
              stm last edited by

              Nachtrag: auf der Steuerung läuft ein TC 2.11.2257
              PS: gibt es irgendwelche Debug Einstellungen bzw. kann ich bei dem Adapter den Log-level hochsetzen?

              1 Reply Last reply Reply Quote 0
              • T.Spooner
                T.Spooner last edited by

                Hallo,
                ich bin ein ziemlicher Newbie mit dem IOBroker und Raspberry (ganze 2 Tage Erfahrung 😉 ).
                Ich habe bei mir vor 10 Jahren Beckhoffsystem eingebaut und habe auch etwas Erfahrung auch in ADS-Kommunikation zwischen verschiedenen SPSen. Aber dieses Teil bekomme ich nicht zum Laufen 😭 .
                Ich versuche meine Steuerung TC2 (V2.11.2237) verzweifelt anzubinden, aber der Beckhoff-ADS-Adapter und die SPS wollen einfach nicht:

                beckhoff.0 2019-11-24 17:11:35.135 info (1678) Try to reconnect in 15 seconds
                beckhoff.0 2019-11-24 17:11:35.133 error (1678) ADS Client: Error: read ECONNRESET
                beckhoff.0 2019-11-24 17:11:20.615 error (1678) ADS Client: Error: timeout

                Ein Broadcast Search aus dem TC-SystemManager hat auch nix ergeben, pingen geht aber.
                Da ich mir eine C6015 mit TC3 geleistet hab , habe ich es auch mit der versucht, komme aber zum gleichen Ergebnis.
                Ein Broadcast Search zwischen den TC2- und TC3-SPSen ist erfolgreich, auch zu meinem TC3 XAE.

                Ich komme jetzt natürlich zu der Schlussfolgerung, dass etwas in den Einstellungen beim IOBroker nicht stimmt, da kenne ich mich aber (noch) nicht genug aus.

                Wäre nett, wenn mir da jemand auf die Sprünge helfen könnte.

                Gruß Tommi

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

                  Hallo,

                  bei den TC2 Systemen muss bei einer Version <= 2.11.2240 mindestens die Version 1.1.0 des Adapters installiert sein. Nur dieser hat die Möglichkeit sich auf diese TC2 Systeme zu verbinden. README beachten. Ich bin mir aber nicht sicher ob die Versionsnummer passt evtl. sind auch noch neuere Systeme betroffen.

                  @stm ich muss sagen ich kenne mich leider mit dem TC2 System überhaupt nicht aus und kann dadurch auch nicht sagen warum das "Create Symbols" ausgegraut ist. Diese Frage taucht auch des öfteren auf das müssten dir hier andere Personen erklären.

                  Den TCP Port kannst du ja im ioBroker einstellen. Ich habe aber nicht berücksichtigt das man mehrere Tasks haben und den ADS Port einstellen kann, somit ist dort fix der default Port 801 für TC2 hinterlegt.

                  Heißt wiederum du kannst nur auf den Task mit dem Port 801 zugreifen. Evtl. Portanpassung möglich?

                  Die Debug Möglichkeiten sind ziemlich eingeschränkt. Die einzige Möglichkeit ohne Entwicklungsumgebung ist den Log-Level auf Debug oder höher zu stellen.

                  @T-Spooner
                  Der ioBroker ist der aktive Part bei dem Verbindungsaubau. Im Systemmanager der Adapter nicht gefunden werden, dies ist aber auch nicht notwendig. Auf dem TC2 System muss die Route freigegeben werden (Remote auf None stellen sonst kann die Route nicht angelegt werden) und dann kann der ioBroker Adapter die Verbindung aufbauen.

                  Gruß,
                  dkleber89

                  1 Reply Last reply Reply Quote 0
                  • T.Spooner
                    T.Spooner last edited by T.Spooner

                    Hallo,
                    ich denke, dass ich die Route richtig eingestellt habe, wenn man vom "Temporär" absieht:
                    ddb30b58-4827-46b0-9d93-5a0e3029f3cc-grafik.png
                    Was mich aber etwas wundert ist, dass der Systemmanager im Meldungsfenster mehrere Verbindungen von der IOBroker-IP registriert, allerdings immer von einem anderen Port:
                    b5e2788f-4976-4c8b-8d02-aa90a594a8f0-grafik.png

                    Übrigens nutze ich die Adapter-Version 1.1.0

                    Gruß T.Spooner

                    Ich habe den Fehler gefunden!
                    Ich hatte die AMS-Net-ID auf dem Adapter falsch eingetragen

                    1 Reply Last reply Reply Quote 0
                    • S
                      stm last edited by

                      Danke für die Info, dkleber89,

                      Ich kann mit dem Port 801 Leben, das ist zwar das Produktivsystem, 802 wäre die Testumgebung, da wäre es einfacher zu spielen. (Kann ich das irgendwo im Code ändern oder müsste ich dazu um eine Erweiterung in einer höheren Version bitten 😉

                      Obwohl ich auf der Github Seite die Version 1.1.0 sehe, bekomme ich in der iobroker Oberfläche nur die Version 1.0.6 angeboten und keine Aktualisierung...

                      Bei mir läuft TC 2.11.2257

                      Dann steht da was von "Ältere Systeme, upload *.tpy"... wohin gilt es die Datei hochzuladen?

                      Wenn dich direkt auf den Windows Controller gehe, auf dem das Twincat läuft, habe ich dort im System Manager "Dynamic Symbols" auf enabled.
                      Das kann auch der Grund sein, wenn ich im Remote Zugriff bei einzelnen Tasks das ausgegraut habe, da es für die gesamte Steuerung default ist.

                      Also woanders suchen:

                      • ADS Port im Adapter 32905
                      • Datenstruktur in Datentypen definiert
                      TYPE iobroker_struct :
                      STRUCT
                      	binaer: BOOL;
                      	zahl: INT;
                      	glei: REAL;
                      END_STRUCT
                      END_TYPE
                      
                      • bei Globalen Variablen deklariert
                      iobroker		: iobroker_struct;
                      

                      Und jetzt weiss ich nimmer so recht weiter ....

                      S 1 Reply Last reply Reply Quote 0
                      • S
                        stm @stm last edited by

                        nun aus Github die 1.10 installiert - leider keine veränderung.
                        Auch die Angabe iobroker oder .iobroker ändert nichts.

                        1 Reply Last reply Reply Quote 0
                        • Jey Cee
                          Jey Cee Developer last edited by

                          Ich hab das Thema mal in Allgemein verschoben da der Adapter schon lange im Stable ist. Normalerweise würde ich ihn deswegen schließen, da hier aber wenig Aktivität ist und die Anzahl der Beiträge gering bleibt er fürs erste offen.

                          Bitte eröffnet in Zukunft für Konkrete Fragen ein eigenes Thema in ioBroker Allgemein oder in der passenden Unterkategorie. Bei Fehlern/Bugs im Adapter bitte in der Unterkategorie Error/Bug ein Thema aufmachen.

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

                            @Jey-Cee okay danke ... Also die offenen Themen hier noch abarbeiten und dann geht der Thread zu. Wohin gehen die Threads wenn größere neue Features eingebaut werden / werden sollen? Wieder in den Bereich Entwicklung oder?

                            @stm das bedarf einer Erweiterung in einer höheren Version. Zumindest wenn man es einstellbar haben möchte.

                            Weißt du wo die Adapterfiles liegen und kennst dich mit Javascript aus? Dann solltest du im Hauptfile beckhoff.js fündig werden, um händisch den Port im Hintergrund zu ändern. Wichtig nur direkt bei der Verbindungsaufbaumethode (relativ weit unten) ändern / manipulieren. Ansonsten wird der Adapter nicht mehr laufen. Und du machst das auf eigene Gefahr da kann ich dich nicht Supporten.

                            Spätestens ab morgen steht die 1.1.0 Version auch im stable Repositiory zur Verfügung. Bisher nur im latest.

                            Im Dropdown für die TwinCat Version gibt es einen neuen Eintrag für die älteren TC2 Systeme. Wird dieser Eintrag ausgewählt kann der Config-Seite die *.tpy übergeben werden. Dann sollte das ganze funzen, zumindest sofern es an der TwinCat 2 Version liegen sollte.

                            Bitte auf jeden Fall um Rückmeldung falls dass, das Problem war dann muss ich die Version anpassen. (Doku und Dropdown)

                            Gruß,
                            dkleber89

                            Jey Cee S 2 Replies Last reply Reply Quote 0
                            • Jey Cee
                              Jey Cee Developer @dkleber89 last edited by

                              @dkleber89 sagte in [Adapter] Beckhoff ADS:

                              @Jey-Cee okay danke ... Also die offenen Themen hier noch abarbeiten und dann geht der Thread zu. Wohin gehen die Threads wenn größere neue Features eingebaut werden / werden sollen? Wieder in den Bereich Entwicklung oder?

                              Wenn du fragen zur Entwicklung hast ist Entwicklung der Richtige Ort. Wenn du willst das eine neue Version des Adapters getestet wird gehört er in die Kategorie Tester. Dort kannst du dann Feedback für deine Minor Version sammeln und Fehlerbehebung machen, wenn er dann (hoffentlich) Fehlerfrei ist kommt er ins Stable und damit wird dann das Thema in Tester geschlossen.
                              Ziel ist es besser zwischen Entwicklung und Stabiler betrieb zu trennen und Informationen besser finden zu können, wenn alles in einem Thema ist und das irgendwann mehrere Hundert bis Tausend Beiträge hat ist das einfach zu unübersichtlich.

                              1 Reply Last reply Reply Quote 0
                              • S
                                stm @dkleber89 last edited by

                                @dkleber89 An den Austausch 801 gegen 802 hab ich mich nicht gewagt.

                                Mit der 1.10 funktioniert der Datenaustausch, wenn ich die Variante mit "TPY-Hochladen" wähle.
                                Das wäre dann wahrscheinlich ein Hinweis in der Doku, wenn sich "Symbole erzeugen" nicht anwählen lässt, dann so tun, als ob es einen ältere TC wäre.

                                Wenn es wichtig ist, weiter zu testen, bitte sagen, ich habe die letzte TC2 in einer virtuellen Maschine am laufen und könnte da was ausprobieren.
                                Soviel vorweg, auch da ist das "Symbole erzeugen" im System Manager bei der speziellen Task ausgegraut - unabhängig, ob "Dynamische Symbole erzeugen" aktiv ist oder nicht.

                                Jetzt sag ich erst Mal "Danke" und schau wie ich meine Variablen, die in den Austausch gehen strukturiere.

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

                                  Hallo, bin relativ neu in der Thematik ioBroker. Die Verbindung via ADS habe ich zum laufen bekommen auf TC3 und auch TC2 auf einem CX8090. Geht echt Klasse. Genial wären nun auch String Variablen zum Datenaustausch. Ist dies in nächster Zeit geplant. Ansonsten muss ich einen Java Lehrgang machen um String Variablen in z.B. Integer Werten zu wandeln, da ich blutiger Anfänger bin.

                                  Gruß Mario275

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

                                    Hallo,

                                    @stm okay super. Das mit der Doku muss ich mir noch anschauen. Vielleicht liegt es auch einfach an der version das man das bei den älteren Systemen nicht auswählen kann oder?

                                    Du hast ein TC2 System als Test in einer Virtuellen Maschine am laufen? Wie hast du das geschafft? Hätte interesse an einer TC2 Testumgebung sofern sie virtualisiert ist da ich keine nativen Windows Systeme mehr habe.

                                    @Mario275 ja das ist auf jeden Fall geplant. Ich habe nur in letzter Zeit wenig Zeit dafür und schiebe es schon länger vor mir her. Mit der Umsetzung hat mal @Christian-Peters angefangen. Ich weiß jetzt aber nicht was da der Stand ist, ob da schon was erreicht oder der versuch abgebrochen wurde. Vielleicht tut sich ja was über Weihnachten / Neujahr und ich komme dazu dies zu Implementieren.

                                    Gruß,
                                    dkleber89

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

                                      Hallo,

                                      String mit einer fixen länge von 80 Zeichen ist in der Version 1.2.0 implementiert.

                                      Gruß,
                                      dkleber89

                                      1 Reply Last reply Reply Quote 0
                                      • D
                                        Daniel.K last edited by

                                        Hallo,
                                        ich versuche seit einigen Tagen den ADS Adapter zum laufen zu bringen, leider bisher ohne Erfolg.

                                        Mein Aufbau:
                                        Rechner 1: Winows 10 -> IOBroker mit ADS Adapter (Node v10.18.0, NPM 6.13.4)
                                        Rechner 2: Winows 10 -> TwinCAT XAE und TwinCAT XAR (Version 3.1)

                                        Bin soweit deiner Anleitung gefolgt. Leider wird die Route nicht hinzugefügt. Es kommt aber auch kein Fehler seitens TwinCAT.

                                        • Firewall bei beiden deaktiviert.
                                        • Ports freigegeben BECKHOFF routing through a firewall
                                        • Ping geht durch
                                        • IP und Net ID mehrmals geprüft.

                                        Jetzt meine Frage: (um diese Fehlerquelle auszuschließen)
                                        Wenn ich eine Route hinzufüge, werde ich nach einem Benutzer und Passwort gefragt (siehe Bild)
                                        Ist dies bekannt?

                                        Unbenannt.png

                                        Ist im Adapter ein Passwort hinterlegt?
                                        Beckhof Standard ist User:Administrator und PW:1

                                        Schon mal vielen DANK!
                                        Grüße

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

                                          Hallo @Daniel-K, ja das ist bekannt und hier wird der Benutzer und das Passwort des TC Systems benötigt damit eine Route hinzugefügt werden kann. Das ist soweit bekannt.

                                          Wenn das Routen hinzufügen nicht funktioniert kann ich dir allerdings nicht weiterhelfen da kenne ich mich nicht aus da dies bei mir soweit immer funktioniert hat. Das Hinzufügen der Route ist zwingend notwendig damit der Adapter funktioneren kann.

                                          Gruß,
                                          dkleber89

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

                                            Hallo,

                                            der Beckhoff Adapter ist jetzt in den folgenden Versionen verfügbar:

                                            • Stable: 1.1.0 -> Funktionalität wie gehabt inkl. Support für Compact Mode
                                            • Latest: 1.2.0 -> Support für Strings mit fix 80 Zeichen hinzugefügt.

                                            Gruß,
                                            dkleber89

                                            V M 2 Replies 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

                                            947
                                            Online

                                            31.6k
                                            Users

                                            79.4k
                                            Topics

                                            1.3m
                                            Posts

                                            beckhoff
                                            38
                                            227
                                            36577
                                            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