Synchronized motion of a fixture with individual position offsets and custom feedback force limiting

You could issue a new position command ( command pos = current target position) when the calculated face load reaches/exceeds the setpoint. With this method, your force will overshoot some as the position will overshoot when the axis decelerates and returns to the position at which the command was sent. This is the simplest approach. If you need better control, you could use cascaded loop control which works well for situations like this.

Correct. As you stated, you could use the load cells as reference inputs.

You have a couple options:

  1. Create a virtual axis and gear all 3 axial cylinders to the virtual axis. Then send your distance movements to the virtual axis.
  2. Send Move Absolute commands and do the math to figure out what position to send to each axis. As long as each axis is moving the same amount, this should work.
  3. Send Move Relative commands to each axis.