A robot Boolean input does not automatically become false after the robot reacts to a true value. If the next loop requires a false state, signal the connected Boolean signal with the new value. Re-sending true may also trigger associated logic because signal handling generally does not depend on rising- or falling-edge detection.
Understand the Stored Signal State
IN[5] == True tests the input value available when the expression executes. It does not itself wait for a new signal or clear the existing value. The evidence does not establish that assigning directly to IN[5] from Python is supported; update the connected signal instead.
| Operation | Behavior supported by the evidence |
|---|---|
| Wait input | Can be configured either to accept an existing value or wait for a signal. |
if IN[5] == True |
Evaluates a condition but does not provide the wait statement's configurable signal-wait behavior. |
| Signal true again | The same value can be signalled repeatedly; associated logic generally does not require an edge transition. |
| Signal false | Changes the connected Boolean signal for logic that requires a false state before the next loop. |
Reset the Connected Boolean Signal
The input and output signal maps are associated with the robot executor behavior. Accessing them through vcHelpers.Robot2 is identified as the easier route.
- Locate the signal connected through the
vcBooleanSignalMapbehavior. - Call the connected signal's
vcSignal.signal()method with false as the new value. - Verify that the mapped robot input no longer evaluates true before starting logic that depends on the reset state.
# Schematic call after locating the connected signal
connected_signal.signal(False)
Choose Level-Based or Event-Based Behavior
Use the wait input option when execution must distinguish between accepting an already-true input and waiting for another signal. Use an if condition only when checking the presently available Boolean state is sufficient.
Do not assume that resetting false is always required to retrigger logic. Because the same Boolean value can be signalled repeatedly and associated logic generally does not use edge detection, another true signal may be accepted without a false-to-true transition. Reset false only when the robot program or surrounding sequence explicitly requires state clearing or an edge-style handshake.
Verification
Test both paths deliberately: first leave the input true and determine whether the next loop accepts the existing value; then signal true again and determine whether the intended logic runs again. If the sequence requires clearing, signal false through the mapped signal and confirm that IN[5] == True no longer evaluates true before issuing the next true signal.
FAQ
Do I need to reset a robot input after it becomes true?
Reset it by signalling false when the next loop requires a cleared state or a false-to-true handshake. A repeated true signal may still activate associated logic because edge detection is generally not used.
Can I replace a wait input statement with if IN[5] == True?
Not when you need the wait statement's choice between accepting an existing value and waiting for a signal. The if expression only checks the value available when it executes.
How do I change IN[5] to false from a Python script?
Locate the connected signal through vcBooleanSignalMap, then call its vcSignal.signal() method with false. The signal maps belong to the robot executor behavior and can be accessed more easily through vcHelpers.Robot2.