PWM output from T100MD (or its successors - the FMD or Fx PLCs) are not designed to output precise number of pulses. It is meant to output a PWM pulse train that average to a mean level proportional to the duty cycle. The 0.05 second ladder logic contact is subject to I/O and program scan time so cannot be counted on to provide the precise amount of time.
The STEPMOVE function will be able to output precise number of pulses for positioning purposes. However, it will only output with 50% duty cycle if that works.
One way you may try is to run the SETPWM statement and then put a DELAY statement and then turn it OFF. This will mean that during the PWM output period the CPU program will wait in a delay loop waiting for the n ms to expires in the DELAY(n) function and not do anything else.
SETPWM 1,x, y ' turn on PWM output
DELAY 50 ' wait 50ms (0.05s)
SETPWM 1, 0, y ' turn OFF PWM output