OpenSCADAWiki: Home Page En/Using/PLC ...

Home | Index | Changes | Comments | Users | Registration | Login  Password:  
 
This is an old revision of HomePageEn/Using/PLC from 2017-10-17 16:36:40..
Ukrainian (1 Kb) Óêðà¿íñüêà
Russian (1 Kb) Ðîññèéñêèé

 (2 Kb) This page is frozen, actual one here and its devices here.


93107

OpenSCADA into programmable logic controller (PLC)

Name: PLC
Founded: October 2008
Members: Roman Savochenko, Maxim Lysenko (2010-2012)
Description: The project is devoted to creation of: runtime environment of PLC, PLC firmware and hardware configurations of specialized PLC's. Considered embedded systems of based on architectures x86 and ARM, and also separated hardware of the embedded systems:


Contents

Introduction

Modern system of automatic process control (APCS) are quite complex. Conventionally, the hierarchy of PCS can be divided into two levels: the lower and upper level. The lower level of the PCS contains field of equipment (sensors and executive mechanisms), as well as programmable logic controllers (PLC). The upper level consists of a system of operational visualization and monitoring of the process — SCADA system. PLC is the responsible part of the APCS, which performs function of the data acquisition from the field of equipment, calculation and making the regulatory, blocking and other actions on the regulating parts of the field of equipment.


OpenSCADA is an open implementation of the SCADA system, which is based on the modular architecture that allows you to build the end-user solutions for different requirements. The purpose of OpenSCADA are the systems of the upper level, but the high degree of modularity and scalability allows you also to solve wide range of tasks of adjacent areas.

Programmable logic controllers

PLC market is saturated with wide range of products with different architecture and design. Architectural PLC can be divided into three groups:


Hard-programmable PLC are typically based on a single-crystal microcomputer or chips of programmable logic. Program of such controllers is flashed one-time, providing the software parameterization, or formed with a specialized environment endowed with functions of binary firmware compilation of the runtime with the user program, such as ISaGRAF and LabView. As an example of such PLC can be the modules of distributed PCI of Advantech company.


Highly intellectual commercial PLC typically are based on more powerful hardware architecture and are close to full-featured PC-computer. The main difference from standard PC-compatible PLC is the closed software, and often the hardware architecture. The program software of such controllers is usually based on real-time operating system, which is planning several user threads with separation of their priorities. User programming of these PLC is made working in the corporate software which forms, as a result, the binary code of the PLC thread. As an example of such device it can be the PLC of S7 series of Siemens company.


PC-compatible PLC with the free access is not the group of the PLC directly compatible with PC, but the PLC which don't have the integrated run-time and which are often delivered without an operating system. Architecture of the such PLC may be different, ranging from cost-effective solutions with the x86 architecture and ending decisions ARM and MIPS. The run-time of the such PLC is usually formed from the software of the same with the hard-programmable PLC class, the result of which is an executable binary file into one of the most common, scalable, or specialized operating system (DOS, QNX, Linux, WinCE, VxWorks). Frequently the specialized solutions for the problem can be met. As an example of this class it can be the PLC of PC/104 form factor.


Variants of the constructive implementation of the PLC can be divided into mono-block and modular. Mono-block PLC provides the fixed configuration of the CPI, specialized for the limited range of tasks. Modular design provides an easy extension of configuration of CPI for the appropriate task. There are also the hybrid design which is the mono-block, able to expand its CPI by external CPI blocks connected to one of the standard interfaces such as RS-485.

OpenSCADA as run-time of PLC

System architecture of OpenSCADA allows you to create the final solutions under various requirements and resources through the modular extension. This feature is useful in the light of resource constraints of PLC. Moreover, given the constant development of hardware, as well as continuous improvement of integration and efficiency of modern microprocessor solutions, OpenSCADA can consistently extend the functionality of the PLC, while maintaining the continuity with the old solutions. For example, on the basis of the OpenSCADA system can be built the solutions with minimal requirements on the level: CPU 100 MHz, memory and flash ROM of 30 MB.


As noted above, the resources of modern PLCs can fluctuate in quite a large range, and the PLC of fixed type, built on single-chip microcomputer, further and further forced out into the narrowly specialized fields with the advanced PC-architectures. This trend makes increasingly interesting the possibility of creating the unified open platform for the implementation of the PLC run-time based on the unified PC-platforms.


OpenSCADA allows the realization of the idea of creating an open platform for the implementation of the run-time of PLC. Currently you can make the PLC's run-time nothing inferior to the commercial intellectual controllers, and in many respects superior to them, due to the possibility of integration of functions specific to the SCADA systems into the run-time of the PLC, enhancing the functionality and user characteristics of the PLC and leading him to unified with SCADA code base, as well as optimizing the cost of the final solution.


List functions which are solved by OpenSCADA within the run-time of PLC:


