关于Modbus-RTU协议理解笔记

1.通讯格式

其中

通讯地址为1~247

功能码

CRC校验码

CRC-16,低位在前,高位在后

报文格式

1.读单个或多个寄存器

发送单帧数据格式:地址+功能码+读寄存器的首个地址+读取寄存器个数+CRC校验码

接受单帧数据格式:地址+功能码+字节长度+单/多数据+CRC校验码

#每个寄存器占用两个字节

2.写单个寄存器

寄存器地址定义

//采集数据定时器事件
        private void timer5_FreshData_Tick(object sender, EventArgs e)
        {
            if (serialPort1.IsOpen)//判断串口开启情况
            {
                try
                {
                    //定义8字节数组
                    byte[] Data = new byte[8] { 0x01, 0x03, 0x9C, 0x41, 0x00, 0x02, 0x00, 0x00 };
                    //插入CRC
                    UInt16 CRC = Crc_Check(Data, 6);//计算前6个字节CRC
                    byte CRC_H = (byte)(CRC >> 8);
                    byte CRC_L = (byte)(CRC);
                    Data[6] = CRC_L;
                    Data[7] = CRC_H;
                    //发送
                    serialPort1.Write(Data, 0, 8);//从第0个字节开始发送到第8个字节
                    //添加发送时间
                    textBox1.AppendText("[" + DateTime.Now.ToString("HH:mm:ss") + "]" + "发 ->");
                    //遍历显示
                    foreach (byte Member in Data)
                    {
                        string str = Convert.ToString(Member, 16).ToUpper();
                        textBox1.AppendText((str.Length == 1 ? "0" + str : str) + " ");
                    }
                    textBox1.AppendText("\r\n");

                }
                //发送失败,关闭串口
                catch
                {
                    serialPort1.Close();
                    button2.BackgroundImage = Properties.Resources.Image_CloseSerial;
                    button2.Tag = "OFF";
                    textBox1.AppendText("[" + DateTime.Now.ToString("HH:mm:ss") + "]" + "->");
                    textBox1.AppendText("采集命令发送失败!\r\n");
                    timer1.Stop();//关闭串口工具异常检测
                }
            }
        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值