對話框中的附加變量和結構:
對話框的函數:
用函數 Set_KrlDlg( ) 可生成一則對話信息。 這意味著,該信息提示被傳遞到信息緩存器中并顯示在單獨的一個帶有按鍵的信息提示窗口中。
DEFFCT Extfctp Int Set_KrlDlg(MyQuestion:OUT, Parameter[ ]:OUT, Touchkey[ ]:OUT, Option:OUT)
MyQuestion: 一般信息提示的結構 (發送人、信息號、問題文本)
Parameter[ ]: 通配符 %1、%2 和 %3 的 3 個可能參數欄。即使不使用通配符,也必須始終代入全部 3 個參數。
Touchkey[ ] : 7 個可能按鍵標注結構。 即使不使用這些按鍵,也必須始終代入全部 7個按鍵。
Option (選項): 一般信息提示選項的結構 (預進停止、記錄在信息提示數據庫中、程序復位或選擇語句時連帶刪除信息提示)
對話的返回值:對話的“句柄 (handle)”。用該“句柄”可檢查是否成功生成了對話。同時,“ 句柄 ” 也用作信息緩存器中的識別號。
handle == -1: 不能生成對話 (例如因為另一則對話仍處于激活狀態、還未得到回答或信息緩存器已過滿)
handle > 0 : 對話已成功生成并以相應的識別號保存在信息緩存器中管理。
用函數Exists_KrlDlg( ) 可檢查一則特定的對話是否還存在。即檢查該信息提示是否還在內部信息緩存器中。如果對話得到應答,則此功能會說明按下的是哪個按鍵。
例如:
DEFFCT BOOL Exists_KrlDlg(INT nHandle:IN,INT Answer:OUT)
DECL INT nHandle, answer
nHandle: 由函數 “Set_KrlDlg(…) ” 提供的對話句柄.
Answer : 有關哪個按鍵被按動的反饋。這樣,被定義為 “Button[1]”的按鍵 1 便返回值 1.
函數不等到對話得到回答,而是僅僅在緩存器中查找帶有該句柄的對話。因此,KRL 程序中的詢問必須循環進行,直至對話得到回答或被刪除。
例如:
DECLBool P1
P1=Exists_KrlDlg(nHandle, nAnswer
present == TRUE: 該對話還存在于信息緩存器中
present == FALSE : 該對話不再位于信息緩存器中 (即已得到回答)
Answer (回答)現在以按下的按鍵的值返回寫入。 有效值為 1 到 7,取決于編程設定的按鍵號。
變成事例:
在USR_S.src程序中建立程序”K_msg”
反饋值監控:
--------------------------------------------------------------
例如:
生成EMZ的選擇框,選擇幾號焊鉗
DEFFCT INT SetDlgMsg()
DECLKrlMsg_TMsg
DECLKrlMsgPar_TPar[3]
DECLKrlMsgOpt_TOpt
DECLKrlMsgDlgSK_TSK[7]
INTnHandle,nAnswer
T 2模式下執行EMZ
Msg={Modul[]"vw_emz",Nr 10,Msg_txt[]"Antriebsschnittstelleselektieren"}提示信息條 “EMZ使用幾號工具用來測量”
SK[1]={ Sk_Type #VALUE,Sk_txt[]"1"}生成的選項按鈕
SK[2]={ Sk_Type #VALUE,Sk_txt[]"2"}
SK[3]={ Sk_Type #VALUE,Sk_txt[]"3"}
SK[4]={ Sk_Type #VALUE,Sk_txt[]"4"}
SK[5]={ Sk_Type #VALUE,Sk_txt[]"5"}
SK[6]={ Sk_Type #VALUE,Sk_txt[]"6"}
SK[7]={ Sk_Type #VALUE,Sk_txt[]"7"}
選擇幾號焊鉗
Opt={ VL_Stop True,Clear_P_ResetTrue,Log_To_DB FALSE }信息屬性設置
nHandle=Set_KrlDlg(Msg,Par[],SK[],Opt)激活信息提示
If(nHandle>0)Then
While(Exists_KrlDlg(nHandle,nAnswer))關閉對話窗口
Waitsec0.1
Endwhile
Endif
Return(nAnswer)選擇按鈕的值被發出
-
機器人
+關注
關注
210文章
28200瀏覽量
206514 -
KUKA機器人
+關注
關注
4文章
143瀏覽量
9053
發布評論請先 登錄
相關推薦
評論