NEWS
[Adapter] Beckhoff ADS
-
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.
-
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 -
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!
-
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? -
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: timeoutEin 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
-
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 -
Hallo,
ich denke, dass ich die Route richtig eingestellt habe, wenn man vom "Temporär" absieht:
Was mich aber etwas wundert ist, dass der Systemmanager im Meldungsfenster mehrere Verbindungen von der IOBroker-IP registriert, allerdings immer von einem anderen Port:
Ü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 -
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 ....
-
nun aus Github die 1.10 installiert - leider keine veränderung.
Auch die Angabe iobroker oder .iobroker ändert nichts. -
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.
-
@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 -
@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. -
@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.
-
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
-
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 -
Hallo,
String mit einer fixen länge von 80 Zeichen ist in der Version 1.2.0 implementiert.
Gruß,
dkleber89 -
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?Ist im Adapter ein Passwort hinterlegt?
Beckhof Standard ist User:Administrator und PW:1Schon mal vielen DANK!
Grüße -
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 -
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 -
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!