全局扩展设置

简介

全局扩展设置支持KUI的一些特殊功能,例如:

设置文字作为图标设置SVG图标设置SVG动态图标进入APP的动作APP使能功能APP加载时机控件密码功能KUI授权功能添加工艺数据列表PLC沿事件监听添加周期任务使用界面翻译

设置文字作为图标

在应用中设置文字作为图标显示,显示效果可以在应用页面中查看。

  • text: 文字
  • color: 文字的颜色,仅支持HEX颜色代码
  • fill_color: 填充的底色,仅支持HEX颜色代码
  • font_size: 字体大小(按整个图标1024x1024来计算)
set_text_icon("A", color="#ff0000", fill_color="#dc143c", font_size=512)

设置SVG图标

在应用中设置SVG图标显示,显示效果可以在应用页面中查看。

set_icon("静态图标.svg")

设置SVG动态图标

在应用中设置动态图标显示,显示效果可以在应用页面中查看。

set_dynamic_svg_icon("动态图标.svg")

进入APP的动作

支持一个或多个动作,在进入APP时会自动执行该动作。

例如:在进入该APP时会自动执行两个动作:1. 表达式赋值 2. 使F19000.0信号翻转

set_entry_action([表达式("#500=10"), 信号翻转("F19000.0")])

APP使能功能

设置app的使能表达式,不使能的app不会加载(应用列表中不会显示)。

例如:当宏变量#500的值为10时,开机会加载显示该APP,否则不会显示。

set_enable("#500==10")

APP加载时机

默认情况下,APP都是在开机时加载,可以通过调用函数 set_load_until_enter()设置界面在第一次按下"根菜单"时才加载。(适用于V5/V6软件)

默认情况下,APP不会在开机时加载,可以通过调用函数 set_power_on_load(True)设置界面在开机时进行加载。(适用于V7软件)

set_load_until_enter()  #此函数可以在任何可执行处调用,为了清晰和便于维护建议在所有页面定义之前调用

控件密码功能

在文件开头写入密码表达式,在控件中设置密码等级,该控件修改时弹出对话框需要输入对应等级密码,同时密码也支持表达式,并将表达式的结果 转换为整数进行比较。

例如:密码等级为1级密码为123456,2级密码为666888。控件textbox使用1级秘密进行修改。

set_password({1:"123456", 2:"666888"})      #设置密码,1级密码为123456,2级密码为666888
textbox("F19030.0", (1, 1, 30, 100), password=1)  # 设置控件需要输入1级密码 

KUI授权功能

开启授权密码功能后,KUI第一次加载时需要输入一次授权密码才会加载。写法为set_auth_password("")

授权密码可以使用rand函数,用于计算授权密码。其中,__rand[0]值为随机码的第1组四位数字,__rand[1]值为随机码的第2组四位数字,以此类推。 例如:随机码为1245 8745 9652 3651,则函数__rand[1]的数值为8745。

set_auth_password("123456")     # 授权密码为123456
set_auth_password("__rand[1]")  # 授权密码为随机码的第2组四位数字

添加工艺数据列表

为满足不同工艺需求,APP可以使用加载工艺和保存工艺功能,用于保存不同工艺数据,并且可以选择加载以保存的工艺数据。

添加工艺数据列表,此函数可添加多个数据列表,数据列表的格式为:

add_craft_data("K0-K10,D5,D10,#500$1-#600$1")   # 最好在所有页面page前添加

menu("加载工艺", 加载工艺)  # 可添加至需要此功能的页面page下
menu("保存工艺", 保存工艺)  # 可添加至需要此功能的页面page下

注:工艺保存会把自定义数据全保存,不需要再额外添加至工艺数据列表中。

PLC沿事件监听

APP监听指定PLC位地址的沿事件,并执行指定动作。同时支持设置沿类型和使能表达式。

例如:如果PLC位地址为X0.0,则监听X0.0的上升沿,当X0.0从0变为1时执行表达式赋值#500=#500+1。

add_plc_edge_event("X0.0", 表达式("#500=#500+1"), 上升沿, enable="1")

添加周期任务

APP可以添加周期任务,每过指定时间后执行一次动作。

  • action: 一个或多个动作
  • period: 定时周期单位s,默认为1
  • enable: 是否使能定时任务

例如:每过1秒执行一次表达式赋值#500=#500+1。

add_periodic_task(表达式("#500=#500+1"), 5, enable="1")

使用界面翻译

APP可以同时存在多种语言,通过该函数set_translations()会生成一个翻译文件,将文件翻译完成后重新编译生成的KUI文件中会自动携带该语言,并且会跟随系统自动切换该APP的语言。

  • languages: 支持的语言列表,应为 iso639-2 码,参见 https://www.loc.gov/standards/iso639-2/php/code_list.php
  • directory: 翻译的源文件夹,每个语言都对应一个txt文件,若不存在则会自动在同目录下的_translations目录中创建
  • merge: 合并此界面和翻译文件中的字符串,多用于多国语言APP
  • clean: 清除此界面中不存在的字符串
  • sort: 写入文件时是否排序

例如:添加英文翻译,并自动清除界面中不存在的字符串。

set_translations("eng", clean=True)