プログラムリストの見えている範囲だけで判断する限り、ビット演算結果を判定している部分が正しくないように思います。以下のようにしてみたらいかがでしょうか。(ちなみに、変数IDはBUTTON()の結果を代入している変数と理解して正しいですか?) [誤] ID AND 1 → [正] (ID AND 1)!=0 [誤] ID AND 2 → [正] (ID AND 2)!=0 [誤] ID AND 4 → [正] (ID AND 4)!=0 [誤] ID AND 8 → [正] (ID AND 8)!=0 [誤] (ID AND 2)!=1 → [正] (ID AND 2)==0 [誤] (ID AND 4)!=1 → [正] (ID AND 4)==0 [誤] (ID AND 8)!=1 → [正] (ID AND 8)==0