求教串口通信的数据存储问题,16台仪表温度数据,要画曲线,怎么存储好呢?在线等我会马上回复(100分)

  • 主题发起人 主题发起人 yuzhi2005
  • 开始时间 开始时间
Y

yuzhi2005

Unregistered / Unconfirmed
GUEST, unregistred user!
我用Delphi做的上位机监控程序,要读16台温控仪的数据的,我用mscomm控件和Timer计时器,现在已经可以稳定的读上数据来了,数据主要包括:'运行状态';'运行段号';'段设定温度';'1区温度';'2区温度';'3区温度';'段运行时间';'总运行时间';'环境温度';'系统时间';
我原先的办法是为每一个仪表建立一个ACCESS库,分别起名WSH_A1,WSH_A2,WSH_A3,。。。系统每次登陆的时候,取系统的当前时间格式为(XX年XX月XX日XX时)为数据表的名字在每个库中建立一个表,把数据存到各个表里。
这样做的目的是为了用户查询和画温度曲线。
16台仪表的实时曲线,我也没有想出更好的办法,只能每次从数据库里调出来画
大家有没有做过的?有没有数据存储和画实时曲线更好的办法,大家指教一下,我这几天在线等,有回答的我会马上回复。
 
你既然能够采集,而且能够保存数据了,那么你得到数据就在tchart上画一个点了,这样不就可以了嘛?而且你可以滚动的显示的,这个不难了啊。
 
好像可以一边往数据库里写一边画图像吧,我看我们这里都是这么做的。用到数组
 
用临时表的话可能占内存太大了,写到数据库再读会很慢
 
cqwty,这样不行,因为我有16台仪表要显示。每个仪表有3条温度曲线,我要实现的功能是用户点击哪台仪表,仪表的温度曲线就画出来(当然要包括历史曲线),这些数据不可能都记录在Tchart里
 
lidi111,我也是用数组存放数据的。
到底是先存还是先画倒不难,关键是16台仪表,我选哪台,那台的历史曲线就画出来,并继续实时的画现在正在记录的曲线,这个我现在没有做出来。
 
tianlove,你说的对
 
可以多用几个通道,至少要16个,如果需要还得加,每一个通道控制一条曲线,生成这些曲线的点是序列,
我选哪台,那台的历史曲线就画出来,并继续实时的画现在正在记录的曲线 用checkbox或dxcheckbox控制即可
 
用多线程处理,一条线程处理接收串口信息并向数据库写回信息,一条线程负责读定时取数据库数据并画曲线,两线程间互不干扰,各干各的
 
lidi111,我试过了,不行,内存受不了
 
chen_liang,我就是问具体数据库存储策略
 
怎么能不行?用cwgraph画图,用线程读表的数
Plots.Item(k).ChartXvsY(data[0],data[1]),数组是时间序列
 
lidi111,我是用的Tchart画的图,现在已经解决了
 
使用实时数据库可方便解决
 
和数据库存储没关系
分段用线程读Access,缓冲区可以做成环形的
一屏数据没多少,怎么会占内存呢
 
楼主怎么解决的?说来听听,
 
沉香屑,说说啊
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
924
SUNSTONE的Delphi笔记
S
后退
顶部