# TwinCAT I/O: ADS <--> Servo <--> Motor



## ahds (4 September 2009)

Hallo!


Wir versuchen hier eine auf Schrittmotoren basierte Steuerung (Lang-Motoren) auf EtherCAT / Servomotoren umzubauen. Interessant daran: wir wollen (ich soll/muss/"darf") die alte Software-Steuerung beibehalten und "nur" die Hardware austauschen.

Gesagt, getan - inkl. Support von Beckhoff haben wir nun:


Windows XP PC mit Intel-Ethernet-Karte
TwinCAT I/O - installiert und EtherCAT-Adapter auf die Intel-Karte gesetzt
AX5201 Servo-Controller am EtherCAT
passende Motor(en) am Servo-Controller
Und eben mit dem TwinCAT System-Manager die E/A Konfiguration eingerichtet (Ausschnitt s. Anhang).

Unter dem Servo-Controller AX5201 hängt ein Motor und in der E/A Konfiguration habe ich nun unter AT1 und MDT1 die Ein-/Ausgänge.

Das habe ich mit einem eigenen I/O Task verknüpft und ich kann das ja mit TwinCAT mir alles anschauen - nur:

Wie muss ich das "Master control word" setzen, damit die Motoren fahren?


Außerdem: in einer anderen Konfig habe ich NC-Tasks installiert und mit dem den AX5201 verknüpft und mit Beckhoff Support konfiguriert.
Dieser NC-Task bietet eine recht komplexe ADS-Schnittstelle an. Die kann ich im I/O Task auch verknüpfen und die Statusausgaben beobachten, wenn ich eine NC-Testfahrt mache. Aber über den I/O Task den NC-Task über ADS ansteuern (fromPLC / toPLC) klappt auch nicht.

Guter Rat teuer - kennt jemand diese Probleme und weiß, wie er Motoren über ADS ansteuert bzw. wie die Bit-Belegung bei den Steuerworten aussieht?


Grüße,
ahds


----------



## trinitaucher (5 September 2009)

ahds schrieb:


> wir wollen (ich soll/muss/"darf") die alte Software-Steuerung beibehalten und "nur" die Hardware austauschen.


Welchen TwinCAT-Level hast du zur Verfügung? IO, PLC oder NC-PTP?


ahds schrieb:


> Gesagt, getan - inkl. Support von Beckhoff haben wir nun:
> 
> 
> Windows XP PC mit Intel-Ethernet-Karte
> ...


Zunächst mal: Läuft der Bus einwandfrei, wenn ihr nur eine I/O-Task habt?



ahds schrieb:


> Außerdem: in einer anderen Konfig habe ich NC-Tasks installiert und mit dem den AX5201 verknüpft und mit Beckhoff Support konfiguriert.
> Dieser NC-Task bietet eine recht komplexe ADS-Schnittstelle an. Die kann ich im I/O Task auch verknüpfen und die Statusausgaben beobachten, wenn ich eine NC-Testfahrt mache. Aber über den I/O Task den NC-Task über ADS ansteuern (fromPLC / toPLC) klappt auch nicht.
> 
> Guter Rat teuer - kennt jemand diese Probleme und weiß, wie er Motoren über ADS ansteuert bzw. wie die Bit-Belegung bei den Steuerworten aussieht?


Allein mit ADS wird's kompliziert, glaube ich. AM einfachsten ist eine Verbindung aus NC und PLC. Die NC regelt, die PLC organisiert die Fahraufträge etc. Geht natürlich nur mit dem Level NC-PTP oder höher.

Du solltest dann aber über die Achsstrukturen und die Soll-/Istwerte arbeiten können:
http://infosys.beckhoff.com/index.p...general/html/tcnccyclicinterfaceaxisncplc.htm

Wenn du die Regelung und das drumherum komplett mit externer Software machen willst, musst du die Prozessdaten des Antriebs direkt verarbeiten:
http://infosys.beckhoff.com/index.php?content=content/1031/ax5000_idn-description/html/s-0-0134.htm
http://infosys.beckhoff.com/index.php?content=content/1031/ax5000_idn-description/html/s-0-0135.htm


----------



## dirkle_s (5 September 2009)

*Antriebe an Beckhoff System*

Wie steuert die "alte" Steuerung seither Antriebe an? 

Für Ethercat gibt es jedenfalls unterschiedliche Typen.

 - Coe : Canopen over ethercat
 - Soe : Sercos over ethercat

Du kannst die Achsen entweder über eine NC (CNC / PTP) oder über die PLC verfahren. Die NC / CNC benötigst du eigentlich erst zum interpolierenden Fahren. 

