在modbus上发送写入帧(数组) – modbusWrites
带Modbus版本中,在modbus总线上发送写入帧(写多个寄存 0x10)
定义
int modbusWrites (int addr, int fcode, int outputaddr, int count, byte[] val, int len, int timeout);
参数
- addr:
地址
- fcode:
功能码
- outputaddr:
输出地址(寄存器地址)
- count:
输出值数量(寄存器数量)
- val:
值数组
- len:
值数组长度(寄存器数量 x 2)
- timeout:
超时时间,单位毫秒
函数参数对应设置完成后,由函数计算校验并外发。
返回值
0 成功,-1超时
示例
byte a[4] = {0x01,0x02,0x03,0x04};//定义数据数组
// 在Modbus总线上发送写入帧数组,设备地址0x01,功能码0x06,输出地址0x0064,寄存器数量2,值数组a,数组长度4,超时50mS
num1.val = modbusWrites(0x01,0x10,0x0064,2,a,4,50);//使用时建议用整数控件将返回值显示处理,方便判断读取状态
if(num1.val == 0)
{
text1.txt = "数据写入成功";
}else
{
text1.txt = "数据写入超时";
}
//外发数据:01 10 00 64 00 02 04 01 02 03 04 55 7b
// 可在后续实验章节下载工程文件参考