打印

老是执行这个语句

[复制链接]
1149|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
kangzj|  楼主 | 2013-6-16 16:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
就是这个,大家知道为什么吗?
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();
}
}

}

沙发
houcs| | 2013-6-16 16:23 | 只看该作者
看不懂,逻辑错误。

使用特权

评论回复
板凳
liuzaiy| | 2013-6-16 16:25 | 只看该作者
b_I1A等表示空闲,
b_W1A等表示警告,
b_A1A等表示报警。
多台设备,现在要有报警出报警ALM(),没报警有警告出警告WRN(),没报警和警告出正常运行RUN();
如果有空闲,则运行相应的ALM_IDL(), WRN_IDL(), IDL();

使用特权

评论回复
地板
yinxiangh| | 2013-6-16 16:25 | 只看该作者
总执行那个肯定是满足执行它的条件:b_I1A ,b_I1B,_I2A ,b_I2B不全为1;b_A1A和b_A1B都为1;
b_W1A,b_W1B中有一个为0。

使用特权

评论回复
5
pangb| | 2013-6-16 16:26 | 只看该作者
我感觉你的第一层if else语句条件存在语法错误

使用特权

评论回复
6
pangb| | 2013-6-16 16:27 | 只看该作者
条件不明确,那么只能执行else语句了!

使用特权

评论回复
7
kangzj|  楼主 | 2013-6-16 16:28 | 只看该作者
嗯,我也考虑到了

使用特权

评论回复
8
kangzj|  楼主 | 2013-6-16 16:29 | 只看该作者
先结贴了

使用特权

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

本版积分规则

672

主题

7007

帖子

2

粉丝