I may be wrong here but it could be that you misunderstand what is meant by On Delay and Off Delay.
Both timers do exactly what you describe when you say "turn on immediately when its input is high,for a preset period without the need to make its input low". The terms "On-Delay" and "Off-Delay" refer to the timers' output. This maybe where your confusion is.
The TON element in the S7-216, for instance, has two variable elements; IN and PT. These refer to enable INput and the Preset Time. The following is the description of its operation taken directly from the Micro/Win 32 help file:
"The
On-Delay Timer (TON) instruction counts time when the enabling input is ON. When the current value (Txxx) is greater than or equal to the preset time (PT), the timer bit is ON"
So, if you have an on timer (T37), once the IN is satisfied, the timer starts timing for the preset period, PT. Once the timed value is greater that the preset, the timer bit, T37, is on. You can then use XIO and XIC elements for this element throughout your program.
____T37____
I1.1 | |
---| |-----|IN TON|
| |
30 |PT |
|___________|
T37 M0.1
---| |------( )-
T37 M0.2
---|/|------( )-
Now, In this little program, input I1.1 is either off or on.
When
I1.1 is low,
bit T37 is low,
M0.1 is low, and
M0.2 is high .
When
I1.1 initially goes high, the timer starts timing but
bit T37 is still low,
M0.1 is still low, and
M0.2 is still high.
After 3 seconds (T37 is a 100ms time-based timer) of I1.1 being high,
bit T37 goes high,
M0.1 goes high, and
M0.2 goes low.
As soon as
I1.1 goes low again,
bit T37 goes low,
M0.1 goes low and
M0.2 goes high.
Does that help?
Steve