BobO, you must love your job to be working this late. Did you refrain from working on vacation?
I love my job too. The PLC part of my project gets attention at night.
After my last post I went looking for the answer to my question, found it! I use the full name to help me learn this stuff, $CTRIO_000_Out0.OutputVelocity. It's pulses per second.
I'm still learning the syntax of ladder logic and have not started learning Stage programming. What would scaling code look like to read the velocity, multiply by a factor then add or subtract an offset?
You answered another question I have about CTRIO adjusting to error in position as it ramps down. My app is NOT like a CNC mill that uses ball screws for +- 0.0002" accuracy with wide variations in speed, direction and load. It is much simpler. With the exception of needing to back out of a jam condition it will run one direction, conveyor style, and position accuracy is something like +- 1/16". The load variation should be slight. My encoder resolution is considerably better than required at 0.001" per pulse. My target speed is 12"/sec which is 12kHz pulse rate. That's what directed me to CTRIO, then I learned about preset tables, I can use that!
A question while I'm thinking about it, is $Main being scanned when $Programs are running?
Tell me more about PID. I know what PID is having used temperature controls that use PID. I don't know how they are implemented in the Ladder Logic or Stage programming. Do you mean the PID is used with the CTRIO axis control? Can you give me an example? I understand much better when I see examples.
I will know if this works only after putting it together and seeing what it does. I am never discouraged when something doesn't work on the first try. One of my virtues is patience and not giving up easy.
Thanks for your help. Dave