Help with debugging read of DIO

We have some code that we think should work but when we probe it on the test bench the DIO logic never changes when the limit switch is pressed. We confirmed the wiring is proper with a volt meter.

We are trying to read to limit switches to determine when our elevator has reached the top and the bottom so we can turn off the elevator motor. This is our FIRST experience with using limit switches and think we are missing something basic. The Begin.VI also has a simple schematic for how we wired the switch.

Any thoughts?
Do we have to put any code in the periodic task to make reading a DIO work?

I have attached our Begin VI and Teleop VI to this thread for reference. (20.8 KB) (22.3 KB) (20.8 KB) (22.3 KB)

The switch is incorrectly wired.
Switches only use the signal and ground connections on the DIO. No power.
COM by convention connects to ground, but in the case of a switch it won’t affect the workings.
The other two connections, NC (Normally Closed) and NO (Normally Open) are just two different choices for the signal that simply read the opposite of each other.

Remove the wire to NC.

As to the code, it seems to me that your boolean logic is reversed, because of the NO choice.
Try running in debug and probe the output of the DIO Get to see what value NO (Normally Open) returns.

Thanks Mark.
I’ll try that when we get to the shop today.
I was working under the impression that a limit switch needs to go “high” to 5V and Low “GND”.
Wiring the switch so the read can determine if the circuit is closed sounds like all we need to do. (It was also the reason why the logic would looks backwards).

Your explanation was exactly what I needed.