还好,公司的技术人员貌似态度还行,在论坛上问题回答的还算及时,看了n个回帖终于搞懂了。把我写的代码贴出来,大家参考下。下面这段代码是用Viusal C# 2005写得。
public void CalculateWriteCode(uint opCode,uint opValue)
{
// 地址:H81(80H+1)
cmdCode[0] = 129;
cmdCode[1] = 129;
// 写:43H,67;读:52H,82
cmdCode[2] = 67;
// 指令参数代码
cmdCode[3] = Convert.ToByte(opCode);
// 参数值
cmdCode[4] = Convert.ToByte(opValue % 256); // Low
cmdCode[5] = Convert.ToByte(opValue / 256); // High
// 校验码
// 读校验码 = 指令参数*256 + 82 + 1
// 写校验码 = 指令参数*256 + 67 + 参数值 + 1
uint crc = opCode * 256 + 67 + opValue + 1;
cmdCode[6] = Convert.ToByte(crc % 256); // 低字节
cmdCode[7] = Convert.ToByte(crc / 256); // 高字节
}
现在国产有些东西做得还可以,但相关技术文档做得太垃圾了。真搞不懂,这些简单的东西怎么没人愿意花点时间去做呢。