Beckhoff SPS + TwinCAT 2 + ADS WebService + Tame4-Lib ?

_sps_noob

Level-1
Beiträge
4
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Guten Tag,

Ich möchte gerne eine WebVisu zur Steuerung einer Beckhoff BC9191-0100 SPS entwickeln und möchte dafür den ADS WebService verwenden.
Aktuell wird die SPS mittels TwinCAT 2 vom Programmier-Rechner bedient.

Ich habe den ADS WebService bereits entsprechend der von Beckhoff zur Verfügung gestellten Anleitung eingerichtet.
Quelle: https://infosys.beckhoff.com/
Mir wird auch bereits die Demo Seite angezeigt.

Um den Zugriff auf die SPS (bzw. den Umgang mit ADS) zu vereinfachen habe ich mich entschlossen, die von tomx entwickelte Tame4-JavaScript-Library zu verwenden.
An dieser Stelle beginnen die Probleme:

1 ) Ich habe den tamex-Ordner im IIS-Manager zum WebServer hinzugefügt und die WebService.js konfiguriert.

2 ) Beim Start des Basic-Examples wird die Verbindung initialisiert ("Fetching PLC Data" oder so ähnlich heißt es im Log).

3) Die Verbindung bricht ab mit der Meldung "An ADS Error occured:" Error Code (8553213)
Die Beckhoff-Dokumentation umfasst nur Error-Codes bis ungefähr 2000 (DEZ). Entsprechend nichtssagend ist diese Log-Ausgabe für mich.

4) Mit WireShark habe ich die Verbindung überprüft. Die ASM-Pakete kommen an der SPS an und ich erhalte von der SPS eine Response.
Diese enthält lediglich nur diesen Wert.

Ich weiss es handelt sich hier um ein Nischenproblem, hoffe aber dennoch, dass mir vielleicht jemand auf die Sprünge helfen kann. Ich bin für jeden Tipp dankbar und werde bei Bedarf auch weitere Infos liefern.

Beste Grüße,

_sps_noob
 
Zuletzt bearbeitet:
Ich bin mir jetzt nicht sicher wie Tame4 arbeitet.
Der BC-Controller kann definitiv nicht mit Variablennamen umgehen (sondern nur mit der direkten Adressierung des Prozessabbild %MW...).
Vielleicht ist das ja schon die Ursache.
-Poste doch mal einen Screenshot von deinem Wireshark bzgl. des ADS-Requests und Response.
-Gleiches für den Aufruf einer Variable die du via TAME nutzt.
Dann wird es eindeutig.


Guga
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

Danke für deine Antwort. Hier sind die Screenshots:

ADS Error.JPG

Dies ist die Fehlermeldung, die ich beim ADS-Connect via WebService und TAME2 erhalte.
Dabei zeigt mir WireShark den folgenden Paketverlauf:

WireShark-WebService.JPG

Wenn ich die TwinCAT 2 PLC Control Software im Betrieb habe, läuft die Kommunikation mit der SPS ebenfalls über ADS/ASM. In diesem Fall erhalte ich folgenden Paketverlauf:

RegularADSConnection.JPG

Die Verbindung funktioniert reibungslos.

Den WebService versuche ich mit dem Tame4-Beispielprogramm zum Laufen zu kriegen. Die .pro-Datei habe ich in TwinCAT 2 eingeladen und das von TAME mitgelieferte Programm auf die SPS geladen. Das Programm läuft und kommuniziert mit der TwinCAT 2 PLC Control ohne Probleme. Ich habe den IIS-Webserver unter Win7 konfiguriert und den ADS WebService aktiviert. Demo-Webseite geht. Ebenfalls habe ich die tamex-HTML-Dateien mit der Tame4-Lib zum WebServer hinzugefügt und kann die Testwebsite aufrufen.

Bei der Initialisierung der Kommunikation mit der SPS via WebService tritt oben gezeigter Fehler auf.
 
ich bin nicht so gut aus den binärinformationen des AMS-Request/Response mir die relevanten Daten herauszulesen ohne Hilfe des Display Filters von Wireshark.
Also sei so gut und mache vom Read und von der Response einen Screenshot wo die Details vom AMS zu sehen sind.
So elementare Infos wie Indexgrp/Indexoffset als auch der Fehlercode wäre sehr hilfreich.

Dass PLC Control arbeitet etwas anders. Per ADS wird soweit ich es verstehe das 3S-Protokoll hier getunnelt. Mit anderen Worten. Wenn dein PLC Control arbeitet kannst du nicht darauf zurückschliessen das TAME funktioniert.
Und die Fehlermeldung zeigt für mich wie gesagt in die Richtung das TAME hier auf Namen zugreifen will (anstelle auf die Adressen...). Ob man das in TAME umstellen kann weiss ich nicht.


Guga
 
