您的位置:首页   >  关于我们  >  新闻动态

大彩讲堂:VisualHMI-LUA教程-on_screen_change回调函数使用指南

发布人:大彩科技发布日期:2025-07-30


一、适合范围



本文档适用于VisualHMI平台,Lua脚本语言为V5.3版本,配合工程可以完成大部分的内部逻辑处理。


二、概述



on_screen_change(screen)回调函数,画面切换通知,该函数通常用来根据页面给特定变量赋值,启动和关闭定时器以及设置系统参数。


三、教程实现



工程配置:

首先建立一个HMI工程以DC80480M070为例。如3-1所示。

图片

图3-1 新建工程


1、在画面上放置一个功能按钮用来切换画面触发on_screen_change(screen)回调函数,以及放置两个数值控件绑定不同的地址用来显示参数。如3-2所示。其余界面配置同上,如图3-3和3-4所示。

图片

图3-2 控件配置


图片

图3-3 控件配置


图片

图3-4 控件配置

Lua脚本预览

图片


图片


图片


函数应用

1.当切换页面后为所需要赋值的特定控件赋值,当切换到画面0时给0x1000地址0x1002地址赋值,脚本如下:

function on_screen_change(screen)

    if screen == 0 then 

        local _screen= get_screen()

        set_uint16(VT_LW,0x1002,_screen)

        set_uint16(VT_LW,0x1000,11)

    end 

end


2.可以启动以及停止定时器来实现所需要定时处理的功能,脚本如下:

count = 0

function on_timer(timer_id)

    if timer_id==0 then 

        count=count+1

        set_uint16(VT_LW,0x1100,count)

    end 

end 

function on_screen_change(screen)

    if screen == 1 then

        start_timer(0,1000,0,0)

        local _screen= get_screen()

        set_uint16(VT_LW,0x1004,_screen)

    end 

end


3.可以设置调节屏幕的系统参数,脚本如下:

function on_screen_change(screen)

    if screen == 2 then 

        set_uint16(VT_LW,0x0121,20)

        local _screen= get_screen()

        set_uint16(VT_LW,0x1006,_screen)

        stop_timer(0)

    end 

end








联系我们

广州大彩光电科技有限公司(总部)

地址:广州市黄埔区科学城玉树工业园富康西街8号C栋
销售与技术支持:(020)82186683-601
大彩深圳办事处

地址:深圳市龙岗区坂田街道深汇大厦1栋1108

邮箱:fujq@gz-dc.com
销售与技术支持:付先生 13828461018

大彩成都办事处

地址:四川省成都市高新区天府大道中段500号东方希望天祥广场C座39楼3910号
邮箱:niesl@gz-dc.com
销售与技术支持:聂经理 18180927176
大彩上海办事处

地 址:上海市浦东新区长清路1200弄森宏旗臻商务楼39号813
邮箱:sales103@gz-dc.com
销售与技术支持刘经理 13671882080