Alternating pumps
OSF catches the end of each demand. A toggle rung flips LeadB, and LeadB picks the pump for the next demand.
Step by step
Pick a step. The rungs are drawn by the editor after Core scans the program up to that step.
Global.DemandXIC
OSF
Global.SwapOTE
Global.SwapXIC
Global.LeadBXIO
Global.SwapXIO
Global.LeadBXIC
Global.LeadBOTE
Global.DemandXIC
Global.LeadBXIO
Global.PumpAOTE
Global.DemandXIC
Global.LeadBXIC
Global.PumpBOTE
1. Demand on. LeadB is 0, so PumpA runs.
Global.DemandXIC
OSF
Global.SwapOTE
Global.SwapXIC
Global.LeadBXIO
Global.SwapXIO
Global.LeadBXIC
Global.LeadBOTE
Global.DemandXIC
Global.LeadBXIO
Global.PumpAOTE
Global.DemandXIC
Global.LeadBXIC
Global.PumpBOTE
2. Demand off. OSF passes for this scan and Swap is 1. The toggle rung flips LeadB to 1. PumpA stops.
Global.DemandXIC
OSF
Global.SwapOTE
Global.SwapXIC
Global.LeadBXIO
Global.SwapXIO
Global.LeadBXIC
Global.LeadBOTE
Global.DemandXIC
Global.LeadBXIO
Global.PumpAOTE
Global.DemandXIC
Global.LeadBXIC
Global.PumpBOTE
3. Scan 3. Swap is 0 again, so the toggle rung keeps LeadB at 1.
Global.DemandXIC
OSF
Global.SwapOTE
Global.SwapXIC
Global.LeadBXIO
Global.SwapXIO
Global.LeadBXIC
Global.LeadBOTE
Global.DemandXIC
Global.LeadBXIO
Global.PumpAOTE
Global.DemandXIC
Global.LeadBXIC
Global.PumpBOTE
4. Demand on. LeadB is 1, so PumpB runs this time.
Global.DemandXIC
OSF
Global.SwapOTE
Global.SwapXIC
Global.LeadBXIO
Global.SwapXIO
Global.LeadBXIC
Global.LeadBOTE
Global.DemandXIC
Global.LeadBXIO
Global.PumpAOTE
Global.DemandXIC
Global.LeadBXIC
Global.PumpBOTE
5. Demand off. Swap is 1 for one scan and LeadB flips back to 0.
Global.DemandXIC
OSF
Global.SwapOTE
Global.SwapXIC
Global.LeadBXIO
Global.SwapXIO
Global.LeadBXIC
Global.LeadBOTE
Global.DemandXIC
Global.LeadBXIO
Global.PumpAOTE
Global.DemandXIC
Global.LeadBXIC
Global.PumpBOTE
6. Demand on. PumpA leads again.
| Step | Demand | Swap | LeadB | PumpA | PumpB |
|---|---|---|---|---|---|
| 1. Demand on | 1 | 0 | 0 | 1 | 0 |
| 2. Demand off | 0 | 1 | 1 | 0 | 0 |
| 3. Scan 3 | 0 | 0 | 1 | 0 | 0 |
| 4. Demand on | 1 | 0 | 1 | 0 | 1 |
| 5. Demand off | 0 | 1 | 0 | 0 | 0 |
| 6. Demand on | 1 | 0 | 0 | 1 | 0 |
Why it works
- OSF passes power for one scan when Demand turns off, so Swap is on for exactly one scan per cycle.
- The toggle rung writes LeadB from two branches: Swap on and LeadB off, or Swap off and LeadB on. With Swap off it keeps LeadB as it is. With Swap on it flips it.
- PumpA runs while LeadB is 0 and PumpB while it is 1.
Common mistakes
- Toggling without a one-shotIf Swap stays on, LeadB flips every scan and the pump choice is random.
- Swapping while a pump runsSwap on the end of demand, as here, so a running pump is never switched over.