We call them pistons too.
I am afraid there is no driven solution other than using high-powered math. Unfortunately, the IK solvers in animation products are designed for characters not mechanism. However, you can still do almost any mechanism, except a crank and slider (piston). The problem is that there is no linear constraint that can be driven by another object.
There is good news though. You can key the animation quite easily. Here is what I do.
Animating a piston:
Setup:
1. Place a one bone skeleton to define the crank. The base is the center of the crank and the effector is where the arm will attach.
Place the piston geometry. Determine where the center point is to be. Now either use a grid line or draw a linear curve to define the motion for the center of the piston. This is just for reference.
Draw a second one bone skeleton, to define the piston arm. Place the base at the effector of the first skeleton (crank), then place the effector of the second skeleton at the center of the piston- on the line you placed as a reference.
Constrain the base of the second skeleton to the effector of the first.
Constrain the piston to the effector of the second skeleton. You can turn off the display of the piston, since it is a driven object and doesn