Ansonsten kannst du die Achsen komplett über die PLC bedienen. Dazu musst du je nach Protokoll SOE oder Coe den Antrieb wie nen Sercos oder eben Canopen antrieb behandeln (Achsfreigaben/States). Eventuell bietet Beckhoff auch eine Library für Antriebe in der PLC?!


----------



## trinitaucher (5 September 2009)

dirkle_s schrieb:


> Die NC / CNC benötigst du eigentlich erst zum interpolierenden Fahren.


Würd ich so nicht stehen lassen wollen...
NC-PTP (Point-to-Point) ist die einfachste Form der Beckhoff-NC, ohne Interpolation. Vorteil gegenüber der PLC ist, dass die NC schon Bibliotheken zur Achsverwaltung, Fahraufträge, Kopplung, Referenzierung etc. bereitstellt. Außerdem übernimmt die NC die Regelung und berechnet Verfahrprofile und Dynamiken und ermöglicht einfache Kontrollmechanismen wie Schleppabstand und Positionierüberwachung.

Hat man nur die PLC muss man das alles selbst machen. Auch die ganzen Berechnungen.
Ich finde mit der NC-PTP werden Positionieraufgaben plötzlich fast kinderleicht.

Gut, wenn man nur Geschwindigkeits-Sollwerte vorgeben will (z.B. Förderbänder), ist das nicht unbingt nötig. Aber dann hätten es auch simple FU-Antriebe getan.

Ohne die NC kann man die AX5000er nur über Control-/Status-Wort und die Sollwerte steuern. Die EtherCAT-Bibliothek bietet die Möglichkeit IDNs (Sercos over EtherCAT) zu lesen und zu schreiben, aber sonst nichts. Der AX5000 hat auch (leider) nicht die Möglichkeit, Fahraufträge selbstständig auszuführen.


----------



## dirkle_s (5 September 2009)

Okay, bei einem nicht zu intelligenten Antrieb ist das natürlich richtig. Viele Antriebe bieten diese Funktionalitäten auch bereits im Antrieb. Manche Antriebe lassen sich nicht als NC Achse fahren, da sie nur hohe Zykluszeit verkraften.
War bei uns der Fall. Deshalb haben wir eine CAN Open State Maschine in der PLC nachgebildet und wir verfahren den Antrieb direkt über Positionsvorgabe. Schleppabstand wird im Antrieb überwacht.

Es ist sicher richtig das eine NC Achse der einfachere Fall ist. Aber ich glaube die NCI benötigt auch eine Lizens?

Gruß
Dirk Schiller


----------



## Ralle (5 September 2009)

trinitaucher schrieb:


> Würd ich so nicht stehen lassen wollen...
> NC-PTP (Point-to-Point) ist die einfachste Form der Beckhoff-NC, ohne Interpolation. Vorteil gegenüber der PLC ist, dass die NC schon Bibliotheken zur Achsverwaltung, Fahraufträge, Kopplung, Referenzierung etc. bereitstellt. Außerdem übernimmt die NC die Regelung und berechnet Verfahrprofile und Dynamiken und ermöglicht einfache Kontrollmechanismen wie Schleppabstand und Positionierüberwachung.
> 
> Hat man nur die PLC muss man das alles selbst machen. Auch die ganzen Berechnungen.
> ...



Warum selber machen, i.d.R. macht das ja eigentlich heutzutage der Servo. Dem übergibt man Sollpos und Geschwindigkeit, Enable, Stop etc. und ab gehts. Rückgemeldet wird dann InPos und gegebenfalls auch die Istpos. das ist eigentlich bei jedem herkömmlichen Servo möglich, es sei denn, das Teil ist wirklich nur ein "Verstärker", dann muß die SPS natürlich Regeln. Da es hier ein Steuerwort und ein Statuswort gibt, sollte das so machbar sein.


----------



## trinitaucher (5 September 2009)

Dem AX5000 kann man nur zyklische Positions- oder Geschwindigkeits-Sollwerte übergeben. Er meldet auch kein "In Position". Fahraufträge kann man im Gerät auch nicht hinterlegen.
Ist also ein reiner "Verstärker". Scheint so das Konzept zu sein, dass man das Gerät nur mit der NC effizient nutzen kann.


----------



## Ralle (6 September 2009)

trinitaucher schrieb:


> Dem AX5000 kann man nur zyklische Positions- oder Geschwindigkeits-Sollwerte übergeben. Er meldet auch kein "In Position". Fahraufträge kann man im Gerät auch nicht hinterlegen.
> Ist also ein reiner "Verstärker". Scheint so das Konzept zu sein, dass man das Gerät nur mit der NC effizient nutzen kann.



