Reset des Hauptprogramms unter KRL 4.1.7

  • Schritt für Schritt zum Roboterprofi!
  • also ich habe bei einem unserer roboter ein ähnliches problem gehabt und konnte dieses wie folgt lösen:

    das hauptprogramm ganz wie gewohnt programmieren. nun hab ich das dann so gemacht, das ich eine weitere datei (hilfsprogramm) angelegt habe, in der ich zum einen einen interrupt definiert habe (sensor kaputt bei dir, bei mir anwahl fahrt in grund- oder wartungsstellung) und zum anderen dann das hauptprogramm aufgerufen habe. mit dem interrupt habe ich dann ein unterprogramm im hilfsprogramm aufgerufen mit brake und resume - damit habe ich das hauptprogramm verlassen und im hilfsprogramm weiter arbeiten können. wenn du dann im hilfsprogramm eine schleife programmierst, kannst du dann wieder in dein hauptprogramm springen, aufgerufen wie ein lokales unterprogramm. das hauptprogramm muss dazu nur noch global deklariert werden...

    wichtig ist dann nur noch, dass du nicht mit deinem hauptprogramm startest, sondern mit dem hilfsprogramm... wenn du variable benutzt, diese wenn nötig global deklarieren, dann kannst du auch bei einem reset daten "retten" oder weiterverwenden.

    wenn du mehr infos brauchst kann ich auch programmcode anbieten bzw. hier reinstellen...

    ansonsten viel spass dabei! hat mich zwar viel zeit gekostet das so hinzufriemeln, hilft aber dem anwender ungemein, wenn er, wie bei uns, den robby mit einem tastendruck in grund oder wartungsstellung zu bringen... oder eben das programm zurückzusetzen...

  • Hallo,
    Ich hab da mal was programmiert.
    Wenn der Submerker1 auf True geht, und die Betriebsartenwahl auf "AUT" oder "EXT", dann wird ein Programmreset durch geführt.
    Dieses kleine Programm wird in der SPS.SUB ausgeführt.

    IF (($T1 OR $T2) AND ($ON_PATH==FALSE)) THEN
    SUBMERKER1=TRUE
    ENDIF
    IF (SUBMERKER1 AND ($AUT OR $EXT))THEN
    CWRITE($CMD,STAT,MODE,"STOP /R1/Programm()")
    CWRITE($CMD,STAT,MODE,"CANCEL /R1/Programm()")
    SUBMERKER1=FALSE
    CWRITE($CMD,STAT,MODE,"RUN /R1/Programm()")
    ENDIF

    Ob orange oder blau, die können nerven wie die Sau.

  • Klasse ! Genau das hab ich gesucht. Bisher hab ich es auch immer wie "lefrog" programmiert. Wo kann ich diese Comand-Befehle finden? Gibt es eine spezielle Doku dafür?

    mfg MAG

    P.S: Danke für die schnellen Antworten.

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