The CPT instruction is not supported by the ML1500.
I'm right in the middle of a start up so I'm not going to get back to this until this evening, but if you can wait I'll show you how to accurately time for very long duraions.
Yes the formula will still work even if the starting setpoint changes, all you need to do at the beginning of the ramp is is move the current value into the starting setpoint and recalculate your timer preset.
Alternatively, you can use an incremental method to increase the setpoint and a comparrison to stop when your setpoint reaches the required value.
XIC RAMPING XIO T4:0/DN TON T4:1 1 1 0
XIC T4:0/DN LES SETPOINT RAMP_END_SETPT ADD RAMP_RATE SETPOINT SETPOINT
GRT SETPOINT RAMP_END_SETPT MOV RAMP_END_SETPT SETPOINT
If you ramp rate is less than 1degree/second then you'll need to use a floating point value for RAMP_RATE and fSETPOINT and then move fSETPOINT into the PID setpoint integer.