As standard practice I find it easiest to set the radius at the nose of the chamfer tool as my cutter compensation - I use insert tools that are 32mm or 20mm diameter at the nose, so I use 16 or 10 as my cutter comp, regardless of the major diameter size. A cutter ground to a point would therefore have a cutter comp of zero, regardless of the cutter's major diameter, O/D or shank size.
So, to achieve a size chamfer it is then simply a case of running the same contour you used to cut the profile out, using cutter comp, and adjusting the Z-depth until correct chamfer is achieved.
I am not being patronising here. I have seen people setting up chamfer tools in many different ways, and you end up with either an illogical cutter-comp value, an illogical contour, no cutter-comp at all, or a combination of the lot. If you then need to use different cutters, or, in your case, cut the chamfer in more than one pass, it turns into a nightmare.
Now then, programming what you are after would be tricky - I know little of Siemens - what I've seen in the manuals is reminiscent of Heidenhain, so failing the control having an actual 'Chamfer' Cycle, you will need to define your radius offset and Z-depth on each pass to achieve your goal, correct? If I needed to do this on a Fanuc I would alter the tool length and radius wear offsets (it can be done within the program). On Heidenhain I would use DL and DR (an 'extra' offset than can be defined in the tool table AND the program). Maybe your control has something similar?
Failing that you could even define an individual 'tool' for each pass, but with a pointy chamfer tool chunking out a 16mm chamfer this would be just asking for trouble....this approach would only be feasible if you actually have a large tool to do the top of the chamfer, and follow it up with the dinky one.
Another way would be to use 2 variables, redefining their values for each pass and somehow using them in your contour routine. Your contour would comprise of a Z-move to the work surface position (minus the value of variable 1). X(or Y)-move with cutter-comp onto the contour-edge(plus the value of variable 2), linear move to the Y(or X) intersecting edge(plus the value of variable 2) with a corner rounding function of 7mm(plus(the value of variable 2 minus variable 1)) and a final linear move clear of the job.
I apologise for having no idea of the correct syntax/format you need for your control. Hopefully my post will clear things up for you regarding a consistent strategy, and maybe trigger a post from someone who knows the control's capabilities.