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

NameWhat it isAcceptsDefault
destinationWhat the instruction acts ona registerrequired
aControl input (CV)a number or a tag0
gainGaina number1
rateRatea number0.5
biasBiasa number0

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

RUNG 1Loop_EnablePID Valve_OutputPIDRUNG 2Loop_EnablePROC Tank_LevelPROC Valve_Ou…RUNG 3Tank_Level> 90High_Level_Alarm
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 simulator

What it is called on other controllers

PlatformEquivalent
Every platformNo 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.

Related instructions

All ladder logic instructions