对话框中的附加变量和结构:
对话框的函数:
用函数Set_KrlDlg()可生成一则对话信息。这意味着,该信息提示被传递到信息缓存器中并显示在单独的一个带有按键的信息提示窗口中。
DEFFCTExtfctpIntSet_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()可检查一则特定的对话是否还存在。即检查该信息提示是否还在内部信息缓存器中。如果对话得到应答,则此功能会说明按下的是哪个按键。
例如:
DEFFCTBOOLExists_KrlDlg(INTnHandle:IN,INTAnswer:OUT)
DECLINTnHandle,answer
nHandle:由函数“Set_KrlDlg(…)”提供的对话句柄.
Answer:有关哪个按键被按动的反馈。这样,被定义为“Button[1]”的按键1便返回值1.
函数不等到对话得到回答,而是仅仅在缓存器中查找带有该句柄的对话。因此,KRL程序中的询问必须循环进行,直至对话得到回答或被删除。
例如:
DECLBoolP1
P1=Exists_KrlDlg(nHandle,nAnswer
present==TRUE:该对话还存在于信息缓存器中
present==FALSE:该对话不再位于信息缓存器中(即已得到回答)
Answer(回答)现在以按下的按键的值返回写入。有效值为1到7,取决于编程设定的按键号。
变成事例:
在USR_S.src程序中建立程序”K_msg”
反馈值监控:
--------------------------------------------------------------
例如:
生成EMZ的选择框,选择几号焊钳
DEFFCTINTSetDlgMsg()
DECLKrlMsg_TMsg
DECLKrlMsgPar_TPar[3]
DECLKrlMsgOpt_TOpt
DECLKrlMsgDlgSK_TSK[7]
INTnHandle,nAnswer
T2模式下执行EMZ
Msg={Modul[]"vw_emz",Nr10,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_StopTrue,Clear_P_ResetTrue,Log_To_DBFALSE}信息属性设置
nHandle=Set_KrlDlg(Msg,Par[],SK[],Opt)激活信息提示
If(nHandle>0)Then
While(Exists_KrlDlg(nHandle,nAnswer))关闭对话窗口
Waitsec0.1
Endwhile
Endif
Return(nAnswer)选择按钮的值被发出
;
ENDFCT
责任编辑:lq
原文标题:制作一条KUKA-C4机器人的提示框!
文章出处:【微信号:gh_a8b121171b08,微信公众号:机器人及PLC自动化应用】欢迎添加关注!文章转载请注明出处。
评论