Datenübergabe in andere Routine

  • Hallo,
    wir haben eine Bewegungsroutine die mit Triggerfunktion die Positionsnummer mitschreibt.
    Funktioniert soweit Prima. Ich habe nun aber schon des öfteren das Problem gehabt das ich dadurch mir die Möglichkeit nehme andere Triggerfunktionen auf der Bahn auszulösen.
    So nun zum Punkt, ich würde gerne das ganze Erweitern das ich optional einen Ausgang mit angebe. Geht soweit auch. Nun will ich aber das wenn der Ausgang als optionaler Parameter angewählt wird der Status zwingend mit einzugeben ist. Derzeit bekomme ich das nur so hin das ich den Status den das signal haben soll auch optional mache.

    Code
    PROC SMove(\switch J|switch L,dnum dnValue,robtarget ToPoint,speeddata Speed,zonedata Zone,PERS tooldata Tool, \VAR Signaldo doTemp  \num nStatusdo \PERS wobjdata Wobj)
  • ANZEIGE
  • Hi,
    Du hättest auch die Möglichkeit weitere Instruktionen zu definieren, die genau für Deine Wünsche definiert sind, z.B. MyMoveDO, MyMoveGO, etc.
    In diesem Fall sind dann die Parameter nicht optional und Deine Bewegungsinstruktion hat auch nur die Parameter die Du wirklich benötigst.
    Intern kannst Du ja die gewünschte Funktion über eine zentrale Routine mit allen erforderlichen Parametern aufrufen.
    Beispiel:


    Das "?" wird bei der Übergabe von optionalen Parametern an einen optionalen Parameter einer anderen Routine verwendet und wird dabei nur weitergegeben, wenn der Parameter verwendet wurde.
    Die folgende Programmzeile


    Code
    MoveL ToPoint, Speed, ...\Wobj?Wobj;


    ersetzt dabei den folgenden Codeblock


    Code
    IF Present(Wobj) 
        MoveL ToPoint, Speed, ... \Wobj:=Wobj;
    ELSE
        MoveL ToPoint, Speed, ... ;
    ENDIF



    Des Weiteren solltest Du die optionalen Paramater "\J" und "\L" bei der IRC5 nicht mehr verwenden, da für die Umschaltung der Bewegungsart ein eigener Button existiert. Das Umschalten der Bewegungsart über den optionalen Parameter dauert viel länger als das Drücken der Umschalttaste.


    Du müsstest also die Routinen "MyMoveL" und "MyMoveJ" erstellen und in der MMC.cfg das Verhalten beim Umschalten der Bewegungsart festlegen.


    Gruß
    Micky

    Probleme kann man niemals mit derselben Denkweise lösen, durch die sie entstanden sind. (Albert Einstein)

  • Hallo,
    danke für den Tips.
    Ich werde es mal ausprobieren. Wobei ich es gerne mit einer Routine erschlagen hätte :) und die Option hätte auch mal zwei oder gar optionale Signale auf der Bahn zu triggern und immernoch die Positionszählung zu haben.

  • Hallo,
    natürlich kannst Du alle möglichen optionalen Parameter in einer einzigen Routine unterbringen, nur gibt es hierbei keine Möglichkeit weitere erforderliche Parameter zwangszweise zu aktivieren.
    Du könntest ggf. dem Benutzer eine Fehlermeldung bei der Programmausführung ausgegeben, falls ein erforderlicher Parameter fehlt.
    Gruß
    Micky

    Probleme kann man niemals mit derselben Denkweise lösen, durch die sie entstanden sind. (Albert Einstein)

Hilfe und Support für ABB Roboter Programmierung, Konfiguration, Inbetriebnahme finden Sie hier im ABB Roboter Forum. ABB Rapid Programmierung ist einfach, die Roboterforum Community hilft sehr gerne.

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