
procedure yc_time_yh; //延时var tmpd:tdatetime; //hVar: HWND;beginwith wjyx_for do begin tmpd:=now(); repeat applicationProcessMessages ; until (now()>tmpd+10(1/24/60/60)); end;end;
软件:step7
硬件:西门子300、400系列
元件:自复位按钮启动,停止开关,分别对应I00,I01;电机启动输出Q00;用S_ODTS定时器,启动延时5S,停止延时10S。
梯形图程序如下,请参考:
延时函数很常见:
delay1ms(unsigned
int
tt)
//延时1ms
{
unsigned
char
i;
while(tt--)
for(i
=
113;
i
>
0;
i--);
}
反复多次调用即可。
但是,用软件延时,观察起来,就像死机一样,经常会误事的。
#include<reg52h>
void d10s(void) //延时10秒
{
unsigned char a,b,c,d;
for(d=0;d<10;d++)
for(c=205;c>0;c--)
for(b=116;b>0;b--)
for(a=9;a>0;a--);
}
main()
{
P1=0xfe; //给初始化值,P1:1111 1110
while(1)
{
d10s();//延时程序
P1<<=1; //左移一位
P1|=0x01; //最后一位补1
if(P1==0xef) //检测是否移到最左端?
P1=oxfe;
}
}
这是为了防止同时启动造成电压下降过大。
电机要可正反转控制。正反转启动按钮按下后,延时10秒后电机启动,且要用一个定时器实现。基于以上要点,大略分析了题主的程序,第三幅图的程序没什么问题,第一幅图、第二幅图的程序有些不妥。
两台电动机交替运行是指电动机M1运转一定时间自动停止后,电动机M2开始工作,当电动机M2运转一定时间自动停止后,电动机M1再次起动运转,如此反复循环,实现两台电动机的自动交替运行。当需要两台电动机停止运转时,按下停止按钮SB2,将PLC程序中的输入继电器常闭触点I01置“0”,即常闭触点I01断开,辅助继电器M00线圈失电,触点复位,定时器T37、T38和输出继电器Q00、Q01线圈均失电,控制PLC外接电动机接触器线圈失电,带动主电路中的主触点复位断开,切断电动机电源,电动机停止循环运转。
如果在这10秒的时间里,你的程序什么也不用做,只是等待,那么可以这样:
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private Sub Command1_Click()
Sleep 10000
MsgBox "Hello!"
End Sub
但是如果你的程序在这10秒的时间里仍然要做其他事情,比如点击其他按钮等等,那么就应该这样:
Private Sub Command1_Click()
Timer1Interval = 10000
Timer1Enabled = True
End Sub
Private Sub Timer1_Timer()
MsgBox "Hello!"
Timer1Enabled = False
End Sub
再次强调,第一种方法中,在你点击按钮后的10秒时间里,你的程序会暂时处于无反应状态。
以上就是关于有没有函数使程序延迟10秒全部的内容,包括:有没有函数使程序延迟10秒、按照PLC系统设计的步骤,设计一个能实现电机延时5秒启动,延时10秒停止的系统、51单片机的10ms延时C语言程序~~~急啊!!!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)