I have another solution that is based on timing a number of pulses but solves the problem of the measurement period increasing as the speed of the pulses falls. It has only really become viable now that we have fast PLCs with floating point maths . Decide on an ideal sample time, say 1 second. Give the system a start number of pulses to count, say 50. Time how long it takes to reach this set point using a high speed counter, interrupt and a millisecond timer. The result is unlikely to be 1 second so use the error between ideal sample time and actual sample time to calculate a new set point for the high speed counter. The accuracy of the system is no longer determined by the number of pulses received but by the accuracy of the PLC timer. The system will give the same results getting one pulse per second or 10,000 pulses per second.