hixon 发表于 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
var code = 0x10;
var addr = 0x6211;
var v = 0x5dc00;
var values = [(v >> 16) & 0xffff, v & 0xffff];
ui.form-name.modbus-name.write(code, addr, values);



页: [1]
查看完整版本: 如何同时写多个保持寄存器?