数据文本(datalabel)

此控件为V2.3新增

功能

此控件用于以只读的方式显示某一系统数据、KUI自定义变量或表达式的值,值会实时刷新,但不可手动更改。

支持的数据

  • 诊断参数 K/D/T/C/X/Y/R/S/F/G,支持位型/字节型参数(诊断参数的非位型数据可以设置数据类型,共6种,u8/u16/u32/s8/s16/s32,s表示有符号数,u表示无符号数,数字表示数据的位数,默认为u8。形式为xxx[type],如K8[u16],表示K区8号参数,无符号16位)
  • 宏变量 格式:#500
  • 系统参数 格式可为P414, P415[1],P1105.1-[1],中括号内可以是一个数字,也可以是一个变量或者表达式。例如P415[D1],轴号由"D1"决定。
  • 伺服参数 支持伺服参数PA,ZA-ZF/ZP,写法为PA1[3],中括号内可以是一个数字,也可以是一个变量或者表达式。例如PA1[D1],轴号由"D1"决定。
  • 表达式 如(K12[u8]+#500)/2,会显示诊断参数K12加上#500后除以2得到的值。
  • KUI自定义变量 自定义变量名称可以为小写字母或小写字母+数字,不支持大写字母,为了区别于系统数据,将自定义变量包含在大括号{}内,形如{v1};非保持型变量,在{}前加两个下划线 "__" ,形如__{v1}
  • 可变变量 格式可为select{D10, (1,D11),(2, D12)},当D10的值不为1或2时控件的值显示为0,应该避免这样的情况发生。
  • 系统内部数据 目前支持的内部数据有:主轴原始角度__sp_angle_pos[xxx]$n、当前反馈速率__act_feed_speed$n、程序列表信息__prog_list_info[x]、U盘列表信息__usb_list_info[x]、负载绝对值__axis_torque[n]、 编程速率__speed_rate[0]、手动速率__speed_rate[1]、循环时间__cycle_time[0]、总加工时间__cycle_time[1]、目标件数__goal_count
datalabel("select{D10, (1,D11),(2, D12)}", (2, 1))  #将"可变变量"用到控件中
datalabel("__sp_angle_pos[1]", (1, 1), 隐藏)    # 1行1列处显示通道内主轴编号为1的主轴原始角度,隐藏边框。
datalabel("__sp_angle_pos[D10]", (1, 2), 隐藏)  # 1行2列处显示通道内主轴编号为D10的主轴原始角度,隐藏边框。
datalabel("__act_feed_speed$1", (1, 3), 隐藏)   # 1行3列处显示通道1的当前反馈速率,隐藏边框。
datalabel("__prog_list_info[0]", (1, 4), 隐藏)  # 1行4列处显示程序数已用数据,隐藏边框
datalabel("__prog_list_info[1]", (1, 5), 隐藏)  # 1行5列处显示程序数可用数据,隐藏边框
datalabel("__prog_list_info[2]", (1, 6), 隐藏)  # 1行6列处显示空间可用容量数据,隐藏边框
datalabel("__prog_list_info[3]", (1, 7), 隐藏)  # 1行7列处显示空间已用容量数据,隐藏边框
datalabel("__usb_list_info[0]", (2, 1), 隐藏)  # 2行1列处显示U盘文件数数据,边框隐藏
infolabel("__usb_list_info[1]", (2, 2), choices={0:"否", 1:"是"}, 隐藏)  # 2行2列处显示U盘写保护的状态
datalabel("__usb_list_info[2]", (2, 3), 隐藏)  # 2行3列处显示U盘容量信息
datalabel("__usb_list_info[3]", (2, 4), 隐藏)  # 2行4列处显示U盘可用容量信息
datalabel("__axis_rotque[2]", (3, 1))  # 3行1列处显示2轴的负载值,边框不隐藏
datalabel("__cycle_time[1]", (4, 1), visible="k100.1") #当k100.1大于0时显示,等于0时不显示

注:主轴号或通道号无效时显示数据为0。不支持多通道的系统软件会忽略$n。 空间容量数据单位为B

参数

  • 描述的数据或表达式,此参数类型为字符串,写作 " #500 "
  • 控件所在位置及所占空间大小,此参数类型为元组,写作 (a, b, c, d) 其中a/b/c/d都应该是正整形值分别表示控件的 起始行/起始列/所占行数/所占列数,其中c/d可以省略,省略时值均为1。
  • 颜色:(不设为默认值)
    • 可以设置1个或多个前景色(前景色:文字或数据的颜色),前景色表达式使用fg_expr="前景色表达式", 前景色表fg_map={}(V3.0起支持多个前景色)
    • 可设置1个或多个背景色(背景色:底纹颜色),背景色表达式使用bg_expr="背景色表达式", 背景色表使用bg_map={}(V3.0起支持)
    • 可设置边框颜色(默认无边框),写作border_visible=1,border_color=边框颜色(V3.0起支持)
  • 字体大小:(不设为默认值)
  • id号:控件名称,用于标识控件,控件名称不可重复,如果不需要可以不设置,此参数可以为数字或中英文字符串,写作 id="page1"id=1
  • 数据类型:数据的类型共有int/uint/float三种类型,分别代表 有符号整形/无符号整形/浮点型。格式为 data_type='int'。此参数需要与format参数一起使用来实现格式化的功能,单独使用无意义。(参数为特定需求的情况设计,无特殊需求勿用,以免造成不必要的困扰。)
  • 数据格式:书写格式为 format="%xxx",是C语言库函数printf的子集,目前仅支持几种简单的格式化,在下面列出。使用此参数时,必须使用data_type参数,且此时参数的格式化需要与data_type类型相对应。格式化时不会改变变量的值,但会改变其显示形式。一些情况可能会导致显示的值与变量真实值不符。(使用此参数时你需要明确知道你在做什么,并且不会给自己和用户带来困扰)。下面是目前支持的格式化形式。
    • datalabel("{v1}", (1, 1), format="%.nf", data_type='float') 此时将数据格式化为浮点型,n为正整形数值,此时控件会显示n位小数,剩余小数部分按四舍五入处理。此时必须设置data_type参数为’float'。".n"可以省略,省略时默认显示6位小数。
    • datalabel("{v1}", (1, 2), format="%0nd", data_type='int') 此时将数据格式化为带符号整形,n为正整形数值,此时控件中数据宽度最小为n,左侧用0补齐,此时必须设置data_type参数为’int'。“0n"可以省略,省略时没有最小宽度限制。
    • datalabel("{v1}", (1, 3), format="%0nu", data_type='uint') 此时将数据格式化为无符号整形,n为正整形数值,此时控件中数据宽度最小为n,左侧用0补齐,此时必须设置data_type参数为’uint'。“0n"可以省略,省略时没有最小宽度限制。
  • 是否显示:不显示visible=0(v3.3新增)

示例

datalabel

with page(9, 4, id="datalabel", text=(红色, f24x12), data=(黄色, f24x16)):
    label("#500", (1, 1))               # 静态字符,说明后面datalabel的数据
    datalabel("#500", (1, 2), 黄色)      # 实时显示宏变量#500的值
    label("自定义变量{v100}", (1, 3))     # 静态字符,说明后面datalabel的数据
    datalabel("{v100}", (1, 4), 黄色)    # 实时显示宏变量自定义变量v100的值
    label("(K12[u8]+#500)/2", (2, 1))   # 静态字符,说明后面datalabel的数据
    datalabel("(K12[u8]+#500)/2", (2, 2), 黄色) # 实时显示表达式的值
    label("当前反馈速率", (2, 3))
    datalabel("__act_feed_speed$1", (2, 4), 黄色) # 实时显示当前反馈速率
    datalabel("d10[u8]", (1, 3), 红色, bg_expr="D8[u8]", bg_map={1:绿色,2:白色},
       fg_expr="D9[u8]", fg_map={1:黑色,2:灰色})  # 当d8为1时背景色为绿色,当d8为2时,背景色为白色,当d9为1时,前景色为黑色,当d9为2时,前景色为灰色,否则显示为红色