发那科iPendant利用XML实现弹窗提示
Posted 飘雨阁i
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了发那科iPendant利用XML实现弹窗提示相关的知识,希望对你有一定的参考价值。
01
karel函数介绍
DISCTRL_DIAG(file_spec, term_mask, term_char,status)
Input/Output Parameters:
[in] file_spec : STRING
[in] term_mask : INTEGER
[out] term_char : INTEGER
[out] status : INTEGER
%ENVIRONMENT Group :UIF
· file_spec指定定义对话框的XML文件的设备和文件名。 如果没有指定设备名称,则使用默认设备。
· term_mask是位掩码,指示将终止对话框的条件,由klevkmsk.kl定义。
kc_prev_key -- 按下PREV
kc_enter_key -- 按下Enter
key kc_func_key -- 按下Function
· term_char接收指示终止对话框的字符或其他条件的代码。终止条件的代码在include文件klevkeys.kl中定义。以下为返回值
ky_cancel -- 对话框取消
ky_prev – Prev键被按下(仅当使用kc_prev_key掩码时)
ky_enter – Enter键被按下(仅当使用kc_enter_key掩码时)
ky_new_menu -- 新菜单选择
· status返回0时正常,0以外的值则发生错误
· 如果KAREL程序被中止,对话框将被自动关闭。
可以显示的项目有:
• Discrete buttons (Yes, No, OK, Cancel etc.) --功能按钮
• Labels --标签
• String entry --字符串
• Numeric entry --数字
• Check boxes --复选框
• Choice boxes (popup lists) --选择框
• Radio buttons --单选按钮
• Images --图像
• Charts --表
02
XML文件格式
可利用karel创建一个XML文件,当然也可以用Notepad和SharedDesignedPoint2007进行编写。
以下为标准提示框XML格式:
<DIALOG [DIALOG attributes] > - DIALOG开头标记
<TEXT [TEXT attributes]>title</TEXT> - 可选标题
<DLGTILE [DLGTILE attributes] > - 一个或多个控件
<object [object attributes] > - 每一个控件一个
<object parameter> - 示教器控件部分
.
.
.
<object parameter>
</object> - 控件结束
</DLGTILE> - 一个控件定义结束
<DLGTILE [DLGTILE attributes] > - 下一个DIALOG开头
<object [object attributes] >
<object parameter>
.
.
.
<object parameter>
</object>
</DLGTILE>
</DIALOG> - 弹窗结尾标记
你只需要将ShareDesignedPoint2007中的控件剪贴值下图区域:
03
XML文件与karel的关联
XML与karel对应变量
04
编写一个简单弹窗的XML文件
123.xml文件
<DIALOG posx="220" posy="170" width="220" height="160" bgcolor="#54FF9F">
<!—-注释-->
<!—-每一个控件都要加DLGTILE-->
<TEXT>Tips</TEXT>
<DLGTILE posx="10" posy="10" width="200" height="50">
<!—-第一个控件文本框-->
<object classid="clsid:7106065C-0E45-11D3-81B6-0000E206D650" id="LABEL1" style="width: 334px; height: 159px">
<param name="Caption" value="continue?">
<param name="FontSize" value="8">
<param name="width" value="334">
<param name="height" value="159">
<param name="DataType" value="100">
<param name="DataIndex" value="1">
<param name="Interval" value="250">
<param name="TrueFont" value="-1">
<param name="FastLoad" value="-1">
<param name="FontName" value="宋体">
</object>
</DLGTILE>
<!—-第二个控件YES按钮-->
<DLGTILE posx="30" posy="70" width="60" height="50" type="1">
<object classid="clsid:7106066C-0E45-11D3-81B6-0000E206D650" id="FRIPToggleButton1">
<param name="Caption" value="YES">
<param name="FontSize" value="8">
<param name="width" value="100">
<param name="height" value="50">
<param name="DataType" value="103">
<param name="DataIndex" value="[test_diag]rt_yes">
<param name="TrueColor" value="16777215">
<param name="FalseColor" value="16777215">
<param name="Interval" value="250">
<param name="TrueFont" value="-1">
<param name="FastLoad" value="-1">
<param name="TrueValue" value="1">
<param name="BackColor" value="8453888">
<param name="TrueStrColor" value="8453888">
<param name="FalseStrColor" value="0">
</object>
</DLGTILE>
<!—-第三个控件NO按钮-->
<DLGTILE posx="120" posy="70" width="60" height="50" type="1">
<object classid="clsid:7106066C-0E45-11D3-81B6-0000E206D650" id="FRIPToggleButton2">
<param name="Caption" value="NO">
<param name="FontSize" value="8">
<param name="width" value="100">
<param name="height" value="50">
<param name="DataType" value="103">
<param name="DataIndex" value="[test_diag]rt_yes">
<param name="TrueColor" value="16777215">
<param name="FalseColor" value="16777215">
<param name="Interval" value="250">
<param name="TrueFont" value="-1">
<param name="FastLoad" value="-1">
<param name="BackColor" value="8453888">
<param name="TrueStrColor" value="8453888">
<param name="FalseStrColor" value="0">
</object>
</DLGTILE>
</DIALOG>
05
karel程序,获参传参
karel程序文件
PROGRAM test_diag
%COMMENT = 'Test Diag'
%NOLOCKGROUP
%ENVIRONMENT uif
%ENVIRONMENT REGOPE
VAR
---------------------------用于XML对应变量,返回Karel程序
rt_yes :BOOLEAN --RETURN YES
rt_no :BOOLEAN --RETURN NO
---------------------------用于DISCTRL_DIAG函数
term_char :INTEGER
term_mask :INTEGER
status :INTEGER --状态
file_spec :STRING[50] --文件路径
---------------------------传入参数用变量
int_val :INTEGER
rea_val :REAL
str_val :STRING[50]
BEGIN
rt_yes = FALSE
rt_no = FALSE
file_spec = 'UD1:123.xml'
GET_TPE_PRM(1,1,int_val,rea_val,str_val,status)
IF ((status <>0 ) OR (int_val<0 ) OR (int_val > 255))
THEN
ABORT
ENDIF
DISCTRL_DIAG(file_spec, term_mask, term_char,status)
IF term_char = KY_PREV THEN --意外退出rt_no为真
rt_no = TRUE
ENDIF
IF rt_no = TRUE THEN
SET_INT_REG(int_val,1,status) --为真,给指定寄存器赋值为1
ELSE
SET_INT_REG(int_val,0,status) --为假,给指定寄存器赋值为0
ENDIF
END test_diag
06
运行效果
运行效果
温馨提示:Diag提示框颜色为RGB,可参考网站: https://www.sojson.com/rgb.html
07
往期相关教程
以上是关于发那科iPendant利用XML实现弹窗提示的主要内容,如果未能解决你的问题,请参考以下文章