iArte
(Industrial Automation Real Time Environment)
iArte is a software integrated environment used for the development of industrial process control softlogic applications. It allows the execution of complex control algorithms on a standard PC hardware platform that can also be used for the execution of HMI or scada applications at the same time. For this purpose iArte uses the functions of Linux operating system together with the real-time extension supported by RTAI environment. Thanks to this basic software platform, the two logic parts in which the system comes to be splitted - that is the real-time one and the non real-time one - act independently with respect one to the other so that two virtual machines are implemented.
The main features of the environment are:
The software works in a hard real-time context, so that actions can be executed at a fixed time without delays. Thus response times are independent of the context.
The operating system, if considered in its non real-time part, can execute the standard Linux operating system applications that are useful for information managment (editors, data sheets, DBMS).
Linux, RTAI and iArte are open source, that is the source files are freely distributed and have no cost. This means that they are available for a long time and that the user can modify the system following his specific needs.
There is no royalty on the developed applications.
The system is extremely scalable. It can efficiently operate both on embedded systems without user interface and powerful IPC.
Process data can be stored both on system DRAM and SRAM. In the former case voltage backup devices must be used so that the system is correctly shut down and non volatile data are written on the disk. This happens automatically in case of supply leakage or as consequence of an external abnormal event. In the latter case, a backup battery RAM memory card has to be installed, so that the system can be shut down without losing the process data.
The iArte environment has a software module for reading and writing the process inputs and outputs. This is one of the most important features of the system and is efficient, flexible and transparent for the user. This module is based on a multiple device driver structure. Each driver is independent of the other ones and manages the information to the field by a particular channel. The user can write himself drivers that can of course be used. It is also possible to define the occurency time for each read/write operation so that the slowest operations do not cause peaks of information traffic on the channels.
The module that manages the user control program (which is called PLC module) follows the PLC classic structure, that is with process input and output process images. However, there are also functions for reading and writing inputs and outputs in a more direct way without using process images (which are called direct peripheral I/O reading and writing). The program cycle structure can be classic - that is the inputs are read firstly, then the program instructions are executed, and at the end the outputs are written - or can be more efficient - that is the program instructions and the I/O process images refresh are executed in a parallel way. The program language for this PLC module is the C standard language. Some structures defined in IEC 1131-3 normatives are also implemented. For example it is possible to use the sequential function chart (SFC) for sequential control programming.The data types that can be used range between the bit up to 64 bits long word.
Asyncronous tasks can be executed, too. They are called at regular interval time and they have higher execution priority than the PLC module. Starting from the chosen base time, it is possible to define an occurency time with a 1 ms resolution and a very small jitter time. It is also possible to reduce the base time down to 100 ms by changing a system constant, and this only causes a limited loss of the system efficiency.
It is possible to use an external watch dog. As it occurs, the whole plant goes up to a safety condition.
There is still time for the execution of non real-time applications, as for example supervising applications. A control - called user watch dog - allows the user to stop the supervising program if there is not a minimum time for executing non real-time applications.
Process data can be accessed from the supervising program via system calls.
The environment has a program for managing and debugging the user program. It tests the input/output process image functions, the system state, The PLC cycle time. Breakpoints can be defined and the program can be executed step by step.
Several iArte applications have already been developed; others are being developed. The most important ones are the following:
- Automation for marble and granite slabs automatic cutter machine
- Automation for ball bearing ovalisation control and correction machine
- Automation for "Formula 1" brake systems test bench
Roberto Finazzi
Via Sondrio, 4
24060 Bolgare (BG) - Italy
iArte is a graduation thesis work developed at the engineering faculty of Brescia University (Relatore Prof. Pietro Baroni). Many thanks to Hemiliano Berselli, a student at the engineering faculty of Brescia University too, for the fundamental contribution given to the iArte V0.4 and its manual.
You can reach me via email for any questions, comments, suggestions or information.
iArte is an open source software. It follows the GNU GENERAL PUBLIC LICENSE, version 2 or later, as defined by Free Software Foundation. You can obtain a license copy at http://www.gnu.org
iArte source files version V0.2 - iarte0_2.tgz
iArte source files version V0.3 - iarte0_3.tgz
iArte source files version V0.4 - iarte0_4.tgz
Program that convert a SAIA GRAFTEC (C) source into iArte SFC - sb_comp.tgz
RTAI - Real Time Application Interface
PeeweeLinux - Linux for embedded applications
Engineering Faculty of Brescia University
SAIA-Burgess - Process Control Devices (PCD) PLC
Last updated: 14 september 2002