21. Februar 2019, 09:23:00
Roboterforum.de - Die Industrieroboter- Anwender und Experten Community

[offen] Bewegungsablauf bei "Wait For $IN" und "Trigger" Befehlern


normal_post Autor Thema: [offen] Bewegungsablauf bei "Wait For $IN" und "Trigger" Befehlern  (Gelesen 2097 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

08. Februar 2019, 17:45:10
Gelesen 2097 mal
Offline

der_Held


Wertes Forum,

ich möchte einem KR6 mit KR C4 Compakt Steuerung und pneumatischem Greifer zu mehr Agilität verhelfen.
Nachfolgend ein Programmauszug:

$ADVANCED = 3
$APO.CDIS = 100

LIN Greifpunkt Ablage 1
PULSE ($OUT[111],TRUE,1)
     ;Greifer schließen
WAIT FOR $IN[111]
     ;Rückmeldung Greiffer ist geschlossen
LIN Vorposition 1 Ablage 1 C_DIS
PTP Vorposition 2 Ablage 1 C_DIS
TRIGGER WHEN DISTANCE=0 DELAY=0 DO PULSE ($OUT[1],TRUE,1)
     ;Rückmeldung an übergeordnete SPS, das mit Erreichen der HOME-Position Ablage 1 verlassen wurde
PTP HOME C_DIS
CONTINUE
     ;Vorlaufstop verhindern
WAIT FOR $IN[1]
     ;übergeordnete SPS setzt Eingang 1 wenn Ablage 2 angefahren werden kann
PTP Vorposition 2 Ablage 2 C_DIS
PTP Vorposition 1 Ablage 2 C_DIS
LIN Greifpunkt Ablage 2
PULSE ($OUT[112],TRUE,1)
     ;Greifer öffnen
WAIT FOR $IN[112]
     ;Rückmeldung Greiffer ist geöffnet


Der Roboter soll, so mein Wunsch, nur an den Greifpunkten zum Ablegen und Aufnehmen von Material genau halten.
Macht er aber nicht, der Halunke :grmpf:
Es wird an der HOME-Position gehalten.

Warum?

Einziger mir bekannter Grund könnte die SPS sein, die Eingang 1 des Roboters noch nicht auf TRUE gesetzt hat.

Oder gibt es noch mehr Gründe?

der_Held
  • gefällt mir    Danke

Heute um 09:23:00
Antwort #1

Werbung

Gast

08. Februar 2019, 18:00:18
Antwort #1
Offline

woodys


Ist das überschleifen bei PTP Bewegungen nicht C_PTP?
Bei LIN C_DIS....

Ansonsten würde ich mal Advanced auf 1 setzen.

Grüße
  • gefällt mir    Danke

08. Februar 2019, 19:04:03
Antwort #2
Offline

Stethi


Continue wirkt immer auf die nächste folgende Zeile. Hier auf deinen Kommentar!


08. Februar 2019, 22:58:45
Antwort #3
Offline

der_Held


Vielen Dank für die Rückmeldungen.

@Stethi
die Kommentare dienen hier der Verständlichkeit. So geschrieben, wäre es besser gewesen:
CONTINUE ;Vorlaufstop verhindern
WAIT FOR $IN[1]

@woodys
Da bin ich mir selbst nach dem Lesen der Anleitungen nicht sicher.

Zitat
C_PTP
Beim PTP-PTP-Überschleifen genügt die Angabe C_PTP.
Beim PTP-CP-Überschleifen, d.h. wenn nach dem überschliffenen
PTP-Satz ein LIN- oder CIRC-Satz folgt, muss
zusätzlich noch Bahnüberschleif angegeben werden.

Bahnüberschleif
Nur für PTP-CP-Überschleifen. Dieser Parameter definiert,
wann das Überschleifen frühestens beginnt. Die möglichen
Angaben:C_DIS...

Feststellung:
$APO_DIS_PTP [Achsnummer] gibt einen Maximalwinkel an, ab dem Überschliffen wird, steht in $machine.dat auf 90
$APO.CPTP [Prozent] gibt den Prozentsatz vom Maximalwinkel an, steht in bas.src auf 100
$APO.CDIS = 100 klappt nicht weil $APO_DIS_PTP = 90

 :huh:
  • gefällt mir    Danke

09. Februar 2019, 02:35:55
Antwort #4
Offline

Martl


Servus,

bei Wait - Befehlen kann  man "Continue" benutzen => warum nicht gleich Inlineformular

@woodys => warum $advanced auf "1" setzen  => wird dann nur noch schlechter
  • gefällt mir    Danke

Heute um 09:23:00
Antwort #5

Werbung

Gast

09. Februar 2019, 10:16:22
Antwort #5
Offline

Hermann


1. Der Programmauszug ist wieder mal kein Original, sondern abgetippt oder sonstwie manipuliert, denn die Variable heisst $ADVANCE (ohne "D"), "LIN Vorposition 1 Ablage 1 C_DIS" ist kein vernünftiger KRL-Befehl. Bitte immer den Originalcode posten. Es kommt oft auf jede Leerzeile und jedes kleinste Detail an!

2. Wie Stethi schon sagte. CONTINUE wirkt genau auf die nachfolgende Zeile. Wenn das ein Kommentar oder eine Leerzeile ist, dann wirkt das auf eben diese Zeile, und hat damit KEINERLEI Auswirkung.

3. $Advance=1 kann schon was bringen, wenn das Signal $IN[1] relativ spät kommt, denn wenn es erst kommt, wenn der Roboter auf dem Weg von Vorposition2 auf Home ist, dann gibt es bei $advance=3 einen Stop, bei 1 keinen.

4. bin mir nicht sicher ob man beim WAIT FOR mit continue den Vorlaufstop verhindern kann. Da wäre ein Versuch mit
continue
if not $in[1] then
 wait for $in[1]
endif
sinnvoll.

5. Siehe wieder 1.: Da kein Originalcode kann man nicht sehen, ob die Punkte mit Inlineformularen oder als 'Expertbefehle' programmiert sind. Evtl. findet da ein Toolwechsel mit Lastdatenwechsel statt, dann gibt es auch einen Stop.

6. XHOME ist ein Punkt vom Typ E6AXIS, wie sich da das Überschleifen mit C_DIS verhält weiss ich nicht, evtl. C_PTP versuchen, oder einen normalen E6POS verwenden.

Wie so oft ein Fall für die verlorene Glaskugel. :lol:
  • gefällt mir    Danke


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