This time the internal workings of a process controller will be shown.
I’ll show it through a Siemens SIPART DR24 process controller.
Its user manual can be found on the Siemens’ website:
Although it is almost obsolete, the operational principles can easily be demonstrated with it.
At first, one must understand that a process controller is NOT a PLC!
This process controller can only be programmed with function blocks, no other language is possible.
The basic configuration of this process controller has:
– 3 analog inputs (AE is analog input, but it has german originates it refers to Analog Eingang) each has a signal range of 0/4 – 20 mA or 0/2 – 10V input,
– 3 analog outputs (AA means Analog Ausgang),
– 4 digial inputs (BE means Binary Eingang),
– 8 digital outputs (BA means Binary Ausgang).
Its internal program has 109 basic function blocks. These blocks can be any type of the specified list (can be adder block, NAND block … ), each has 3 inputs and 1 output section.
There are other (complex) blocks, but at first let’s just focus the basic ones.
Looking at the adder block will make it clear how it is working.
The adder simply adds the 3 input numbers and produces the sum at its output. It’s as easy as can be seen.
Adder function block example
But why is this function block programming method so powerful?
Because it needs no programming knowledge at all! A pure “what you see is what you get” solution.
Let’s see some real world application examples to demonstrate its huge possibilities.
1.: A two wire thermocouple transmitter’s software, as described in one of the former posts (Thermocouple clarification).
Thermocouple measurement software
There are two analogue inputs: the first is a mV range voltage measurement which means the thermocouple’s output voltage, and the second one is also voltage measurement meaning the cold junction temperature.
The thermocouple’s output voltage must be linearized in order to get the “raw” temperature, and then the cold junction temperature must be added to it.
The output of the second function block is directly related to the measured temperature.
The third block simply scales the measured temperature to suit for the 4-20 mA output range,
2.: A two wire, self learning, valve position transmitter with adjustable low and high limit switch (A full analog version is shown in 4-20 mA loop basics I. post, it is the microcontroller version)
In this example there is a potentiometer based valve position transmitter. It has two limit switches, a high and a low limit switch. The transmitter produces a linear 4-20 mA output signal between the high and the low limit.
Since the position of the limit switches are user adjustable, the software needs to be “self learning”. This action takes place through the 2 Analog memory blocks. When either limit is reached, the actual Analog memeory block stores it and the transmitter’s output is updated to the correct value.
3.: A “drag and drop” programmable audio DSP system. (example from RANE audio)
RANE’s drag net software
I think this third example is obvious.
The user only needs to define how many and what kind of function blocks to be used and connect them to each other in the desired way.
And that’s it!
The controller then cyclically repeats the same job: reading inputs, processing the function blocks and write the outputs.
With this function block programming approach there is no need for different types of transmitters, there is only one universal one which can be programmed for the customers’ needs.
If one needs a K-type thermocouple temperature transmitter then one configuration must be set, if a gas flow transmitter is needed then an other configuration must be set, etc.
Of course the example is valid for audio DSPs as well. There is only one audio DSP device type needed which suits everyone’s needs, only its configuration must be set.