Trigger Befehl setzen für Bewegung in Funktion

  • Halli Hallo,


    gleich mein erster Beitrag hier im Forum ist schon eine Frage ;)


    Also ich habe folgende Frage, ist es möglich einen Trigger Befehl zu definieren aber die Bahnbewegung in der er ausgeführt wird befindet sich in einer untergeordneten Funktion.


    z.B.:


    Code
    TRIGGER WHEN DISTANCE=20 DELAY=0 DO dog_Greifer_zu=TRUE
    
    mvVAbn1_Abn1() ; zur Abnahmeposition fahren



    Da die "LIN pAbn1" ja die nächste Bahnbewegung ist müsste sich der TRIGGER ja darauf beziehen oder?


    Hoffentlich versteht ihr was ich meine ;)


    Grüße,
    Ralf :merci:

  • Schritt für Schritt zum Roboterprofi!
  • Jetzt muss ich aber kurz nochmal etwas nachfragen, ich würde gerne den Ausgang dog_Greifer_zu auf True setzen wenn ich 20mm vor der Zielposition stehe, das wäre ja dann:


    Code
    TRIGGER WHEN PATH=-20 DELAY=0 DO dog_Greifer_zu=TRUE


    Richtig?

  • Das DISTANCE=20 sollte doch so gar nicht gehen oder? LAut Doku kann man doch nur 1 und 0 nehmen (0 für Startpunkt 1 für Endpunkt). Oder wird 20 als 1 interpretiert?
    Wenn man eine Entfernung will sollte man doch WHEN PATH nehmen?
    Haber bisher kaum Trigger benutzen müssen. Und in der letzten Anlage dann doch und da ist mir das aufgefallen, weil ich am Anfang DISTANCE = 0 hatte und dachte das wäre dann 0 mm vom Endpunkt weg. Habe dann festgestellt, dass er immer im Startpunkt Triggert und nochmal genau in der Doku nachgelesen.

  • Das steht in der Doku, sollte also so gehen mit dem Path = -20


    Mit Strecke geben Sie die gewünschte Entfernung vom
    nach dem Trigger programmierten Zielpunkt an.
    Ist dieser Zielpunkt ein überschliffener Punkt, so gibt
    Strecke die gewünschteEntfernung der Schaltaktion von
    der dem Zielpunkt am nächsten liegenden Position des
    Überschleifbereichs an.
    Der Schaltpunkt kann durch eine negative Strecke bis
    zum Startpunkt vorgezogen werden. Ist der Startpunkt ein
    Überschleifpunkt, so kann der Schaltpunkt bis zumAnfang
    des Überschleifbereichs verschoben werden.
    Mit einer positiven Angabe von Strecke ist eine Verschiebung
    bis zum nächsten nach dem Trigger programmierten
    Genauhaltpunkt möglich.
    Die Einheit ist Millimeter.

  • Wunderbar ! :goodpost:


    Ich habe über Google, auf der Doku CD und in den Schulungsunterlagen nichts über Trigger gefunden. Und mein Kurs ist schon nen gutes halbes Jahr her.


    Auf jedenfall schonmal vielen Dank :blumen:

  • Ich "Missbrauche" jetzt einfach mal wieter dieses Thema hier.


    Und zwar habe ich einen Punkt den ich überschleifen will (PTP) und danach folgt eine IF Abfrage die entscheidet welcher Punkt als nächstes angefahren wird.


    Nun löst doch eine IF Abfrage einen Vorlaufstop aus, nur ist dieser bei der Variable die abgefragt recht sinnfrei und nun würde ich diesen über CONTINUE gerne überspringen.



    So müsste es doch klappen oder?


    P.S.: Sind alles recht simple Fragen die ich so habe ;) Aber unser primärer KUKA Programmierer ist krank und nun hab ich das alles an der Backe ;)

  • Vielen Dank für die Doku, hilft schon extrem weiter.


    Nur verwirrt mich jetzt das IF Anweisungen den Vorlaufzeiger nicht stoppen, also müsste mein Überschleifen da oben ja funktionieren. Tut es aber leider nicht. :shock:

  • also if anweisungen stoppen den vorlaufzeiger nicht.


    ich glaube eher, dass da die funktion offs() dran schuld ist.

    „Welten, regiert von künstlichen Intelligenzen,<br />mußten oftmals ihre schmerzlichen Erfahrungen machen.<br />Logik kennt keine Gefühle.“

  • Also du meinst das der Vorlaufzeiger dadurch nicht soweit kommt?



    Mehr mach ich im Offset nicht ...

  • meine vermutung ist:


    pHilf fährt er ja im einen fall zweimal hintereinander wenn die zu dicht liegen kann es sein das er den net überschleift wenn die überschleifdistance zu hoch ist

  • Egal welche IF Abfrage er nimmt er überschleift beides nicht, also macht einen Stop und geht dann erst weiter...


    Code
    ;------ Überschleifparameter definieren
      $APO.CPTP = 100 ; in %
      $APO.CDIS = 200 ; in mm


    Das sind die für den Abschnitt gültigen Überschleifparameter ...


  • meine vermutung ist:


    pHilf fährt er ja im einen fall zweimal hintereinander wenn die zu dicht liegen kann es sein das er den net überschleift wenn die überschleifdistance zu hoch ist


    Das ist so nicht richtig. Wenn die Überschleifdistanz größer ist als die Wegstrecke, dann wird die Überschleifdistanz automatisch von der Steuerung reduziert. Und zwar auf die halbe Wegstrecke. Ein Vorlaufstop wird dadurch nicht ausgelöst.


    Allerdings gibt es schon den Fall, das der Roboter Punkte nicht verschleifen kann wenn diese zu dicht liegen. Und zu dicht bedeutet im 0.1mm Bereich. Bin mir da aber nicht sicher. Aber in deinem Fall hast du ja min. 50mm Wegstrecke (Offset). Das ist überhaupt kein Problem.


    Gruß HarryH

  • Hallo,


    Zitat

    Also ich sehe mit bloßem Auge wirklich keinerlei überschleifen an der Stelle.


    setz mal $STOPNOAPROX auf TRUE. und schau ob er


    1) in T2 stehen bleibt (in Automatik und extern kommt nur eine Hinweismeldung, falls er nicht stehen bleibt wird auch wenn es nicht so aussieht überschliffen),
    2) was für Meldungen kommen und
    3) wo im Programm er dann genau steht ($PRO_IP1)


    Dann sollte eine genauere Diagnose möglich sein.


    Gruß
    Fubini

    Einmal editiert, zuletzt von fubini ()

Erstelle ein Benutzerkonto oder melde dich an um zu kommentieren

Du musst ein Benutzerkonto haben um einen Kommentar hinterlassen zu können

Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Geht einfach!
Neues Benutzerkonto erstellen
Anmelden
Du hast bereits ein Benutzerkonto? Melde dich hier an.
Jetzt anmelden