Änderungen in VW_User vw_usr_r werden nicht übernommen

  • Hallo,


    bin gerade bei VW und habe das Problem das der Roboter meine Änderungen in der VW_User nicht übernimmt/ignoriert.


    Roboterversion ist: VKR C 3.3.3 SP 10 HF4


    In meinem unterprogramm wird VW_USER folgendermassen aufgerufen:


    UP Anfang
    PTP VB=10% VE=0% ACC=20% Wzg=2 SPSTrig=0[1/100s] P
    1: F1 = AUS
    2: VW_USER P1= 2 P2= 1 P3= 1 P4= 1 P5= 1 P6= 1 P7= EIN



    Die Routinen im vw_usr_r werden auch aufgerufen wenn man das Programm im einzelschritt durchläuft. Nur mein Programmcode denn ich eingefügt habe wird nicht ausgeführt.


    Z.Zt. steht in der Datei nur das das Flag 1 auf EIN gesetzt werden soll.


    DEF USER_MAIN (PAR1 :IN, PAR2 :IN, PAR3 :IN, PAR4 :IN, PAR5 :IN, PAR6 :IN, PAR7 :IN)
    ;Aufruf im Hauptablauf
    INT PAR1,PAR2,PAR3,PAR4,PAR5,PAR6
    BOOL PAR7
    $FLAG[1]=TRUE
    END


    Beim durchtakten sieht man auch die Zeile in der Programmanzeige aber ausgeführt wird sie nicht. Es sieht so aus als ob die Zeile zwar in der Datei auf der Festplatte ist aber nicht in der Echtzeitsteuerung des Roboters ankommt.


    Hat jemand eine Idee wo man da anpacken kann?


    MfG
    mr_hong

  • Schritt für Schritt zum Roboterprofi!
  • Ich habe 3 Ideen:


    - Hast du dein Flag im geöffneten oder angewählten Zustand rein geschrieben? Im angewählten Zustand stehts zwar im Programm, aber nicht in der Steuerung.
    -Wird dein Flag im Hintergrund (SPS.Sub, Makro-SPS) wieder überschrieben zyklisch?
    -Schreib mal in deinen USER ein Halt rein, dann siehst du, ob er überhaupt da lang geht!


    Gruß und schönen 1.Advent... :beerchug:

  • Mahlzeit!!!


    Ich hab die Änderungen im geöffneten Zustand gemacht. Wenn man es im angewählten Zustand versucht meckert die Steuerung sofort. Den Halt hat er auch mal gleich ignoriert. Ich kann auch ne Zeile wie


    dlkjdslsdjsdljksdldsjksdlkjdssdlkj


    da rein schreiben und es wird weder nen Fehler oder sonstwas ausgelöst. Gibt es nicht sowas wie eine Fehleranzeige oder eine Logdatei wo sowas aufgezeichnet wird?


    Ich hatte einen ähnlichen Fehler mal als ich einem Standard KUKA "5.Irgendwas" mal eine .src Datei per USB Stick untergeschoben habe. Da hat er auch beim Programmdurchlauf die geänderte Datei angezeigt aber den alten Stand ausgeführt. Liess sich beheben indem ich die Datei in der KUKA BOF nochmal geöffnet, geändert und wieder gespeichert habe.


    Hier führt das aber nicht zum gewünschten Erfolg.


    Gruss
    mr_hong


    Und auch einen schönen 1.Advent!!!

    Einmal editiert, zuletzt von mr_hong ()

  • DEF USER_MAIN (PAR1 :IN, PAR2 :IN, PAR3 :IN, PAR4 :IN, PAR5 :IN, PAR6 :IN, PAR7 :IN)
    ;Aufruf im Hauptablauf
    INT PAR1,PAR2,PAR3,PAR4,PAR5,PAR6
    BOOL PAR7


    Switch PAR1
    CASE 1
    TEST()
    DEFAULT
    HALT
    ENDSWITCH



    DEF TEST()
    $FLAG[1]=TRUE
    END



    END

  • Ja ne so hab ich mal angefangen mit der ganzen Sache :lol:


    Ich hab dann immer weiter verkürzt weil ich dachte es liegt an meiner Funktion. Und habe dann zurückgekürzt bis da nur noch $FLAG[1]=TRUE stand. Eigentlich soll der Roboter Daten aus einer Kamera als Positionierhilfe benutzen...

  • Ja das hab ich auch. Der springt auch in die Unterprogramme rein aber führt halt meinen Code nicht aus.


    Er zeigt das ganze zwar an auf dem Bildschirm und ich kann meinen Krempel halt lesen aber die Anweisungen werden mal ganz nonchalant ignoriert. :)

  • Auch schon probiert. Auch in USER_ADV...
    Hab es sogar im alten vw_user.src probiert.
    Aber irgendwie erkennt die Steuerung nicht das die aktualisiert worden sind. Ich mach jetzt gleich auch Feierabend und werd das morgen mal mit den Leuten von der Robotertechnik hier durchspielen.


    Danke erstmal für die Hilfe!!! :merci:



    Schönen Sonntag noch!!!

  • Hallo,


    Ursache kann sein, das der VW_USR_R im Submitinterpreter mitläuft. Der Baustein ist dann #P_Active und man kann nichts einfügen. Der XEdit weiss aber nichts davon und zeigt den Code als eingefügt an. Im Echtzeitsystem ist er aber micht drin.
    Man kann das daran erkennen, das der VW_USR_R im Navigator als aktiv markiert ist.
    Zum Test kannst du den Submit Interpreter abwählen und deine Änderungen dann machen.
    Ursache so eines Verhaltens kann sein, wenn eine globale Variable aus dem VW_USR_R im VW_Usr_S benutzt wird oder eine Routine aus dem VW_USR_R vom VW_USR_S aus aufgerufen wird oder ein Baustein, der im VW_USR_R gebunden ist, wie z.B. Makros im VW_USR_S aufgerufen wird.


    Gruss DiDi

  • Guten Morgen mr_hong,
    versuch doch mal das zu schreiben (unter Deine Deklaration "BOOL Par7"):


    IF (PAR7==TRUE) THEN
    $FLAG[1]=TRUE
    endif

    Gruß Bundy<br /><br />Erfahrung ist eine nützliche Sache.<br />Leider macht man sie immer erst kurz nachdem man sie brauchte...

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