C# Modbus TCP

格式

/// <summary>
/// 数据格式:0-6位:报文头;7位:功能码;8-9位:起始地址;10-11位:寄存器位数(读)/写入数据(写)
/// </summary>
byte[] data = new byte[] { 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x01, 0x06, 0x00, 0x00, 0x00, 0x01 };
//                          0     1     2      3    4     5    6:ID,7:功能码 8    9     10     11
.....................
byte[] func = GetHex(textBox2.Text);//功能码
byte[] addr = GetAddrHex(textBox3.Text);//起始地址
byte[] regis = GetHex(textBox4.Text);//写入数据,读取寄存器数量
data[7] = func[0];
data[8] = addr[1];
data[9] = addr[0];
data[10] = regis[1];
data[11] = regis[0];

类型转换

....................................

/// <summary>
/// 10转16
/// </summary>
/// <param name="msg"></param>
/// <returns></returns>
private byte[] GetHex(string msg)
{
    ushort val = ushort.Parse(msg);
    byte[] hex = BitConverter.GetBytes(val);
    return hex;
}

private byte[] GetAddrHex(string msg)
{
    int val = int.Parse(msg)-1;
    byte[] hex = BitConverter.GetBytes(val);
    return hex;
}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Modbus/Tcp资料整理 一、简介: Modbus协议通讯采用主—从响应方式。主机(又称客户端)为手持端设备,...
    岳阳_阅读 1,879评论 1 2
  • 软件:博途V15、Matlab2018b非必须软件:Modbus Poll(模拟Client端)、Modbus S...
    即使虽然阅读 9,761评论 0 3
  • 夜莺2517阅读 128,218评论 1 9
  • 版本:ios 1.2.1 亮点: 1.app角标可以实时更新天气温度或选择空气质量,建议处女座就不要选了,不然老想...
    我就是沉沉阅读 7,517评论 1 6
  • 我是一名过去式的高三狗,很可悲,在这三年里我没有恋爱,看着同龄的小伙伴们一对儿一对儿的,我的心不好受。怎么说呢,高...
    小娘纸阅读 3,897评论 4 7

友情链接更多精彩内容