In dem Fall sollte man dann besser ein Gerät verwenden, das so etwas kann. Falls Beckhoff da nichts hat, andere Hersteller haben ganz sicher. Oder ebend die Beckhoff mit der NC-PTP.

PS: Was genau verstehst du unter zyklischen Positionssollwerten? Wozu braucht er die, wenn er dann doch nicht geregelt dorthin fahren kann?


----------



## trinitaucher (6 September 2009)

Ralle schrieb:


> In dem Fall sollte man dann besser ein Gerät verwenden, das so etwas kann. Falls Beckhoff da nichts hat, andere Hersteller haben ganz sicher. Oder ebend die Beckhoff mit der NC-PTP.


Der "alte" AX2000 kann das, glaube ich. Wir haben beide Modelle getestet. Da wir aber eh die NC-PTP verwenden, haben wir keine Probleme mit der gebotenen Funktionalität des Verstärkers.



Ralle schrieb:


> PS: Was genau verstehst du unter zyklischen Positionssollwerten? Wozu braucht er die, wenn er dann doch nicht geregelt dorthin fahren kann?


"zyklisch" heißt, dass die NC im NC-Takt fortlaufend Positionssollwerte als Stützstellen vorgibt, die der Antrieb (interpoliert) ausregelt. Die NC erzeugt sorgt durch die Stützstellen für die passenden Rampen und Dynamiken, der Antrieb regelt nur stur nächste Positionsvorgabe aus. 

Also nicht wie bei festens Fahraufträgen einmalig "fahre 3000 mm nach rechts", sondern zyklisch "fahre 5 Inkremente weiter nach rechts" usw.


----------



## Ralle (6 September 2009)

@trinitaucher

Und gibt es jetzt bei Beckhoff gar keine "kompletten" Servoregler mehr oder ist das eine Frage der Auswahl?


----------



## ahds (7 September 2009)

Also erstmal danke für die Antwort - vom Verständnis her lag ich also garnicht so weit weg. *puh




trinitaucher schrieb:


> Welchen TwinCAT-Level hast du zur Verfügung? IO, PLC oder NC-PTP?



"Eigentlich" nur IO - aber vllt kann ich NC-PTP durchdrücken. Dazu gleich noch mehr.




> Zunächst mal: Läuft der Bus einwandfrei, wenn ihr nur eine I/O-Task habt?



Sieht so aus - jedenfalls kommt keine Fehlermeldung. Unser Elektro- /Steuerungs-Mensch hat mit Beckhoff-Support auch schon so eine Sicherheitsschaltung konfiguriert und über ADS exportiert ("Fehler bestätigen"). Das klappt auch.




> Allein mit ADS wird's kompliziert, glaube ich. AM einfachsten ist eine Verbindung aus NC und PLC. Die NC regelt, die PLC organisiert die Fahraufträge etc. Geht natürlich nur mit dem Level NC-PTP oder höher.
> 
> Du solltest dann aber über die Achsstrukturen und die Soll-/Istwerte arbeiten können:
> http://infosys.beckhoff.com/index.p...general/html/tcnccyclicinterfaceaxisncplc.htm



Also es ist so: eine PLC scheidet aus. Wir haben nur einen PLC-Programmierer und der ist "dicht" im Sinne von ausgelastet - plus: er kennt bisher eh nur Siemens S5 bis 7 und hat insofern vom Beckhoff-Universum auch keine Ahnung. Das ist aber auch der Punkt hier: man soll versuchen, über die (angeblich) einfachen Bussysteme wie EtherCAT und die vielen dafür verfügbaren Geräte alles anschließen können und so viel wie möglich mit unserer SW-Steuerung machen. Das ist wohl erstmal also nicht diskutabel. 

Daher: ich würde jetzt erstmal versuchen, direkt mit ADS auf die Motoren zu kommen.

Zusätlich bleibt aber die Frage: kann man NC-PTP einfach aufsetzen oder brauch ich dafür erstmal eine Schulung?! Beim rumspielen haben wir schon so einen NC-Task mal aufgesetzt gehabt und ich konnte in der Achssteuerung damit den Motor auch schon ansteuern - aber eben nicht über ADS. Und lohnt sich das dann? Die konkreten Aufgaben sind zum einen PTP-Fahrten aber auch Fahrten wo die SW die Geschwindigkeit(en) vorgibt...

Und danke für die Links nochmal!


----------



## trinitaucher (7 September 2009)

Na da habt ihr euch aber was vorgenommen ...



ahds schrieb:


