K0 = data set only
Typically K0 is used to data set a canned cycle so that the action is not carried out when the cycle line is read. This is normally used when a sub-program is holding the hole positions for instance.
i.e.
G81 X1. Y1. R.5 Z-1. F1. K0
M98P1000
If the K was left out the cycle would execute before calling sub.
In effect, as mentioned above, it is usable as a position skip.
Older FANUC's use L instead of K. Nornmally a K with a value is used in conjuction with INCREMENTAL values in a canned cycle and will produce a grid shift with each instance. ABSOLUTE will run twice at same location as previously mentioned.