Printer Friendly

Aspects regarding the programming of control systems for industrial processes.


In this paper we discuss about some aspects of application programming of the automation systems belonging to two categories: real-time controls and automation systems. These systems are designed to aid facilities managers and owners to reduce operating, maintenance, and management costs. To efficiently use the hardware components, is very important how the programming of applications is done, so we analyze some aspects of programming a control system for industrial processes.

We use as support a Freelance 2000 system offered by ABB Automation Systems GmbH. The problem on which we are focused is the manner of the building of the program for different applications.

The application programs can be built with graphic configuration with high-performance editors in programming languages according to IEC 61131-3: function block diagram (FBD), ladder diagram (LD), instruction list (IL), sequential function chart (SFC).

The program modules obtained will be used later to built an expert system for managing and monitoring equipments in thermo-electric power stations. They have two different implementations: using structured programming languages, like C, or using programmable controller programming languages, like Function Block Diagram (FBD) (Ungureanu, et al., 2005).


When we design a program for a complex application it is useful to define structured data types to process jointly several variables even if they have different data types. In this manner we can manage information easier. Variables are used for storing and processing information. Various different data types are available in the system, e.g. byte, word, integer, real, data&time. To enable several variables to be processed jointly even if they have different data types.

It is possible to define new structured data types.

System variables are created every time a new resource like a process station, Field Controller or gateway is added. The status details for the resource are stored in these variables.

Default values can be assigned to each variable and to the separate elements of a structured variable. These values are assumed after a cold start, or when a station is initialized.

Application-specific data types can be created, i.e. defined in addition to the structured ones, with the aid of the specific editor (Table 1.). For every component of the structure we must specify the name and the type. A default initial value may be entered. When a warm start is made, this value is used as the structured data type for all variables which have that data type.

If we use use a variable of defined type, named BB, we can describe the state of one component of the equipment (eg. a boiler). The variable is represented in Fig. 1.


A case study is executed for an installation for the management of the equipments in thermo-electric power stations. There are suggested several program-modules for implementation. In the station there are more boilers, noted with B1, ... B7, with different capacities of thermic agent. To obtain the requeisted quantity of thermic agent is necessary to select the boilers that must to be in function.

It is proposed as search algorithm the more general class of search: search for solution in the state space search (Chen, 2000).

A state space can be viewed as a graph and a state in the state space can be viewed as a vertex in the graph. However, unlike the graph search where the graph is presented in a static fashion, the states and their connections considered in a state space search are usually constructed in a dynamic manner on a need base. This is to prevent the huge number of states to be presented. Searching a graph may require visiting all the elements in that data structure, in this case the search operation actually has the same effect of the traversal operation.



We use the Breadth-first Search (BFS). It can be considered as an extension of level order traversal for the trees represented in Fig. 2 (Ungureanu, 2005).

To visit all elements of data structure, we use a stack where are put temporary the elements of the tree. We verify the relation between the tree elements until we find the better solution. The algorithm is presented in short in Fig.3.


Among the facilities offered in the programming of the application, which brig in a lot of flexibility, there are the possibility of defining in completion of the standard function set particulary user functions, that is a reuse of the written code.

The scope of functions and function blocks provided by the Freelance 2000 process station corresponds to the basic supply defined in IEC 61131-3, in addition to numerous other tested functions and function blocks.

Available function categories are: analog value processing, digital value processing, loop control, logic control, logic functions, monitoring, acquisition, arithmetic functions, Modbus functions.

While designing the station and during configuration, the processing capacity and speed of the process station can be easily adapted to the demands of the automation task (Margineanu, 2004). They are accommodated in a function block library and can be supplemented by user-specific function blocks.

In order to define an automation strategy, we will add new functions for specifically needs. The specification of a user-created function block class will determine the functionality and the appearance of a function block.

In a function block instance, all local and output variable values are retained from one execution to the next. This means that the function block instance has an internal state, with the result that the same inputs need not always result in the same outputs. A user function block class is made up of the following components: interface, parameter list, text list, program, faceplate.

To implement the BFS algorithm is necessary to use a stack structure. So, it is useful to define a function that implament the stack. We defined a function bloc that offers the specifical type of operations for a stack (Boed, 1999).

It has the next inputs:
Fig. 3 Breadth-first Search algorithm

Select start node

 calculate: diff =quantity - [SIGMA] node
 if (diff==0) then
 found solution
 for node = 1 ... number_of_nodes
 pop node
 calculate: diff =quantity - [ZIGAM] node
 if( min>diff)
 min =diff

* EN (enable)--enable the use of the bloc--type: BOOL

* EMPTY--empty the stack--type: BOOL

* PUSH--put a value in the stack--type: REAL

* POP--extract a value from the stack--type: BOOL

The outputs are:

* ENO (enable out) (0 = disable, 1 = enable)--type: BOOL

* IS_EMPTY-tests if the stack is empty--type: BOOL

* IS_FULL--tests if the stack is full--type: BOOL

* VAL_POP--return a the extract--type: REAL

* VAL_TOP--return the index of the top (the number of elements of the stack)--type: INT


All standardized function blocks and all functions are available in the configuration of a user function blocks.

A function block instance is created by choosing a class out of a list of user function block classes (fig. 4). Instances can only be created from classes which have passed the plausibility check.


In this paper we discussed about some aspects of programming a process control system. We used the facilities offered by the system to define new data types and new functions specifically to our applications. We defined some simple functions and we try so to define complex functions, such as the implementation of the Breadth-first Search algorithm. The implementation using FBD language is more difficult than a implementation using a structurated programming language like C.

The final goal is to create an expert system to manage the equipment in a thermo-electric power station. The programmer must decide what version of implementation is used, such as to use efficiently the hardware components.


Boed, V. (1999). Networking and Integretion of Facilities Automation Systems, CRC Press LLC, ISBN 0-8493-0699-X, United States of America.

Chen, Z. (2000). Computational Intelligence for Decision Support. CRC Press LLC, ISBN 0-8493-1788-1, United States of America.

Margineanu, I.(2004). Automate Programabile, Editura Albastra, ISBN: 973-650-195-7, Cluj-Napoca, Romania.

Ungureanu, D. (2005). Computational Intelligence--Problem Solving by Intelligent Search, Proceedings of The 31-st Internationally Attended Scientific Conference of the Military Technical Academy, Bucharest, november, 2005, Section 11, ISBN 973-640-074-3, Military Technical Academy of Bucharest.

Ungureanu, D.; Sisak, Fr. & Truican, I. (2006) Programming of control systems for industrial processes, Proceedings of The 15-th International Scientific and Applied Science Conference ELECTRONICS-ET'2006, Sozopol, september 2006, pp. 35-42, ISBN 954-438-518-5, Technical University of Sofia.
Table 1. Creating data type structure.

Name Type Comment Initial value

val REAL agent thermic capacity
aux REAL auxiliar
validare BOOL validation 0
mark BOOL mark selection 1
index INT index
COPYRIGHT 2008 DAAAM International Vienna
No portion of this article can be reproduced without the express written permission from the copyright holder.
Copyright 2008 Gale, Cengage Learning. All rights reserved.

Article Details
Printer friendly Cite/link Email Feedback
Author:Ungureanu, Delia; Kristaly, Dominic; Sintea, Sorin; Vulpe, Anca; Perniu, Liviu
Publication:Annals of DAAAM & Proceedings
Date:Jan 1, 2008
Previous Article:Valve with umbilicus for painting by hydraulic spraying of construction materials.
Next Article:Evaluation of maintenance systems.

Terms of use | Privacy policy | Copyright © 2022 Farlex, Inc. | Feedback | For webmasters |