PLC software architecture and operator panel design

Highly specialized post, Long post

I do not claim the correctness and accuracy of the text I present, just my observations and arguments from practice.


After looking at quite a few posts, newspaper clippings and other Internet waste paper, it turned out that very little was said about the correct software architecture in an industrial environment, in the environment of those very “engineers” who are not well known, and crowds of young specialists, young fighters do not rush there! Rather, they come, but quickly leave, it so happened that in this area of ​​work it is necessary “revive with metal” designed by the design department. And this is often scary and incomprehensible.

What if something breaks!? Should I pay?!

So said a young specialist who came to work for us …

I’m all about the fact that the architecture and the correctness of the introduction of the software code is described, for the most part, for areas related to Internet coding, etc.

The same goes for the industrial design of operator panels. During the occupation of industrial espionage on business trips (Purely out of curiosity), I have seen enough of different designs of operator panels, to be honest, it’s done on the back of your head and leave …

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~

Software architecture

My team and I began to create a successful success, our idea, to create that pool of rules and a set of laws for the “Competent” software architecture.

The theory of implicit functional blocks

Based on the TOR, there were cases when several people did one big project, because you alone will go crazy and beat a stool with a spoon at 3 in the morning …

Let’s skip all the details of the dispute in the design of the control room by two people and go straight to the stage of software development. To the stage when all the wires go to one PLC.

Delta Development Environment – ISP Soft

1. The “Programs” stack should contain only functional blocks, developers.

Since each programmer chooses the programming language that he likes … ST, LD, SFC, C. And then there will be “porridge” in the program, and so everyone has his own FB block for which he is responsible, and which only he knows. And they are easily spliced.

2. In the “Main-Table” there are only generally accepted inputs and outputs of the controller. And their varieties.

This is how the concept of name-calling the inputs and outputs of the controller was derived.

DI- Discrete input;

DQ- Discrete output;

AI- Analog input;

AQ- Analog output;

For Pneumatic Cylinders.

DI_SS_1 – Initial position sensor No. 1;

DI_SM_1 – Middle position sensor No. 1;

DI_SE_1 – End position sensor No. 1;

For Sensors

DI_BL_1 – Reflective sensor No. 1;

For conveyors

DQ_T1 – Conveyor No. 1;

DQ_H1_R – Lamp red No. 1;

Various buttons for the panel

HMI_K_Start – Start button on the operator panel;


3. Description of registers inside the function block

(Not) Thinking for a long time, we came to a simple one – that the register does so and call.

If this is a command to turn on the pneumatic cylinder – Cmd_Push_on;

If this is a power-on delay – Cmd_D_Push_On;

If this is some kind of flag – Falg_Backet_Low – Flag about empty baskets;

Flag_Empty_Line – The line is empty;


The word Flag – We make it clear that this flag performs some function and this is an important link in the work cycle;

Word Status – Just the status of the current indicator, does nothing, just shows.

Jumper – Performs changes to the loop. For example, Jump_Line_2 means that at the end of the current cycle we will switch to another cycle, which can be found by scrolling below.

4. There must be a comment in the Functional block

It’s not about cleanliness, and not about the slovenliness of the program, it’s about self-respect. Anything can happen, and suddenly there is a need to go to the customer, and the project was commissioned 2-3 years ago.

Yes, this is a banality … But few people use it, a correct and clearly expressed comment in a functional block is a guarantee of saving your nerves.

5. Small things

If we are talking about flags by type – Var_Output “Flag_Start”, then at the stage of splicing, everyone says what he has and where, and what to splice with.

Most small things are solved at the splicing stage. And this little thing is not enough. Because the overall integrity of the project is made in the same style.

What is the result?

As a result, we get that each programmer knows only his stack and a piece of connections between stacks, knows what his sensor is and what his executive element is. This is how the theory of secret FBs is obtained. The entire software architecture is made in the same style, and everyone can read it.

Not one style is united … Now everyone can open the program of everyone and understand what she did there.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~

Operator panel design

Theory of the thumb and other processes

Having understood and analyzed, it turned out that there is no need to make the “Start” button on the half of the screen …

As practice shows, 3% – 4% of the total screen area is enough if the panel is large, and if the panel is medium in size – (800 * 480) – 100×100 pixels, there is +/- a couple of pixels. Small panel, it is better to resort to a physical button.

Well, in general, the start button should be square and the size of a thumb, this is more than enough.

Do not listen to those who speak, and if the panel fails, how to turn it on? Industrial panels last a long time if you do not poke them with a screwdriver.

As far as thumb theories go, this formula should only work on the dashboard and important nodes. For example: Start/Stop, Film cutter, Cone cutter. Where you need to press precisely and with your thumb.

Moving on to the settings and other tabs, the second part of the theories applies.

Other processes are the index finger and adjacent to it. Everything that is poked pointwise and purposefully and is only capable of changing the delay to turn on, and put a button under the index finger there.

Theory chocolates

According to such theories, it is possible to build the integrity of the style, if the tab is open, the inclusion of individual nodes, then to preserve beauty, it is necessary to have on / off buttons with comments in the chocolate format

Extermination of distortion and excess

In order to save as much space as possible, it is necessary to remove all professional deformation.

It is not necessary to describe, Push button #1;

After all, you can simply – Pusher No. 1;

It is not necessary to describe the system settings tab, setting the time parameters of the pushers. Let’s take away this luxury.

Various errors, it is not necessary to describe in full, it is enough to highlight the error code in the status (Error – 401) and remembering this code, go to the code sheet! Where everything is described in detail.

401- Pusher sensor error #1. Starting position.

Removing unnecessary characters, or reducing them.

Why describe the button with text, in some moments it is easier to make the text a button by highlighting it in blue or with a stroke.


This is not the first time I have encountered that the instructions are not read. To do this, you just need to add annotations next to the element that really needs to be described. Adding instructions in clear, simple and colloquial language directly to the panel is not long.

Icons, God bless them

Rejecting the text and replacing it with a smiley (icon), you can save a lot of space.

For example, Save current settings (Button), you can simply replace it with the symbol “Diskette”, the symbol that everyone knows.

Delete current settings (Button), Trash can.

It’s so trite and simple, and saves a lot of time and space.

Compare with phone

Comparing the design of the panel with the phone, you can understand how clear and beautiful it turned out.

Display of time in the right / left upper corner, in the same strip, display of statuses in the form of icons.

What is the result?

The result is a design, like a phone, like a mafan in a car. Clear. Colorful. Just.

Clear buttons that are immediately clear on a subconscious level what they do.

Clear font and text, readable, in places where bold is needed, but in headings and medium in the text

Nice color, no gouge or wild contrasts. It’s simple: Green – On, Red – Off, Blue – Interactive, Grey/White – Text.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~

Z.S. I am not a master of design, not a candidate of technical sciences, I told my practice and my observations

All Peace, Health and Love!!

Similar Posts

Leave a Reply