Programmabwahl im sps.sub

  • Hallo zusammen.

    Ich habe hier einen #KR6R900_2 C4RS, mit der KSS 8.7.476.


    Ich möchte mit dem "CWRITE-Befehl" das Programm abwählen. Das will aber nicht funktionieren. Hat jmd. da einen Idee?


    Im cell.src steht folgendes:


    Wenn der "diAnf_Home" kommt, kann ich sehen wie die boolesche Variable "bGnd" auf "FALSE" wechselt, bzw. wie sie wieder auf "TRUE" wechselt wenn der Eingang zurückgesetzt wird. Das Programm wird aber nicht abgewählt.

    Ich habe während der Versuche auch mit "CWRITE($CMD,STAT,MODE,"Stop 1")" erst das Programm gestoppt um es dann zu "canceln" auch ohne Erfolg. In manchen Fällen konnte ich erkennen dass die Statusanzeige des Roboter-Interpreters von grün (Programm ist angewählt und läuft) auf rot (Programm ist angewählt, gestartet und angehalten) wechselt. Diese springt dann sofort wieder auf grün und das Programm läuft weiter.

    Die boolesche Variable "bGnd" wird nirgends sonst verwendet


    Ich mache dies, wie viele von euch sicher auch, schon "immer" genau so. Warum es hier so überhaupt nicht funktionieren möchte ist mir ein Rätsel. Eventuell kann mir jmd helfen wo/ wie ich da ansetzen kann um den Fehler zu finden. Hat sich evtl. in der KSS etwas geändert? In meiner Doku zur KSS 8.2/8.3 (KSS_82_83_CREAD_CWRITE_de.pdf) die ich zur Hand habe wird es noch so beschrieben.


    Herzlichen Dank für eure Hilfe.

    Den Roboter "in seinem Lauf hält weder Ochs noch Esel auf!"

  • Schritt für Schritt zum Roboterprofi!
  • Hi Atok,


    der Roboter muss gestoppt sein, um das Programm zurückzusetzen.


    IF (($MODE_OP==#EX) AND diAnf_Home AND bGnd AND $ROB_STOPPED) THEN

    CWRITE($CMD,STAT,MODE,"STOP 1")

    WAIT FOR ($PROG_INFO[1].P_STATE == #P_STOP)

    CWRITE($CMD,STAT,MODE,"CANCEL 1")

    WAIT FOR ($PROG_INFO[1].P_STATE == #P_FREE)

    bGnd=FALSE
    ;
    ENDIF


    Probiers mal damit.


    Viel Erfolg :)


    VIele Grüße

  • ...während der Versuche auch mit "CWRITE($CMD,STAT,MODE,"Stop 1")" erst das Programm gestoppt um es dann zu "canceln" auch ohne Erfolg...

    Hallo Sliwka, wie ich oben schrieb hab ich das schon versucht, der einzige Unterschied zu meinen Versuchen ist; ich habe nicht auf das gestoppte Programm gewartet. Wait Anweisungen im .sub sollen ja schlechter Stil sein wie wir alle wissen ( ;) ).

    Wie du weißt steht es aber auch ohne "Stop1" und "WAIT FOR..." in unseren Programmen. Ich könnte dir da einige Beispiele (auch von dir) vorlegen. 8o

    Ich werde es natürlich so versuchen und melde mich zurück. Danke

    Den Roboter "in seinem Lauf hält weder Ochs noch Esel auf!"

  • Hi Atok,

    niemals! :D

    Mit der neuen KSS hast die Möglichkeiten mit mehreren Subs zu arbeiten.

    Erstell dir einen neuen Sub und schreib die Routine da rein. Den normalen Sub würd ich auch nicht mehr für solche Funktionen nutzen.


    In der custom dat kannst du die einstellen oder per Menu im Roboter (Bilder).

    zB

    DECL PRO_IO_T $PRO_I_O_PROC_ID4={MODULE[] "/R1/Hintergrundtask()",COLD_BOOT_RUN #ON}

  • ..

    Mit der neuen KSS hast die Möglichkeiten....

    Joa, das kenne ich.


    Die Abwahl hat mit "Stop 1"und "WAIT FOR ..." gepasst. Wieder was gelernt. Danke!

    Den Roboter "in seinem Lauf hält weder Ochs noch Esel auf!"

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