It is one of the reasons I really hate S5 timers.
If you configure an input field of the "timer" type, then you get that you have to set the time in milliseconds. In the HMI you can offset the decimal point be 3 places to get the value in seconds.
The real problem is that the above approach means that the timebase changes according to what the user sets the value.
To display the remaining time on the HMI you should set the output field to display a decimal and push the decimal 3 places. The tag shall point to the timer itself (i.e. "Tn").
The above is the easiest way to use S5timers with a HMI. You cannot avoid displaying the time as x.yyy seconds though.
An alternative way for setting the setpoint for an S5 timer, is to decide the timebase (0=0.01s, 1=0.1s, 2=1s or 3=10s) once and for all and then handle the transfer of the timebase in code:
L "Timer_SP_HMI" // this is the setpoint value from the HMI
ITB // Convert to BCD
L W#16#2000 // "2" is for "seconds"
OW // Combine the two to make an S5TIME
T "Timer_SP" // This is the one that is used for the S5Timer
The HMI tag should be a regular INT, and you should limit the tag so that only values between 0-999 can be input.
If you want to use timebases of 0.01 or 0.1 seconds you simply offset the decimal point in the HMI.