Zustandsmeldung wieder löschen

  • Hallo zusammen



    Habe bei der Programmierung einer Zustandsmelsung folgendes Problem: Die Meldung kann nicht mehr gelöscht werden und nach einem erneuten Programmdurchlauf sind jetzt sogar zwei gleiche Meldungen angezeigt.


    KRC 2, 5.5.14


    config.dat


    DECL INT iZaehler_m1=3
    DECL KRLMSG_T m_1
    DECL KRLMSGPAR_T m_1_par[3]
    DECL KRLMSGOPT_T m_1_opt
    DECL INT m_1_handle
    DECL BOOL m_1_result




    Programmcode --> Meldung absetzen


    iZaehler_m1=iZaehler_m1+1
    IF iZaehler_m1>=3 THEN
    $OUT[8]=TRUE
    m_1={modul[]"SLAG",Nr 5,msg_txt[]"Wartung"}
    m_1_opt={vl_stop true,clear_p_reset false,clear_p_SAW false,log_to_DB false}
    m_1_handle=Set_KrlMsg (#state,m_1,m_1_par[],m_1_opt)
    ENDIF



    Wartungsprogramm (separates Programm--> Löschen der Meldung und Rücksetzen des Zählers


    iZaehler_m1=0
    $OUT[8]=FALSE
    m_1_result=Clear_KrlMsg (m_1_handle)




    Die BOOL-Variable m_1_result bleibt auf false. Was nach BA heisst, dass die Meldung nicht gelöst werden kann. Kann ich vorerst manuell den Meldungsspeicher löschen? Sieht jemand meinen Fehler?



    Danke und Gruss Casmen

  • Schritt für Schritt zum Roboterprofi!
  • Hallo casmen,


    deiner Programmfehler habe ich zwar nicht gefunden, aber als Anmerkung:


    Zustandsmeldungen kannst du sicher nicht von Hand löschen. Das hielte ich auch für sehr gefährlich, da der Meldungstyp Zustandsmeldung ja gerade sagt: bleib solange anstehen bis der Zustand nicht mehr gültig ist. Für Anwendungsfälle in denen ich das nicht so brauche wären eher Quittierungsmeldungen das Mittel der Wahl.


    Gruß
    Fubini

  • Hallo fubini


    Deine Anmerkung ist mir bewusst. Es geht um eine Meldung für eine spezielle Wartung der Anlage. Das Programm ist momentan nur zum Testen. Ich will bewusst, dass der Bediener die Meldung nicht quittieren kann und ein spezielles Programm anwählt und ablaufen lässt. In diesem Programm wird dann die Meldung zurückgesetzt. Dies funktioniert aber nicht!


    Den Zustand kann ich ja selber definieren. Und dieser ist bei mir, wenn der iZaehler_m1 >=3 ist. Sobald das Wartungsprogramm durchlaufen ist, wird der Zähler auf 0 zurückgesetzt und die Meldung sollte gelöscht werden, oder?


    Gruss Casmen

  • Hallo Casmen,


    Wenn Du Option clear_p_reset von false auf True änderst,
    sollte die Message weg sein nach Programmreset.



    Probiere mal auch:
    m_1_result=Clear_KrlMsg (-1)
    oder
    m_1_result=Clear_KrlMsg (-88)


    Gruss SJX

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

  • Hallo SJX



    Was meinst Du mit Prgrammreset? Programm abwählen? Das habe ich schon versucht. Auf TRUE gesetzt und anschliessend Programm ablaufen lassen. Die Doppelmeldungen bleiben angezeigt und m_1_handle bleibt auf FALSE (nicht gelöscht). (-1) und gemäss BA (-99) habe ich auch versucht --> ohne Erfolg. Versuche noch (-88)


    Weiss jemand, wo die Meldungen gespeichert werden, dass ich Sie zumindest mal aus dem Speicher habe?


    Gruss Casmen

  • Hallo Casmen,


    nach Kaltstart sollten die weg sein.


    Prüf mal nach absetzen der Meldung, ob sie im Puffer vorhanden ist.
    kann man mit folgender Funktion machen:
    m_1_result = Exists_KrlMsg(m_1_handle)


    Gruss SJX

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

  • Hei SJX


    Göttlich!!! Die Sache funktioniert einwandfrei!!!! Mit dem Kaltstart sind die zwei Zustände gelöscht worden. Weiter habe ich vor dem Löschen der Meldung


    m_1_result = Exists_KrlMsg(m_1_handle)



    abgefragt. Anschliessend ist der Löschbefehl ausgeführt worden.



    Ich Danke Dir viel mals!!!!



    Gruss Casmen

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