I’ve attached the context help for the PID. It is described as the simple one, but it includes integrator anti-windup, output limits, and bumpless gain changes. It also supports wiring up N values in an array, and it will manage and control all of them using the same control settings.
As for learning to read LV, that is definitely starting pretty deep in the pool, but I’ll point out the big chunks.
In the lower left of the loop, it determines what the dt is. It can be user specified or if unwired, is calculated by the function.
Upper left are some comparisons to determine if the PID coefficients are the same as the previous call (to fix the state data and avoid bumps).
The code in the center and lower right calculate the terms. Note that this uses the academic form with Kc, Ti, and Td. The two icons at the upper left of the switches were used to document which term was being computed.
Other comments are sprinkled inside the cases for the exceptional cases such as reinitialize, dt=0, etc.
Note that I’m describing the PID.vi, the simple one. There are several others in the full Control portion of the palette – Advanced, Auto-tuning, etc. I didn’t write any of these, but may be able to help you read them if that is what you are asking.
Greg McKaskle