> Das ist aber auch der Punkt hier: man soll versuchen, über die *(angeblich) einfachen *Bussysteme wie EtherCAT und die vielen dafür verfügbaren Geräte alles anschließen können und so viel wie möglich mit unserer SW-Steuerung machen. Das ist wohl erstmal also nicht diskutabel.
> 
> Daher: ich würde jetzt erstmal versuchen, direkt mit ADS auf die Motoren zu kommen.


Leider wird's gerade durch solche "Experimente" (ich nenn's mal so) erst recht kompliziert.
TwinCAT mit EtherCAT ist erst mit PLC oder NC so richtig einfach und effizient. Zumal über die PLC alle Funktionalitäten zur Handhabung des System verfügbar sind.
Nun ja, wenn ihr's so machen wollt (müsst), dann bin ich mal gespannt. Ich wüsste jedenfalls nicht, wie ich mit dem Beckhoff-System ohne die PLC vernüftig zurechtkommen sollte. Und wenn Achsen im Spiel sind... was würde ich ohne die NC nur machen 


ahds schrieb:


> Zusätlich bleibt aber die Frage: kann man NC-PTP einfach aufsetzen oder brauch ich dafür erstmal eine Schulung?! Beim rumspielen haben wir schon so einen NC-Task mal aufgesetzt gehabt und ich konnte in der Achssteuerung damit den Motor auch schon ansteuern - aber eben nicht über ADS. Und lohnt sich das dann? Die konkreten Aufgaben sind zum einen PTP-Fahrten aber auch Fahrten wo die SW die Geschwindigkeit(en) vorgibt...


Also wenn ihr PTP fahren wollt, also mehr als nur stur Sollwerte vorgeben, dann solltet ihr die NC auf jeden Fall in Betracht ziehen. Hat bei Beckhoff ja auch nichts mit "CNC" zu tun. Is nur zum einfachen Ansteuern der Achsen.
Aber ohne ne Schulung wird's für Einsteiger wirklich kompliziert!


----------



## ahds (7 September 2009)

Naja so wie es aussieht bekommen wir sogar ne Schulung. Na immerhin. 

Bis dahin hätte ich aber noch ein paar Fragen - für jede Antwort bleibe ich also richtig dankbar:


Das "Master Control Word" ist wenig selbst erklärend. Weiß jemand noch einen Link o.ä., wo die vllt die Operation Modes etc. etwas genauer beschrieben werden? Selbst wenn man das in einer SPS "verdrahtet" braucht man doch etwas mehr Info als das, oder?! 
So wie es aussieht, hat unser SPS-Mensch (ist jetzt 3 Tage außer Haus) noch einen NC-Task aufgesetzt. Das NC-SPS-Interface (NCTOPLC_AXLESTRUCT) kann ich auch im System-Manager mit meinem IO-Task verknüpfen und überwachen. Das müsste doch dann in der anderen Richtung auch gehen oder?


----------



## trinitaucher (7 September 2009)

ahds schrieb:


> Das "Master Control Word" ist wenig selbst erklärend. Weiß jemand noch einen Link o.ä., wo die vllt die Operation Modes etc. etwas genauer beschrieben werden? Selbst wenn man das in einer SPS "verdrahtet" braucht man doch etwas mehr Info als das, oder?! ​



Wird die NC benutzt, benötigt man diese Infos nicht wirklich. ... ich sag ja, damit wird's sehr einfach.

Die Bedeutung der Control Bits sind auch in der Referenz vom AX2000 beschrieben: http://infosys.beckhoff.com/index.p.../ax2000-b750/html/ax2000-b750_generalinfo.htm
Hab ich mir mal als kleine Hilfe gemerkt, denn beim AX5000 steht da leider nicht viel zu.
Die NC setzt ürbigens alle 3 höchstwertigen Bits auf einemal zum "einschalten", glaube ich.


ahds schrieb:


> So wie es aussieht, hat unser SPS-Mensch (ist jetzt 3 Tage außer Haus) noch einen NC-Task aufgesetzt. Das NC-SPS-Interface (NCTOPLC_AXLESTRUCT) kann ich auch im System-Manager mit meinem IO-Task verknüpfen und überwachen. Das müsste doch dann in der anderen Richtung auch gehen oder?


 Sollte gehen. Über die Achsstruktur PLCTONC_ kommuniziert die SPS ja auch mit der NC:
http://infosys.beckhoff.com/index.p...general/html/tcnccyclicinterfaceaxisncplc.htm
Hier sind die Bedeutungen erklärt.

Aber wenn ne NC installiert ist, ist auch automatisch die PLC mit dabei.


----------

