紧急求助一个关于工业控制程序的问题!(150分)

R

rifleli

Unregistered / Unconfirmed
GUEST, unregistred user!
紧急求助!
我用DELPHI做了一个工业控制程序,通过一块采集卡,实时的监控生产线上物料流量情况,
程序工作在win98系统下。具体过程是:每一秒钟采集一次数据,然后经过相应计算,将结
果显示在屏幕上并存入数据库。我用的就是delphi中的timer计时,精度能满足要求。现在
出现一个问题,即每经过一段不确定的时间,计时器就会停止工作几秒钟,停止的时间有时
长有时短,在这几秒钟里,数据采集也会停止,因此最后记录下来的结果就和生产线上实
际的用量有误差。在系统刚开始使用时,这个问题还不太明显,经过一段时间后,变得比
较严重,误差不可容忍。请问诸位大哥:这个问题是因为操作系统的原因还是程序的原因,
如何解决?换成win2000是否好一些?小弟以150分表示感谢,恳请帮助,不胜感激!
 
多媒体定时器
 
问题出在定时器上?请问如何解决呢?
 
最好将数据采集过程放在单独的线程,这种停顿状态可能是你的主线程处理一些比较费时的操作
引起的
 
在数据处理过程中,计算都比较简单,就是数据写入数据库时,我为了保证数据安全,
每次都强制数据写入硬盘,请问这会带来严重影响吗?
 
对对,我做和你类似的工作,是用线程控制的
 
请问,像这种工业控制的程序,计时器线程的优先级多高合适呢?
 
普通就可以
 
我现在用了一个较精确的计时器,就是那个CairnTimer, 可以设置定时器的优先级,
我将优先级设为normal,可是不能在其中执行打印控制,一向打印机发出打印命令就
进入死机状态,将计时器的优先级调低也没有用。请问这是什么原因?
 
用线程采集数据就可以了
 
对于工业控制程序来说,是不是win2000系统比较好一些?
 
我以前也做过,是用多线程的。把你mail留下给你一个例子
 
用多线程最好

While not Termindated do
begin
采集数据
Sleep(1);
end;
 
timer不也是一个单独的线程吗?
 
多人接受答案了。
 
顶部