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

大彩讲堂:VisualHMI-LUA教程-获取和设置16位数据函数

发布人:大彩科技发布日期:2025-08-19

一、适合范围



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


二、概述



2.1 get_uint16(vtype,addr)读取无符号短整型寄存器,返回无符号短整型数据。
• vtype:变量类型,生成main.lua,自动定义变量的数据类型
• addr:变量地址

2.2 set_uint16(vtype,addr,value)设置无符号短整形寄存器值。
• vtype:变量类型,生成main.lua,自动定义变量的数据类型
• addr:变量地址
• value:寄存器值

2.3 get_int16(vtype,addr)读取有符号短整型寄存器,返回有符号短整型数据。
• vtype:变量类型,生成main.lua,自动定义变量的数据类型
• addr:变量地址

2.4 set_int16(vtype,addr,value)设置有符号短整形寄存器值。
• vtype:变量类型,生成main.lua,自动定义变量的数据类型
• addr:变量地址
• value:寄存器值


本文本档通过分别对HMI内部地址LWmodbus协议保持寄存器地址,三菱协议D寄存器读写无符号短整型数据对get/set_uint16函数进行说明。

例如:

若要获取LW地址0x1000无符号短整型数据,则函数如下:get_uint16(VT_LW,0x1000)

若要设置LW地址0x1000的值为无符号短整型数据100,则函数如下:set_uint16(VT_LW,0x1000,100)

若要获取LW地址0x1000有符号短整型数据,则函数如下:get_int16(VT_LW,0x1000)

若要设置LW地址0x1000的值为有符号短整型数据100,则函数如下:set_int16(VT_LW,0x1000,100)


重点:get/set_int16函数的用法和get/set_uint16函数的用法一样。只是int16的取值范围是-32768~32767uint16的取值范围是0~65535


三、教程实现



功能实现

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

图片

图3-1 新建工程


控件配置

1.放置一个数值输入控件,启用键盘输入,绑定LW地址0x1000,放置一个数值输入控件,启用键盘输入,绑定LW地址0x1001。再放置一个数值输入控件绑定LW地址0x1002。放置一个按钮控件绑定LW地址0x1111。如图3-2所示。注意:数值输入控件绑定的数据类型要和脚本数据类型一致。脚本获取和设置的是uint16,控件数据类型也要选择uint16;脚本获取和设置的是int16,控件数据类型也要选择int16)

图片

图3-2 控件配置(读写LW寄存器地址)


2、新建一个简单工程,开启modbus master协议,放置一个数值输入控件,绑定保持寄存器地址0x0000,放置一个数值输入控件,绑定保持寄存器地址0x0001。放置一个数值输入控件绑定保持寄存器地址0x0002。再放置一个字设置按钮控件绑定LW地址0x1111。如图3-3所示。(注意事项同上)

图片

图3-3 控件配置(读写modbus保持寄存器地址)


3、新建一个简单工程,开启FX2N(三菱)协议,放置一个数值输入控件,绑定D寄存器地址0,放置一个数值输入控件,绑定D寄存器地址1。放置一个数值输入控件绑定D寄存器地址2。再放置一个字设置按钮控件绑定LW地址0x1111。如图3-4所示。(注意事项同上)

图片

图3-4 控件配置(读写三菱协议D寄存器地址)


四、Lua脚本预览



图片

4-1读写LW寄存器地址


图片

图4-2读写modbus保持寄存器地址


图片

图4-3读写三菱协议D寄存器地址









联系我们

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

地址:广州市黄埔区科学城玉树工业园富康西街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