ADS Kommunikation zu Beckhoff Busklemmencontrollern

Beiträge
9.189
Reaktionspunkte
2.936
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
ich versuche über ADS auf Variablen in einem Busklemmencontroller BC9120 zuzugreifen.
Die Funktion für das Auslesen habe ich so wie in diesem Beispielcode von witzkatz:
http://www.sps-forum.de/showthread....ischen-Matlab-und-TwinCAT?p=430174#post430174
programmiert.

Jetzt bekomme ich aber mit meinem Programm vom ersten AdsSyncReadWriteReq Aufruf einen Fehlercode 0x33180701 zurückgemeldet wenn ich damit auf den BC zugreifen will.
Der gleiche Fehlercode kommt auch wenn ich mit dem Testprogramm TcAdsTest darauf zugreifen will. Leider ist der Fehlercode nirgends erläutert.

Der Zugriff auf eine TwinCAT PC Runtimefunktioniert hingegen einwandfrei.
Wenn ich mir mit Wireshark ansehe was da auf dem Netzwerk passiert, so sehe ich auch beim BC erst einen ADS Read Write Request mit dem Variablennamen. Als Antwort kommt vom BC auch kein Fehler zurück, nur geht es dann nicht mit dem Read Request weiter.

Sind die BC da irgendwie eingeschränkt, oder muss ich dazu extra etwas einstellen damit ich auch per Variablennamen zugreifen kann?
 
symbolischer Zugriff per ADS funktioniert erst ab CX.... und aufwärts bzw. nur mit Windows-Systemen (WinCE und höherwertig).

Auf die kleinen abgespeckten BCxxx Kisten kann man nur per Indexgruppe und Offset zugreifen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ach doof, aber sowas hatte ich schon geahnt.
Muss ich mir dazu die Nummern per Hand aus der tpy Datei auslesen und dann im Programm eintragen, oder bringt die Ads Bibliothek dafür eigene Funktionen mit?

Gibts da Erfahrungswerte wann sich die Nummern ändern?
 
Nein, Du allokierst das was Du auslesen / beschreiben willst als Merker.

D.h. ich kann bei den BC über ADS nur auf Merker zugreifen?
Der direkte Zugriff über die Nummern Indexgruppe und Indexoffset aus der tpy Datei funktioniert nämlich genauso wenig. Der Aufruf gibt dann einen weiteren undokumentierten Fehlercode 0x33140702.
Die Nummern in der tpy Datei haben somit überhaupt keine Funktion.

Steht das irgendwo beschrieben welche Beckhoff Controller welche ADS Funktionen unterstützen? Oder kann man sagen, alle Geräte auf Windows Basis können alles und nur die BC sind eingeschränkt.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wie schon gesagt, CX und CP bieten vollen Zugriff über die Symbole. BC und BX nur die direkte Adressierung auf den Merkerbereich.

Man müsste sich mal anschauen wie PLC Control die Variablen ausließt. Beim online Beobachten kann man ja schließlich auch alle Werte ansehen.....
 
Ich denke auch, dass das möglich wäre... (Wireshark)

Es schießt nur etwas über das Ziel hinaus. Ich habe zumindest noch kein Problem damit gehabt, ein paar Merker zu definieren, die ich dann an die Visu angebunden habe.
 
Beim Online beobachten eines Bausteins oder auch bei einer Beobachtungstabelle werden aber andere Dienste genutzt, und Command Ids die in der AMS Spec nicht erläutert sind.

Ich wollte mir für eine Simulationsumgebung eine Bibliothek schreiben die mehr oder weniger mit allen Geräten klarkommt. Und den BC habe ich zum Testen hier zu Hause liegen, für größere Projekte wird der wohl selten eingesetzt denke ich mal. Vielleicht lasse ich den einfach außen vor.

Das Wireshark Plugin für ADS/AMS ist leider sehr rudimentär, auch wenn es offiziell von Beckhoff ist. War auch noch ein Fehler drin, hab ich aber Freitag schon gemeldet und sollte beim nächsten Release behoben sein.
 
Zurück
Oben