C#Winform开源一个can上位机源码,工控试验源码,通讯源码。 can接口用的周立功的dll文件。 绘图用的zedgrah。 上位机功能是读取历史转速数据,作为控制的目标转速,通过can卡,发送给风扇控制器,复现风扇转速变化趋势。 或者自定义目标转速波形,进行相关可靠性试验。 代码实现了can通讯,excel文件读取,参数标定,曲线实时绘制等功能。 部分代码借鉴了有关大神
最近开源了一个超有意思的C# Winform CAN上位机源码,里面包含了工控试验源码和通讯源码,感觉可以给工控领域的小伙伴们带来不少便利,所以来和大家分享一下😃。
CAN接口与周立功的dll文件
这个项目里CAN接口用的是周立功的dll文件。咱在代码里引用这个dll文件后,就能轻松和CAN设备进行交互啦。就像下面这段代码:
// 假设这里是初始化CAN设备,具体的初始化函数可能会根据周立功dll的接口有所不同 using (CanDevice canDevice = new CanDevice()) { canDevice.Init(); // 后续就可以进行各种CAN通讯操作啦,比如发送和接收数据 canDevice.SendData(data); CanData receivedData = canDevice.ReceiveData(); }分析:这里创建了一个CanDevice对象,通过调用Init方法初始化CAN设备。初始化完成后,就可以使用SendData方法发送数据,用ReceiveData方法接收数据。这样我们就能和连接到CAN总线上的设备顺畅地交流啦😎。
绘图与ZedGraph
绘图部分用的是ZedGraph,这玩意儿可好用了。它能帮我们轻松绘制各种图表,在这个项目里主要是用来展示转速变化趋势。看看下面这段简单的绘制曲线的代码:
// 创建一个ZedGraphControl对象 ZedGraphControl zgc = new ZedGraphControl(); // 添加一个曲线 GraphPane myPane = zgc.GraphPane; LineItem myCurve = myPane.AddCurve("转速曲线", xList, yList, Color.Red); // 更新图表 zgc.AxisChange(); zgc.Invalidate();分析:首先创建了一个ZedGraphControl对象,然后获取它的GraphPane。接着在GraphPane里添加了一条曲线,设置了曲线的名称、X轴和Y轴的数据列表以及颜色。最后通过AxisChange方法更新坐标轴,用Invalidate方法刷新图表,这样就能实时看到绘制的曲线啦🧐。
上位机功能实现
上位机主要有两个很实用的功能。
读取历史转速数据作为目标转速
可以读取历史转速数据,把它作为控制的目标转速,然后通过CAN卡发送给风扇控制器,从而复现风扇转速变化趋势。实现这个功能的代码大概是这样的:
// 读取Excel文件中的历史转速数据 DataTable dataTable = ReadExcelData("历史转速数据.xlsx"); foreach (DataRow row in dataTable.Rows) { double targetSpeed = Convert.ToDouble(row["转速"]); // 通过CAN卡发送目标转速给风扇控制器 SendTargetSpeedToFanController(targetSpeed); }分析:这里先调用ReadExcelData方法读取Excel文件里的历史转速数据,存放在DataTable中。然后遍历DataTable的每一行,获取转速数据并转换为双精度浮点数,再调用SendTargetSpeedToFanController方法把目标转速发送给风扇控制器,这样就能一步步复现风扇转速变化趋势啦😏。
自定义目标转速波形进行可靠性试验
还能自定义目标转速波形,进行相关可靠性试验。这就需要一些算法来生成自定义波形的数据,然后再发送出去。比如下面这个简单的生成正弦波形数据的示例:
List<double> xValues = new List<double>(); List<double> yValues = new List<double>(); for (double i = 0; i < 100; i += 0.1) { double x = i; double y = Math.Sin(x); xValues.Add(x); yValues.Add(y); // 发送自定义波形数据作为目标转速 SendTargetSpeedToFanController(y); }分析:通过一个循环生成了正弦波形的X轴和Y轴数据,这里的Y轴数据就作为自定义的目标转速。然后把这些数据发送出去,就能进行可靠性试验啦。可以根据实际需求修改算法,生成各种不同的目标转速波形,来满足不同的试验要求🤓。
代码借鉴
部分代码借鉴了有关大神的,真的很感谢这些大神们的无私分享🙏。站在巨人的肩膀上才能让我们的项目进展得更快更好呀。
这个开源项目包含了CAN通讯、Excel文件读取、参数标定、曲线实时绘制等功能,对于工控领域需要进行CAN相关试验和开发的小伙伴来说,应该会有很大的帮助。希望大家能喜欢这个开源项目,也欢迎一起交流和改进😜。
C#Winform开源一个can上位机源码,工控试验源码,通讯源码。 can接口用的周立功的dll文件。 绘图用的zedgrah。 上位机功能是读取历史转速数据,作为控制的目标转速,通过can卡,发送给风扇控制器,复现风扇转速变化趋势。 或者自定义目标转速波形,进行相关可靠性试验。 代码实现了can通讯,excel文件读取,参数标定,曲线实时绘制等功能。 部分代码借鉴了有关大神
以上就是这次分享的全部内容啦,有兴趣的小伙伴可以去我的开源仓库看看具体代码哦😎。
[这里可以放上开源仓库的链接]
#CAN上位机 #工控试验 #C#代码 #开源项目