在modbus上发送写入帧 – modbusWrite
带Modbus版本中,在modbus总线上发送写入帧(写单个寄存 0x06)
定义
int modbusWrite(int addr, int fcode, int outputaddr, int val, int timeout);
参数
- addr:
地址
- fcode:
功能码
- outputaddr:
输出地址(寄存器地址)
- val:
输出值
- timeout:
超时时间,单位毫秒
函数参数对应设置完成后,由函数计算校验并外发。
返回值
0 成功,-1超时
备注
此函数在Modbus协议解析器控件的Default模式下使用。
示例
//在Modbus总线上发送写入帧,设备地址0x01,功能码0x06,输出地址0x0064,输出值0x02,超时50mS
num1.val = modbusWrite(0x01,0x06,0x0064,0x02,50);//使用时建议用整数控件将返回值显示处理,方便判断读取状态
if(num1.val == 0)
{
text1.txt = "数据写入成功";
}else
{
text1.txt = "数据写入超时";
}
//外发数据:01 06 00 64 00 02 49 d4
// 可在后续实验章节下载工程文件参考