图5 窗体结构图 这里,主窗体是启动窗体,子窗体A、B、C、D、E在主窗体启动时并不显示,通过主窗体上的相应按键可以控制子窗体的启动以及关闭,亦即显示和关闭各车轮转速曲线。
系统运行时,最先启动的是主窗体,通过主窗体上对相应按键的点击等操作,可以方便地与各控制板之间建立CAN通信,接收主控板与电机控制板之间的CAN消息,通过界面内部数据处理函数处理后,在相应显示区域加以显示。
CAN通信正常后,五个显示区域便会根据CAN总线上的消息动态更新并显示相应信息。
当需要进行数据保存时,单击Data_Record按键,便会弹出选择数据库的窗口,选择已经建立好的数据库后,电机的状态数据便可以保存在被选择的数据库中,还可以随时中止数据保存。需要注意的是,被保存的电机运转状态数据是在单击Data_Record按键并选择好数据库后界面收到的数据,这之前的数据并没有保存。也就是说,如果想把整个电机运转过程的数据都保存下来的话,在电机开始运转之前就要先单击Data_Record按键,并选择好数据库。
在退出界面时,首先应该断开CAN总线的连接,单击Disconnect按键断开。然后单击Quit按键便可以正常退出界面。
本系统的设计采用了在VB中使用ADO(ActiveX Data Object)对象模型的方法,连接Microsoft Access数据库,进行数据保存。只要在一个数据库中建立一系列的表,便可以将数据很方便地保存在相应的表中。比如,本设计中为四个电机分别建立了一个独立的表,用以存储其运转的状态信息,包括转速、转矩、电池电压以及控制模式等信息。利用Access数据库的数据处理功能可以很方便地进行离线的数据分析和处理。
为了方便不同用户对系统的使用,在数据保存之前,系统提供了一个对话框让用户选择已有的数据库,便于用户自定义数据保存的路径。
结语
在本设计的软件方面,在VB环境下,MeasurementStudio提供了功能强大的控件;硬件方面,具有Kvaser Leaf Professional HS以及Peak_CAN等工具,使得本系统的实现变得容易,且效果也比常规的设计方法更好。经过联机调试证明,本系统能有效地对CAN总线的数据进行分析处理。
参考文献:
1.谭浩强. Visual BASIC程序设计[M]. 清华大学出版社,2004
2.宋广群. VB程序设计[M]. 科技大学出版社,2006
3.Kvaser AB. Kvaser Leaf User Guide [M] 2006
4.史久根, 张培仁等. CAN现场总线系统设计技术[M]. 北京:国防工业出版社, 2004
|