使用C#.net,WPF应用程序。我要连接到设备(MODBUS协议),我必须计算CRC(CRC16)。 我使用的函数计算正常crc16和值是正确的,但我想要CRC16(modbus)的值。
帮我梳理一下。
答案 0 :(得分:4)
关于modbus协议的crc16的计算,网上有很多资源。
例如:
http://www.ccontrolsys.com/w/How_to_Compute_the_Modbus_RTU_Message_CRC
http://www.modbustools.com/modbus_crc16.htm
我认为在c#中翻译该代码应该很简单。
答案 1 :(得分:0)
您可以使用此库:
https://github.com/meetanthony/crccsharp
它包含ModBus包含的几种CRC算法。
用法:
下载源代码并将其添加到您的项目中:
public byte[] CalculateCrc16Modbus(byte[] bytes)
{
CrcStdParams.StandartParameters.TryGetValue(CrcAlgorithms.Crc16Modbus, out Parameter crc_p)
Crc crc = new Crc(crc_p);
crc.Initialize();
var crc_bytes = crc.ComputeHash(bytes);
return crc_bytes;
}