[应用相关]

老是执行 WRN_IDL()

[复制链接]
483|11
手机看帖
扫描二维码
随时随地手机跟帖
Listate|  楼主 | 2017-3-15 20:42 | 显示全部楼层 |阅读模式
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();
               }
   }

}
Listate|  楼主 | 2017-3-15 20:43 | 显示全部楼层
b_I1A等表示空闲,
b_W1A等表示警告,
b_A1A等表示报警。
多台设备,现在要有报警出报警ALM(),没报警有警告出警告WRN(),没报警和警告出正常运行RUN();
如果有空闲,则运行相应的ALM_IDL(), WRN_IDL(), IDL();

使用特权

评论回复
Mozarts| | 2017-3-15 20:44 | 显示全部楼层
总执行那个肯定是满足执行它的条件:b_I1A ,b_I1B,_I2A ,b_I2B不全为1;b_A1A和b_A1B都为1;
b_W1A,b_W1B中有一个为0。

使用特权

评论回复
_gege| | 2017-3-15 20:56 | 显示全部楼层
我感觉你的第一层if else语句条件存在语法错误,条件不明确。。

使用特权

评论回复
Edisons| | 2017-3-15 20:58 | 显示全部楼层

if((b_W1A==0)||(b_W1B==0)) { WRN_IDL();}看下你的条件的吧

使用特权

评论回复
laozhongyi| | 2017-3-15 21:06 | 显示全部楼层
这个也是根据先后顺序判断的。

使用特权

评论回复
wanglaojii| | 2017-3-15 21:06 | 显示全部楼层

楼主你这是要实现什么功能的?

使用特权

评论回复
zhouhuanの| | 2017-3-15 21:11 | 显示全部楼层
硬件电路的实现都没有,怎么找到问题?

使用特权

评论回复
handleMessage| | 2017-3-15 21:12 | 显示全部楼层
这个就看你给设置的输出条件的。。

使用特权

评论回复
bbapple| | 2017-3-15 21:17 | 显示全部楼层
若是IO中断输入的,检查下你的中断设置的吧。。

使用特权

评论回复
天灵灵地灵灵| | 2017-3-15 21:27 | 显示全部楼层
看起来乱乱的, 一堆没有含义的变量。

使用特权

评论回复
天灵灵地灵灵| | 2017-3-15 21:28 | 显示全部楼层
另外你可以描述一下你想实现个什么功能,然后别搞的这么多IF,,,完全可以用switch case 的就case,,if,else搞太多层很麻烦。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

161

主题

1233

帖子

1

粉丝