KRC4 P00 Programm

  • Hallo liebe Kommunity,


    ich habe in meinem Kuka KRC4 Cell Programm den Standard-Befehl
    P00 (#INIT_EXT,#PGNO_GET,DMY[],0) ; Initialize extern mode


    Wenn ich das Cell-Programm anwähle und in T1 abfahre, läuft das Programm bis zu diesem Befehl und gibt auch richtig so die Fehlermeldung, dass die falsche Betriebsart angewählt ist, aus. Nach Umschalten auf Ext, meldet der Roboter Betriebsbereit und scheinbar startklar. Wenn man jetzt startet, macht der Roboter nichts. Erst mit Störung quittieren ($CONF_MESS) durch die SPS startet der Roboter.


    Problem ist, dass meine SPS den Fehler nicht mitbekommt, und somit auch nicht anzeigt, dass man zuerst die Störung quittieren muss.
    Warum wirkt diese Störmeldung nicht auch auf die Variable $STOPMESS? Muss ich hier noch etwas konfigurieren?


  • Schritt für Schritt zum Roboterprofi!
  • Vermute da eher eine Unschärfe im SPS-Programm.
    Wie kommst Du darauf, dass durch das Signal $conf_mess das Programm startet, das muss für den Test/Nachweis irgendwie manipuliert werden? Vermute stark, daß dadurch auch der Rest irgendwie wieder in den Tritt kommt.

  • Sorry undeutlich geschrieben... mit $conf_mess quittiere ich nur diese Störung und erst mit einem Start an dem Roboter startet dieser.


    Im Internet habe ich folgendes gefunden:
    Stopmess ist ein Systemausgang ($Stopmess). Dieser Ausgang wird auf high geschalten, wenn am Roboter Meldungen vorliegen, die einen automatischen Start des Roboters verhindern können. Beim Projektieren ist es wichtig, diesen Roboterausgang mit in Betracht zu ziehen.


    Das Pendant zu $Stopmess ist der Systemeingang $conf_mess. Auf eine positive Flanke an diesem Eingang werden die Meldungen, die $Stopmess auslösen quittiert, und der weitere automatische Startzyklus kann dann weitergehen.


    Wenn mein Fehler ansteht, wird dieses $Stopmess nicht gesetzt.

  • Hallo Nöhriaky,


    Dein Problem wird wohl von der Unterscheidung Systemmeldung // Programmmmeldung her kommen.


    Die Definition von $Stopmess ist hier nicht unbedingt klar in den Dokumentationen.


    Auszug aus einer KUKA Doku:
    "Dieser Ausgang wird von der Robotersteuerung gesetzt, um dem Leitrechner das Auftreten
    einer Meldung anzuzeigen, die das Anhalten des Roboters erforderlich machte.
    (z.B. NOT--AUS, Fahrfreigabe, Bedienerschutz, Sollgeschwindigkeit usw.)"


    Als Beispiele werden hier nur Systemmeldungen aufgeführt.


    Deine erzeugte Meldung kommt aus dem Programmablauf heraus:
    Im Cell springst Du ins p00.src und bleibst dann hier stecken:

    Code
    REPEAT
          IF ($I_O_ACTCONF==FALSE) THEN
              ERROR=TRUE
              MsgQuit("OperatorModeWrong", "P00")
          ENDIF
    UNTIL ($I_O_ACTCONF==TRUE)


    MsgQuit landest Du hier, wo auch Deine Quitmeldung herkommt und Du stehen bleibst.


    Code
    nHandle=Set_KrlMsg (#QUIT, Msg, MsgPar[], MsgOpt)
    
      WHILE ( Exists_KrlMsg(nHandle) ) 
        WAIT sec 0.1
      ENDWHILE


    Hieraus wäre erklärbar das Verhalten des Systemausganges $stopmess.


    Weiter würde dies auch das "zweifach" benötigte Pulsen von $conf_mess erklären.
    Dass dies nicht ersichtlich ist in den Automatik extern Diagrammen auch, da eine anstehende Programmquittmeldung nichts zu tun hat mit der Standardprozedur des Anlaufes.


    Wieso nicht im Cell einfach SAK auf Home in T1, dann gleich Umschalten auf Ext, und starten über SPS.



    Gruss SJX

    Manche Maenner bemuehen sich lebenslang, das Wesen einer Frau zu verstehen. Andere befassen sich mit weniger schwierigen Dingen z.B. der Relativitaetstheorie.

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