I don't know what you want to warm up. Is it a standard lathe? Or does it have a C or Y axis that you want warmed up? If it is a standard lathe, and all you want to do is warm up the spindle and move the turret around a bit, then there is nothing to it. I expect no one has answered you because it is so simple. Use incremental moves. Move the turret to a safe position where it will be further from the chuck or X over travel than the incremental moves in your program.
Don't call up a tool offset.
G97S500M3
G0W-3.
U-5.
W3.
U5.
M99
%
Or you could give it a feedrate instead of a rapid move if desired.
G97S500M3
G1G98W-3.F300.
U-5.
W3.
U5.
M99
%
Does it have a Fanuc control? I'm pretty sure there is a macro for the timer, but I've never needed it nor am I where I can look it up, but you could still make the RPM vary using Macro B (or Macro A, but I've never used Macro A) without knowing the timer macro number.
IF[#1LE100]THEN#2=500
IF[#1GT100]THEN#2=1000
IF[#1GT200]THEN#2=2000
G97S#2M3
G1G98W-3.F300.
U-5.
W3.
U5.
#1=[#1+1]
M99
%
What this will do is run the spindle at S500 for the first 101 'squares', S1000 for the next 100 'squares' and then at S2000 until you hit reset. Naturally you can set these numbers to any value you desire. You could change the RPMs you want to run. You can change the number of times the turret completes the square before ramping up. You can add more IF/THEN statements to make the RPMs go higher or to step them back down.
EDIT: Of course you can make the warm up program as complicated as you'd like. You can make angular moves, make it swing large arcs, or a full circle for that matter. Or any combination of moves. Whatever your head can dream up.