Fehlermeldung M Variabel..help..

  • Hallo,


    hab seid eingen Wochen öfters mal das der Roboter sporadisch an unterschiedlichsten Stellen ausfällt.
    Die Fehlermeldung kommt: M Variabel schreibgeschützt BAS Satz 230
    So mitten im Betrieb an unterschiedlichsten stellen.
    Dann hilft nur noch Programm abwählen.
    Roboter:
    KRC2 KR150
    Version=V4.1.4 SP02
    Hat jemand nen Tip ?
    Danke


    LG

  • Schritt für Schritt zum Roboterprofi!
  • Ich hatte die Meldung auch schon mal, kann mich aber nicht mehr daran erinnern. Könnte irgendwie mit den Tool-Daten bzw. Lastdaten zusammenhängen.


    LOAD_DATA[1]={M 0.0,CM {x 0.0,y 0.0,z 0.0,a 0.0,b 0.0,c 0.0},J {X 0.0,Y 0.0,Z 0.0}}

    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.

  • Dieser Fehler tritt dann auf, wenn in einer Interrupt-Routine ein Bewegungsbefehl mit einem Inline-Formular ausgeführt werden soll.
    In diesem Formular sind diverse Bas-Aufrufe. Bei der Initialisierung der Lastdatendaten wird die Fehlermeldung verursacht.
    Kurz: In einer Interruptroutine Bewegungen keine Bewegungsformulare benutzen !


    Berrad

  • Berrad: Danke für die Schläge auf den Hinterkopf! Das war bei mir mal genau das Problem:
    Während einer Bewegung wurde (fälschlicherweise) ein Interrupt ausgelöst. In der Interrupt-Routine wurde dann eine weitere Bewegung ausgeführt und dann trat der Fehler auf.


    echo: Überprüfe mal dein Programm darauf hin.



    :denk: Was passiert eigentlich, wenn während einer Bewegung ein Interrupt ausgelöst wird und in der Routine z.B.: LIN_REL {x 100} ausgeführt wird, ohne vorher ein Brake auszuführen? :kopfkratz:

    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 Dank schonmal für die Infos.
    Nur leider existieren keine Bewegungsabläufe in den Interrupts und das Programm läuft so schon seid 2 Jahren und der Fehler tritt erst in den letzten Wochen auf. Seltsam..
    Der Fehler tritt ja auch auch unterschiedlichsten stellen auf, was aber durchaus sein kann das versehentlich ein Interrupt ausgelöst wird, aber wie gesagt keine Bewegungsabläufe enthalten.
    Hier mal die Interrupts die in Frage kommen könnten, mehr haben wir da nicht.



    DEF STOP_ROB ( )
    INTERRUPT OFF 20
    INTERRUPT OFF 21
    BRAKE
    ;ENDFOLD


    ;************************************************************
    ;---WARTEN BIS WEITERFAHRBEDINGUNGEN I.O. NACH INTERRUPT 20
    ;************************************************************
    ;WAIT FOR (HBT_BETRIEB_MIT_HG==TRUE) AND ((SGM_FORM_OFFEN==TRUE) OR (ROBOT_AUSSERHALB_SGM==TRUE)) AND (BETRIEBSDRUCK_RM==TRUE) OR ($MODE_OP==#T1)


    WAIT FOR $CYCFLAG[20]==FALSE


    ;FOLD ###SYSTEMPROGRAMMCODE###


    WAIT SEC 0.5


    ;---NUR FUER FEHLERSUCHE
    ;WAIT FOR (HBT_START==FALSE)
    ;WAIT FOR (HBT_START==TRUE)
    ;WAIT FOR (HBT_START==FALSE)


    INTERRUPT ON 20
    INTERRUPT ON 21
    END
    ;---INTERRUPT 21 BEARBEITEN
    ;WENN TASTER 'HBT_RUECKZUG' BETAETIGT, WIRD IR21 BEARBEITET,
    ;ALLE LAUFENDEN UNTERPROGRAMME ABGEBROCHEN UND ANSCHLIESSEND
    ;DURCH 'ABBRUCH=TRUE" DAS UP "RAUS_DA" BEARBEITET.


    DEF RUECKZUG ( )
    BRAKE
    ABBRUCH=TRUE
    WAIT FOR HBT_RUECKZUG==TRUE


    ;---INTERRUPT 21, 20 ABSCHALTEN
    INTERRUPT OFF 21
    INTERRUPT OFF 20


    ;---INTERRUPT 19 EINSCHALTEN
    ;WENN TASTER 'HBT_RUECKZUG' NICHT BETAETIGT, WIRD IR19 BEAR-
    ;BEITET, DAS UP "RAUS_DA1" UNTERBROCHEN.
    ;WENN TASTER HBT_RUECKZUG BETAETIGT, UND KEINE HALT-BEDIN-
    ;GUNGEN ANSTEHEN, WIRD DAS UP "RAUS_DA1" FORTGESETZT.


    INTERRUPT ON 19
    RESUME
    END



    DEF KOLLISION ( )
    BRAKE


    INTERRUPT OFF 22


    ;FOLD SET GRP 1 State= OPN GDAT2;%{PE}%R 4.1.4,%MKUKATPGRP,%CGRP,%VGRP,%P 2:1, 4:1, 5:#NO, 6:GDAT2, 8:0, 10:0
    H50(GRP,1,1,GGDAT2)
    ;ENDFOLD


    ;WAIT FOR HBT_RUECKZUG==FALSE
    ;WAIT FOR HBT_RUECKZUG==TRUE
    ;WAIT FOR HBT_RUECKZUG==FALSE


    ABBRUCH=TRUE
    RESUME


    END




    Der Kollisions Interrupt könnte es sein (22)
    der ist so declariert:


    ;Fold INTERRUPT 22 KOLLISION
    $CYCFLAG[22]=(HM_COLL==TRUE) AND ($TORQ_DIFF[2]>33)


    INTERRUPT DECL 22 WHEN $CYCFLAG[22]==TRUE DO KOLLISION ( )
    ;endfold

    Einmal editiert, zuletzt von echo ()

  • Trage bitte mal am Anfang der Interrupt-Routinen folgendes ein:


    devcontrol n


    bei n für jede Routine einen anderen Integerwert also 1,2...


    Das bewirkt, dass eine Meldung im Meldungsfenster ausgegeben wird. Anhand des Wertes 1,2... kannst du feststellen, ob vor dem Fehler ein Interrupt ausgelöst wird und wenn ja welcher.

    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.

  • Ist nicht dokumentiert und man sollte sparsam damit umgehen. Also nicht Zyklisch im Submit aufrufen. Ist zum Debuggen recht geil. Man kann mal eben den Status eine Integer Variable anzeigen lassen. Sollte aber nach dem debuggen wieder entfernt werden.

    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.

  • Der Fehler tritt aber auch auf, wenn während einer Bewegung eine Variable geschrieben wird, die nur während einer Bewegung schreibgeschützt ist.


    Z.B. kann man die BAS mit #Tool aufrufen, was normalerweise ja auch sinnvoll ist. Das geht auch im Submit. Aber nur, wenn gerade keine Bewegung aktiv ist.

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