Hallo Guga,

Hier die Screenshots:

PC_Request.JPG

Dies ist der Request, den ich vom PC an die SPS schicke.

PLC-Response.JPG

Daraufhin erhalte ich diesen Response.

Anmerkung: Ich habe zum Test des WebService ein C#-Demo-Programm runtergeladen, welches von Beckhoff im InfoSys angeboten wird. Damit kann ich auf die SPS connecten und Variablen lesen/schreiben. Dazu wird immoment ein gesondertes Demo-Programm verwendet, was der C#-Applikation beiliegt, und auf die SPS geladen.
Den Code zur Applikation findet man bei der Google-Suche nach "Beckhoff InfoSys C# Consumer".

Dieses arbeitet allerdings ebenfalls mit IndexGroups / ByteOffsets und diese Low-Level-Operationen würde ich gerne mithilfe von Tame so gut es geht vermeiden und mich mehr auf die Visualisierung konzentrieren.
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Ads-Read: Indexgrp = F00C: ADSIGRP_SYM_UPLOADINFO
Wie gesagt kann der BC dir keine Symbole liefern.

Der Rückgabewert sollte die Anzahl der Items als auch eine Bytelänge der Daten liefern (die dann in weiteren ADS-Anfragen benutzt werden).
Der Byte-Wert entspricht aber nicht das was ich erwarte (viele Items aber eine Bytelänge von 0).


Schau ob du TAME dazu überreden kannst auf Basis der *.tpy Datei direkt mit den Adressen zu arbeiten...

Guga
 
Vielen Dank nochmal für die bisherige Hilfe.

Ich konnte mittlerweile eine Verbindung zur SPS aufbauen unter Nutzung von Tame. Auch mit der .tpy-Datei ist kein Zugriff über Variablen-Namen möglich,
aber ein Zugriff mittels direkter Addressierung funktioniert.
 
Hallo,

Danke für deine Antwort. Hier sind die Screenshots:

Anhang anzeigen 40689

Dies ist die Fehlermeldung, die ich beim ADS-Connect via WebService und TAME2 erhalte.
Dabei zeigt mir WireShark den folgenden Paketverlauf:

Anhang anzeigen 40690

Wenn ich die TwinCAT 2 PLC Control Software im Betrieb habe, läuft die Kommunikation mit der SPS ebenfalls über ADS/ASM. In diesem Fall erhalte ich folgenden Paketverlauf:

Anhang anzeigen 40691

Die Verbindung funktioniert reibungslos.

Den WebService versuche ich mit dem Tame4-Beispielprogramm zum Laufen zu kriegen. Die .pro-Datei habe ich in TwinCAT 2 eingeladen und das von TAME mitgelieferte Programm auf die SPS geladen. Das Programm läuft und kommuniziert mit der TwinCAT 2 PLC Control ohne Probleme. Ich habe den IIS-Webserver unter Win7 konfiguriert und den ADS WebService aktiviert. Demo-Webseite geht. Ebenfalls habe ich die tamex-HTML-Dateien mit der Tame4-Lib zum WebServer hinzugefügt und kann die Testwebsite aufrufen.

Bei der Initialisierung der Kommunikation mit der SPS via WebService tritt oben gezeigter Fehler auf.
Hallo zusammen,

sorry bin ziemlich neu in diesem ganzen Thema mit SPS, Webserver-Konfiguration usw. und würde mich freuen, wenn mir einer etwas unter die Arme greifen könnte bei der gesamten Einrichtung um am Ende mit Tame4 auf JS basiertem CODE arbeiten zu können um eine eigene Visualisierung zu erstellen.

Ich bin zwar gut was JS angeht, aber eine absilute 0, wenn es um die Verbindung zwischen IIS + ADS + TwinCat2 geht.


Ich habe diesen POST mal durchgelesen (und natürlich auch etliche weitere Informationen eingeholt), aber komme trotzdem nicht wirklich voran.


1) IIS ist bereits auf meinem Rechner installiert
2) ADS-Webservice habe ich auch noch hinbekommen zum laufen zu bringen und bekomme eine Net-ID und den PORT als RESPONSE.

Meine Frage wäre, wie geht es ab hier weiter?
Welche Schritte genau müsste ich nun machen?

In der Readme von Tame4 steht was von....

- Edit "tamex\resources\webservice.js" and change the parameters of the webservice to your needs.
- Copy the "tamex"-folder to your webserver with the ADS WebService installed.
- Open the "plc\demo.pro" in TwinCAT, build and run it on your PLC.
- Open "http:\\your_web_server\tamex\index.html" with your favorite browser.

Könnte mir das einer eventuell etwas im Detail erklären (Schritt für Schritt) ???

Schon mal lieben Dank dem Helfer der sich erbarmt mir etwas unter die Arme zu greifen.
 
Zurück
Oben