广州大彩串口屏论坛_大彩开发者交流论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 5917|回复: 0

大彩讲堂:VisualHMI-LUA教程-set_bit/get_bit函数应用

[复制链接]

136

主题

176

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
10437
发表于 2025-8-12 11:17:21 | 显示全部楼层 |阅读模式

一、适合范围

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


二、概述
set_bit(vtype,addr, value)
设置位寄存器:如Modbus的线圈、Fx2N的X、Y、S、M寄存器

vtype:数据类型
addr:变量地址
value:写入的值

get_bit(vtype,addr)
读取位寄存器:如Modbus的线圈、Fx2N的X、Y、S、M寄存器,返回数值

vtype:数据类型
addr:变量地址


三、教程实现

功能实现
1.Modbus线圈应用
放置3个位状态指示灯分别绑定modbus线圈地址0x0000/0x0001/0x0002,如图3-1。通过脚本实现初始化对0x0000线圈地址置1,通过on_updata回调函数将0x01线圈地址同步更新到0x0线圈地址上,实现位状态相同。通过定时器将0x02线圈地址实现01循环变化。
图3-1 modbus线圈地址配置

Lua脚本预览
脚本运用函数说明
对地址0x0000线圈寄存器写入位值为1时函数格式为 set_bit(VT_0x,0x0000,1)
对地址0x0000线圈寄存器读取的函数格式为 get_bit(VT_0x,0x0000)
对地址0x0000离散输入寄存器读取的函数格式为 get_bit(VT_1x,0x0000)
modbus线圈地址 lua脚本预览

2.FX2N位寄存器应用
放置8个位状态指示灯分别绑定X/Y/S/M位状态寄存器如图3-2所示,脚本初始化将位寄存器地址全部置1。搭配定时器将位寄存器实现01循环变化。
图3-2 FX2N位状态寄存器配置

Lua脚本预览
脚本运用函数说明
对地址0x0000输入位X寄存器只读取函数格式为get_bit(VT_X,0x0000)
对地址0x0000输出位Y寄存器只写入位值为1的函数格式为set_bit(VT_Y,0x0000,1)
对地址0x0000状态位S寄存器可读写位值为1的函数格式为set_bit(VT_S,0x0000,1)和get_bit(VT_S,0x0000)
对地址0x0000辅助位M寄存器可读写位值为1的函数格式为set_bit(VT_M,0x0000,1)和get_bit(VT_M,0x0000)
FX2N位状态寄存器 lua脚本预览



广州大彩光电科技有限公司(总部)
地址:广州市黄埔区科学城玉树工业园富康西街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


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
销售与技术支持:(020)82186683-601
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|广州大彩串口屏论坛_大彩开发者交流论坛

GMT+8, 2025-8-30 13:17 , Processed in 0.057871 second(s), 20 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表