KUKA机器人在 KUKA.HMI示教器的信息窗口中对每一条信息提示均显示一个相应的图标。 图标与信息提示类型固定对应,无法由程序员改变。有如下类型的信息提示,可对他们进行编程。 一、测试程序如下: 1、先声明所需的变量 DEF M1 ( ) DECL KRLMSG_T my1,my2,my3,my4,my5 DECL KRLMSGPAR_T Parameter1[3],Parameter2[3],Parameter3[3],Parameter4[3],Parameter5[3] DECL KRLMSGOPT_T Option1,Option2,Option3,Option4,Option5 DECL KRLMSGDLGSK_T Softkey[5] DECL INT handle1,handle2,handle3,handle4,handle5,answer DECL BOOL p,e 2、程序部分
my1={modul[] "x", Nr 1906, msg_txt[] "My first Message"} Option1= {VL_STOP FALSE, Clear_P_Reset TRUE, Clear_P_SAW FALSE,Log_to_DB TRUE} Parameter1[1] = {Par_Type #EMPTY} Parameter1[2] = {Par_Type #EMPTY} Parameter1[3] = {Par_Type #EMPTY} handle1 = Set_KrlMsg(#NOTIFY, my1, Parameter1[ ], Option1) ;提示信息编程程序
IF $in[17]==FALSE THEN my2={modul[] "x", Nr 1909, msg_txt[] "My Messagetext"} Option2= {VL_STOP FALSE, Clear_P_Reset TRUE, Clear_P_SAW FALSE,Log_to_DB TRUE} Parameter2[1] = {Par_Type #EMPTY} Parameter2[2] = {Par_Type #EMPTY} Parameter2[3] = {Par_Type #EMPTY} handle2 = Set_KrlMsg(#STATE, my2, Parameter2[ ], Option2) ENDIF e=FALSE REPEAT IF $in[17]==TRUE THEN e=Clear_KrlMsg(handle2) ENDIF p=Exists_KrlMsg(handle2) ; D? UNTIL NOT (p) or e ;状态信息编程程序
my3={modul[] "x", Nr 1910, msg_txt[] "My Messagetext"} Option3= {VL_STOP FALSE, Clear_P_Reset TRUE, Clear_P_SAW FALSE,Log_to_DB TRUE} Parameter3[1] = {Par_Type #EMPTY} Parameter3[2] = {Par_Type #EMPTY} Parameter3[3] = {Par_Type #EMPTY} handle3 = Set_KrlMsg(#QUIT, my3, Parameter3[ ], Option3) REPEAT p=Exists_KrlMsg(handle3) UNTIL NOT(p) ;确认信息编程程序
IF $IN[17]==FALSE THEN my4={modul[] "x", Nr 1911, msg_txt[] "My Messagetext"} Option4= {VL_STOP FALSE, Clear_P_Reset TRUE, Clear_P_SAW FALSE,Log_to_DB TRUE} Parameter4[1] = {Par_Type #EMPTY} Parameter4[2] = {Par_Type #EMPTY} Parameter4[3] = {Par_Type #EMPTY} handle4 = Set_KrlMsg(#WAITING, my4, Parameter4[ ], Option4) ENDIF e=FALSE REPEAT IF $IN[17]==TRUE THEN e=Clear_KrlMsg(handle4) ENDIF p=Exists_KrlMsg(handle4) UNTIL NOT(p) or e ;等待信息编程程序 IF $IN[17]==FALSE THEN my5={modul[] "x", Nr 1912, msg_txt[] "My Questiontext"} Option5= {VL_STOP FALSE, Clear_P_Reset TRUE, Clear_P_SAW FALSE, Log_to_DB TRUE} Parameter5[1] = {Par_Type #EMPTY} Parameter5[2] = {Par_Type #EMPTY} Parameter5[3] = {Par_Type #EMPTY} softkey[1]={sk_type #value, sk_txt[] "key1"} softkey[2]={sk_type #value, sk_txt[] "key2"} softkey[3]={sk_type #value, sk_txt[] "key3"} softkey[4]={sk_type #value, sk_txt[] "key4"} softkey[5]={sk_type #value, sk_txt[] "key5"} ;handle5 = Set_KrlMsg(#STATE, my5, Parameter5[ ], Option5) ENDIF ;e=FALSE ;REPEAT ;IF $IN[17]==TRUE THEN ;e=Clear_KrlMsg(handle5) ;ENDIF ;p=Exists_KrlMsg(handle5) ;UNTIL NOT(p) or e handle5 = Set_KrlDlg(my5, Parameter5[ ],Softkey[ ], Option5) answer=0 REPEAT p = exists_KrlDlg(handle5 ,answer) UNTIL NOT(p) SWITCH answer CASE 1 $FLAG[1]=TRUE CASE 2 $FLAG[2]=TRUE CASE 3 $FLAG[3]=TRUE CASE 4 $FLAG[4]=TRUE CASE 5 $FLAG[5]=TRUE ENDSWITCH ;对话信息编程程序
END
|