Hallo zusammen,
ich habe Quittiermeldungen wie unten beschrieben programmiert. --> Das funktioniert.
Das Roboterprogramm wird über eine SPS gestartet (1. Motore ein, 2. Meldungen quittieren, 3.Programm Start).
Nun habe ich festgestellt, das die von mir programmierten Quittiermeldungen auch über die SPS quittiert werden.
Das möchte ich aber nicht, sondern die von mir bewusst programmierten Quittiermeldungen sollen nur vom
Bediener quittiert werden können. Hat jemand eine Idee wie ich das lösen kann?
Gruß
HarryH
DECL CHAR stText[] DECL EKrlMsgType Type DECL KrlMsg_T MSG DECL KrlMsgPar_T Parameter[3] DECL KrlMsgOpt_T Option DECL KrlMsgDlgSK_T SK[7] DECL enumKeyType KeyType INT handle, softkey, i BOOL bDummy
; Wenn akt. STATE-Meldung = letzte Meldung --> Routine verlassen IF (StrComp(stTextLast[],stText[],#CASE_SENS)==TRUE) THEN GOTO EndKCPDialog ENDIF
; Vorhandene Meldungen loeschen KCPDialogClear()
;----------------------------------------------------------------------------------------------------------- ; Vordefinierung von Parametern
; Platzhalter Parameter zuweisen Parameter[1] = {Par_Type #Empty} ; Leer => keine Parameter-Uebergabe Parameter[2] = {Par_Type #Empty} ; Leer => keine Parameter-Uebergabe Parameter[3] = {Par_Type #Empty} ; Leer => keine Parameter-Uebergabe ;----------------------------------------------------------------------------------------------------------- ; Modulbezeichnung definieren MSG.Modul[]="VELOPACK" ; Meldungnummer definieren MSG.NR=1 ; Meldungsverhalten definieren Option = {vl_stop TRUE, clear_p_reset TRUE, clear_p_SAW FALSE, log_to_DB TRUE} ;Meldetext Zeichen fuer Zeichen umkopieren For i=1 to 80 MSG.MSG_Txt[i ]=stText[i ] ENDFOR ;-----------------------------------------------------------------------------------------------------------
SWITCH Type ; Auswahl des Meldungstypes ;-----------------------------------------------------------------------------------------------------------[color=green] CASE #QUIT ; Quittiermeldung ; Meldungstyp definieren und Meldung absetzen (mit Rueckgabewert der Funktion) handle = Set_KrlMsg(#Quit,MSG, Parameter[],Option) ; Abfrage, ob die Meldung geloescht wurde. WHILE (Exists_KrlMsg(handle)) WAIT SEC 0.1 ENDWHILE[/color] ; ... ...