在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

// 可在后续实验章节下载工程文件参考