How do I set up a control bone for a mechanism that follows an arc? The easiest way to visualize this is an elevator that moves up and down on a track that's built into the side of a cylinder. At this point I have three bones. 


The arc bone describes the track that the lift follows along the wall. It's head is in the center of the cylinder, and it's length is the radius of the cylinder. 
The train bone is parented to the arc bone, but points in the opposite direction. It will be a little train that drives up and down the track and holds the lift. It will always be pointed toward the center of the cylinder.
The platform bone is attached to the end of the train bone. It needs to remain at the same angle like a platform would.




I have a copy rotation constraint on the platform bone that copies and inverts the rotation of the arc bone. This compensates for the rotation of its parent bone, and keeps it flat.


What I want is some way to create a control bone that I can move up and down along the z axis such that the platform is always at the level of the control bone. Is it possible to set up something like this? Would I have to rig the platform in a different way in order to make this possible?
You could achieve that using an action constraint on the arc bone.

First create an animation of the lift going from the lowest position to the highest position (or vice versa) and then set the z axis location of the control bone to be what drives the action. you'll need to adjust the settings of the action constraint to fit the length of your animation and define the range as well.

If your goal is to have the platform move along the z-axis at a constant rate (which is what you would need for it to always be at the level of the control) you could use a circular interpolation for your animation so the change in height would be linear.

However, doing this would result in rapid rotation of the arc bone at the top and bottom of the lift, which may or may not be a desired result.