KUKAC4机器人对话框的建立步骤

描述

对话框中的附加变量和结构:

机器人

对话框的函数:

用函数 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 程序中的询问必须循环进行,直至对话得到回答或被删除。

例如:

DECL Bool  P1

P1=Exists_KrlDlg(nHandle, nAnswer

present == TRUE: 该对话还存在于信息缓存器中

present == FALSE : 该对话不再位于信息缓存器中 (即已得到回答)

Answer (回答)现在以按下的按键的值返回写入。 有效值为 1 到 7,取决于编程设定的按键号。

变成事例:

在USR_S.src程序中建立程序”K_msg”

机器人

机器人

反馈值监控:

机器人

--------------------------------------------------------------

例如:

生成EMZ的选择框,选择几号焊钳

DEFFCT INT SetDlgMsg()

DECL KrlMsg_T Msg

DECL KrlMsgPar_T Par[3]

DECL KrlMsgOpt_T Opt

DECL KrlMsgDlgSK_T SK[7]

INT nHandle, 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)) 关闭对话窗口

Wait sec 0.1

Endwhile

Endif

Return(nAnswer) 选择按钮的值被发出

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分