Jump to content

High Speed Air Cylinder Control Application

Recommended Posts


I have a very high speed air cylinder that uses a laser sensor to give constant position feedback to the PLC. The PLC then sends out an analog output signal to a directional control valve depending on where the cylinder is in its current stroke. The goal is to extend the cylinder to a certain set point and right when it reaches the set point I want the cylinder to stop. The issue is because of the extremely high cylinder speeds, the current cylinder position undergoes a big change after the PLC has already finished updating the inputs to memory. Also by the time the PLC updates the outputs telling the valve to shut off, the cylinder has already overshot by 10-15 mm from the intended set point. Would there be any solutions to this problem other than adding offsets to account for the overshoot?

The other weird thing is the delays between when the cylinder position reaches the set point and when the valve actually shuts off are always varying. If the PLC scan time is constant why would this vary? The PLC scan time was measured to be about 3 msec while these delays are about 10-15 msec.

I am using a V570 PLC with a V200-18-E3/4XB snap-in I/O module.

Than you in advance. 

Link to comment
Share on other sites

  • MVP 2023

For position contol with high speed pneumatic actuator you must use Axis controller provided by actuator manufacturer.

It was expensive solution with high speed proportional valve and controller with analog or digital setpoint.

For example


You can set position setpoint to controller and read it from sensor (or from controller).

Yes you can use interrupt routine and setup some ladder code but for precise position control via pneumatic actuator High speed  PID servo loop needed.

It is not present in V570.

Than you must setup some pneumatic flow control valve for reduce  actuator speed or use pneumatic Axis controller for high speed operation.

Link to comment
Share on other sites

Is it an e3xb or e4xb? The E3xb has mostly relay outputs so that will take sometime to drop. Try to use output 0 or 1 those are transistor outputs.  How long is your air line? Compressed air is not a good "fluid " to transfer power. Since there is no pressure on the other side of the piston.  When you close the solenoid the line between the solenoid and the cylinder's piston still has some pressure. You can pressurize both side of the cylinder and use two solenoids to release the pressure on the desired direction side and close when it reached the desired position   I had a project before that had some overshoot problems. I just used the within range function block to slow down then stop. 

Link to comment
Share on other sites

  • MVP 2023
13 minutes ago, TozoM8 said:

I just used the within range function block to slow down then stop. 

I agree with this philosophy - you're going to have to "sneak up" on your setpoint.  We did a roller positioning project using air cylinders with encoders and the springiness of the air happens faster than the PLC can see it.  We had to slow the positioning loop down.  Without a dedicated specific controller such as kratmel mentions you're going to have a hard time with precision. 

Joe T.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Create New...