Process (output instruction)
PROC: Simulated Process
A simulated plant, so a control loop has something to act on with no hardware attached.
Also called: simulated plant, process model.
PROC(number, a, gain, rate, bias)Arguments
| Name | What it is | Accepts | Default |
|---|---|---|---|
| destination | What the instruction acts on | a register | required |
| a | Control input (CV) | a number or a tag | 0 |
| gain | Gain | a number | 1 |
| rate | Rate | a number | 0.5 |
| bias | Bias | a number | 0 |
Arguments are positional and this table is generated from the simulator's own instruction registry, so it always matches what the engine accepts.
What it does
PROC is not a real instruction and no controller has one. It exists here so that a PID loop can be watched doing its job without a tank, a heater and a thermocouple on the desk.
It models the most common kind of process there is: a first order self regulating one. Given a control input, it works out where the process would eventually settle, which is the input times a gain plus a bias, and then moves the measurement towards that value at a rate you set. A slower rate is a bigger, more sluggish plant. The bias is where the process sits with the output at zero, which is ambient temperature for a heater and empty for a tank.
Wire it as the mirror of the loop: PID reads the measurement and writes the control output, PROC reads the control output and writes the measurement. Those two rungs together are a closed loop you can tune, break and retune in a browser.
A rung you can run
The same loop, with a slower plant
XIC(Loop_Enable)PID(Valve_Output,Tank_Level,70,3,0.4,0,0,100)
XIC(Loop_Enable)PROC(Tank_Level,Valve_Output,1,0.1,10)
GRT(Tank_Level,90)OTE(High_Level_Alarm)The same shape as the PID example with the rate dropped from 0.3 to 0.1, which is a plant roughly three times more sluggish. Turn on Loop_Enable and watch how much longer it takes to reach setpoint, and how tuning that suited the faster plant now looks lazy. Changing one number here is the cheapest lesson in why a tune does not travel between machines.
Run this rung in the simulatorWhat it is called on other controllers
| Platform | Equivalent |
|---|---|
| Every platform | No equivalent, and deliberately so. PROC is a teaching aid: on a real controller the process is the machine, and the loop is commissioned against it. |
Common mistakes
- Taking a tune from here to a real plant. Simulated gain and rate are numbers you chose; the real plant has dead time, valve hysteresis, noise and disturbances, and none of that is here. Use this to understand what each term does, then tune the real loop on the real machine.
- Leaving it in a program you intend to use for anything else. It writes to the measurement tag every scan, so it will fight anything else that writes there, including a real input.
Practise it
Interactive exercises that use PROC. Each one checks your ladder against a real scan.
