组态王设计.如何让物体从A移动到B停留一会儿又移动到A.帮我分析一下这个程序.if(\\本站点\总开关==1){\\本站点\水平位置=\\本站点\水平位置+5;if(\\本站点\水平位置>50) {\\本站点\水平位置=0;\

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/04 19:52:59

组态王设计.如何让物体从A移动到B停留一会儿又移动到A.帮我分析一下这个程序.if(\\本站点\总开关==1){\\本站点\水平位置=\\本站点\水平位置+5;if(\\本站点\水平位置>50) {\\本站点\水平位置=0;\
组态王设计.如何让物体从A移动到B停留一会儿又移动到A.帮我分析一下这个程序.
if(\\本站点\总开关==1)
{
\\本站点\水平位置=\\本站点\水平位置+5;
if(\\本站点\水平位置>50)
 {
\\本站点\水平位置=0;
\\本站点\水平位置=\\本站点\水平位置+5;
if(\\本站点\水平位置>100)
{
\\本站点\水平位置=0;
}
 }



可是这程序小车停在B那里就不会再往前走了.我的目的是在每个点都要延时一下,求赐教.谢谢了

组态王设计.如何让物体从A移动到B停留一会儿又移动到A.帮我分析一下这个程序.if(\\本站点\总开关==1){\\本站点\水平位置=\\本站点\水平位置+5;if(\\本站点\水平位置>50) {\\本站点\水平位置=0;\
新建四个变量:\\本站点\B点卸货标志位(类型内存离散,初始值开),\\本站点\C点卸货标志位(类型内存离散,初始值关);\\本站点\计时器(类型内存实型),\\本站点\延时时间(类型内存实型).
你的问题在与你在执行到水平位置>50的循环后你赋值水平位置=0这样下次循环判断水平位置已经等于你赋的值0,不满足if(\\本站点\水平位置>50)的条件所以永远都在自加,等到等于50你循环了一次,赋值0,周而复始所以你永远都是从A-B的循环.
下面的亲测,没问题,
if(\\本站点\总开关==1)
{\x09
\\本站点\延时时间=1;(注变量用来设定延时时间,可自行修改,本例以命令语言存在500ms执 行一次.延时时间10s)
\x09 if(\\本站点\B点卸货标志位==1)
\x09 {
\x09 \\本站点\水平位置=\\本站点\水平位置+5;
\x09 if(\\本站点\水平位置==50)
\x09\x09 { \\本站点\水平位置=45;
\x09\x09\x09 \\本站点\计时器=\\本站点\计时器+1;
\x09\x09\x09 if(\\本站点\计时器>=\\本站点\延时时间*12)
\x09\x09\x09 {
\\本站点\计时器=0;
\x09\x09\x09\x09 \\本站点\B点卸货标志位=0;
\x09\x09\x09\x09 \\本站点\C点卸货标志位=1;
\x09\x09\x09\x09 \\本站点\水平位置=0;
\x09\x09\x09 }
\x09\x09 }
\x09 }
\x09 if(\\本站点\B点卸货标志位==0)
\x09 {
\x09\x09 \\本站点\水平位置=\\本站点\水平位置+5;
\x09\x09 if(\\本站点\水平位置==100)
\x09\x09 {
\\本站点\水平位置=95;
\x09 \x09\\本站点\计时器=\\本站点\计时器+1;
\x09\x09\x09 if(\\本站点\计时器>=\\本站点\延时时间*12)
\x09\x09\x09 {
\\本站点\计时器=0;
\\本站点\B点卸货标志位=1;
\x09\x09\x09\x09 \\本站点\C点卸货标志位=0;
\x09\x09\x09\x09 \\本站点\水平位置=0;
\x09\x09\x09 }
\x09\x09 }
\x09 }
}