ARTICLE · 1093720
【源码】LabVIEW的CRC校验(多个)vi分享,值得收藏!
【源码】LabVIEW的CRC校验(多个)vi分享,值得收藏!

上图库里直接有CRC16。大家也可以直接用现场的modbus库,不要自己重复造轮子。 其实modbus建议用现成的库,比如下面的,我用的就挺好,链接: https://github.com/NISystemsEngineering/LabVIEW-Modbus-API 
其他一些常用的CRC,我也放到百度网盘,有需要的收藏。 
上面的nimodbus121库和上图的这个CRC,都见这个网盘。长按下图二维码识别进入下载。 
如果懒得收藏,也懒得网上到处找,可以试试AI生成VI。 AI正好应对伸手党,知识要money。 如下图,使用VIRobotic VI Generator一样可以实现自动生成crc。目前9月30日前,免费试用。还剩最后两天了哦!有兴趣的小伙伴,搜仪酷智能 

在十几年前的时候,那时候网上源码还没那么多,不过一般C或者C++的代码比较多。我有时候都是偷懒,直接把代码编译生成dll文件,然后LabVIEW调用dll就行了。这种好处是不用仔细研究算法。不好的地方,是跨平台肯定不行,要生成32位 64位 so文件等,不过问题也不大。
使用LabVIEW做上位机时候,最常见的莫过于校验码了。常见的就是校验和、CRC。校验码主要用来对抗传输过程中的随机错误,用来通信中用来发现或纠正传输错误的冗余编码,让数据传得更可靠。
最常见的校验码,就是校验和,很多都是把校验码前面的字节累加,然后取低8位,这种十分简单。如果是字符串输入,则两个函数搞定。如果是数组,一个函数搞定。

另外,就是modbus的CRC16校验。这个也不用自己写。以前NI官网有个nimodbus121库(现在好像搜不到了,毕竟有新的modbus library了)


里面找到Example,拿来改改就能用了。


https://www.virobotics.net/product_VI_Generator
左侧是网盘里的vi代码,右侧是AI生成的,输入123456789来测试,结果一模一样!

AI给我生成了2个VI。其中一个是子VI。
程序框图如下,如果我本人亲自去写的话,大概也是这个样子。只是AI生成不废脑筋,只消耗token。
