Motion Control - Gantry Achsen

Nissandriver

Level-2
Beiträge
97
Reaktionspunkte
3
Zuviel Werbung?
-> Hier kostenlos registrieren
Guten Morgen,

eigentlich kommen wir aus der NC Welt.

Wir haben jetzt ein Projekt, wo wir nur eine S7-1500 benutzen mit 2x S120 CU320-2 und 6 Siemens Motoren.

Aktuell haben wir jetzt für jede Achse ein Baustein mit folgenden MotionControll Bausteinen :
  • MC_Power
  • MC_MOVEJOG
  • MC_RESET
  • MC_HOME
  • MC_MOVEABSOLUTE
  • MC_MOVERELATIVE
  • MC_HALT

Das haben wir für folgende Achsen/Spindel konfiguriert:
  • X -Achse
  • Y1 - Achse
  • Y2 - Achse
  • W - Achse
  • Z - Achse
  • Spindel S1

So, jetzt sollen die Y Achsen als Gantry laufen. Es gibt von Siemens ein Baustein mit GantryAxis. Die Y Achsen kann ich einzeln verfahren , alles gut.

Aber wir wollten jetzt , dass Y1 der "Master" ist und Y2 "Slave" , wo ich auch mal per Tastendruck entkoppeln kann,

Haben aber damit 0 Erfahrung. Muss ich jetzt für die Y achsen alles neu machen ?

Hat jemand Erfahrungen ? Vllt. auch mal ein Bsp Projekt (benutzen TIA V18)
 
Schau dir mal den MC_GearIn an. Der sollte das machen, was du möchtest, wenn ich die Applikation richtig verstanden habe.
Von Siemens gibt es auch die Standardapplikation LAxisCtrl, damit müsstest du dich nicht um die Ansteuerung der einzelenen MC-Befehle kümmern.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Schau dir mal den MC_GearIn an. Der sollte das machen, was du möchtest, wenn ich die Applikation richtig verstanden habe.
Von Siemens gibt es auch die Standardapplikation LAxisCtrl, damit müsstest du dich nicht um die Ansteuerung der einzelenen MC-Befehle kümmern.
Danke, werde ich mir mal anschauen. Habe schon festgestellt, man muss auf Telegram 105 gehen. aktuell habe ich aber telegramm 3.. Habe jetzt aber probleme es umzustellen. Muss ich mir mal in Ruhe anschauen..
 
Servus,

ich würde dir zusätzlich noch empfehlen an deinem Gantry-Verbund eine virtuelle Gantry-Masterachse (Y-Master) anzulegen, auf welche du deine Slave-Achsen (Y1 und Y2) koppelst. Hat den Hintergrund, dass beide Achsen den gleichen Sollwert bekommen und annähernd mit dem „gleichen“ Abstand der Masterachse folgen. Bei einer Kopplung zwischen Y1/Y2 würde immer eine der beiden Achsen der anderen marginal hinterher folgen.

Um die Achsen zu synchronisieren kannst du wie folgt vorgehen (vorausgesetzt die Achsen sind schon eingerichtet und referenziert):

- Achsen mit MC_Power einschalten
- Absolute Positionsdifferenz Y1 zu Y2 berechnen (z.B. Position Y1 = 5mm, Position Y2 = 6mm => Differenz = 1mm)
- Ist der Abstand kleiner als eine von euch festgelegte Toleranz, beide Achsen so Positionieren, dass sie sich in der mitte „treffen“ (hier im Beispiel mit MC_MoveAbsolute beide Achsen auf 5,5mm positionieren. Ist der Abstand größer als Xmm, sollte nicht positioniert werden
- Sind beide Achsen zueinander ausgerichtet, können beide Achsen mit einem MC_GearIn auf die gemeinsame Masterachse synchronisiert werden.
In der Applikation musst du demnach nur noch deine Masterachse ansteuern.

Zusätzlich solltest du noch zyklisch überwachen, ob die Positionsdifferenz von Master <> Slaves in einem Gewissen Rahmen bleibt und bei bedarf die Achsen schnellstmöglich stillsetzen.
(Warum hier die Einstellung „Fehler der Masterachse melden „ aus SIMOTION noch nicht in die 1500er übernommen wurde ist fraglich.)

Dies mal als Vorgehensweise, wenn du keinen steifen Gantry-Verbund hast, bei dem eine Positionsdifferenz zwischen den Slaves vertretbar ist.
Bei steifer mechanischer Kopplung sieht das ganze schon wieder anders aus.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Servus,

ich würde dir zusätzlich noch empfehlen an deinem Gantry-Verbund eine virtuelle Gantry-Masterachse (Y-Master) anzulegen, auf welche du deine Slave-Achsen (Y1 und Y2) koppelst. Hat den Hintergrund, dass beide Achsen den gleichen Sollwert bekommen und annähernd mit dem „gleichen“ Abstand der Masterachse folgen. Bei einer Kopplung zwischen Y1/Y2 würde immer eine der beiden Achsen der anderen marginal hinterher folgen.

Um die Achsen zu synchronisieren kannst du wie folgt vorgehen (vorausgesetzt die Achsen sind schon eingerichtet und referenziert):

- Achsen mit MC_Power einschalten
- Absolute Positionsdifferenz Y1 zu Y2 berechnen (z.B. Position Y1 = 5mm, Position Y2 = 6mm => Differenz = 1mm)
- Ist der Abstand kleiner als eine von euch festgelegte Toleranz, beide Achsen so Positionieren, dass sie sich in der mitte „treffen“ (hier im Beispiel mit MC_MoveAbsolute beide Achsen auf 5,5mm positionieren. Ist der Abstand größer als Xmm, sollte nicht positioniert werden
- Sind beide Achsen zueinander ausgerichtet, können beide Achsen mit einem MC_GearIn auf die gemeinsame Masterachse synchronisiert werden.
In der Applikation musst du demnach nur noch deine Masterachse ansteuern.

Zusätzlich solltest du noch zyklisch überwachen, ob die Positionsdifferenz von Master <> Slaves in einem Gewissen Rahmen bleibt und bei bedarf die Achsen schnellstmöglich stillsetzen.
(Warum hier die Einstellung „Fehler der Masterachse melden „ aus SIMOTION noch nicht in die 1500er übernommen wurde ist fraglich.)

Dies mal als Vorgehensweise, wenn du keinen steifen Gantry-Verbund hast, bei dem eine Positionsdifferenz zwischen den Slaves vertretbar ist.
Bei steifer mechanischer Kopplung sieht das ganze schon wieder anders aus.
Also mechanisch gekoppelt ist die nicht (Hoffe ich) , da haben wir noch keine konkrete Auskunft

Puh, wie gesagt , das haben wir noch nie gemacht. Sind eigentlich in der NC Welt unterwegs und das ist für uns Neuland.

Hast du vllt. ein Bsp ? Denke wahrscheinlich gerade wieder zu kompliziert
 
Hello ,

ja den Baustein habe ich gefunden. Mir ging es eher wegen den Vergleichen etc. Habe kurz mal geschaut, habe den Sollwert und Istwert verglichen. aber es springt immer hin un her. Muss mal das Filtern irgendwie.
 
Zurück
Oben