Self program interface

In this article, I will explain the creation of a self-programmed interface, based on the software upgrade project for the DPS contrario site (see the list of objects handed over).

The technical task describes how the software should behave when performing certain procedures, caused by the operator. The problem is that the operator, without any programming or mathematical experience, could be able to freely control any process on the site, that is, assign certain timings, start certain pumps, control the procedure, perform the procedures in any sequence . In this case, the programs should be able to adjust, that is, be adjusted by the operator for specific needs. In the technical assignment, a description of the basic program is given, which is performed in analogy with the SFC languages ​​(sequential diagrams).


We see actions, transition conditions, certain steps - the conceptual solution that needs to be implemented. The program itself can start executing by pressing the "Start" button, it may pause, it may be rolled up / completed without reaching the final cycle.

The Terms of Reference contain certain visualization requirements, the operator must see which step the procedure is in. In addition, the operator should be able to conduct a "question-and-answer" dialogue with the program. Answering the questions of the dialogue, he chooses a certain action or certain conditions.
All of the above requirements were implemented on the TP1900 Comfort panel. Created a set of 26 programs that allow you to select, adjust, edit, rename, save, view, execute.
The program implements the human-machine interface like an independent set of levers in a barrel organ (a mechanical musical instrument), that is, a cyclic program drum is set. The operator, choosing from the list of available conditions and actions, like the choice of impact hammers, assigns the necessary conditions and equipment actions. After the drum starts spinning, the program performs the appropriate actions (implementing recipes).

The operator selects a timer from the available conditions, assigns a certain number of seconds, selects the condition of the next step, for example, the intersection of the "Start" line. Next, selects "Enable obstacle line 1". Answer the question (select) to turn the device on or off. If "Enable" is selected, then a specific action to activate the pump has already been programmed. That is, the operator has entered a certain sequence of actions, will begin to be performed after clicking on the "Start" button.

When the procedure starts, we see a timer countdown - the field fill proportionally decreases, a decreasing count in seconds is recorded. After the termination of this condition, the next step is the emulation of the intersection of the "Start" line. Then a line of water obstacles is included. The program will finish its actions when all the steps programmed by the operator are executed. All other (not selected) empty steps are not executed (skipped). After the specified sequence of actions is performed, the procedure becomes "Stop". We can either start this procedure again, or choose another procedure so that we can choose another process.
I'll try to explain how all this is realized. We have Siemens equipment, namely the S7-300 controller and the TP1900 Comfort visualization panel. The controller is programmed on the STEP7 software. In the project, the source code is for the most part written in the Pascal language SCL (in other programs called ST).

When working with SCL, there are certain nuances in STEP7 (program hangs), but we bypass them using Windows Task Manager. We try to execute the program code with comments, which makes it possible to make the software product inheritable for other users, since we consider this to be the right style in the production of software for APCS. Next, we use the state machine, in which we fill the necessary arrays with the index. We need this to implement the procedures. The scripts (TIA Portal algorithms) look like this.

These scripts are needed to implement each selected field, that is, they contain certain properties that, depending on the PLC code, output the required text in the field of the mnemonic scheme.
All program codes are located and executed in the controller, they are displayed on the panel in an understandable and user-friendly form. Earlier, before the upgrade, only the remote control scheme was implemented in the program, at the moment, automated management is already implemented. I would like to give special thanks to Alexander Burdyugov, who implemented application software.
Lapshin Vyacheslav in this task served as the task manager.

Russian version


Be the first to comment

You comment add

Back to the list