In order to count pulses reliably, you need to sample the input at a frequency at least twice the frequency of the input. That assumes that the input has a 50% duty cycle. For anything other than 50%, you need to consider the minimum pulse width of the input, and sample at a rate equal the inverse of the pulse width.
e.g.
input freq. = 100Hz with 50% duty cycle
pulse width = 5 msec
sample freq. = 1/5x10^-3 = 200 Hz
If the duty cycle is say 20%, then
pulse width = 2 msec
sample freq. = 500 Hz
While modern PLC's with short programs can achieve low average scan times, the standard input modules have filters to minimise the effects of noise and contact bounce. These filters limit the input frequency response, and most likely will be just as significant in your considerations as scan time (program plus I/O).