WeStudio技术社区

 找回密码
 立即注册

快捷登录

QQ登录

只需一步,快速开始

查看: 962|回复: 0

如何同时写多个保持寄存器?

[复制链接]

99

主题

142

帖子

1046

积分

版主

Rank: 7Rank: 7Rank: 7

积分
1046
发表于 2021-12-13 15:37:12 | 显示全部楼层 |阅读模式
本帖最后由 hixon 于 2021-12-13 15:39 编辑

比如我们要将 0x5dc00这个整数值通过modbus 0x10功能码写入0x6211和0x6212两个地址?
首先我们看一下modbus控件的write方法的定义,参数code是功能码,参数addr是寄存器起始地址,参数values是值数组(8位或16位字节数组),功能码0x10对应的是16位字节数组
ui.form-name.modbus-name.write(code, addr, values);

0x5dc00 我们需要拆成两个16位数 0x0005 和 0xdc00
  1. var code = 0x10;
  2. var addr = 0x6211;
  3. var v = 0x5dc00;
  4. var values = [(v >> 16) & 0xffff, v & 0xffff];
  5. ui.form-name.modbus-name.write(code, addr, values);
复制代码




回复

使用道具 举报

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

本版积分规则

Archiver|手机版|物一世(北京)科技有限公司 ( 京ICP备20025895 )

GMT+8, 2024-4-16 18:06 , Processed in 0.011764 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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