Quittierungsmeldung ausgeben

  • Hallo,


    der Robobter soll eine Quittierungsmeldung ausgeben, aber seine Bewegung erst wieder fortsetzen, wenn die Meldung durch den Bediener am KCP Quittiert worden ist.
    Mein erfolgloses Beispiel;
    ;-----------------------------------------------------------------------------------------------
    DEF stoer_20( )
    DECL MSG_T EMPTY_MSG


    EMPTY_MSG={MSG_T:VALID FALSE,RELEASE FALSE,TYP #NOTIFY,MODUL[]" ",KEY[]" ",PARAM_TYP #VALUE,PARAM[]" ",DLG_FORMAT[]" ",ANSWER 0}
    $MSG_T=EMPTY_MSG
    $MSG_T.MODUL[]="USER"
    $MSG_T.KEY[]="Pruefen ob Kasten Einpacker vorhanden"
    $MSG_T.PARAM_TYP=#VALUE
    $MSG_T.TYP=#QUIT
    $MSG_T.VALID=TRUE


    WAIT SEC 0.2
    $MSG_T.RELEASE=TRUE


    END
    ;------------------------------------------------------------


    Die Meldung wird zwar ausgegben aber der Robbi wartet nicht,bis Quittiert worden ist.
    THX For Help

  • Schritt für Schritt zum Roboterprofi!
  • Vrsuch mal das...



    Code
    $MSG_T.VALID=TRUE
    WAIT SEC 0.2
    WHILE  $MSG_T.VALID
    WAIT SEC 0.05
    ENDWHILE

    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.

  • Hallo, habe es jetzt endlich geschafft, den Roboter zu aktualiesieren.


    Aber leider gibt es noch ein kleines Problem.
    Nachdem ich die Fehlermeldung (Quittiermeldung) in das Programm gespielt habe, ist das Modul leider Fehlerhaft.


    so sieht es aus...,


    DEF stoer_20( )
    DECL MSG_T EMPTY_MSG


    EMPTY_MSG={MSG_T:VALID FALSE,RELEASE FALSE,TYP #NOTIFY,MODUL[]" ",KEY[]" ",PARAM_TYP #VALUE,PARAM[]" ",DLG_FORMAT[]" ",ANSWER 0}
    $MSG_T=EMPTY_MSG
    $MSG_T.MODUL[]="USER"
    $MSG_T.KEY[]="Pruefen ob Kasten Einpacker vorhanden"
    $MSG_T.PARAM_TYP=#Valid
    $MSG_T.TYP=#QUIT


    ;--------- Quittmeldung, Roboter setzt fort, wenn Bediener Quittiert ---------------


    $MSG_T.VALID=TRUE
    WAIT SEC 0.2
    WHILE $MSG_T.VALID
    WAIT SEC 0.05
    ENDWHILE



    ;-- Infomeldung --
    ;$MSG_TVALID=TRUE
    ;WAIT SEC 0.2
    ;$MSG_T.RELEASE=TRUE


    END


    ;------------------------------------------------------------------------------------------------------



    1. Fehlermeldung "(" erwartet ENDWHILE Fehlernr. 2309 Z. 16 Sp. 4
    2. Fehlermeldung Endwhile fehlt End Fehlernr. 2145 Z. 24 SP. 1


    Nun wäre ich dankbar, zu wissen, wie ich Baustein sauber bekomme.
    THX im Voraus

  • Wenn ich das so mache, kriege ich keine Fehlermeldung:

  • Hallo


    da wird es bestimmt ein Timing Problem geben die Kuka Meldungen sind ein bissel empfindlich was das angeht


    Vieleicht vorm laden der leeren Meldung $MSG_T.VALID = FALSE und $MSG_T.Release = True auf verdacht setzen bissel warten dann leere Meldung.
    ist net wirklich schön muss mal schauen wie ichs bei mir mache die laufen eigentlich ganz gut.


    sag dann wie ichs mache

  • ah so hat ich des



    und das vorm vorm laden der leeren Meldung


    Gruß Loipe

  • Hallo, erst einmal Danke für die Antwort. Ist jetzt zwar äusserst unangenehm, aber Endwhile war falsch geschrieben. Und hab es stunden lang nicht gesehn.


    Aber mal eine andere Frage, wie ist es möglich durch umschalten des Wahlschalters auf extern das sich automatisch das Cell Programm anwählt?


    :merci:

  • Den Code in der SPS.SUB eingeben


    Code
    ;===================================================
        ;PROGRAMMANWAHL IN EXT
        IF M_EXT_PROGRAMM_ANWAHL AND $EXT AND ($PRO_STATE1==#P_FREE) THEN
          CWRITE($CMD,STAT,MODE,"RUN /R1/CELL( )")
          M_EXT_PROGRAMM_ANWAHL=FALSE
        ENDIF
    
        IF NOT $EXT THEN
          M_EXT_PROGRAMM_ANWAHL=TRUE
        ENDIF


    So klappt es bei mir. Den M_EXT_PROGRAMM_ANWAHL in der $config.dat deklarieren.

  • Hallo Loipe,


    zu Deiner Vermutung des Timing Problems:


    Die Trigerrung erfolgt über den Flankenwechsel von $MSG_T.VALID. Bei KSS (KUKA System Software) V4 sollte dieser mindestens 0,2s betragen (siehe Beispiel von Simeonw)


    $MSG_T.VALID=TRUE
    WAIT SEC 0.2
    WHILE $MSG_T.VALID
    WAIT SEC 0.05
    ENDWHILE


    Bei KSS V5.2, V5.3, V5.4 hat sich ein Wert von 0,3s als robust erwiesen


    $MSG_T.VALID=TRUE
    WAIT SEC 0.3
    WHILE $MSG_T.VALID
    WAIT SEC 0.05
    ENDWHILE


    Wo diese Wartezeit programmiert wird, ist relativ egal (ich persönlich setze sie nach dem ENDWHILE)


    Außerdem: eine Meldung muss komplett abgearbeitet worden sein bevor eine neue abgesetzt wird (Problem: Meldungsausgabe im Roboterprogramm und Submit)


    Ab KSS V5.5 gibt es einen neuen Meldungsmechanismus, der insgesamt robuster ist und außerdem seine Meldungen aus einer Meldungsdatenbank holen kann (beim Umschalten der BOF-Sprache werden auch automatisch die Meldungen in der neuen Sprache ausgegeben)


    mfg


    MOM

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