Dont know if youve seen it but if you google theres a tutorial on rigging a pistion, if it dosnet work as you wanted I would be inclined to use a SDK that uses the IK movement to drive the SDK of the piston.