Action source page doesn't exist yet(/Home Page En / Using / PLC / firmware?)


Action source page doesn't exist yet(/Home Page En / Using / PLC / firmware ARM?)

Appendix 1. Performance measurement for processing systems

Action source page doesn't exist yet(/Using / PLC / performance?)

* — Includes double call of gettimeofday() function.
** — Enter to procedure on the language JavaLikeCalc means also enter to the critical section and request to read of the RW lock then the time mostly show performance of the operation. The time was excluded from related values into columns with JavaLikeCalc.

 (2 Kb) The difference in computation time for direct call of the mathematical operation and from the JavaLikeCalc virtual machine is connected with the influence of CPU core frequency (the frequency at which it operates) and who made the part of the command before the transfer of it to math co-processor and with the memory speed. Performance of the math co-processor is usually not directly connected with performance and frequency of the processor core or memory speed.

The measure methodology into the table above provides next:

  1. Time estimation for operation generic lock of the critical section, "sin(Pi)" and "pow(Pi,2)", into second, third and forth columns. sin() and pow() operations selected to represent of estimation the co-processor performance and for overall real-numbers manipulations. Value into square brackets characterizes overhead charges on calculations into the virtual machine of OpenSCADA and performance for integer-numbers calculations about the exemplary operations. I.e. the main value characterizes performance of the processor into the float-point operations (mathematical co-processor or emulation), and into square brackets is the into the integer-operations (central processor), as subtraction of the real-numbers operations. The measure method:
    1. ensure the central processor frequency stability, in way of setting the policy of its management to PERFORMANCE;
    2. start OpenSCADA without load, the project by default or with an empty configuration, and within configurator UI.QTCfg, UI.WebCfg or UI.WebCfgD;
    3. open the function's object "sin()", and next "pow()", by the module of mathematical functions library;
    4. go to tab "Execute", set "Enable", enter the argument's value for "X" to 3.14159 and "Power" to 2 (for "pow()"), set number of executions to 1000 (to the representativeness rise you can increase the number, by degrees, to overall the operation execution time not more 10 seconds);
    5. press "Execute" and get the execution time;
    6. perform the execution into several tries, pressing "Execute", and achieve to minimal value;
    7. fix the minimal value, which divide to 1000 (number of the executions) and get the main time value of the single execution into microseconds;
    8. go to the module object of (internal executions OpenSCADA (DAQ.JavaLikeCalc);
    9. create here an object of library of functions "test", and into it a new function "test", turn it on;
    10. into the tab "Program" enter the commands text zero, "y=sin(3.14159)", and next "y=pow(3.14159, 2)";
    11. go to tab "Execute" and do the same things into the list items "d."-"g.";
    12. the execution result consider for column two and as auxiliary, into the square brackets, for column three and four after them extraction from the column two.
  2. Complex performance estimation, into fifth column, performs by execution the technological process (TP) model AGLKS on target architecture. The test can be executed only on computing systems with relatively high performance (or with more to one core), which capable for the model execute, and equipped by a graphical information output device (display), the visualization server execution case we will not consider. The main value of the processor loading characterizes only the dynamical model of TP execution, but addition value appends of forming and execution the graphical interface. The measure method:
    1. ensure the central processor frequency stability, by way set the policy of the management to PERFORMANCE;
    2. from desktop environment menu start the model AGLKS;
    3. start a terminal emulator (e.g., "konsole"), where type "top", press Shift+H (for see the process at all) and Shift+P (sort by the processor load);
    4. read the values in the column "%CPU" against to the process "openscada", select to typical value for several updates and fix it as main value;
    5. return to the window OpenSCADA and start the visualization environment, and next the project "AGLKS" interface.
    6. return to the terminal emulator and read addition value, like to the list item "d.".

The results you would send to electronic mail address for appending to the table!

Appendix 2. Performance measurement for storage (built-in, HDD, SSD, CF, SD, ...)

This section contains information about performance of different storage, from and on with worked and working OpenSCADA solutions.
Action source page doesn't exist yet(/Using / PLC / storages?)

Appendix 3. PLC solutions

This section contains information about PLC models actually built or planned to be so on the basis of the developed runtime and PLC firmware.
Action source page doesn't exist yet(/Using / PLC / solve?)

Links


Referring pages: HomePageEn/Doc/BCM2835
HomePageEn/Using/Irkutsk
HomePageEn/Using/KramWater
HomePageEn/Using/KramatorskBallMills
HomePageEn/Using/LP5xxx
HomePageEn/Using/LP8x81
HomePageEn/Using/NokiaLinux
HomePageEn/Using/PLC
HomePageEn/Works/AdaptAndroid
Works/Tests/JavaLike


 
There are no files on this page.[Display files/form]
There is no comment on this page. [Display comments/form]