欢迎光临散文网 会员登陆 & 注册

C#快速modbus CRC验证使用

2023-03-11 12:00 作者:羞涩男孩小小明  | 我要投稿

CRC验证想必大家都很熟悉,在使用CRC验证的时候,往往需要自己重新造轮子。最近在C#写上位机使用CRC的时候,发现了一个很好用的dll组件,HslCommunication

HslCommunication是国内的工程师个人独立开发完成的,覆盖的面非常广,我就不展开说了,详细的内容可以去官网自行阅读。这里可以提到的是,HslCommunication支持的CRC是CRC-16/MODBUS,支持的.net fra版本是4.5.1,所以在写代码的时候要选择合适的框架。

http://www.hslcommunication.cn


顺便提一嘴,modbus使用的CRC验证是特有的,事实上CRC验证的方案是非常多的,在使用之前要确定自己要使用的是哪一种。如果你使用的设备没有明确地提出使用的CRC校验方案是哪一种,而你自己又无法自定义的话(是可以自定义的),你可以在此网站中快速的测试你所使用的设备提供的代码段来匹配正确的CRC验证方法。


而调用此组件也是十分简单的,在官网下载安装包后,直接安装到你的项目文件中去,再通过应用选取,再调用命名空间即可。


using HslCommunication.Serial;


而使用的方法也很简单,只需要将你要验证的内容放到函数的接口中即可:

生成:


byte[] shengcheng = HslCommunication.Serial.SoftCRC16.CRC16(data);//多项式码为默认xA001时或者你不知道时(这一点可以在上文提到的在线CRC测试网站中得到验证)


data为你校验的对象,shengcheng是带校验的数据帧。


但你知道多项式码时:

byte[] result = HslCommunication.Serial.SoftCRC16.CRC16(data, 多项式码高, 多项式码低);


校验你接受的数据帧是否完整:.


bool result = HslCommunication.Serial.SoftCRC16.CheckCRC16(data, 多项式码高, 多项式码低);


以上为本文的全部内容,如果帮到你了非常荣幸,有什么疑问或者本文有什么问题可以在本文下留言,我们交流讨论~



C#快速modbus CRC验证使用的评论 (共 条)

分享到微博请遵守国家法律