作业帮 > 综合 > 作业

组态王设计.如何让物体从A移动到B停留一会儿又移动到A.帮我分析一下这个程序.

来源:学生作业帮 编辑:神马作文网作业帮 分类:综合作业 时间:2024/09/28 09:29:36
组态王设计.如何让物体从A移动到B停留一会儿又移动到A.帮我分析一下这个程序.
if(\\本站点\总开关==1)
{
\\本站点\水平位置=\\本站点\水平位置+5;
if(\\本站点\水平位置>50)
 {
\\本站点\水平位置=0;
\\本站点\水平位置=\\本站点\水平位置+5;
if(\\本站点\水平位置>100)
{
\\本站点\水平位置=0;
}
 }


可是这程序小车停在B那里就不会再往前走了.我的目的是在每个点都要延时一下,求赐教.谢谢了
组态王设计.如何让物体从A移动到B停留一会儿又移动到A.帮我分析一下这个程序.
新建四个变量:\\本站点\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 }
}
再问: 谢谢赐教,那标志位的作用在于什么啊?
再答: 标志位就是用来判断到底小车需要在B还是C卸货的,没别的意思。其实在这里用一个就够了。