发表于:2008-11-27 15:19:43
楼主
这两天在调一个温控器,是 厦门宇光自动化科技有限公司 生产的AI-708P型工业调节器。这个东西用起来还行,编程的时候,竟然花了我一天时间。AIBUS通讯协议总共就6页纸,看了等于没看。没办法,只好上官网去查,论坛上无数人在骂,协议写得太简单了,根本看不懂。官方提供的例程也只有一个Visual Basic写得十来行的代码,而且还没有注解!
还好,公司的技术人员貌似态度还行,在论坛上问题回答的还算及时,看了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); // 高字节
}
现在国产有些东西做得还可以,但相关技术文档做得太垃圾了。真搞不懂,这些简单的东西怎么没人愿意花点时间去做呢。