老是执行 WRN_IDL();

2019-07-20 17:35发布

老是执行 WRN_IDL();

WHILE(1)

{
       if(b_I1A &&b_I1B&& b_I2A && b_I2B)
      {
            if((b_A1A==0)||(b_A1B==0))
             {
               ALM();
               }
             else
            {
                    if((b_W1A==0)||(b_W1B==0))
                      {
                       WRN();
                          }
                         else
                        RUN();
                 }
   }
        else  
        {
             if((b_A1A==0)||(b_A1B==0))
                {
               ALM_IDL();
                 }
              else
             {
                          if((b_W1A==0)||(b_W1B==0))
                                  {
                               WRN_IDL();
                                }
                             else
                            RUN_IDL();
               }
   }

}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
7条回答
zhenykun
1楼-- · 2019-07-20 21:44
看不懂,逻辑错误。
zhaoxqi
2楼-- · 2019-07-21 02:10
b_I1A等表示空闲,
b_W1A等表示警告,
b_A1A等表示报警。
多台设备,现在要有报警出报警ALM(),没报警有警告出警告WRN(),没报警和警告出正常运行RUN();
如果有空闲,则运行相应的ALM_IDL(), WRN_IDL(), IDL();
zhenykun
3楼-- · 2019-07-21 07:05
 精彩回答 2  元偷偷看……
jlyuan
4楼-- · 2019-07-21 09:01
我感觉你的第一层if else语句条件存在语法错误,条件不明确,那么只能执行else语句了!
zhaoxqi
5楼-- · 2019-07-21 12:32

嗯,我也考虑到了
wyjie
6楼-- · 2019-07-21 13:58

嵌套的好多。。。看晕了都,会不会是ALM_IDL(), WRN_IDL(), IDL()种改变了变量的值呢

一周热门 更多>