Interpoliertes Fahren mit Twincat NCI / Sollwerte aus C++ Anwendung

Basde28

Level-1
Beiträge
10
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo SPS-Forum,

ich möchte in meiner Anwendung 3 Achsen interpoliert verfahren. Hierzu habe ich einen CX1030 mit Twincat NCI. Die Sollwerte (Position) kommen von einem externen Rechner über ein C++ Programm. Ich muss also die ADS-DLL verwenden. Nun ist mir aber nicht ganz klar ob ich ein NC Programm schreiben muss oder ob ich die NC über die SPS (mit den Libraries) bedienen kann und die Sollwerte der SPS übergeben kann.

Vielen Dank im Voraus!

Gruß
Basde28
 
Hallo Basde28 !
Normal ist es so, dass die SPS über Funktionsbausteine die Sollwerte and die NC übergibt und die Achsen (die SPS benutzt die Bausteine für die Interpolation) startet.
Die Sollwerte brauchen eigentlich nur die Positionsziele, die Geschwindigkeiten, Beschleunigung und Verzögerungen sein, den Rest macht die NC selbst, also die Interpolationen und die Achsansteuerungen

Die Sollwerte kannst du über ADs an die SPS übergeben.
 
Hallo Basde28,

willst Du wirklich Achsen interpolieren (NCI), oder willst du nur auf bestimmte Positionen Fahren? (NC-PTP) Da gibt es ein Unterschied, denn die NCI ist etwas aufwendiger. Ich denke mal es ist nicht damit getan, ein par Parameter zu übertragen. Wenn Du wirklich die NCI verfahren willst brauchst Du ein NC-Programm im G-Code. Dort werden die Befehler für die interpolation abgesetzt, wie Kreisinterpolation, oder Kurveninterpolation.
In der Regel ist es so, dass die Programme im SystemManager geschrieben werden, und dann nur aus der SPS raus aufgerufen werden. Den Rest macht dann der Interpreter der NC selbst. Es ist aber auch möglich Parameter (R-Parameter) in das NC-Programm zu übergeben.
Darf man fragen was Du vor hast?

Gruß Scrat
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Scrat und StefanM,

ich denke schon dass das Interpolation ist. Ich habe 3 Achsen, gebe eine Position vor und die 3 Achsen sollen zur Position fahren. Ein NC Programm zu schreiben hatte ich eigentlich nicht vor.

Was meint ihr dazu?

Grüße
Basde28
 
Hallo Basde28,

wenn „nur“ die 3 Achsen von Punkt zu Punkt gefahren werden müssen, dann ist „TwinCAT NC PTP“ vollkommen ausreichend. Die Achsen können dann zeitgleich verfahren werden, jedoch versteht man darunter noch kein Interpoliertes fahren.

Die Positionslisten mit ADS zu übergeben ist natürlich möglich.

Gruß
Chräshe
 
Aber dann muß man zumindest selbst interpolieren oder so etwas ähnliches nachvollziehen. Wenn z.Bsp. Achse 3 eine Z-Achse ist, die von oben nach unten fährt, wäre es u.U. fatal, wenn alle 3 Achsen gleichzeitig und völlig unabhängig voneinander den gewünschten Punkt ansteuern und Achse 3 zuerst seine Position erreicht. Dann könnten die anderen beiden Achsen evt. ein Werkzeug o.ä. quer durch das zu bearbeitende Material ziehen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
kommt ja immer darauf an, wenn es point to point ist und er keine
Dynamik braucht. Kann er ja die Achsen in einer bestimmten Reihenfolge
verfahren, Z-Achse darf nur verfahren wenn X und Y in einen bestimmten
bereich ist und andersherum. Also eine Quasi Interpolation im SPS-
Programm.
 
Also bei der Anwendung ist es völlig egal wann welche Achse fährt. Sie sollen alle gemeinsam fahren und die Zielposition gleichzeitig erreichen...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
@Ralle:
Wenn ich nur ein Handling oder ähnliches habe, brauche ich doch keine Interpolation. Dass ich Kollisionen vermeiden muss, ist ein ganz anderes Thema. Das gilt aber genauso für einen Roboter oder eine CNC-Maschine…

@Helmut:
Was hat das mit der Dynamik zu tun? Ich hätte gedacht, dass es ähnlich scheppert, wenn ich interpoliert oder per PTP durch die Wandung einer Gitterbox fahre!? :rolleyes:

@ Basde28:
Wieso muss die Zielposition gleichzeitig erreicht werden?
Angenommen Y und Z starten gleichzeitig mit der selben Beschleunigung und Geschwindigkeit. Y fährt 250mm und Z muss sich nur 30mm bewegen. Dann ist bei PTP-Fahrt Z schon vor Y im Ziel…
Am besten du beschreibst mal, was das werden soll, oder wendest dich direkt an den Vertrieb von Beckhoff…

Gruß
Chräshe
 
@Ralle:
@Helmut:
Was hat das mit der Dynamik zu tun? Ich hätte gedacht, dass es ähnlich scheppert, wenn ich interpoliert oder per PTP durch die Wandung einer Gitterbox fahre!? :rolleyes:

Wenn deine Achsen kein wenig Dynamik haben, wird eine Interpolation
sehr schwer. Z.b. Bei den CNC Maschinen die bei uns durch das Werk gehen
sind immer Servo Antriebe verbaut obwohl doch Drehströmer viel billiger
sind.
 
