Whatever is ahead of and after the AND must be in parenthesis when it is more than just a tag name. That forces it to resolve whats inside the parenthesis before the AND. For example:
(Tag1 > 500) AND (Tag2 < 1000)
If we assume the value of Tag1 and Tag2 are both = 750, then expression is evaluated as Tag1(750)> 500 = TRUE(1). Then it solves Tag2(750) < 1000 = TRUE(1). Only then does it perform the AND.
TRUE AND TRUE = TRUE Expression (or 1 AND 1 = 1)
If we had instead said Tag1 > 500 AND Tag2 < 1000
Then it would have evaulated as Tag1 > 500 = TRUE
But then it would have evaulated TRUE(1) AND Tag1 (750) and determined that to be FALSE. Then it would have seen a syntax error with the remaining part of the equation
FALSE Tag2 <1000
It would not understand why Tag2 is there instead of an operator.
However......if all you are doing is looking at a single tag, parenthesis are not needed, but they don't harm. Bit1 AND Bit2 is valid without needing parenthesis. Your expression as you wrote it in the first post would be valid.
OG