I've done this with a PLC5 using a ramped analog output. It won't be nearly as responsive as a motion controller, but can be nearly as accurate. My machines each had 5 motors with resolver feedback from the driven devices. I let the operators set the decel distance in inches. The PLC would then calculate the speed reference so that it's output would ramp down to zero as the position is approached. I was able to position the devices within 1 or 2 resolver counts which equated to 0.05" in my application. The formula I used included a maximum speed, a minimum speed (to prevent stalling) and the decel distance. I used a CPT block to obtain the speed reference. I think my formula looked something like this:
spd_ref = dist_to_go / decel_dist * (max_spd - min_spd) + min_spd
if spd_ref > max_spd then spd_ref = max_spd.
Dist_to_go is the distance to go, or position error (target position minus actual position).
It worked great and saved us thou$and$ when compared to motion control. If you do something like this, set the decel rate in the drive to its minimum so that the drive can follow the speed reference as closely as possible. I used AB 160 series V/Hz drives. There are a lot of better drives on the market now that should perform even better.