新闻中心

EEPW首页>嵌入式系统>设计应用> 用于卷烟机组的CAN总线实时监听器的设计与实现

用于卷烟机组的CAN总线实时监听器的设计与实现

作者: 时间:2012-02-22 来源:网络 收藏

数据库系统的DELPHI实现 (1)建立数据库,在本项目中,我们是利用Microsoft Access 建立了一个关系数据库(由若干表组成的数据库)。其中包含了一张表,该表的字段分为id表示用以判断的字符串,以及location表示参数值应填的文本框代号。(2)在应用程序中要实现对所建立的数据库的访问需要用到数据库引擎和数据库访问组件以及数据库控制组件,DELPHI7中提供了BDE,ADO数据引擎,考虑到项目中的数据库应用相对简单,我们选择了常用的BDE(Borland Database Engine)控制读取所建立的数据库,具体操作为1)利用DEPHI7文件夹中的BDE Administer为所建立的数据库创建别名。2)在窗体中添加数据库访问组件和数据库控制组件(包括Data Access页和BDE页中的组件)来实现应用程序与数据库之间的联系。项目中,我们用Table组件来封装数据表,通过BDE数据引擎从数据库表格中取得数据(参数值应填的文本框代号)并通过DataSource组件将数据传递给数据控制组件TDBEdit,3)在程序中,我们通过TTable提供的Gotokey的方法实现对数据库的查找,以及通过对TDBEdit中的数据的使用。实现了将不同参数值填到其唯一对应的文本框中。

2 域请求和域数据的处理

因为域数据的多类,多变性,以及不确定性,我们不能用处理参数一样的数据库或者其他统一处理的方法,所以在程序中我们使用的是用多层复合选择语句进行判断然后根据不同的域数据做出不同的处理,域数据是根据标识符上传的,只有数据没有别的判断信息,对域数据的判断决定于域请求的数据内容,因此在程序中首先判断桢是否为域请求,如果是,则将桢数据赋值对应的变量,这些变量保存的便是域数据的判断信息,而如果根据标识符判断出为域数据,则根据变量保存的信息进行对应的处理。

在域数据的处理中,很多情况是要绘出曲线。对此,我们选择了DELPHI的Tchart控件。利用其Series属性里面的Fast-line,将收到的数据正确的绘成曲线。

3 指令和消息的处理

指令和消息的处理类似于域数据的处理,也是采用多层复合选择语句进行判断,然后做出相应的处理,在此,相应的处理即将指令,消息的相关信息填入文本框。

〈5〉软件流程图


数据处理函数dataprocess()流程图

结 论

在本项目中,CAN卡PCI-9810的控制器是SJA1000,在收发数据方面它支持正常和只听两种模式,在监听器的实际运行中我们选用只听模式进行线路监听,取的了不错的效果,而且在界面的设计过程中上我们添加了发送部分,这是便于进行CAN卡的检测以及数据接收的调试,此时需要选择正常模式。

本文作者的创新点:结合实际情况的具体需要,合理的选用了Delphi作为软件开发平台,在实时性方面,我们选择了Delphi自身提供的线程类,而不是按照常规选择windows提供的API函数,从而使程序的设计变的简洁,另外在数据的处理方面,我们不仅采用了通常的数据库方法,而且还根据实际需要采用了其他简易可行的方法。很好地完成了需求。

总之,借鉴前者地经验加上实际地创新我们成功设计了实时监听器并通过了实际检验,本项目所设计的实时监听器在实用性,实时性,准确性,以及友好性上都是很不错的。


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