This is a basic tuning method I use that has worked well in the past.
First, set your PID variables to Kc=1, Ti=0, Td=0, your loop update time to TIMED. Your control mode is like a heating application (more output=more input), so you'll want a reverse-acting loop (E=SP-PV). Set your loop update time to 5.00 seconds.
Get your process stable. Switch the PID to manual and put the drive at 50 percent or so. Wait until your output stabilizes. When it's stable, change the setpoint to something higher than what you're currently getting and place the PID in auto. Watch what happens. If the PV (your input) gets closer and closer to the setpoint but never quite "gets there" you don't have enough proportional gain. If it overshoots the setpoint and "bounces" on the setpoint, you have too much gain. Place the PID back in manual, adjust the proportional gain accordingly, wait for the process to stabilize, and place the PID back in auto. Keep doing this until you see the PV oscillate on the setpoint. So if you were to graph it out (this is why I like the customer graphical monitor in RSLogix 500), your setpoint would be in the middle and your PV would look like a sine wave going above and below.
Once you get the flow to oscillate evenly, note how much time one oscillation takes. This is called the "natural period." Convert that time to minutes and this will be your Ti (integral) value. 1/8th of your Ti will be your Td (Derivative) value. Your Loop update time should be at least 5 to 10 times faster than your natural period. Finally, half of the Kc (Proportional) gain you have to make the input oscillate will be your final Kc number.
So let's say you get the input to oscillate around the setpoint. It takes 30 seconds for one oscillation when your Proportional gain is at 5.
So your final numbers will be Kc=2.5 (1/2 of 5), Ti=0.5 (0.5 minutes, or 30 seconds), Td=0.06 (1/8th rounded of Ti)
These may not get you to have "perfect" control, but it will get you close enough to be able to start tweaking things around.
Your Kc number is a gain, meaning "how much do I adjust when there's an error". The Kc will adjust more the further you are away from the setpoint, and less the closer you are to the setpoint. Bigger number = bigger adjustments overall.
The Ti term looks at where the PV was compared to the last time it checked, and if it hasn't moved to the setpoint fast enough, it adds a little "boost" to the CV to get it to the setpoint. The bigger the number, the longer the period of time between these checks, and the less effect it will have on the loop. Bigger number = less effect and vice versa.
The Td term is like the Ti term, except it wants the opposite of Ti. It wants the PV NOT to change regardless of how far the PV is from the setpoint. It's useful for reducing overshoot, since the ideal process the PV will approach the SP and eventually equal the SP without overshooting it. In the example, the Td is looking at where it was compared to the last check 0.06 minutes before. If it isn't flat, it adjusts the CV (lowers it in this case) slightly in order to anticipate reaching the setpoint. It wants the PV to "glide" into the setpoint like plane making a nice, smooth landing as opposed to just crashing into it. Some engineers don't use the Td term because they may find it's "more trouble than it's worth." If you can tune a process perfectly using only the Kc and Ti terms, there's nothing wrong with that of course. But anyway, like the Ti term, the Td term is Bigger number = less effect and vice versa.
NOTE: My description is based solely on how the PID in a SLC works. Other platforms may work differently.