Aspects regarding the programming of control systems for industrial processes.
Ungureanu, Delia ; Kristaly, Dominic ; Sintea, Sorin 等
1. INTRODUCTION
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).
2. USE OF STRUCTURED DATA TYPES
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.
3. IMPLEMENTING THE SEARCH ALGORITHM
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.
[FIGURE 1 OMITTED]
[FIGURE 2 OMITTED]
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.
4. ADDING USER FUNCTIONS
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
repeat
calculate: diff =quantity - [SIGMA] node
if (diff==0) then
found solution
else
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
[FIGURE 4 OMITTED]
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.
5. CONCLUSION
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.
6. REFERENCES
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