Getting frequency input in PAC Control

I have a flow transmitter that is outputting a frequency between 0-100 Hz connected to a groov RIO.
Should the channel be configured as 5-30 VDC Digital Input, or Switch Input Powered Digital Input?
I’m not sure the difference between the two.
My next question would be, what needs to happen in PAC Control to retrieve the Hz so I can scale it to GPM?

This is the device I am using:

It looks like the flow meters power source is also providing the frequency signal, therefore you would use the 5-30VDC digital input (It is always safer to start with that when it is unclear). It is possible that the device is providing a dry transistor for the switching and sharing the L- connection with the power supply, but unlikely.


You would wire this to channel 0 or 1 of the RIO - these are the only channels that support high speed digital functions. You would enable the “counter” feature or “frequency” feature as well. If you need to accumulate the total flow, then use counter and use PAC Control to calculate the flow rate. If you only need the flow rate, then you can use frequency (or just use the analog output feature of the flow meter, if available).

If using the counter feature:

In PAC Control you would set your strategy to call the Get & Clear Counter command at set intervals along with an up timer. Call Get & Restart Timer on the up timer at the same time as the counter. The Counter value divided by the Timer value is your counts/sec value. From there it is just unit conversions. You can also add the counter value to your accumulator variable. I typically use an integer 64 of raw counts to accumulate the counter and convert this value to a float in the engineering units for HMI display and logging.


Thanks for the quick reply.
I’m using the analog output for temperature, so that leaves me with the frequency output for flowrate.

Pulling the freq with GetFrequency and using this snippet to scale it worked perfectly. Thanks again for the advice.

Heater3_Inlet_Flow_Scaled = ((Heater3_Inlet_Flow) * (MaxFlowRate)) / 100;
1 Like