这个怎么回事

[复制链接]
 楼主| lium 发表于 2020-6-8 23:14 | 显示全部楼层 |阅读模式


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();
}
}

}
llia 发表于 2020-6-8 23:17 | 显示全部楼层

看不懂,逻辑错误。
wangpe 发表于 2020-6-8 23:22 | 显示全部楼层

b_I1A等表示空闲,
b_W1A等表示警告,
b_A1A等表示报警。
多台设备,现在要有报警出报警ALM(),没报警有警告出警告WRN(),没报警和警告出正常运行RUN();
如果有空闲,则运行相应的ALM_IDL(), WRN_IDL(), IDL();
langgq 发表于 2020-6-8 23:25 | 显示全部楼层

总执行那个肯定是满足执行它的条件:b_I1A ,b_I1B,_I2A ,b_I2B不全为1;b_A1A和b_A1B都为1;
b_W1A,b_W1B中有一个为0。
wangzsa 发表于 2020-6-8 23:29 | 显示全部楼层
我感觉你的第一层if else语句条件存在语法错误
zhuww 发表于 2020-6-8 23:32 | 显示全部楼层
条件不明确,那么只能执行else语句了!
 楼主| lium 发表于 2020-6-8 23:38 | 显示全部楼层
嗯,我也考虑到了
songqian17 发表于 2020-6-8 23:40 | 显示全部楼层
这个程序的逻辑不简洁的
 楼主| lium 发表于 2020-6-8 23:44 | 显示全部楼层

嗯,预料中的结果,多谢大家啦
drer 发表于 2020-7-6 15:04 | 显示全部楼层
为什么这么多分枝
gwsan 发表于 2020-7-6 15:04 | 显示全部楼层
这是想要达到什么目的啊
kxsi 发表于 2020-7-6 15:04 | 显示全部楼层
能描述一下问题的现象吗
nawu 发表于 2020-7-6 15:05 | 显示全部楼层
逻辑错误吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则

915

主题

9578

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部

915

主题

9578

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部