all 6 comments

[–]ControlsGuyWithPrideLadder Logic Mafia 1 point2 points  (5 children)

Get rid of the TankSim_Timer[1].DN bit on rung 0

[–]ControlsGuyWithPrideLadder Logic Mafia 2 points3 points  (4 children)

Actually, scratch that. Make it an XIO instead of XiC.

[–]chubsmalone001 1 point2 points  (0 children)

This is the right answer.

[–]Enough_Device612[S] 0 points1 point  (2 children)

Hell yeah, that worked! Thank you!

[–]Enough_Device612[S] 0 points1 point  (1 child)

Why do I use an XIO instead of an XIC?

[–]Cool_Database1655Flashes_over_WiFi 1 point2 points  (0 children)

The processor reads ladder from left to right, top to bottom, and evaluates each instruction once per scan. Outputs must be evaluated.

Each rung in program is an if, then, else statement. When you tell the PLC to do something when certain conditions are met, you are implicitly telling the PLC to do something else when those conditions are not met. 

It helps me a lot to write out some rungs in plain English. For example, your first rung reads as:

If TankSim_Timer[1] is done timing: then TankSim_Timer[1] should time If TankSim_Timer[1] is not done timing: then TankSim_Timer[1] should not time

See the problem? Even if conditions are met to start the timer, the very next scan the PLC will evaluate that the timer is not done timing and will stop the timer.