Seq^.step[1] := (PlcStart^ and (not Seq^.Step[2])) 或 (RetryDelay^.Done and (not Seq^.Step[2])) 或 (Seq^.Step[1 ] 和 (不是 Seq^.Step[reset_]));
我不熟悉 Delphi,但我熟悉布尔逻辑。如果我没看错,你的意思是:
(A ∧ -B) ∨ (C ∧ -B) ∨ (D ∧ -E)
在javascript中是:
(a && !b) || (c && !b) || (d && !e)
使用http://mustpax.github.io/Truth-Table-Generator/生成真值表,将“false”转换为“0”,将“true”转换为“1”,得到真值表:
a b c d e (a & !b) | (c & !b) | (d & !e)
1 1 1 1 1 0
0 1 1 1 1 0
1 0 1 1 1 1
0 0 1 1 1 1
1 1 0 1 1 0
0 1 0 1 1 0
1 0 0 1 1 1
0 0 0 1 1 0
1 1 1 0 1 0
0 1 1 0 1 0
1 0 1 0 1 1
0 0 1 0 1 1
1 1 0 0 1 0
0 1 0 0 1 0
1 0 0 0 1 1
0 0 0 0 1 0
1 1 1 1 0 1
0 1 1 1 0 1
1 0 1 1 0 1
0 0 1 1 0 1
1 1 0 1 0 1
0 1 0 1 0 1
1 0 0 1 0 1
0 0 0 1 0 1
1 1 1 0 0 0
0 1 1 0 0 0
1 0 1 0 0 1
0 0 1 0 0 1
1 1 0 0 0 0
0 1 0 0 0 0
1 0 0 0 0 1
0 0 0 0 0 0
该表可能正确也可能不正确,我尚未验证。您可以通过它并自己决定。无论如何,假设它是正确的,您可以检查给定输入的预期输出并验证您的预期是否正确。