mehrere dual auszuführende Aktionen

  • Hi,
    kann sein das ich grade massiv auf'm Schlauch steh aber ich bekomm das gerade irgendwie nicht gebacken.
    Die Problemematik ist, wie kann ich mehrere Aktionen gleichzeitig durchführen habe folgende probiert (leider erfolglos):
    Auswerferfreigabe(SGM) + verzögertes Greifen per Variable + Rückzug auf Pos XP10
    möchte zb. das Greifer schließen unter Abarbeitung aller drei Befehle realisieren jedoch mit Verzögerung während dem Prozess..


    Hab den Teil bisher so deklariert (habs nun schon auf mehrfache arte und weise versucht)



    Hab da irgendwie nen totalen Denkfehler, hoffe, da kann mir jemand helfen.
    Mein zweiter Weg war das irgendwie per TRIGGER WHEN... zu lösen aber der Versuch ging so auf das meine Variable PICKER_VZ nicht als Delay- Wert übernehmbar war.


    Danke schonmal Grüße

  • Schritt für Schritt zum Roboterprofi!
  • ;Ich weiss hier nicht so recht wie ich das ansetzen soll, kam dann spontan auf eine Doppeltschleife...
    PickerStart = TRUE
    IF PickerStart == TRUE THEN
    IF PickerStart == TRUE THEN


    Kann hier den Sinn nicht finden...!? Oder stehe ich jetzt auf dem Schlauch?



    Mein zweiter Weg war das irgendwie per TRIGGER WHEN... zu lösen aber der Versuch ging so auf das meine Variable PICKER_VZ nicht als Delay- Wert übernehmbar war.


    Ja, das habe ich auch schon festgestellt. Hat mich auch schon des öfteren genervt.
    Welche Softwareversion benutzt du? IMO funktioniert das vergeben eine Variable als Delay inzwischen. Habe ich bei V5.5.14 nämlich gemacht. Da gings dann plötzlich!


    Wie ganau muss denn die zeitliche Abfolge sein. Könnte man das vielleicht im Submit lösen? Oder in einer übergeortneten SPS/PLC?

    Greetings, Irrer Polterer!

    Wie poste ich falsch? Nachdem ich die Suche und die FAQ erfolgreich ignoriert habe, erstelle ich das gleiche Thema in mehreren Unterforen, benutze einen sehr kreativen Titel wie "Hilfe", am Besten noch mit mehreren Ausrufezeichen, und veröffentliche einen so eindeutigen Text, dass sich jeder etwas Anderes darunter vorstellt.


    Life is a beta version. Full of bugs and no Manual.

  • Wir verwenden die Version 4.X.X also Abfolge ist
    Ejector vor + Bewegung zurück + Greifer zu (mit Variable als Verzögerung)


    Muss das ganze Bedienerfreundlich gestalten, hab schon einige brisante Geschwindigkeiten & Vorgänge transparent in Variablen verpackt


    also Start zeitgleich, leider ging mein Fortgeschrittenen Lehrgang nich vertieft über die Verwendung von Submit-Interpretern, hättest Du da viell. nen Anwendungsbeispiel?- SPS ist ehr schlecht, da wir den Rob. nur mit Maschine gekoppelt stehen haben.


    Hab das derzeit ohne Verzögerung laufen, jedoch mach ich mir da den Vorlaufzeiger zu nutze und lass ihn über alle 3 Aktionen huschen.

    Einmal editiert, zuletzt von Valid ()

  • OH, schon eine Antwort von Rainer, während ich noch überlege... Vielleicht hilft es ja trotzdem weiter.




    Hallo Valid,


    Dein eigentliches Problem habe ich nicht verstanden. Und Dein Programm ist wirr. Aber es geht um gleichzeitiges Ausführen mehrerer Aktionen. Hier einige Ideen:


    1) Absolut gleichzeitig laufen das Bewegungsprogramm und der Submit Interpreter, und zwar asynchron. Das Bewegungsprogramm führt also einen Befehl aus, "gleichzeitig" der Submit einen anderen. Beide können z.B. über Flags kommunizieren, da ergeben sich unendlich viele Möglichkeiten.


    2) Interrupt: auf ein gewisses Signal hin (Ereignis), wird eine Aktion ausgeführt. Die laufende Bewegung des Roboters wird hierbei auch nicht unterbrochen. Als Ereignis können zum Beispiel ein digitaler Eingang, aber auch ein Timer oder eine Kondition gewählt werden.


    3) Dann gibt es den bewegungsabhängigen TRIGGER. Da kann man innerhalb einer Bewegung (LIN, CIRC) zu gewissen Zeitpunkten oder bei gewissen Entfernungen, eine Aktion ausüben. Wieder parallel zur Bewegung.


    Das kann auch in Abhängigkeit einer Variablen erfolgen. Beispiel:


    TRIGGER WHEN DISTANCE=0 DELAY=t_1 DO BASC() PRIO=-1


    ruft die Funktion BASC() auf nach einem Zeitraum von t_1 (ist eine Integer Variable) gemessen vom Start der folgenden Bewegung auf.


    Zusammenfassung:


    Du kannst ja mal alle diese Möglichkeiten nachlesen. Und, wenn Du dann nicht weiter kommst, uns genau erklären, in welchem Zeitpunkt welche Aktion ausgeführt werden soll. Dann werden wir schon sehn...


    Viele Grüße,
    Tilman/Frankreich

  • Dankeschön, werd das mal bei Gelegenheit testen, auf der Version 4.X.X die ich in Verwendung habe, ist der Weg über Trigger mit Variablen absolut nicht möglich, dass schmeisst mir sofort nen Fehler rein.
    Werd dann mal die Verwendung von Submitinterpretern & Interrupts studieren, wobei ich mal aufgeschnappt hab, dass ein Submitinterpreter, nicht unbedingt für maßgebende zeitliche Abfolgen geeignet ist, da das Teil recht resourcengesteuert agiert.


    Dankeschön!


  • Ejector vor + Bewegung zurück + Greifer zu (mit Variable als Verzögerung)


    "Ejektor Vor" scheint bei dir abe ein Unterprogramm zu sein...Ansonsten wäre das ja mit einem einfachen Trigger When Distance=0 Delay=0 DO $OUT[1]=TRUE zu erledigen. Kommt also auf dein Programm "Ejektor Vor" an! Sind z.b. Warte-Befehle drin (der Parameter #WAITFOR läßt die Vermutung zu)


    Also ein kurzes Beispiel (ist nur 'n Schnellschuß) :


    programm:


    Code
    TRIGGER WHEN DISTANCE=0 DELAY=0 DO $OUT[1]=TRUE ;Out 1 wäre in diesem Fall Auswerfer vor
    TRIGGER WHEN DISTANCE=0 DELAY=0 DO GREIFER_ZU=TRUE ;greifer_zu ist global deklariert ($Config.dat)
    LIN rueckzug




    Dazu ein Beipiel für Verzögerungen im Submit:




    Das ganze ist per Timer auszuführen und nicht per WAIT SEC Greifer_VZ!!! Wait-Befehle verhindern die Fortsetzung anderer Prozesse im Submit-Interpreter. (Zyklus-Unterbrechung)

    Greetings, Irrer Polterer!

    Wie poste ich falsch? Nachdem ich die Suche und die FAQ erfolgreich ignoriert habe, erstelle ich das gleiche Thema in mehreren Unterforen, benutze einen sehr kreativen Titel wie "Hilfe", am Besten noch mit mehreren Ausrufezeichen, und veröffentliche einen so eindeutigen Text, dass sich jeder etwas Anderes darunter vorstellt.


    Life is a beta version. Full of bugs and no Manual.

    Einmal editiert, zuletzt von IrrerPolterer ()

  • Vielen herzlichen Dank,
    ja das war der Knackpunkt ich wusste, das mir dieses WAIT SEC im Weg ist, viel mir aber irgendwie gerad nüx ein ;)
    (die Symbolisierung von Eject vor war aus den Wolken gegriffen, ist in Wirklichkeit eine globale Variable vom InBetriebnehmer definiert)
    Glaub der Knoten is nun gelöst :biggrins:

    Einmal editiert, zuletzt von Valid ()


  • ...auf der Version 4.X.X die ich in Verwendung habe, ist der Weg über Trigger mit Variablen absolut nicht möglich, dass schmeisst mir sofort nen Fehler rein.


    Ehrlich gesagt, das halte ich für ein großes Gerücht. Habe gerade folgendes Beispiel mit OL 4.1.7 ausprobiert. Wirklich, no problem!


  • Zitat von IrrerPolterer


    Ja, das habe ich auch schon festgestellt. Hat mich auch schon des öfteren genervt.


    Vielleicht habt Ihr ja das überlesen? Das hatte ich beim ersten Mal auch falsch gemacht. :wallbash:


    Zitat von KUKA


    Jeder TRIGGER-Anweisung mit Unterprogrammaufruf muß eine Priorität zugeordnet werden.

  • Jeder TRIGGER-Anweisung mit Unterprogrammaufruf muß eine Priorität zugeordnet werden.


    Neee, daran lag's nicht...


    War eher:
    TRIGGER WHEN DISTANCE=0 DELAY=VZ DO $OUT[844]=TRUE ;funktionierte nicht


    TRIGGER WHEN DISTANCE=0 DELAY=100 DO $OUT[844]=TRUE ;funktionierte


    Kann dir aber den Softwarestand nicht mehr sagen.

    Greetings, Irrer Polterer!

    Wie poste ich falsch? Nachdem ich die Suche und die FAQ erfolgreich ignoriert habe, erstelle ich das gleiche Thema in mehreren Unterforen, benutze einen sehr kreativen Titel wie "Hilfe", am Besten noch mit mehreren Ausrufezeichen, und veröffentliche einen so eindeutigen Text, dass sich jeder etwas Anderes darunter vorstellt.


    Life is a beta version. Full of bugs and no Manual.

  • Tja… war ja auch nur so'ne Idee. Aber wenn’s das nicht war, wird uns ja Valid sicher schreiben, welche Fehlermeldung er bekommt...


    Schönes Wochenende,
    Tilman

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