• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

modbus协议怎么实现一个数据帧的校验

菜鸟冷虎 2018-11-26 浏览量:960
modbus是怎么实现校验的
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • modbusRTU协议用的CRC16

    代码如下:

    static ushort modbus_crc_16(char *p int len)
    {
    	ushort r c;
    	ushort i j;
    	r = 0xffff;
    	for (i = 0; i < len; i++)
    	{
    		r = r ^ (*(p + i) & 0x00ff);
    		for (j = 0; j < 8; j++)
    		{
    			c = r & 0x0001;  //按位与
    			r = r >> 1;      //右移位
    			if (c > 0)
    				r = r ^ 0xa001;
    		}
    	}
    	return r;
    }

    • 发布于 2018-11-26
    • 举报
    • 评论 0
    • 1
    • 0

其他答案 数量:14

  • MODBUS都要带CRC校验的,都是16位CRC校验,通过这个来验证数据帧的完整和正确。
    • 发布于2018-11-26
    • 举报
    • 评论 0
    • 0
    • 0

  • modbus数据帧采用的CRC16校验方式,

    在串口通讯上,有的采用的是奇偶校验,或者不校验都行

    • 发布于2018-11-26
    • 举报
    • 评论 0
    • 0
    • 0

  • 如果是传输层校验的话用数据帧结尾的硬件crc校验,如果是应用层校验那就要接收完再校验。
    • 发布于2018-11-26
    • 举报
    • 评论 0
    • 0
    • 0

  • 串口都是奇偶校验,modbus可以使用CRC差错校验!
    • 发布于2018-11-27
    • 举报
    • 评论 0
    • 0
    • 0

  • MODBUS通信协议的CRC校验原理多项式为8005的逆序,要看下具体操作
    • 发布于2018-11-27
    • 举报
    • 评论 0
    • 0
    • 0

  • 是使用CRC16的算法进行校验的
    • 发布于2018-11-27
    • 举报
    • 评论 0
    • 0
    • 0

  • 一般是使用CRC进行校验的,这个算法是可自己实现的
    • 发布于2018-11-28
    • 举报
    • 评论 0
    • 0
    • 0

  • 有CRC16校验的,将校验字节前面所有字节按照CRC16校验算法,计算出来2个字节数据。接收端自己算一遍然后比对校验是否正确。
    • 发布于2018-11-30
    • 举报
    • 评论 0
    • 0
    • 0

  • modbus有个CRC校验的字段,用的是CRC16
    • 发布于2018-12-15
    • 举报
    • 评论 0
    • 0
    • 0

  • modbus里面用的是CRC校验,用的标准算法
    • 发布于2018-12-30
    • 举报
    • 评论 0
    • 0
    • 0

  • 这个用的是标准的CRC校验,用的是CRC16
    • 发布于2019-01-08
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

modbus协议怎么实现一个数据帧的校验