22. Juli 2019, 20:22:35
Roboterforum.de - Die Industrieroboter- Anwender und Experten Community

[gelöst] 2 Bewegungen unabhängig voneinander


normal_post Autor Thema: [gelöst] 2 Bewegungen unabhängig voneinander  (Gelesen 598 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

16. Mai 2019, 08:40:15
Gelesen 598 mal
Offline

Whitey


Hallo zusammen,

zu den Daten:
MAG Schweißroboter
Roboter: KR6-2
Steuerung: KRC4
Version: 8.3.27

Ich würde gern folgendes optimieren und hab keinerlei Idee wie ich es angehen soll :kopfkratz:. Der KR6-2 ist in der Mitte eines Rundtisches platziert. Jetzt würde ich gerne in der Zeit wenn der Tisch dreht, die Brennereinigung starten, allerdings steuert der Roboter auch die Drehachse des Tisches. Anbei der momentane Code

;Abfrage ob gereinigt werden soll
IF $IN[I_AnfReinigen] == TRUE THEN
   brennerreinigung()
ENDIF
   
$ASYNC_AXIS = 'B0111'
;Warten auf Drehanforderung von SPS
WAIT FOR ($IN[I_DrehtischNach_0Grad] == TRUE) OR  ($IN[I_DrehtischNach_180Grad] == TRUE) OR ($IN[I_AnfWartungsPos] == TRUE)
IF ($IN[I_DrehtischNach_0Grad] == TRUE) AND ($IN[I_DrehtischIn_0Grad] == FALSE) THEN
   $OV_ASYNC = 100
   ASYPTP {E1 0.0, E2 0.0, E3 0.0}
   $ASYNC_AXIS = 'B0011'
ELSE
IF ($IN[I_DrehtischNach_180Grad] == TRUE) AND ($IN[I_DrehtischIn_180Grad] == FALSE) THEN
   $OV_ASYNC = 100
   ASYPTP {E1 -180.0, E2 0.0, E3 0.0}
   $ASYNC_AXIS = 'B0101'
 ENDIF
 ENDIF   

Ist es möglich die Brennerreinigung als auch die Drehung zusammen auszuführen?
Bin über jeden Vorschlag dankbar  :merci:


Grüße Whitey
« Letzte Änderung: 16. Mai 2019, 11:19:24 von SJX »
  • gefällt mir    Danke
Es gibt 10 Gruppen von Menschen: Die, die Binärcode verstehen und die, die ihn nicht verstehen.

Heute um 20:22:35
Antwort #1

Werbung

Gast

16. Mai 2019, 09:43:10
Antwort #1
Offline

SJX

Global Moderator
Hallo Whitey,

So wie es aktuell gelöst ist, macht eigentlich Asynchronbewegung keinen Sinn.
Könntest gleich PTP E1 xx nehmen.

Du schaltest Achsen gleich nach der Asynchronen Bewegung wieder Synchron.
Wenn Du parallele Bewegungen willst, musst Du sie innerhalb des Bereiches nehmen, wo externe Achse Asynchron läuft.

Probier mal so:

$ASYNC_AXIS = 'B0111'

;Warten auf Drehanforderung von SPS
WAIT FOR ($IN[I_DrehtischNach_0Grad] == TRUE) OR  ($IN[I_DrehtischNach_180Grad] == TRUE) OR ($IN[I_AnfWartungsPos] == TRUE)

IF ($IN[I_DrehtischNach_0Grad] == TRUE) AND ($IN[I_DrehtischIn_0Grad] == FALSE) THEN
   $OV_ASYNC = 100
   ASYPTP {E1 0.0, E2 0.0, E3 0.0}
   IF $IN[I_AnfReinigen] == TRUE THEN  ;Abfrage ob gereinigt werden soll
       brennerreinigung()
   ENDIF
   $ASYNC_AXIS = 'B0011'
ELSE
   IF ($IN[I_DrehtischNach_180Grad] == TRUE) AND ($IN[I_DrehtischIn_180Grad] == FALSE) THEN
      $OV_ASYNC = 100
      ASYPTP {E1 -180.0, E2 0.0, E3 0.0}
      IF $IN[I_AnfReinigen] == TRUE THEN  ;Abfrage ob gereinigt werden soll
          brennerreinigung()
      ENDIF
      $ASYNC_AXIS = 'B0101'
   ENDIF
 ENDIF 

Gruss SJX
Manche Maenner bemuehen sich lebenslang, das Wesen einer Frau zu verstehen. Andere befassen sich mit weniger schwierigen Dingen z.B. der Relativitaetstheorie.

16. Mai 2019, 10:18:31
Antwort #2
Offline

Whitey


Danke SJX,

hat geklappt  :grinser043: :danke:
« Letzte Änderung: 16. Mai 2019, 10:26:25 von Whitey »
  • gefällt mir    Danke
Es gibt 10 Gruppen von Menschen: Die, die Binärcode verstehen und die, die ihn nicht verstehen.


Teile per facebook Teile per linkedin Teile per pinterest Teile per reddit Teile per twitter
 

über das Roboterforum

Nutzungsbedingungen Impressum Datenschutzerklärung

Sponsoren des Roboterforums

ROBTEC GmbH