public 变频器报文(byte 设备地址, ushort 数据地址, ushort 数据) { crc = new CRC16(); this.设备地址 = 设备地址; this.功能码 = 6; this.数据地址低位 = System.BitConverter.GetBytes(数据地址)[0]; this.数据地址高位 = System.BitConverter.GetBytes(数据地址)[1]; this.数据低位 = System.BitConverter.GetBytes(数据)[0]; this.数据高位 = System.BitConverter.GetBytes(数据)[1]; byte[] data = { this.设备地址, this.功能码, this.数据地址高位, this.数据地址低位, this.数据高位,this.数据低位 }; ushort _data = crc.CalculateCrc16(data); this.CRC高位 = System.BitConverter.GetBytes(_data)[1]; this.CRC低位 = System.BitConverter.GetBytes(_data)[0]; }
/// <summary> /// 获得CRC16效验码 /// </summary> /// <param name="strPar"></param> /// <returns></returns> public static string CalculateCrc16(string strPar) { string retStr = new CRC16().CalculateCrc16(System.Text.Encoding.Default.GetBytes(strPar)).ToString(); while (retStr.Length < 5) { retStr = "0" + retStr; } return retStr; }