labview DAQ----MODBUS CRC16循环冗余校验
CRC—16(循环冗余错误校验)生成CRC—16校验字节的步骤如下:
(1)装入一个16位寄存器,所有数位均为1。
(2)该16位寄存器的高位字节与开始8位字节进行“异或”运算。运算结果放入这个16位寄存器。
(3)把这个16位寄存器向右移1位。
(4a)若向右(标记位)移出的数位是1,则生成多项式1010000000000001和这个寄存器进行“异或”运算。
(4b)若向右移出的数位是0,则返回(3)。
(5)重复(3)和(4),直至移出8位。
(6)另外8位与该16位寄存器进行“异或”运算。
(7)重复(3)—(6),直至该报文所有字节均与16位寄存器进行“异或”运算,并移位8次。
(8)这个16位寄存器的内容即2字节CRC错误校验
技术性和实用性很强
学习了,要是附上程序就更好了,
非常感谢
受益匪浅
学习咯,谢谢啊啊啊啊
真心不错,谢小编分享
有没有附件啊?
太好 了 。多谢分享
大哥……这是Modbus RTU 的CRC16程序么?我按着仿真后结果根本不对……
结果不太对哦
结果不对,为什么呢?
学习~~~~~~~~~~~~~~~~~
谢谢分享,学习了!
好贴,顶!
谢谢,学习了,呵呵呵,太感谢了
正需要,感谢分享!
小编怎么不上传一个VI程序啊?
.....
添加公式节点方便些
学习了,要是附上程序就更好了
谢谢小编分享
结果不对咋回事
找到原因没 啊 啊
小编辛苦了,不知labview CRC8的算法又该怎么写呢,求指导一下,不知道两种有什么区别
CRC校验码与输入字符串连接后结果不对
结果算的不对。
非常好的资料啊啊啊
非常好的资料啊啊啊 啊
duoxiefenxiang
感谢分享,有上传程序就好了,楼上有说结果不对是神马情况
得到的校验码怎么是四位呢?和软件得出的结果不一样,求解啊~
很厉害的所,只能用,看多看不懂
学习了,要是附上程序就更好了
hhhhhhhhhhhhhhhhhhhhhh哈哈哈哈哈哈
我有一个跟小编一样的子vi,可是程序里的一个输入三个输出 我看不懂 校验不是应该从字符串中取出吗?怎么像是给一串字符附上一个校验码?而且多出来的0000是我出问题 还是我没理解其中的意思?求解!
是对的 小编我错了
reeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
你好 小编的程序对不对啊 能留个QQ交流么?
程序是对的 不过我也是菜鸟 现在都没碰过了
以前在2013 版本还不要的,换成2014 居然跟我要了,只能上网找
正要使用,谢谢了
结果不对啊,串口发送,每位字节先发送低位,而此程序是先发送高位!
很好,弄出来跟PLC出来的数据一样了,刚开始没出来,问同事也没问出结果,还是自己多试试出来了。非常感谢!
DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
谢谢大家的分享。
不错。
直接用公式节点编写,快捷简单
学习学习。。
谢谢小编分享