Erstmal vielen dank für die vielen konstruktiven Beiträge....

Naja wegem dem gleichzeitig ankommen meinte ich ja dass ich interpolieren muss. Die Anwendung ist 2-dimensional. Antrieb 1 und 2 sind ein Portal im Gantry-Verbund. Die 3. Achse sitzt auf dem Portal und kann dort hin und her fahren. Nun will ich eine Position anfahren und dass das ganze schöner aussieht sollen die Antriebe in einer Bahn dort hin fahren. Ich hoffe die Beschreibung hilft ein wenig weiter.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
So, habe mit Beckhoff telefoniert. Um interpoliert zu fahren ist auf jeden Fall ein NC Programm nötig. Diesem werden die Sollwerte von der SPS übergeben. Weiterhin wird das NC Programm von der SPS angestossen.
 
Um interpoliert zu fahren ist auf jeden Fall ein NC Programm nötig. Diesem werden die Sollwerte von der SPS übergeben. Weiterhin wird das NC Programm von der SPS angestossen.
Ja, so ist das.
Die Anwendung ist 2-dimensional. Antrieb 1 und 2 sind ein Portal im Gantry-Verbund. Die 3. Achse sitzt auf dem Portal und kann dort hin und her fahren. Nun will ich eine Position anfahren und dass das ganze schöner aussieht sollen die Antriebe in einer Bahn dort hin fahren. Ich hoffe die Beschreibung hilft ein wenig weiter.
Nur damit es "schöner aussieht"? Nicht wirklich, oder? Dafür ist eine interpolierende NC doch völlig überdimensioniert.
Zumal du das NC-Programm bei NC-i in G-Code schreiben musst. Du müsstest für jeden Fahrauftrag (sprich für jede Positionsänderung) ein neues NC-Programm starten. Allein das Programmhandling ist schon viel zu kompliziert für diese einfache Bewegung.

Mein Vorschlag:
NC-PTP nehmen, Achse 1 und 2 linear 1:1 koppeln (z.B. Achse 1 als Master, Achse 2 als Slave).
Wenn's schöner aussehen soll, kannst du dir die Verfahrzeit bis ins Ziel der Achse 1 in etwa ausrechnen. Das Ergebnis rechnest du in eine Geschwindigkeit für Achse 3 um. Dann sind die Achsen auch in etwa gleichzeitig im Ziel. ... ganz simpel.
 
Hallo trinitaucher,

danke für die Antwort. NCI und interpolierend nicht wegen des Aussehens, sondern auch weil noch andere Antriebe hinzukommen. Im ersten Schritt möchte ich aber nur das Portal mit dem Schlitten in Betrieb nehmen.

Habt ihr schonmal etwas von der TwinCAT PLC Library: TcPlcInterpolation gehört?

Mit dieser soll es möglich sein verschiedene Fahraufträge, die nach Start nacheinander abgearbeitet werden, in eine Tabelle zu schreiben ohne G-Code zu benutzen. Klingt auf den ersten Blick auch ganz interessant.

Grüße
Basde28
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Basde28,

OK- verständlich, du konntest uns nicht alle Informationen zukommen lassen, weil dein Projekt der Geheimhaltung unterliegt... :rolleyes:

Aber bitte beachte vollende Punkte:


  • Die „TwinCAT CNC“ unterstützt in einem CNC-Kanal nur bis zu 32 Achsen simultan interpoliert.

  • Die Komponenten von Beckhoff sind nicht freigegeben für die Luftfahrt, Raumfahrt, Kerntechnik oder Rüstungsindustrie. (Hab ich mal wo auf einem Beipackzettel gelesen...)

  • Die AX5xxx Servoverstärker sind aktuell nur bis zu einer Leistungsklasse von 120 kW verfügbar.

Gruß
Chräshe
 
Hallo Basde28,

ich würde dein Vorhaben genau so umsetzen wie trinitaucher das beschrieben hat. Alles andere macht auch aus meiner Sicht kein Sinn.

@trinitaucher
Zumal du das NC-Programm bei NC-i in G-Code schreiben musst. Du müsstest für jeden Fahrauftrag (sprich für jede Positionsänderung) ein neues NC-Programm starten

Das ist nicht ganz korrekt, da du im NC-Programm (G-Code) so viele Verfahrsätze hintereinander ausführen wie Du möchtest, so lange bis Du das Programm als beendet erklährst. Dann kannst Du das Programm erneut aufrufen, oder ein anderes Aufrufen.


Gruß Scrat
 
Ich hab von der Beckhoff NC-i nicht so viel Ahnung. Habe das aus der Schulung aber so verstanden, dass man das komplette NC-Programm per SPS an die NC übergibt.

Wenn man aber nun einen neuen Fahrauftrag anstoßen möchte, also das NC-Programm ändern will, muss die NC erstmal fertig sein. Dann läd man das neue Programm und startest diese.
Also für jeden neuen Fahrauftrag müsste ein neues (abgeschlossenes) NC-Programm geladen werden.

Oder kann man bei der Beckhoff NC-i ein laufendes Programm auf Kommando anhalten, partiell verändern und weiter abarbeiten lassen?
 
Zurück
Oben