库卡机器人对话信息方面编程案例

只有当无其它对话存在时,才能生成一则对话。
对话可用一个软键删除,该软键的标注由程序员定义。
最多能定义 7 个软键。
 对话适用于显示必须由用户回答的问题。
 用函数 set_krldlg( )  可生成一则对话。
 用函数仅仅可生成对话。
 但该函数不等到对话得到回答。
 用函数exists_krldlg( ) 可检查一则特定的对话是否还存在。
 该函数也不等到对话得到回答,而是仅仅在缓存器中查找带有该句柄的对话。
 因此,krl 程序中的询问必须循环进行,直至对话得到回答或被删除。
 接下来的程序流程根据用户所选的软键而定。
 按键的声明和初始化
decl krlmsgdlgsk_t softkey[7] ; 准备 7 个可能的软键
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}
softkey[6]={sk_type #value, sk_txt[] key6}
softkey[7]={sk_type #value, sk_txt[] key7}
通过 exists_krldlg() 进行分析:在索引 4 下创建的按键也以 4 作为反馈应答。
; 第 4 号软键以 4 作为反馈应答
softkey[4]={sk_type #value, sk_txt[] key4}
若未给所有按键编程或有间断地编程 (编号 1、4、6),则按键将并列排布。若仅使用了按键 1、4、6,则也只能给出 1、4、6 反馈。
给用户自定义的对话编程:
1. 将主程序载入编辑器。
2. 为以下对象声明工作变量:
发送人、信息号、信息文本 (自 krlmsg_t )
具有 3 个用于参数的元素的数组 (自 krlmsgpar_t )
7 个可能的按键 (自  krlmsgdlgsk_t )
通用信息提示选项 (自 krlmsgopt_t )
“句柄”(作为 int )
检查结果的变量 (作为 bool)
回答按了哪个按键的结果变量 (作为 int )
3. 用所需值初始化工作变量。
4. 给函数调用 set_krldlg(…)  编程。
5. 用一个循环停止程序,直到对话得到了应答。
6. 调用函数 exists_krldlg( )  来分析对话。
7. 规划程序中的其它分支并进行编程。
8. 关闭并保存主程序。
生成对话后程序被停住。回答后信息提示被删除。然后程序继续运行。接着给 switch-case 分支编程同样,程序复位或退出程序时信息提示也将消失。可通过在信息提示选项中的设置 clear_p_reset true  引发这种情况。
decl krlmsg_t myquestion
decl krlmsgpar_t parameter[3]
decl krlmsgdlgsk_t softkey[7] ; 准备 7 个可能的软键
decl krlmsgopt_t option
decl int handle, answer
decl bool present
...
myquestion={modul[] college, nr 1909, msg_txt[] my questiontext}
option= {vl_stop false, clear_p_reset true, clear_p_saw false, 
log_to_db true} 
; 通配符为空通配符 [1..3]
parameter[1] = {par_type #empty}
parameter[2] = {par_type #empty}
parameter[3] = {par_type #empty}
softkey[1]={sk_type #value, sk_txt[] key1} ; 按键 1
softkey[2]={sk_type #value, sk_txt[] key2} ; 按键 2
softkey[3]={sk_type #value, sk_txt[] key3} ; 按键 3
softkey[4]={sk_type #value, sk_txt[] key4} ; 按键 4
softkey[5]={sk_type #value, sk_txt[] key5} ; 按键 5
softkey[6]={sk_type #value, sk_txt[] key6} ; 按键 6
softkey[7]={sk_type #value, sk_txt[] key7} ; 按键 7
...
...; 生成对话
handle = set_krldlg(myquestion, parameter[ ],softkey[ ], option)
answer=0
repeat ; 用于在回答对话前停住程序的循环
present = exists_krldlg(handle ,answer) ; 回答由系统写入
until not(present)
...
switch answer
case 1 ; 按键 1
; 按键 1 的操作
...
case 2 ; 按键 2
; 按键的操作2
...
case 7 ; 按键 7
; 按键 7 的操作
endswitch
...
例如:
生成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) 选择按钮的值被发出
;
endfct


Digi-Key推控制技术视频系列 Microchip推TSN交换设备
雷明直播间力推的讯飞智能学习机,618开门红五折狂欢钜惠来袭
基于C8051F313直流无刷电机转子位置的检测
一加手机官宣:与中国移动达成全面合作 线上线下零售渠道并全面开售
软驱的安装方式/数据传输率
库卡机器人对话信息方面编程案例
利用PIC单片机控制步进电机控制系统的方法概述
世界围棋大师谈:未来人类将与人工智能携手共进
2020年任天堂Switch销售额大幅超索尼PS5
中国能源正在迎来储能智能电网等四个重点领域的机会
索尼降噪耳机——WF-SP700N评测,科技感十足!
赛灵思针对回程应用推出完全自适应千兆位级点对点微波调制解调器IP
开源OCR 过程介绍
苹果:M1芯片研发在三到四年前就已启动
巴菲特再次减持比亚迪 依然持股8761.31万股
全球高性能功率半导体市场呈现新趋势
京东方的全媒体管控平台在成都地铁实现落地应用
回流焊有哪些特点
氩弧焊有裂纹怎么办
一加5曝光:高通骁龙835+8g运存,外观新颖,性能残暴