俺从来没有过自己搞项目的经历,最近单位突然需要信息化建设,要俺对自动化设备工艺参数进行数据采集(10秒钟采集一次),然后采用SPC技术客观反映生产工艺的控制能力(CPK).具体需要动态显示(10秒钟更新一次)和静态的历史数据显示2个基本功能.俺可以解决问题:
自动化设备底层数据通讯,SPC数学建模及运用VC基础类,和C++语言进行界面,CHART对象创建;俺在构思方面需要帮助的问题:
我的几个构思如下:
首先,是否要在应用程序当中应该实现以下前提:
I.动态显示过的数据必须和历史数据库的记录相吻合,不然的话的可能出现显示过的数据在历史数据查询中不一定有的现象,反之也可能是历史数据查询中有的但没有动态显示过.
II.动态显示的CHART,在时间轴方向绘制时,是否有必要以 刷新/10秒 的量来严格的精确的实现,还是可以根据数据采集后再作显示的被动方式来完成绘制.方案一:
1.应用程序内部用一个定时器(10S)对众多工艺参数(如:40个工艺参数点)进行数据采集,然后写入ACCESS数据库以备历史显示需要.
2.用C++创建CHART对象,内置一个定时器(10S)对自动化设备进行给定数据点的数据采集,然后作动态显示.
***技术特点***:
需要对设备底层通讯连接实现同步控制,可问题是在1与2之间各自时间函数内部实现数据采集的过程中所得到的数据不一定是同一个时间点的数据.
方案二:
1.应用程序内部用一个定时器(10S)对众多工艺参数(如:40个工艺参数点)进行数据采集,然后发消息给CHART对象们,让它们自己更新显示数据,最后写入ACCESS数据库以备历史显示需要.
2.用C++创建CHART对象,自定义数据接收消息作动态更新显示用.
***技术特点***:
可能不需要对设备底层通讯连接实现同步控制,2中的CHART对象得到的数据和1采集的数据可以保证时间一致性.可问题是CHART动态显示的时间精确性降低了!(不满足前提II所述)其可能随采集工艺参数量的多少而消耗的采集周期时间不同而有所变化(写入数据库所花费的时间也是一个因素).方案三:
大伙的方案...
3Q!!!!!!

解决方案 »

  1.   

    采集->显示->缓存->储存如果数据量太大,可以考虑显示之后发送给另一台机器储存。采集和储存可以是在同一个线程,这个线程需要给主线程发发数据让主窗口显示。
      

  2.   

    -----------------------
    采集->显示->缓存->储存
    -----------------------
    能简要讲讲"缓存"的概念吗?我想它可能很重要!
    3Q!!!