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

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    [Adapter] Beckhoff ADS

    This topic has been deleted. Only users with topic management privileges can see it.
    • 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
              • V
                vamos1970 @dkleber89 last edited by vamos1970

                Hallo, ich bin neu in diesem Forum und habe den Beckhoff ADS Adapter im IOBroker mit einer Beckhoff TwinCat 2.1 am laufen. Ich habe im IOBroker Zugriff auf meine Variablen unter dem Adapter und alles läuft ohne Probleme. Auf meiner Beckhoff sind momentan nur meine Rollladen gesteuert, die ich nun auch über die Vis des IOBroker ansprechen kann. Nun meine Frage. Wie bekomme ich das ganze denn jetzt mit Alexa kombiniert? Ich habe schon im Forum wie auch im Internet nach einer Lösung gesucht, aber komme da nicht weiter. Was muss ich wo installieren damit ich meine Variablen in Alexa sehe. Ich habe sonst im Haus viele Shelly Sensoren verbaut, die ich auch direkt mit Alexa ansprechen kann…das würde ich gerne auch mit der Beckhoff machen...
                Über eine Antwort, Anleitung wäre ich echt sehr dankbar. 

                @dkleber89 -> Danke für deine Arbeit bzgl Beckhoff Adapter!

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

                  Hallo @vamos1970

                  da kann ich dir überhaupt nicht weiterhelfen weil ich mit alexa mal so überhaupt nix am Hut habe. Ich gehe aber davon aus das du die Variablen die der Beckhoff Adapter bereitstellt sicher irgendwie verknüpfen kann. Der Beckhoff Adapter stellt da auf jeden Fall nix spezielles zur Verfügung.

                  Ich würde das aber in einem extra Thread mit aussagekräftigem Titel starten. Weil ich denke nicht das die Alexa spezialisten sich diesen Thread großartig anschauen.

                  Gruß,
                  dkleber89

                  V 1 Reply Last reply Reply Quote 0
                  • V
                    vamos1970 @dkleber89 last edited by vamos1970

                    @dkleber89 OK, danke...ich werde mal schauen. Hier in diesem Thread hatte das jemand mit Alexa am laufen, dachte er würde mal einen Tip geben. ( @sizzla82 @Loco )???
                    Trotzdem Danke

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

                      @dkleber89 Super das jetzt noch Stringvariablen dazugekommen sind. Wann kann ich wie den Adapter von 1.1.0 auf 1.2.0 updaten?

                      Gruss Mario

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

                        Hallo @Mario275,

                        ich habe gerade heute den Pullrequest für das Stable Repository gemacht. Dies muss noch vom ioBroker Team genemigt werden dann wird das Update im ioBroker aufscheinen.

                        Sollte in den nächsten Tagen sein.

                        Gruß,
                        dkleber89

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

                          Hallo zusammen,

                          bin neu im Forum. Erst einmal Kompliment für die tolle Lösung, die hier entstanden ist.
                          Ich habe den Beckhoff ADS Adapter auf einem RaspberryPi mit ioBroker installiert.
                          Meine PLC ist eine CX8090 mit TC2 2.11 Build 2249.
                          Ich habe wie andere auch keine ADS Verbindung herstellen können.
                          Meines Wissens nach ist es so:
                          Auf dem Raspberry fehlt ein ADS Router. Die für den ADS Adapter vermutlich verwendete API baut selbst keine Verbindung zur entfernten PLC auf, sondern nur zum lokalen ADS Router. Beckhoff stellt ADS Router mit jedem TwinCAT System (z.B. TwinCAT PLCs, TwinCAT XAE) bereit. Außerdem kann der ADS Router auf Windows und Windows CE unabhängig von TwinCAT installiert werden (Beckhoff stellt Installer für unterschiedliche Targets bereit, Windows 32, Windows 64, Windows CE ARM, ...). Leider nicht für Debian/Raspbian.
                          Habe ähnliche Erfahrungen auch mit anderen Systemen gemacht, die ADS als Protokoll zur Kommunikation mit einer Beckhoff PLC nutzen (z.B. Touch Panels).

                          Wahrscheinlich haben diejenigen, die den ioBroker ADS Adapter erfolgreich am laufen habe auf dem gleichen System (CX oder PC) auch einen ADS Router laufen (also z.B. TwinCAT PLC oder XAE).

                          Kann das hier jemand bestätigen? Oder anders herum: hat schon jemand diesen Adapter auf einem Target erfolgreich betreiben können, auf dem kein ADS Router läuft?

                          Viele Grüße
                          Swen

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

                            Hallo Swen,
                            ich habe eine ADS-Verbindung zwischen einem Raspberry und einem PC (TC2 (V2.11.2237)) lauf stabil laufen, auch zu meinem Desktop PC (XAE (TC3)) funktioniert es.
                            Am Anfang hatte ich auch eine Problem (sh. oben), aber das war ein Fehler von mir.

                            Gruß T.Spooner

                            @T-Spooner sagte in [Adapter] Beckhoff ADS:

                            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
                            • M
                              Mario275 @dkleber89 last edited by

                              Hallo @dkleber89,

                              Update heute eingespielt und gleich mal einen Schwung String-Variablen angelegt. Super, absolute Klasse wie gut und stabil der Adapter läuft.
                              Danke auch für den schnellen Support!!

                              Gruß, Mario275

                              1 Reply Last reply Reply Quote 0
                              • A
                                ADS_0x1 last edited by

                                Hallo zusammen,

                                bin über das SPS-Forum auf euch aufmerksam geworden und bisher: Hut ab! Super Sache habt ihr hier auf die Beine gestellt.
                                Habe jetzt den Adapter mit einer TwinCAT 2.11.2303 auf einer VM und bei mir zu Hause auf einer CX9020 mit TwinCAT 2 (2.11.2256) getestet und ich kann (nach einigen Anfangsproblemen) auf die Steuerungen zugreifen.
                                Ich kann auch mit Blockly auf die Variablen schreiben, aaaaaaaber:

                                Wie kann ich über den node-red Adapter auf die Variablen schreiben? Das kommt leider nicht in der SPS an.
                                Das Log sagt, es habe funktioniert:

                                beckhoff.0	2020-02-07 20:16:46.754	debug	(750) Write Symbol Value from ioBroker to PLC: .TEST.TEST_10 -> false
                                beckhoff.0	2020-02-07 20:16:46.716	debug	(750) Read Symbol Value from PLC to ioBroker: .TEST.TEST_09 -> false
                                beckhoff.0	2020-02-07 20:16:46.253	debug	(750) Write Symbol Value from ioBroker to PLC: .TEST.TEST_10 -> true
                                beckhoff.0	2020-02-07 20:16:46.216	debug	(750) Read Symbol Value from PLC to ioBroker: .TEST.TEST_09 -> true
                                

                                Bei Eurer Anleitung habe ich folgenden Hinweis gefunden:


                                When a Value is changed in ioBroker (Important: ACK need to be FALSE!!) then the Value will be automatic transferred to PLC. After that the Adapter set ACK to TRUE.

                                Damit kann ich leider nichts anfangen... Könnte das eventuell jemand für mich näher ausführen? Danke!

                                Hier noch ein paar Screenshots:


                                TC2_Toogle.png node-red.png ioBroker_Objekte.png

                                Danke für Eure Hilfe!

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

                                  Hallo,

                                  als erstes fällt mir in dem Log auf das du zwar auf die Test_10 Variable schreibst aber nicht mehr zurückliest. Die lesende Variable ist ja Test_9.

                                  Folgender Ablauf zum schreiben:

                                  1. Die Variable wird im ioBroker verändert. Der ACK Status bzw. Bestätigt Status darf beim schreiben nicht auf 'true' gesetzt werden.
                                  2. Der Adapter erkennt das eine Variable verändert wurde und checkt ob ein schreiben zur SPS notwendig ist.
                                  3. Ist der ACK / Bestätigt Status auf 'false' dann wird das schreiben ausgeführt.
                                  4. Wird die Variable in die SPS geschrieben verändert Sie sich dort. Dies triggert wiederum das lesen der Variable durch den Adapter
                                  5. Der Wert wird aus der SPS zurückgelesen in die Variable eingetragen und der ACK / Bestätigt Status auf 'true' gesetzt.
                                  6. Schreibvorgang inkl. Bestätigung ausgeführt.

                                  Bitte kontrollier das mal genau was du da machst und was passiert.

                                  Solltest du nichts finden bitte den Adapter auf Loglevel 'debug' stellen und dann nach einem schreibversuch das Log posten.

                                  Gruß,
                                  dkleber89

                                  1 Reply Last reply Reply Quote 0
                                  • A
                                    ADS_0x1 last edited by ADS_0x1

                                    Hallo dkleber89,

                                    danke dir für deine schnelle Antwort.
                                    Ich weiß, dass ich die Variable nicht mehr lese, was habe ich gemacht:

                                    Die SPS setzt und rücksetzt das Bit Test_09 mit einer Frequenz von 1 Hz.
                                    Mit ioBroker lese ich das Bit aus und spiegel das auf das andere Bit der SPS. Das nennt man in meiner Welt einen LifeBitHandshake.

                                    Wie ich im Eingangspost bereits geschrieben habe: Ich weiß nicht Mal, was es mit diesem ACK auf sich hat, Google spuckt bei der Combo 'iobroker twincat node-red ACK' leider nichts aussagekräftiges aus.

                                    Also ich vermute dann, dass ich ioBroker noch sagen muss, dass er den aktuellen Variablenzustand an die SPS senden muss (über dieses ACK). Daher die Frage: Was muss ich dafür tun?

                                    Danke & Viele Grüße!

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

                                      hallo,
                                      ich versuche mich auch schon ne Weile am AliveBit.
                                      Mir ist aufgefallen, dass ne Verzögerung von manchmal über 1 Sekunde drin ist, ob Blocky oder Node-Red scheint egal zu sein.

                                      @ADS_0x1 hast Du mal ne Verzögerung vor das Antwortbit gesetzt:

                                      13016036-83d7-4745-8721-4c82109eac3c-grafik.png

                                      Ich habe es übrigens etwas anders gelöst:
                                      Ich setzt nach PLC-Start das PLCAliveBit, mit diesem setze verzögert (1s) in Blocky das Io-BrokerAliveBit und gleichzeitig das PLCAliveBit zurück.
                                      Wenn im PLC das Io-BrokerAliveBit kommt, setze ich wiederum verzögert (1s) das PLCAliveBit und das Io-BrokerAliveBit zurück.
                                      Und da kommt dann ein Timeout drüber...
                                      Das Timeout spricht sogar manchmal an, wenn ich die Zeiten auch 2s setze!!

                                      Gruß T.Spooner

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

                                        Hi @T-Spooner !

                                        Danke für deine Antwort. Ich habe das jetzt mal so umgebaut, wie du es gepostet hast. Und für einen "ALIVE"-Cycle funktioniert das ganze auch:

                                        Ich setze das Bit09 in der SPS, node-red spiegelt es (mit einem Delay von 5 s) auf das Bit10 der SPS, es kommt in der SPS an.
                                        Die SPS spiegelt sofort wieder das Bit10 invers auf das Bit09. Es kommt also ein "false" in node-red an. Node-red siegelt 1:1 auf das Bit10, das kommt in der SPS als false an. SPS spiegelt und setzt Bit9 wieder. Das Bit9 wird von node-red ausgelesen als TRUE und es wird 5 Sekunden später auf Bit 10 gespiegelt und ebenfalls auf TRUE gesetzt. Das kommt allerdings in der SPS nicht mehr an...

                                        Hier mal als Foto-Lovestory:
                                        fehler_05_ads.png fehler_04_ads.png fehler_03_ads.png fehler_01_ads.png

                                        Edit: ich teste noch mal schnell was, aber ich glaube, ich bin doof und hab n Fehler gemacht...
                                        Edit2: nein, selbst wenn ich es in der SPS verzögere und die SIgnale tausche (dachte, ich hätte die falsch herum verknüpft), dann läuft es nicht

                                        T.Spooner M 2 Replies Last reply Reply Quote 0
                                        • T.Spooner
                                          T.Spooner @ADS_0x1 last edited by

                                          @ADS_0x1
                                          Wie gesagt, bei mir funktioniert es auch nicht richtig.
                                          Manchmal läuft es einen Tag, dann mal wieder keine 2 Zyklen.
                                          Den Fehler suche ich noch.
                                          Eine Besonderheit bei mir ist die hohe Anzahl der Beckhoff Datenpunkte (fast 10000) und ein Raspberry Pi 4 mit "nur" 2Gb RAM, der aber nur mit 40% ausgelastet ist.
                                          Eine versuchsweise Verringerung der Datenpunkte auf 6 hat schon Mal nichts gebracht. Komisch hier ist allerdings, das in node-red noch die alten Datenpunkte (10000) angezeigt werden und in Blocky nur die neuen (6)🤔.
                                          Ich bleibe da mal dran.
                                          Darf ich fragen, was Du für ne Hardware nutzt?

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

                                            Hallo @ADS_0x1,

                                            ich nutze hier einfach ein kleines JavaScript. Von meiner PLC kommt eine 1 Sekunden Takt Livebit Variable, das ich lese und zugleich schreibe ich das wieder in eine zweite Variable. Somit bekomme ich mit wenn der Controller nicht mehr läuft.

                                            const idSrc = 'beckhoff.0.plc.GVL_ioBroker.bOut_Livebit'/bOut Livebit ioBroker [BOOL]/;
                                            const idDst = 'beckhoff.0.plc.GVL_ioBroker.bIn_Livebit'/bIn Livebit ioBroker [BOOL]/;

                                            // Skriptstart
                                            setState(idDst, getState(idSrc).val);

                                            // Aktualisierung bei Wertänderung
                                            on(idSrc, function(dp) {
                                            setState(idDst, dp.state.val);
                                            });

                                            Gruß Mario275

                                            A 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

                                            800
                                            Online

                                            31.7k
                                            Users

                                            79.9k
                                            Topics

                                            1.3m
                                            Posts

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