本文介绍 Zport 系列 IND 模块与汇川 HMI 通过 Modbus RTU 通讯读取扫码数据, 并将 Modbus 字寄存器中的扫码 ASCII 数据转换为 HMI 可直接显示和处理的字符串, 同时实现扫码计数及相同条码新旧数据判断。
文字版
Zport 系列 IND 模块_汇川 HMI 示例程序说明
第一步
如图 1 所示,设置串口通讯参数为:115200,8,N,1, 建立 Zport 模块 ModbusRTU 通讯。
第二步
如图 2 所示,建立“Zport 模块数据缓存”, Modbus 地址为 30002 (功能码 04,起始地址 01)。
模块内部每个 Word 字寄存器的高 8 位固定为 0x00, 低 8 位用于存储扫码数据的 ASCII 码。 Modbus 读取数据后,模块内部数据将自动清零。
寄存器读取数量的最小设置值, 建议按照“项目最大扫码字符长度 + 3”进行设置。 实际应用中通常取 10 的整数倍, 便于配置和维护。
需要注意的是,读取寄存器数量越多, 单次通信的数据长度越大, 收发时间也会相应增加, 从而降低通信效率。 因此,应根据实际扫码字符长度合理设置读取数量。
第三步
如图 3 所示, 设置项目变量“扫码计数器”和“扫码字符串”。
“扫码计数器”用于扫取相同码时 判断扫码字符的新旧; “扫码字符串”长度需要与 Modbus 读取长度保持一致。
第四步
如图 4 所示,使用 “Zport 系列 IND 模块汇川 HMI—字符串脚本导出程序.html” 脚本,生成脚本程序。
“输出变量名称” 与“扫码字符串”变量一致;
“字符串最大长度” 与 Modbus 读取长度保持一致;
“结束符清除”一般选择 0D+03, 用于清除扫码自带 0x0D 回车字符 和模块自带 0x03 结束字符。
第五步
如图 5 所示,创建脚本程序, 并将第四步复制的程序代码粘贴保存。
第六步
如图 6 所示,在画面中, 设置“字符 IO 域”和“数值 IO 域”控件, 并分别绑定“扫码字符串”和“扫码计数器”。
第七步
如图 7 所示, 在“Zport 模块数据缓存”数组中, 选择首寄存器“3x 1”的事件属性, 将事件类型设置为“越上限”, 并将触发设置值设为 1。
随后,分别添加并启用第五步中创建的用户脚本程序, 以及用于计数的“IncreaseValue”事件。
其中,“IncreaseValue”事件的变量类型选择“输入输出”, 变量设定为“扫码计数器”, 值设定为 1。
第八步
编译下载后,进行测试。
本页面提供 Zport 系列 IND 模块汇川 HMI 示例程序说明 PDF 文档 以及完整汇川 HMI 示例工程下载。 完整示例工程为 RAR 压缩文件, 可通过页面上方“下载完整示例工程”按钮获取。