You don't have to zip images, by the way, before I forget. When I attmepted to upload them it gave me a message that it was to large of a file to upload.
First off, this is a crane, and you are timing from one known position and trusting timers... Yes sir, it is an approximation. Currently the basket is lifted out of the heated tank is filling the room with a plumes of acid. The push-air system does not have enough time to shove the plume into the scrubber. Some of it is captured but the majority is not and it is destroying everything in its path.
There are no comments and you are using TOFs where they offer no advantage... I have never used TOF's before and was experimenting. I do not have nearly the programming experience you folks have. That's why I submitted it. I like to try something first, run it by the folks here, then learn. If I don't try first, I don't usually learn much.
Next, you need to consider what happens when there is a problem, the 3 second lift cycle is interrupted. What if the brake shells out and they try it ten times and it overloads ten times? It has a lift limit switch that will stop it and, if it makes it past that, there is an up overtravel switch. To keep it brief I only attached what I had done recently, not the entire program. I can see where I should have sent the entire program.
For a lift, or anything where you are truly just estimating position, you need an input proof as good as you can get, and a retentive timer, plus address comments, and at least one permissive bit... I don't understand exactly what you are talking about with the "permissive bit".
Don't go for simple, this is a crane, go for bulletproof with what your working with. The system has been running for a couple of years. I have been tasked with editing it so that we can attempt to capture more of the acid plume.
I would use RTO timers running based off of real inputs from proof the motor is running, the closer the motor or better yet the drive load you can get this proof the better. Maybe you can settly for a motor starter auxillary, but this is better than a crane that "thinks" its 9 seconds off the ground and is still in the acid bath... The crane is only able to traverse forward or reverse after the lift or drop prox sensor is made. What I'm trying to do is lift for 3 seconds, allow some of the plume to be captured, lift for another 3 seconds, capture some more plume........ then have it continue on its way upward until the up prox is made. The challenge is, at the rinse tanks, I don't want this timer, that's why I was trying to find a way to identify which tank the crane was at so it would know to use the timer when at one of the process tanks.
Make this smarter, not simpler... I think simplicity wasn't what I meant to say. I think a more clever way, would have been more appropriate. I'm not looking to cut corners on safety or anything like that. I'm using this as a training session. Many of the programmers here, including you, have helped me for the past few years to hone my programming abilities. I'm still wrestling with understanding indirect addressing and thought this might be a good example for me to learn from.
Thank you.