99% of toggle applications use just one tag, because inverting the current state of one boolean tag is a simple task.
The conventional solution to this would be to use a Crimson 3 pushbutton or 2-state Toggle object addressed to the Manual tag. In the RSLogix 5000 ladder logic, you'll put a rung to set the Auto tag to the opposite state of the Manual tag.
If you have two tags that do not have ladder logic manipulating them, what happens when the Red Lion application starts up and both tags are True, or both Tags are false ? Which state should it go to when you press the button ? Which state should it display ?
The easy thing to do would be to put in a startup expression for the Red Lion that set Manual = 1 and SemiAuto = 0. Then you could use logic that sets the two values opposite to one another each time the button is pressed.
The logic I came up with was a Complex Code expression that executes when a button is released. It uses the " ? :" selector operator in Crimson 3.
Code:
Manual = (Manual ? 0 : 1);
SemiAuto = !Manual;
The "? :" selector looks a little unusual if you're not familiar with it, but it's essentially an "if / then / else" statement.
In plain English, the first line is "If Manual = True, set value of Manual to 0, else set value of Manual to 1"