1) Dig a channel.
2) Build a pressure plate (multiple ways to do this, but how about triggers on 6+/7 water)
3) Link your pressure plate to whatever you want repeated.
4) Create a pond zone, and get your dwarves to fill it. Here is where it sounds like you're having trouble.
A single pond zone will only attract a single dwarf at a time, and water that is only a single tile deep will evaporate. Thus, the best way to set up a pond zone is to designate every single tile you want filled as a separate pond zone. If you're making a 6-tile wave repeater, that means designating 6 different pond zones.
Make sure you have sufficient buckets-- at least one free for every pond zone.
Sit back until your dwarves fill up your channel. If I'm not mistaken, they should fill it 6/7 eventually-- but they'll slow down considerably once they reach a single 6/7 tile in your channel, because that will cause a wave that'll kill further fill pond jobs. When you see a single tile of 6 water, go ahead and remove the pond jobs.
5) Remove the excess water. This is best done by designating your channel as a water source, and designating a new pond zone-- anyplace, really, although closer is easier. Now, you have to watch your dwarves like hawks, so they don't remove too much water. If you built a single pressure plate to trigger on 6+, you want a single tile of water with 6/7 water, while the rest of your channel is at 5/7.
Something that may help you is to look in your init files-- d_init.txt contains a variable that allows you to see fluid as numbers indicating depth, rather than just fluid/no fluid, and for some reason, the default is off. Change this, restart df, and life will be easier.