原创 机器人技术—基于DELPHI的数据采集与分析类上位机软件的编写(上)

2015-3-23 00:41 1493 3 4 分类: MCU/ 嵌入式 文集: 机器人技术

机器人技术——基于DELPHI的数据采集类上位机软件的编写

在机器人系统中往往会有大量的传感器连接到系统中来,在系统设计或者调试的过程中,经常需要采集各个传感器的数据进行分析,通常的做法是在PC端使用串口调试助手,将数据log下来然后再进行离线分析,但是,如果需要动态的实时采集各个传感器的数据并进行在线分析,串口调试助手就无能为力了,有人会说可以使用数据采集卡呀!好吧!我只能说你是土豪!另外并非所有的传感器信号都能使用模拟信号输出,数据采集卡的PC端软件也不是那么的灵活,本文将给大家讲讲如何使用DELPHI7,快速编写数据采集类上位机软件(别问博主为什么要使用老掉牙的DELPHI,而且还是n年前的版本7,我只想说博主我B格很高)

先来看一张博主花了20分钟弄出来的一个demo,可以通过串口接收单片机传上来的传感器数据,并将数据分别保存到图片、TXTEXCEL、数据库中:

20150323001712553.jpg

如果你开始鄙视博主了,好吧,您可以离开了……

 接下来我们来看这个demo是如何一步步做出来的:

1、 用到的控件

l  数据通信组件

编写数据采集上位机软件就得让上位机能否接收到下位机传输上来的数据,大家比较熟悉的接口就是串口,所以本文就使用串口连接上位机和下位机(电脑上没有串口的可以使用USB转串口,比较常用的有FT232CP2102PL2303等,FT232最稳定,但是比较贵,本文使用相对便宜和稳定的CP2102),DELPHI上比较常用的串口组件有spcommCPort v3.0spcomm只能通过时间来区分不同数据包,在波特率比较高的时候非常的不方便,所以本文使用CPortCPort可以设置数据头、数据尾、包长,而且这些是通过控件自己去处理,不需要编写任何代码,非常方便。

ComPort组件+ComDataPacket组件配合使用:

20150323002001268.jpg

l  曲线绘制组件

本文使用DELPHI自带的chart组件,功能简单但是比较稳定,如果需要实现更强大的功能,推荐大家使用第三方组件TeeChart,功能非常丰富,另外推荐一本关于TeeChart的参考书:屈景辉著的《TeeChart应用技术详解快速图标制作工具》。

  20150323002320392.jpg

l  按钮组件

20150323002501570.jpg

l  Edit组件

20150323002545641.jpg

l  OpenDialog组件

20150323002631722.jpg

l  数据库组件

20150323002725348.jpg

l  放置好组件的界面如下:

20150323002832691.jpg

2、 控件设置及代码编写

l  数据通信组件

ComDataPacket组件的ComPort属性设置成ComPort1,这样ComPort组件与ComDataPacket就建立了链接。

20150323002922193.jpg

假设单片机上传上来的数据格式是:

20150323003003585.jpg

设置ComDataPacket以下属性:

20150323003040444.jpg

在“打开串口”Button中添加如下代码:

 ComPort1.ShowSetupDialog;

form1.ComPort1.Open;

 if  form1.ComPort1.Connected = true then

 begin

 form1.Shape1.Brush.Color:=clgreen;

 end;

这样在程序运行时,鼠标单击“打开串口”Button时就会以下对话框,就可以完成对串口的设置:

20150323003131707.jpg

l  曲线绘制组件

双击Chart组件,添加5条曲线sensor1- sensor5

20150323003212515.jpg

l  数据库组件

双击20150323003544278.jpg控件,在弹出的对话框中选择Jet 4.0 OLE,点击下一步,在Build中选择要保存的数据库文件(此处只支持Microsoft Access2007),点击OK,在弹出的对话框中点击测试连接,当出现测试连接成功的时候表明数据库连接成功。

20150323003358698.jpg


20150323003702776.jpg控件的Connection属性设置为ADOConnection,这样20150323003721600.jpg20150323003623331.jpg就建立了连接,方便通过ADO组件对数据库进行“增加”、“删减”等操作。

20150323003446409.jpg

l  保存为图片

在保存按钮中添加如下代码,即可将波形截图,并保存为.bmp文件:

form1.Chart1.SaveToBitmapFile(form1.Edit1.Text);


PARTNER CONTENT

文章评论1条评论)

登录后参与讨论

用户377235 2016-5-10 07:34

很有用,很细致。提示:数据库组件的图标好像反了
相关推荐阅读
用户1336712 2015-03-23 00:43
机器人技术—基于DELPHI的数据采集与分析类上位机软件的编写(下)
l  保存到TXT     AssignFile(F,  form1.Edit3.Text);     Append(F);     Writeln(F, data) ;     Closef...
我要评论
1
3
关闭 站长推荐上一条 /3 下一条