【应用示例】Zport系列IND模块_显控HMI触摸屏示例程序


本文介绍 Zport 系列 IND 模块与显控 HMI 通过 Modbus RTU 通讯读取扫码数据, 并将 Modbus 字寄存器数据转换为 HMI 可直接显示和比较的字符串。

↓  下载 PDF 文档 ↓  下载完整示例工程
文字版

技术支持·公开
2026 年 07 月 09 日

Zport 系列 IND 模块_显控 HMI 示例程序说明

第一步

如图 1 所示,设置串口通讯参数为:115200,8,N,1, 建立 Zport 模块 ModbusRTU 通讯, 通讯周期时间设置为 100ms (通讯时间应大于宏指令脚本周期时间)。

第二步

如图 2 所示,建立“字地址转发”, 将 Modbus 地址为 3x1 (对应功能码 04,起始地址 01) 的连续 30 个字寄存器的数据 存入 HMI 内部寄存器地址 LW0..29。

第三步

如图 3 所示,创建宏指令, 设置全局变量 Modbus 数据缓存变量“scanner48” 和导出字符串_内部存储变量名称“LW100”, 分别映射地址 LW0..29 和 LW100..114。

设置全局变量 LB0 用于字符串比较测试, 设置全局变量 LW99 作为“扫码计数器”, 方便判断扫取相同码时扫码字符的新旧。

“Modbus 数据缓存变量”字节数与 “导出字符串_内部存储变量名称”字节数为 2 倍关系。

“导出字符串_内部存储变量名称”字节数 与第四步导出脚本之中, 扫码字符串最大长度相同。

第四步

如图 4 所示,使用 “Zport 系列 IND 模块显控 HMI—字符串脚本导出程序.html” 脚本,生成脚本程序,参数设置中:

“目标字符串变量名称”做为字符串比较时使用。

“Modbus 数据缓存变量名称” 对应宏指令“scanner48”全局变量;

“导出字符串_内部存储变量名称” 对应宏指令“LW100”全局变量;

“结尾字符串清除”一般选择 0D/03 结束符, 用于清除扫码自带 0x0D 回车字符 和模块自带 0x03 结束字符;

“扫码字符串最大长度”的最小设置值, 建议按照“项目最大扫码字符长度 + 3”进行设置。 实际应用中通常取 10 的整数倍, 便于配置和维护。

需要注意的是,读取寄存器数量越多, 单次通信的数据长度越大, 收发时间也会相应增加, 从而降低通信效率。 因此,应根据实际扫码字符长度 合理设置读取数量。

“LW 字节组合格式” 按照显控默认设置格式一。

第五步

如图 5 所示,创建脚本程序, 将第四步复制的程序代码粘贴、编译并保存后, 添加至全局宏中, 执行频率设置为 50ms, 此时间应小于 Modbus 通讯周期时间 100ms。

第六步

如图 6 所示,在宏指令尾部添加“用户程序”, 用于字符串比较输出指示和扫码计数。 比较测试字符串在宏指令头部 TestStr 数组中设置。

第七步

如图 7 所示,在画面中, 设置“ASCII 显示”和“数值显示”控件, 并分别绑定 “导出字符串_内部存储变量 LW100(长度 30)” 和“扫码计数器 LW99”。 字符串比较 LED 灯绑定 LB0。

第八步

编译下载后,进行测试。 扫取界面“1234”二维码后, 指示灯点亮, 扫取其他码时熄灭。

本页面提供 Zport 系列 IND 模块显控 HMI 示例程序说明 PDF 文档 以及完整显控 HMI 示例工程下载。 完整示例工程为 RAR 压缩文件, 可通过页面上方“下载完整示例工程”按钮获取。

Tel:+86-755-89990959
Email:该邮件地址已受到反垃圾邮件插件保护。要显示它需要在浏览器中启用 JavaScript。


打印