请教延时的实现方法

dxbamboo 2011-03-01 02:33:02
我在做一个操作界面,用来操作一些仪器,实现自动测试。
其中有一个仪器是加热炉,在我设定好温度后,要不断的查询加热炉的当前温度,看是否到了我的设定值。
这是个很耗时间的操作,差不多得用10分钟。
我现在是用的是循环,在循环中不断读取当前温度,直到到达设定值,才退出循环。
循环里,用了doevents,来释放些CPU的时间。

请教还有其他的好的实现方法么?
...全文
275 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
u010871433 2013-05-28
  • 打赏
  • 举报
回复
你这个算简单的,一个OnTimer定时器搞定。。。需要定时器代码、例子、及多个定时器,定时器遇到的一些干扰问题的例子,可以联系我本人,我提供资料742852872————我也是菜鸟
jiewei915 2011-03-01
  • 打赏
  • 举报
回复
可以通过委托事件的方法,这样可以减少性能的损耗
温度达到后自动触发事件通知达到温度了就行,不比定时去查看
loveSoftandhxy 2011-03-01
  • 打赏
  • 举报
回复
thread
timer
自己写时间 控制
gohappy2008 2011-03-01
  • 打赏
  • 举报
回复
用timer 进行实时获取加热炉的当前温度
友林 2011-03-01
  • 打赏
  • 举报
回复
用线程吧,根据当前取得的温度和你所设定的温度差来控制sleep时间的长短。这样比较精确,并且耗资源会比较少些。
超银 2011-03-01
  • 打赏
  • 举报
回复

/// <summary>
/// 设置Timer并开启的方法
/// </summary>
private void setTimer()
{
System.Threading.TimerCallback tcb = new System.Threading.TimerCallback(check);
tm = new System.Threading.Timer(tcb);
tm.Change(1000, 5000);
//check:timer的回调方法,1000:一秒后启动,5000:五秒一次
//tm = new System.Threading.Timer(tcb, "参数", 1000, 5000);
}
System.Threading.Timer tm;
private void check(object _obj)
{
//检查操作
}
coolz007 2011-03-01
  • 打赏
  • 举报
回复
timer+sleep
shaofei830927 2011-03-01
  • 打赏
  • 举报
回复
使用System 或者 System.Threading 下面的timer 跑多线程的话 不要用 forms下面的timer
winbq5 2011-03-01
  • 打赏
  • 举报
回复
timer+sleep
wuyq11 2011-03-01
  • 打赏
  • 举报
回复
延迟System.Threading.Timer t = new System.Threading.Timer(new TimerCallback(TimerProc1));
t.Change(1000, 1000);
private void TimerProc1(object state)
{
System.Threading.Timer t = (System.Threading.Timer)state;
...
}
定时timer
felix_pipa 2011-03-01
  • 打赏
  • 举报
回复
timer 定时
_三皮_ 2011-03-01
  • 打赏
  • 举报
回复
定时器,也可以单独定义一个线程里用SLEEP
bdmh 2011-03-01
  • 打赏
  • 举报
回复
timer定时检测
51Crack 2011-03-01
  • 打赏
  • 举报
回复
用timer
目 录 一、设计要求………………………………………………………2 二、总体设计方案…………………………………………………2 三、电气设计………………………………………………………6 四、PLC设计 ………………………………………………………8 五、调试过程与结果………………………………………………11 六、心得体会………………………………………………………12 七、参考书目………………………………………………………13 课程设计内容 一、设计要求 1. 控制要求 (1)变频调速器受数字量控制: 第一档输出频率为 0HZ,对应同步转速为 0 r/min; 第二档输出频率为 50HZ,对应同步转速为 1500 r/min; 第三档 输出频率为 100HZ,对应同步转速为 3000 r/min; 输入电压与输出频率按线性关系变化。 (2)要求输出转速按下图1函数变化,请编写梯形图控制程序。 (3)改变输出转速~时间变化函数,重复上述过程。 图1 所要实现的功能示意图 分为三档,t1=20s、t2=25s、t3=30s、t4=60s 2.课题要求: (1)按题意要求,画出 PLC 端子接线图及控制梯形图。【含变频器接线图】 (2)编制控制程序,并画出梯形逻辑图。 (3)完成课程设计说明书。 二、总体设计方案 本次设计通过PLC和变频器的组合完成数字量的输入来控制电动机实现的不同的转速功能,使电动机分三个档次速度的运转,系统通过按钮设定为自动模式和手动模式。通过开关SB1、SB2和接触器KM1、KM2对电动机起正反方式控制;用接触器KM3、KM4和KM5对电动机实现三个不同档次速度的控制;同时用时间继电器KT3、KT4、KT5和KM6对电动机三个不同档次速度的延时控制。用开关SB7和接触器KM7来启动开关模式,同时由SB4、SB5和SB6分别来实现点动模式实现三个不同档次速度的控制。 1、选择电器元件 (1)电动机和变频器的选择 电动机型号为Y132S1-2的三相异步电动机,额定工作电压为交流380V,额定电流为22A,频率为100HZ,功率为11KW,同步转速为3000r/min。 变频器型号为FR-A540-7.5K-CH,额定工作电压为交流380V,额定电流为22A,频率为100HZ,功率为11KW,同步转速为3000r/min。 变频器参数 表1 参数序号 名称 设定值 1 上线频率 100Hz 2 上线频率 0Hz 3 加速时间 10s 4 减速时间 20s (2)热继电器FR1 由于电动机M1的额定电流15A,FR1可以选用JR16B-20/3,热元件电流为22A,电流整定范围为18~30A工作时将额定电流调整为22A。 (3)熔断器FU FU是对电动机M1进行保护的熔断器。熔体电流为 I=(1.5~2.5)I1=33~55A 式中,I1为电动机M1的额定电流; 因此可以选择型号为RL1-60的熔断器。 (4)接触器KM 接触器KM1,根据主电动机M1的额定电流I=22A,控制回路电源为24V主触点一对,常开辅助触点一对,常闭辅助触点两对,根据上述情况,选用CJX2—25N9型的接触器。电磁线圈电压为24V。 本次设计PLC控制变频调速系统设计系统中选用 -16MR-001基本单元, 电机选择型号为Y132S1-2的三相异步电动机,额定功率为7.5KW,工作电压为交流380V,同步3000r/min,额定电流15A,根据电机功率选择型号为FR-A540-7.5K-CH的变频器。 2.确定系统控制结构 由PLC和变频器组成的开环控制系统, PLC输出端的数字量作为变频器的输入。 实现如下控制: 第一档输出频率为0Hz,对应同步转速为0r/min;第二档输出频率为50Hz,对应同步转速为1500r/min;第三档输出频率为3000Hz,对应同步转速为3000r/min。 当PLC数字量输出第一档时,变频器输出频率为100Hz;电机经过20s速度由0—3000r/min;电机以最大速度运行5s,PLC数字量第二档输出时,变频器输出频率为50Hz,对应同步转速降为1500 r/min, 电动机以中速运行5s后,PLC数字量输出第三档,变频器输出为0Hz,电机转速为0r/ min,电动机以中速运行30s后。 3. 系统流程图 由于本系统是通过PLC和变频器的组合完成数字量的输入来控制电动机实现的不同的转速功能,使电动机分三个档次速度的运转。在此本设计首先是按钮SB7设定自动模式和手动模式两种。由开关SB1、SB2对电动机起正反方式控制。在自动模式时用时间继电器KT3延时20s实现高速启动、时间继电器KT4延时5s实现高速运转、时间继电器KT5延时5s实现中速运转和时间继电器KM6延时

110,545

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