<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/">
	<channel>
		
		<title>oscada.org: Latest News</title>
		<link>http://oscada.org/</link>
		<description>Latest news from oscada.org</description>
		<language>en</language>
		<image>
			<title>oscada.org: Latest News</title>
			<url>http://oscada.org/fileadmin/tt_news_article.gif</url>
			<link>http://oscada.org/</link>
			<width></width>
			<height></height>
			<description>Latest news from oscada.org</description>
		</image>
		<generator>TYPO3 - get.content.right</generator>
		<docs>http://blogs.law.harvard.edu/tech/rss</docs>
		
		
		
		<lastBuildDate>Mon, 07 May 2012 15:00:00 +0300</lastBuildDate>
		
		
		<item>
			<title>First production release of OpenSCADA 0.7.0 LTS (update 8, finish)</title>
			<link>http://oscada.org/en/main/releases/single-page/article/first-production-release-of-openscada-070</link>
			<description>First production release is targeted for wide implementation to automations solutions for platforms...</description>
			<content:encoded><![CDATA[<p class="indent10">&nbsp;</p><div style="text-align: center; "><h1 style="margin: 0px; padding: 2px 0px 7px; font-family: Verdana; font-size: 23px; line-height: 25px; color: rgb(51, 51, 51); ">OpenSCADA 0.7.0 LTS</h1></div><h2 style="margin: 20px 0px 5px; padding: 0px; font-family: Verdana; font-size: 20px; border-bottom: 3px dotted rgb(221, 221, 221); ">Changes</h2><ul style="margin: 0px 0px 5px; "><li>24.10.2010 - Production release 0.7.0.</li><li>19.12.2010 - The&nbsp;first planed update of&nbsp;production release. Fixed about&nbsp;30 bugs.</li><li>01.03.2011 - The second planed update of&nbsp;production release. Fixed more 30 bugs.</li><li>09.05.2011 - The third planed update of&nbsp;production release. Fixed more 30 bugs.</li><li>09.07.2011 - The fourth planed update of&nbsp;production release. Fixed more 15 bugs and append some improve.</li><li>12.10.2011 - The fifth planed update of&nbsp;production release. Fixed more 50 bugs and append some improve.</li></ul><h2 style="margin: 20px 0px 5px; padding: 0px; font-family: Verdana; font-size: 20px; border-bottom: 3px dotted rgb(221, 221, 221); ">Introduction</h2>
<p id="p38812-3" style="font-family: Verdana; font-size: 13px; margin: 0px; padding: 0px; " class="indent10 auto align-justify">The release of an open SCADA (Supervisory control and data acquisition) system of version 0.7.0 is the first stable, industrial release, which is associated with the completion of beta testing that began from version 0.6.4.</p>
<p id="p38812-3" style="font-family: Verdana; font-size: 13px; margin: 0px; padding: 0px; " class="indent10 auto align-justify">The main purpose of this release is providing the community of users and developers of free software with the platform for the solutions of complex automation systems and related solutions, as well as providing commercial services on the basis of the OpenSCADA project.</p>
<p id="p38812-3" style="font-family: Verdana; font-size: 13px; margin: 0px; padding: 0px; " class="indent10 auto align-justify">This release is the first stable release, for which technical support is available from the developers and for which it is planned to release fixes during a long time.</p>
<p id="p38812-3" style="font-family: Verdana; font-size: 13px; margin: 0px; padding: 0px; " class="indent10 auto align-justify">This document is the processing (compilation) of &lt;ChangeLog&gt; document of the OpenSCADA system version 0.6.4, which is designed to cover brief and clear the new features of the OpenSCADA system. To get acquainted with all the changes in the OpenSCADA system it is possible in the file ChangeLog from the distribution kit of the system, or here (RU):&nbsp;<span style="color: rgb(0, 51, 153); text-decoration: none; "><a href="http://wiki.oscada.org/Works/ChangeLog" target="_blank" class="outerlink" >http://wiki.oscada.org/Works/ChangeLog</a></span>.</p>
<p id="p38812-3" style="font-family: Verdana; font-size: 13px; margin: 0px; padding: 0px; " class="indent10 auto align-justify">The key features of this version are:</p><ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px; "><li style="font-family: Verdana; font-size: 13px; ">Implementation of planned tasks.</li><li style="font-family: Verdana; font-size: 13px; ">Optimization, increasing of stability, sustainability and system performance.</li><li style="font-family: Verdana; font-size: 13px; ">Improvement and stabilization of the VCA.</li><li style="font-family: Verdana; font-size: 13px; ">Formation and stabilization of the user programming API.</li><li style="font-family: Verdana; font-size: 13px; ">System-wide expansions.</li><li style="font-family: Verdana; font-size: 13px; ">Significant improvements and fixes of individual modules.</li><li style="font-family: Verdana; font-size: 13px; ">Formation of the documentation and translations of documentation and interface.</li><li style="font-family: Verdana; font-size: 13px; ">Unification of the demo database.</li></ul><p id="p38812-8" style="font-family: Verdana; font-size: 13px; margin: 0px; padding: 0px; " class="auto indent10">&nbsp;</p>
<p id="p38812-8" style="font-family: Verdana; font-size: 13px; margin: 0px; padding: 0px; " class="auto indent10">New and updated modules:</p><ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px; "><li style="font-family: Verdana; font-size: 13px; ">Archive.FSArch - 1.3.1 -&gt; 1.4.1, fixes and enhancements to improve performance;</li><li style="font-family: Verdana; font-size: 13px; ">Archive.DBArch - 0.9.0 -&gt; 0.9.2, fixes and some improvements;</li><li style="font-family: Verdana; font-size: 13px; ">DB.DBF - 2.0.1 -&gt; 2.0.2, fixes;</li><li style="font-family: Verdana; font-size: 13px; ">DB.MySQL - 1.6.1 -&gt; 1.6.2, some improvements;</li><li style="font-family: Verdana; font-size: 13px; ">DB.SQLite - 1.6.1 -&gt; 1.6.2, improvements;</li><li style="font-family: Verdana; font-size: 13px; ">DB.FireBird - 0.9.1 -&gt; 0.9.5, significant improvements;</li><li style="font-family: Verdana; font-size: 13px; ">DB.PostgreSQL - 0.9.0, new module;</li><li style="font-family: Verdana; font-size: 13px; ">DAQ.DiamondBoards - 1.2.0 -&gt; 1.2.1, API change adaptation;</li><li style="font-family: Verdana; font-size: 13px; ">DAQ.System - 1.7.0 -&gt; 1.7.2, code cleanup and API change adaptation;</li><li style="font-family: Verdana; font-size: 13px; ">DAQ.BlockCalc - 1.2.1 -&gt; 1.4.0, improvements and fixes;</li><li style="font-family: Verdana; font-size: 13px; ">DAQ.JavaLikeCalc - 1.5.0 -&gt; 1.8.0, significant improvements, bug fixes and optimization;</li><li style="font-family: Verdana; font-size: 13px; ">DAQ.LogicLev - 1.0.1 -&gt; 1.1.2, improvements and fixes;</li><li style="font-family: Verdana; font-size: 13px; ">DAQ.SNMP - 0.4.0 -&gt; 0.4.1, API change adaptation;</li><li style="font-family: Verdana; font-size: 13px; ">DAQ.Siemens - 1.2.1 -&gt; 1.2.3, fixes and API change adaptation;</li><li style="font-family: Verdana; font-size: 13px; ">DAQ.ModBus - 1.0.1 -&gt; 1.1.1, improvements and fixes;</li><li style="font-family: Verdana; font-size: 13px; ">DAQ.DCON - 0.3.0 -&gt; 0.3.3, improvements and fixes;</li><li style="font-family: Verdana; font-size: 13px; ">DAQ.ICP_DAS - 0.5.0 -&gt; 0.7.2, significant improvements and fixes;</li><li style="font-family: Verdana; font-size: 13px; ">DAQ.DAQGate - 0.8.0 -&gt; 0.9.1, significant improvements and fixes;</li><li style="font-family: Verdana; font-size: 13px; ">DAQ.SoundCard - 0.6.0 -&gt; 0.6.1, API change adaptation;</li><li style="font-family: Verdana; font-size: 13px; ">DAQ.OPC_UA - 0.6.0, mew module;</li><li style="font-family: Verdana; font-size: 13px; ">Transport.Sockets - 1.4.0 -&gt; 1.4.5, improvements and fixes;</li><li style="font-family: Verdana; font-size: 13px; ">Transport.SSL - 0.8.2 -&gt; 0.9.5, improvements and fixes;</li><li style="font-family: Verdana; font-size: 13px; ">Transport.Serial - 0.5.0 -&gt; 0.7.1, significant improvements and fixes;</li><li style="font-family: Verdana; font-size: 13px; ">Protocol.HTTP - 1.4.1 -&gt; 1.5.0, significant improvements;</li><li style="font-family: Verdana; font-size: 13px; ">Protocol.SelfSystem - 0.9.1 -&gt; 0.9.3, fixes and API change adaptation;</li><li style="font-family: Verdana; font-size: 13px; ">Protocol.UserProtocol - 0.6.0, new module;</li><li style="font-family: Verdana; font-size: 13px; ">Protocol.ModBus - 0.5.0 -&gt; 0.6.1, improvements and fixes;</li><li style="font-family: Verdana; font-size: 13px; ">Protocol.OPC_UA - 0.6.0, new module;</li><li style="font-family: Verdana; font-size: 13px; ">Special.FLibComplex1 - 1.0.4 -&gt; 1.0.6, improvements and fixes;</li><li style="font-family: Verdana; font-size: 13px; ">Special.FLibMath - 0.5.1 -&gt; 0.5.2, API change adaptation;</li><li style="font-family: Verdana; font-size: 13px; ">Special.FLibSYS - 0.9.0 -&gt; 0.9.2, improvements and fixes;</li><li style="font-family: Verdana; font-size: 13px; ">Special.SystemTests - 1.3.7 -&gt; 1.5.0, remaking and the unification of the tests;</li><li style="font-family: Verdana; font-size: 13px; ">UI.QTStarter - 1.5.3 -&gt; 1.6.0, improvements;</li><li style="font-family: Verdana; font-size: 13px; ">UI.QTCfg - 1.8.1 -&gt; 1.9.0, significant improvements and fixes;</li><li style="font-family: Verdana; font-size: 13px; ">UI.WebCfg - 1.5.3 -&gt; 1.5.4, fixes and API change adaptation;</li><li style="font-family: Verdana; font-size: 13px; ">UI.WebCfgD - 0.6.2 -&gt; 0.6.5, fixes;</li><li style="font-family: Verdana; font-size: 13px; ">UI.VCAEngine - 0.9.0 -&gt; 1.0.0, significant improvements, bug fixes and optimization;</li><li style="font-family: Verdana; font-size: 13px; ">UI.Vision - 0.9.0 -&gt; 1.0.0, significant improvements, bug fixes and optimization;</li><li style="font-family: Verdana; font-size: 13px; ">UI.WebVision - 0.7.0 -&gt; 0.9.0, significant improvements and fixes;</li><li style="font-family: Verdana; font-size: 13px; ">UI.WebUser - 0.6.0, new module;</li></ul><p class="bodytext"><span style="color: rgb(0, 51, 153); text-decoration: none; "><a name="h1023-3"></a></span></p>
<h2 style="margin: 20px 0px 5px; padding: 0px; font-family: Verdana; font-size: 20px; border-bottom: 3px dotted rgb(221, 221, 221); ">1 Implementation of planned tasks</h2>
<p id="p38812-9" style="font-family: Verdana; font-size: 13px; margin: 0px; padding: 0px; " class="indent10 auto align-justify">In accordance with the plan of release the following tasks were implemented:</p><ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px; "><li style="font-family: Verdana; font-size: 13px; "><em>Implementation of the primitives &quot;Link&quot; and &quot;Function&quot; of the VCA.</em>&nbsp;- In a view of the unprincipled to the industrial release and unclaimed at the moment, this task has been moved beyond the first industrial release.</li><li style="font-family: Verdana; font-size: 13px; "><em>The stabilization and release of industrial branch of OpenSCADA.</em>&nbsp;- The big work on stabilization and optimization of the industrial release was done, as detailed in the next section.</li><li style="font-family: Verdana; font-size: 13px; "><em>Implementation of the database ODBC module, PostgresSQL and transport module of the DB.</em>&nbsp;- Maxim Lysenko has done the implementation of the &quot;PostgreSQL&quot; DB module. Implementation of the database module &quot;ODBC&quot; was considered inappropriate, because the &quot;ODBC&quot; technology is actually the interface of SQL-queries that do not address specific SQL-dialects of the real database, and therefore can not be right, without regard to the type of database, used in solving OpenSCADA basic tasks. The prospect of using &quot;ODBC&quot; is to implement access to the database that have no &quot;native&quot; API of direct access to the database, but there is the ODBC driver, or to provide a simple interface of SQL-queries in OpenSCADA. The implementation of the transport module of DB was moved beyond the first industrial release.</li><li style="font-family: Verdana; font-size: 13px; "><em>Implementation of the new mechanism/module of OpenSCADA system's test.</em>&nbsp;- To perform the intra-system tests of OpenSCADA the mechanism of testing module was implemented as the user's API functions, which on the one hand retains the possibility of an autonomous call of static tests and on the other it provides an opportunity to call tests one by one, manually, as well as from user's scripts in any order and with the necessary number of individual tasks.</li></ul><p class="bodytext"><span style="color: rgb(0, 51, 153); text-decoration: none; "><a name="h1023-4"></a></span></p>
<h2 style="margin: 20px 0px 5px; padding: 0px; font-family: Verdana; font-size: 20px; border-bottom: 3px dotted rgb(221, 221, 221); ">2 Optimization, increasing of stability, sustainability and system's performance.</h2>
<p id="p38812-10" style="font-family: Verdana; font-size: 13px; margin: 0px; padding: 0px; " class="align-justify auto indent10">During the work on this version, as well as its practical adaptation, it was found and corrected in a total of about 200 errors.</p>
<p id="p38812-10" style="font-family: Verdana; font-size: 13px; margin: 0px; padding: 0px; " class="align-justify auto indent10">In addition to correcting of big number of errors it had been done the work on optimization of the various OpenSCADA's components. Especially, notable optimization was made in the Visual Control Area (VCA) and its visualizers.</p>
<p id="p38812-10" style="font-family: Verdana; font-size: 13px; margin: 0px; padding: 0px; " class="align-justify auto indent10">Lets list the most significant errors, correction of which significantly affected the increasing of stability:</p><ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px; "><li style="font-family: Verdana; font-size: 13px; "><em>System-wide</em>:<ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px; "><li style="font-family: Verdana; font-size: 13px; ">The incorrect setting of policy for real-time threads is fixed. It has not been set the PTHREAD_EXPLICIT_SCHED thread flag.</li><li style="font-family: Verdana; font-size: 13px; ">The control of dual capture of the resource in the single thread and capture the resource by timeout.</li><li style="font-family: Verdana; font-size: 13px; ">Mechanism to prevent the multiple startup is corrected for verification of PID of the blocked process due to removal by the system the lock-files in the directory /tmp.</li><li style="font-family: Verdana; font-size: 13px; ">The packing of classes structure's data using the # pragma pack (push, 1) is disabled because of the appearance of implicit buzz bug of one of the threads and blocking the rest on the OpenSCADA firmware of LP8x81 PLC.</li><li style="font-family: Verdana; font-size: 13px; ">Initialization and updating code of modules is updated to avoid the double initialization of shared libraries.</li><li style="font-family: Verdana; font-size: 13px; ">The function of the task creation is corrected to prevent crashing when creating the automatically closed tasks during the rapid closing.</li><li style="font-family: Verdana; font-size: 13px; ">The hang of function cron() is fixed at reason zero scheduling set.</li></ul></li><li style="font-family: Verdana; font-size: 13px; "><em>Transports</em>:<ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px; "><li style="font-family: Verdana; font-size: 13px; "><em>Serial, DAQ.DCON, DAQ.ModBus</em>: Transport of the serial interface is optimized, is made the typical one and is corrected for several errors. The transport's clients are adapted to use the new mechanism.</li><li style="font-family: Verdana; font-size: 13px; "><em>Sockets, SSL</em>: The possibility of incomplete recording by the write() function is fixed. When writing to the socket, this function writes only the part of the size of its buffer (50k). For complete record of large messages the repeat of record is added.</li><li style="font-family: Verdana; font-size: 13px; "><em>Transport.SSL:</em>&nbsp;It is finally fixed the waiting for data response from the server by waiting the data processing in the BIO_read() functions.</li><li style="font-family: Verdana; font-size: 13px; "><em>Transport.Sockets:</em>&nbsp;The processing of null result of the waiting the tail of messages is fixed to avoid hangs on the queries in DAQ.System.HDDTemp.</li><li style="font-family: Verdana; font-size: 13px; "><em>Transport.Serial:</em>&nbsp;CSTOPB flag using for stop bits number set is fixed.</li></ul><span style="color: rgb(0, 51, 153); text-decoration: none; "><a name="p38812-13"></a></span><p id="p38812-13" class="auto" style="font-family: Verdana; font-size: 13px; margin: 0px; padding: 0px; ">*&nbsp;<em>Data acquisition</em>:</p><ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px; "><li style="font-family: Verdana; font-size: 13px; "><em>ModBus</em>: The loss of resources during the data acquisition if fixed. For this reason it is excluded the possibility of assigning the string directly to the object of the resource string.</li><li style="font-family: Verdana; font-size: 13px; "><em>JavaLikeCalc</em>: The using of functions for the parameters of the DAQ controllers from the IO functions for first use is fixed.</li><li style="font-family: Verdana; font-size: 13px; "><em>DAQ, BlockCalc, JavaLikeCalc, LogicLev, Siemens</em>: The receiving of the erroneous data on the redundancy scheme in the nonredundant tasks and with the absence of redundant stations is fixed.</li></ul></li><li style="font-family: Verdana; font-size: 13px; "><em>Protocol.HTTP, UI.WebCfg, UI.WebCfgD, UI.WebUser, UI.Vision:</em>&nbsp;The value of the HTTP-parameter &quot;Content-Type&quot; is fixed for the &quot;Charset&quot; element.</li><li style="font-family: Verdana; font-size: 13px; "><em>UI.VCAEngine:</em>&nbsp;The crash of the VCA when changing the mutable attributes, that are multiply inherited, is fixed.</li></ul><p id="p38812-14" style="font-family: Verdana; font-size: 13px; margin: 0px; padding: 0px; " class="auto indent10">&nbsp;</p>
<p id="p38812-14" style="font-family: Verdana; font-size: 13px; margin: 0px; padding: 0px; " class="auto indent10">Optimization and performance improvement:</p><ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px; "><li style="font-family: Verdana; font-size: 13px; "><em>SYS.XML</em>: Conversion function of an XML tree into a string is optimized over the time.</li><li style="font-family: Verdana; font-size: 13px; "><em>SYS.Archive</em>: The mechanism for adaptive generation of requests to the archives of various qualities in the case of a general request is added. It prevents the long processing time in the case of requesting the large intervals of time and the availability of lower quality archives.</li><li style="font-family: Verdana; font-size: 13px; "><em>DAQ, DAQ.DAQGate</em>: Optimization of request between redundant stations over the requests' size and time is done. Only archive attributes of DAQ parameters and attributes, planned to request, are requested.</li><li style="font-family: Verdana; font-size: 13px; "><em>Archive.FSArch</em>: The creation of information files of the packaged archives without storing these data in the database is added. This feature allows quick connection of large archives to other stations.</li><li style="font-family: Verdana; font-size: 13px; "><em>UI.Vision</em>: In the &quot;ElFigure&quot; primitive for the drawing it is used QPixmap instead of QImage, it greatly improved the performance.</li><li style="font-family: Verdana; font-size: 13px; "><em>UI.Vision</em>: To construct the image of the &quot;Diagram&quot; primitive the QImage is used instead of QPicture, it greatly improved the performance.</li><li style="font-family: Verdana; font-size: 13px; "><em>TFunction, DAQ.JavaLikeCalc</em>: The enclosed context of the functions is added in order to improve the performance of external calls.</li></ul><p id="p38812-15" style="font-family: Verdana; font-size: 13px; margin: 0px; padding: 0px; " class="auto indent10">&nbsp;</p>
<p id="p38812-15" style="font-family: Verdana; font-size: 13px; margin: 0px; padding: 0px; " class="auto indent10">Optimization of the memory usage:</p><ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px; "><li style="font-family: Verdana; font-size: 13px; "><em>SYS</em>: The system is switched to the traditional &quot;map&quot; instead of &quot;hash_map&quot; for all objects in order to reduce memory consumption.</li><li style="font-family: Verdana; font-size: 13px; "><em>UI.VCAEngine</em>: The object of the &quot;Attr&quot; attribute is divorced from the &quot;TCntrNode&quot; object in order to reduce memory consumption by up to 25%.</li></ul><p class="bodytext"><span style="color: rgb(0, 51, 153); text-decoration: none; "><a name="h1023-5"></a></span></p>
<h2 style="margin: 20px 0px 5px; padding: 0px; font-family: Verdana; font-size: 20px; border-bottom: 3px dotted rgb(221, 221, 221); ">3 Improvement and stabilization of the VCA.</h2>
<p id="p38812-16" style="font-family: Verdana; font-size: 13px; margin: 0px; padding: 0px; " class="indent10 auto align-justify">Notable changes were made in the visual control area (VCA), namely, in the VCA engine (UI.VCAEngine) modules: UI.Vision and UI.WebVision visualizers. These changes were aimed at stabilizing, optimization of memory consumption and improvement of user's properties of VCA.</p>
<p id="p38812-17" style="font-family: Verdana; font-size: 13px; margin: 0px; padding: 0px; " class="indent10 auto align-justify">Improvements of the VCA:</p><ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px; "><li style="font-family: Verdana; font-size: 13px; ">The full support for vertical scaling of the diagrams is added.</li><li style="font-family: Verdana; font-size: 13px; ">The support for alpha channel in color attributes of all primitives is added.</li><li style="font-family: Verdana; font-size: 13px; "><em>UI.VCAEngine</em>:<ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px; "><li style="font-family: Verdana; font-size: 13px; ">It is included and made safe the inheritance of the description of mutable attributes.</li><li style="font-family: Verdana; font-size: 13px; ">The new user's API functions for the sessions are added: wdgAdd(), wdgDel(), link() and linkSet(). Addition of these functions allowed to implement the concept of a fully dynamic formation of the user interface.</li><li style="font-family: Verdana; font-size: 13px; ">Properties of access rights to the widget are implemented by the attributes &quot;owner&quot; and &quot;perm&quot; to increase the flexibility of control.</li><li style="font-family: Verdana; font-size: 13px; ">The mechanism for automatically creating and running session at startup is added.</li></ul></li><li style="font-family: Verdana; font-size: 13px; "><em>UI.Vision</em>:<ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px; "><li style="font-family: Verdana; font-size: 13px; ">In the attributes inspector the ability of group setting of same attributes of various widgets is added. Setting is done in the group container of the properties of attributes' inspector that appears when you select multiple widgets simultaneously.</li><li style="font-family: Verdana; font-size: 13px; ">In the &quot;ElFigure&quot; primitive for the drawing the QPixmap is used instead of QImage, it greatly improved the performance.</li><li style="font-family: Verdana; font-size: 13px; ">To construct the image of the &quot;Diagram&quot; primitive The QImage is used instead of QPicture, it greatly improved performance.</li><li style="font-family: Verdana; font-size: 13px; ">The support of properties of the user interface is added. The control and changing of the toolbar icons' size is added.</li><li style="font-family: Verdana; font-size: 13px; ">The ability to copy the values of attributes and links through the context menu of attributes' and links' inspectors is added.</li><li style="font-family: Verdana; font-size: 13px; ">The search function in the &quot;TextEdit&quot; element is added.</li></ul></li><li style="font-family: Verdana; font-size: 13px; "><em>UI.WebVision</em>:<ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px; "><li style="font-family: Verdana; font-size: 13px; ">The support of turning the &quot;Text&quot; primitive is added.</li><li style="font-family: Verdana; font-size: 13px; ">The generation of the basic mouse events is added. For processing of some events the stack of processing functions is added.</li><li style="font-family: Verdana; font-size: 13px; ">For the sender-user the access to its session and control is adapted.</li></ul></li></ul><p class="bodytext"><span style="color: rgb(0, 51, 153); text-decoration: none; "><a name="h1023-6"></a></span></p>
<h2 style="margin: 20px 0px 5px; padding: 0px; font-family: Verdana; font-size: 20px; border-bottom: 3px dotted rgb(221, 221, 221); ">4 Formation and stabilization of API of user's programming.</h2>
<p id="p38812-18" style="font-family: Verdana; font-size: 13px; margin: 0px; padding: 0px; " class="indent10 auto align-justify">Extensively it has been made the formation of new object API of the user's programming, which provides the integration of user's functions in the objects' tree of OpenSCADA. In addition, a number of changes to the existing library of functions of the user's API was made.</p>
<p id="p38812-19" style="font-family: Verdana; font-size: 13px; margin: 0px; padding: 0px; " class="auto indent10">In particular the following changes were done:</p><ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px; "><li style="font-family: Verdana; font-size: 13px; "><em>SYS</em>:<ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px; "><li style="font-family: Verdana; font-size: 13px; "><em>SYS, Special.FLibSYS</em>: XMLNodeObj object of the user's API moved into the OpenSCADA core (tvariant.h and tvariant.cpp files).</li><li style="font-family: Verdana; font-size: 13px; ">User's system API of OpenSCADA based on the TCntrNodeObj object is expanded to control the user's access rights.</li><li style="font-family: Verdana; font-size: 13px; ">TAreaObj object is renamed to TArrayObj.</li><li style="font-family: Verdana; font-size: 13px; ">Properties of objects, functions' calls and exceptions' processing of user's API are unified.</li><li style="font-family: Verdana; font-size: 13px; "><em>SYS.TVarObj</em>: The propList() function is added to provide an ability to scan the attributes.</li></ul></li><li style="font-family: Verdana; font-size: 13px; "><em>DAQ.JavaLikeCalc</em>:<ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px; "><li style="font-family: Verdana; font-size: 13px; ">Functions of the user's API: insert(), replace(), toReal(), toInt(), parse(), parsePath() and path2sep() are added in the object of the string type value.</li><li style="font-family: Verdana; font-size: 13px; ">The isEVal() function is added to basic types in order to detect the EVAL-values.</li></ul></li><li style="font-family: Verdana; font-size: 13px; "><em>Special.FLibComplex1</em>: PID function is expanded with new parameters: Kd, Tzd and followSp. The Tf parameter is removed.</li><li style="font-family: Verdana; font-size: 13px; "><em>Object API of the user's programming</em>:<ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px; "><li style="font-family: Verdana; font-size: 13px; "><em>SYS</em>: User's API functions: system(), message(), XMLNode(), cntrReq(), time(), localtime(), strftime(), strptime(), cron(), messDebug(), messInfo(), messNote(), messWarning(), messErr(), messCrit(), messAlert(), messEmerg() и strFromCharCode() are added to the root object of the OpenSCADA core.</li><li style="font-family: Verdana; font-size: 13px; "><em>DB</em>: SQLReq() user's API function is added to the database object.</li><li style="font-family: Verdana; font-size: 13px; "><em>Transport</em>: messIO() user's API function is added to the object of the outgoing transport.</li><li style="font-family: Verdana; font-size: 13px; "><em>UI.VCAEngine</em>:<ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px; "><li style="font-family: Verdana; font-size: 13px; ">User's API functions: user(), alrmSndPlay() and alrmQuittance() are added to the session's object of the project.</li><li style="font-family: Verdana; font-size: 13px; ">To the &quot;Widget&quot; object the functions of user's API were added: ownerSess(), ownerPage(), ownerWdg(), attrPresent(), attr(), attrSet(), wdgAdd(), wdgDel(), link() and linkSet().</li><li style="font-family: Verdana; font-size: 13px; ">The special attribute &quot;this&quot; is added into all VCA's scripts to access the widget's object and further calling of its functions of user's API.</li></ul></li><li style="font-family: Verdana; font-size: 13px; "><em>Archives</em>: messGet() user's API function is added to the object of subsystem &quot;Archives&quot;.</li><li style="font-family: Verdana; font-size: 13px; "><em>DAQ.Value</em>: The functions of user's API get() and set() of the attribute are added.</li></ul></li></ul><p class="bodytext"><span style="color: rgb(0, 51, 153); text-decoration: none; "><a name="h1023-7"></a></span></p>
<h2 style="margin: 20px 0px 5px; padding: 0px; font-family: Verdana; font-size: 20px; border-bottom: 3px dotted rgb(221, 221, 221); ">5 System-wide expansions.</h2>
<p id="p38812-20" style="font-family: Verdana; font-size: 13px; margin: 0px; padding: 0px; " class="align-justify auto indent10">To the system-wide API of OpenSCADA system there have been made the significant changes and expansions in order to improve the functionality and overall stabilization:</p><ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px; "><li style="font-family: Verdana; font-size: 13px; "><em>SYS</em>:<ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px; "><li style="font-family: Verdana; font-size: 13px; ">The mechanism to prevent re-run is added to the scripts: demo-start and user-start.</li><li style="font-family: Verdana; font-size: 13px; ">The global functions to create (register) taskCreate () and to close taskDestroy () of the treads are added. All components of OpenSCADA use new API.</li><li style="font-family: Verdana; font-size: 13px; ">The debian/* files for support the building of Debian packages are added.</li><li style="font-family: Verdana; font-size: 13px; ">The strParse() function is added for the expansion of the strSepParse() function in order to support of multi-character separators and for the integration of single-character ones.</li><li style="font-family: Verdana; font-size: 13px; ">The infrastructure of the debugging counters is added.</li><li style="font-family: Verdana; font-size: 13px; ">The ability to assign processors to the threads of OpenSCADA on multi-processor systems and multi-core processors is added.</li><li style="font-family: Verdana; font-size: 13px; ">The task manager is added. The id field of the thread's process is added to the task manager.</li><li style="font-family: Verdana; font-size: 13px; ">To implement specific functions the wrapper on the tasks of OpenSCADA is added. The &quot;TError&quot; exceptions' processing is added for the tasks inside the wrapper.</li><li style="font-family: Verdana; font-size: 13px; ">The core's code of the OpenSCADA is placed in the &quot;OSCADA&quot; scope. Version of the OpenSCADA's сore library is increased to 1:0:0.</li><li style="font-family: Verdana; font-size: 13px; ">The rules of access to all elements of the control interface are unified.</li><li style="font-family: Verdana; font-size: 13px; ">The check for a version 2.0 of the libtool library is added. It is enabled the building of only shared libraries for modules.</li><li style="font-family: Verdana; font-size: 13px; ">The ID of the module is placed in the class of the constructor to simplify initialization of translating the text messages of the modules.</li><li style="font-family: Verdana; font-size: 13px; ">For all translations the parameters &quot;-C --no-location --no-wrap -k_&quot; of the xgettext utility are used. It is used for cleaning the garbage from the translation files.</li><li style="font-family: Verdana; font-size: 13px; ">API versions of the all modular sub-systems are set to 5.</li></ul></li><li style="font-family: Verdana; font-size: 13px; "><em>SYS.Function, DAQ.BlockCalc, DAQ.LogicLev, UI.VCAEngine</em>: The mechanism for changes' monitoring in the parameters of &quot;DAQ&quot; subsystem's controller is added.</li><li style="font-family: Verdana; font-size: 13px; "><em>DB</em>:<ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px; "><li style="font-family: Verdana; font-size: 13px; ">The automatic opening of the available tables on request to them is added.</li><li style="font-family: Verdana; font-size: 13px; ">The transaction control is added to the function sqlReq(), as well as the function transCloseCheck() is added.</li></ul></li><li style="font-family: Verdana; font-size: 13px; "><em>TFunction, DAQ.JavaLikeCalc</em>: The enclosed сontext of functions is added in order to improve the performance of external calls.</li><li style="font-family: Verdana; font-size: 13px; "><em>DAQ</em>: The error code is added to the state of the controller, which allows us to identify state and display it.</li><li style="font-family: Verdana; font-size: 13px; "><em>Protocol, Transport, DAQ.ModBus, Protocol.UserProtocol</em>: The function itemListIn() is added to select elements of a protocol. The module's API of the subsystem is changed to 3. The selection of protocol's elements via the function TProtocol::itemListIn() is added.</li></ul><p class="bodytext"><span style="color: rgb(0, 51, 153); text-decoration: none; "><a name="h1023-8"></a></span></p>
<h2 style="margin: 20px 0px 5px; padding: 0px; font-family: Verdana; font-size: 20px; border-bottom: 3px dotted rgb(221, 221, 221); ">6 Significant improvements and fixes of the individual modules.</h2>
<p id="p38812-21" style="font-family: Verdana; font-size: 13px; margin: 0px; padding: 0px; " class="indent10 auto align-justify">While working on this industrial release the significant changes, improvements and stabilization were made with the individual modules of OpenSCADA:</p><ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px; "><li style="font-family: Verdana; font-size: 13px; "><em>DB.MySQL</em>:<ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px; "><li style="font-family: Verdana; font-size: 13px; ">The support for unbounded values of &quot;Real&quot; and &quot;Integer&quot; data types is added.</li><li style="font-family: Verdana; font-size: 13px; ">The conversion of EVAL for the real type is added.</li></ul></li><li style="font-family: Verdana; font-size: 13px; "><em>DB.SQLite</em>: The transaction mechanism is improved to support user's SQL-queries and closing the old transactions.</li><li style="font-family: Verdana; font-size: 13px; "><em>DB.FireBird</em>: The support for multilingual text variables is added. The support of transactions is unified.</li><li style="font-family: Verdana; font-size: 13px; "><em>DAQ</em>:<ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px; "><li style="font-family: Verdana; font-size: 13px; "><em>DAQGate</em>: The support of ability to request the individual attributes is added. It is used to request the archived and often requested attributes. All other attributes are requested with the period of synchronization by a full request. It is used to reduce the workload and time in exchange of DAQGate with a remote OpenSCADA station.</li><li style="font-family: Verdana; font-size: 13px; "><em>ICP_DAS</em>: The status of the DIP-switch for LP-8781 PLC is added. The functions to send the messages via the serial interface are moved into the general serReq() function and all requests use it.</li><li style="font-family: Verdana; font-size: 13px; "><em>ModBus</em>: The suffixes &quot;i2, i4, f, b0&quot; are added to the registers (R and RI) for flexible access through a variety of data types.</li><li style="font-family: Verdana; font-size: 13px; "><em>JavaLikeCalc</em>:<ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px; "><li style="font-family: Verdana; font-size: 13px; ">The support of the review loop &quot;for( &lt;i&gt; in &lt;obj&gt; ) &lt;code&gt;;&quot; to scan the object's properties is added.</li><li style="font-family: Verdana; font-size: 13px; ">Properties of objects, functions' calls and exceptions' processing of user's API are unified.</li></ul></li></ul></li><li style="font-family: Verdana; font-size: 13px; "><em>Transport</em>:<ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px; "><li style="font-family: Verdana; font-size: 13px; "><em>Serial</em>:<ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px; "><li style="font-family: Verdana; font-size: 13px; ">The ability to select the type of the thread's control is added. It is supported the hardware (CRTSCTS) and software (IXON IXOFF) thread's control.</li><li style="font-family: Verdana; font-size: 13px; ">The support of the modem mode for all input and output transports is added.</li></ul></li><li style="font-family: Verdana; font-size: 13px; "><em>SSL</em>:<ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px; "><li style="font-family: Verdana; font-size: 13px; ">The support of KeepAlive limits is added. The support of reconnection after the connection loss for prevention the loss of messages is added.</li><li style="font-family: Verdana; font-size: 13px; ">The getting of the sender's address is added.</li></ul></li><li style="font-family: Verdana; font-size: 13px; "><em>SSL, Sockets</em>: In the outgoing transport it is added the timings for the individual connection time and time of the subsequent responses control.</li><li style="font-family: Verdana; font-size: 13px; "><em>Protocol.HTTP</em>:<ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px; "><li style="font-family: Verdana; font-size: 13px; ">The function of the outgoing protocol is added.</li><li style="font-family: Verdana; font-size: 13px; ">The support of automatic login is added.</li></ul></li></ul></li><li style="font-family: Verdana; font-size: 13px; "><em>Archive.FSArch</em>: The creation of information files of packaged archives is added without storing these data in the database. This feature allows quick connection of large archives to other stations.</li><li style="font-family: Verdana; font-size: 13px; "><em>UI.QTCfg</em>:<ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px; "><li style="font-family: Verdana; font-size: 13px; ">The adjustment of rows for tables after adding the new rows is added. The support for copying the contents of the table to the clipboard is added.</li><li style="font-family: Verdana; font-size: 13px; ">The search function in the &quot;TextEdit&quot; element is added.</li><li style="font-family: Verdana; font-size: 13px; ">The ability to copy the list of selected nodes is added.</li></ul></li></ul><p class="bodytext"><span style="color: rgb(0, 51, 153); text-decoration: none; "><a name="h1023-9"></a></span></p>
<h2 style="margin: 20px 0px 5px; padding: 0px; font-family: Verdana; font-size: 20px; border-bottom: 3px dotted rgb(221, 221, 221); ">7 Formation of the documentation, translation of documentation and interface.</h2>
<p id="p38812-22" style="font-family: Verdana; font-size: 13px; margin: 0px; padding: 0px; " class="indent10 auto align-justify">Since this release is positioned as an industrial release with a prolonged period of support, it was finished writing the documentation in Russian and translation into English of all the main documentation. In addition, the translation of the user's interface into English, Russian, Ukrainian and German languages is completed:</p><ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px; "><li style="font-family: Verdana; font-size: 13px; ">The README translation into Ukrainian is added.</li><li style="font-family: Verdana; font-size: 13px; ">The translation of the DAQ document and the summarizing document into English is done.</li><li style="font-family: Verdana; font-size: 13px; ">The document &quot;Quick Start&quot; is added.</li><li style="font-family: Verdana; font-size: 13px; ">The translation of the document &quot;Quick Start&quot; into English language is added.</li><li style="font-family: Verdana; font-size: 13px; ">General document &quot;OpenSCADA&quot; in English is updated to include the following parts: &quot;Quick Start&quot; and DAQ.OPC_UA.</li><li style="font-family: Verdana; font-size: 13px; ">The interface translation of the system core to Russian, Ukrainian and German languages is updated.</li><li style="font-family: Verdana; font-size: 13px; ">For all translations the parameters &quot;-C - no-location - no-wrap-k_&quot; of the xgettext utility are used. It is used for cleaning the garbage from the translation files.</li></ul><p class="bodytext"><span style="color: rgb(0, 51, 153); text-decoration: none; "><a name="h1023-10"></a></span></p>
<h2 style="margin: 20px 0px 5px; padding: 0px; font-family: Verdana; font-size: 20px; border-bottom: 3px dotted rgb(221, 221, 221); ">8 Unification of the demonstration database.</h2>
<p id="p38812-23" style="font-family: Verdana; font-size: 13px; margin: 0px; padding: 0px; " class="indent10 auto align-justify">During the preparation of the industrial release, considerable attention was paid to improving the demo database as a vivid demonstration of the OpenSCADA system:</p><ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px; "><li style="font-family: Verdana; font-size: 13px; ">Significant upgrade to support new features and include new improvements from the automation control system of ball mills.</li><li style="font-family: Verdana; font-size: 13px; ">The support of user's calling of the demonstration database in the full mode on the record is added.</li><li style="font-family: Verdana; font-size: 13px; ">The scaling of existing elements in the case of absence of rows and/or columns for the overview frame and the result graphics is added.</li><li style="font-family: Verdana; font-size: 13px; ">It is updated to include new models of machines of technological processes and for adapt all the other models.</li><li style="font-family: Verdana; font-size: 13px; ">It is updated for:<ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px; "><li style="font-family: Verdana; font-size: 13px; ">Addition of the signaling objects of the compressors: KM201, KM301, KM202 and KM302.</li><li style="font-family: Verdana; font-size: 13px; ">Support of the manual input of variables from the control panel.</li><li style="font-family: Verdana; font-size: 13px; ">Translation's update.</li><li style="font-family: Verdana; font-size: 13px; ">Fixing of the several bugs.</li></ul></li><li style="font-family: Verdana; font-size: 13px; ">Script of the main page of the project is rewritten to use new functions of the user's API.</li><li style="font-family: Verdana; font-size: 13px; ">The new mechanism to access user's interface elements is used. The real read access for a simple user (&quot;user&quot;) is provided.</li></ul><p class="bodytext"><span style="color: rgb(0, 51, 153); text-decoration: none; "><a name="h1023-11"></a></span></p>
<h2 style="margin: 20px 0px 5px; padding: 0px; font-family: Verdana; font-size: 20px; border-bottom: 3px dotted rgb(221, 221, 221); ">9 Solutions, based on OpenSCADA</h2>
<p id="p38812-24" style="font-family: Verdana; font-size: 13px; margin: 0px; padding: 0px; " class="align-justify auto indent10">Actually the whole range of automation solutions is built on the basis of OpenSCADA project, which clearly demonstrates the capabilities and is the signal of readiness of the system for the wide industrial application.</p>
<p id="p38812-25" style="font-family: Verdana; font-size: 13px; margin: 0px; padding: 0px; " class="indent10 auto align-justify">In general, on the basis of OpenSCADA the authors of the project solved the following tasks: the full dynamic simulation (modeling) of technological processes (TP), process control at the level of the programmable logic controller (PLC) and formation of HMI of the TP.</p>
<p id="p38812-26" style="font-family: Verdana; font-size: 13px; margin: 0px; padding: 0px; " class="indent10 auto align-justify">Modelling of the TP is presented by the solutions: &quot;Library of models of technological devices&quot;, &quot;The dynamic model of real-time of the Anastasievskaja GLKS&quot; and &quot;The dynamic model of the steam boiler number 9 DMKD&quot; . Besides the solution &quot;The dynamic model of real-time of the Anastasievskaja GLKS&quot; was the basis for the demonstration project database and it is distributed with all distributions of OpenSCADA.</p>
<p id="p38812-27" style="font-family: Verdana; font-size: 13px; margin: 0px; padding: 0px; " class="indent10 auto align-justify">The scope of process control at the level of the programmable logic controller (PLC) is presented by the solution &quot;OpenSCADA into programmable logic controller (PLC)&quot; and &quot;Runtime of the PLC LP-8x81 of the ICP DAS company based on the OpenSCADA&quot;.</p>
<p id="p38812-27" style="font-family: Verdana; font-size: 13px; margin: 0px; padding: 0px; " class="indent10 auto align-justify">The scope of the formation of the TP HMI is presented by the solutions: &quot;Library of the graphic elements of the user's interfaces&quot; and &quot; ACS TP of the ball mills &quot;ШБМ 287/410&quot; of the boiler &quot;БКЗ 160–100 ПТ&quot; &quot;.</p>
<p id="p38812-27" style="font-family: Verdana; font-size: 13px; margin: 0px; padding: 0px; " class="indent10 auto align-justify">One should also note the presence of a number of solutions that are not included in the list above, and made by the developers of the system for the third parties or directly by the users.</p>
<h2 style="margin: 20px 0px 5px; padding: 0px; font-family: Verdana; font-size: 20px; border-bottom: 3px dotted rgb(221, 221, 221); ">Conclusion</h2>
<p id="p38812-30" style="font-family: Verdana; font-size: 13px; margin: 0px; padding: 0px; " class="align-justify auto indent10">OpenSCADA system is ready for practical use in harsh industrial conditions and to perform a wide range of automatic process control tasks.</p>
<p id="p38812-30" style="font-family: Verdana; font-size: 13px; margin: 0px; padding: 0px; " class="align-justify auto indent10">With the purpose to provide the quality service based on the OpenSCADA solutions, as well as for development in the direction of support the specialized equipment, protocols and interfaces, developers are actively working on the formation the policy of providing the services on the commercial basis. The list of commercial services will include: technical support, consultations and targeted development of extensions, integration and implementation of solutions, and development of customized solutions and products, based on OpenSCADA.</p>
<p id="p38812-30" style="font-family: Verdana; font-size: 13px; margin: 0px; padding: 0px; " class="align-justify auto indent10">The 0.7.0 version provides the OpenSCADA solutions only for the Linux x86 and x86_64 platforms. To implement the support of other hardware and software platforms, planned by the project, the work will continue. So, for version 0.8.0 it is planned to expand the support of hardware platforms, at least of the ARM platform, as the representative of RISC architecture.</p>
<p id="p38812-30" style="font-family: Verdana; font-size: 13px; margin: 0px; padding: 0px; " class="align-justify auto indent10">In the appearance of the first industrial version of OpenSCADA actively participated the following people:</p><ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px; "><li style="font-family: Verdana; font-size: 13px; "><span style="color: rgb(0, 51, 153); text-decoration: none; "><a title="Roman&amp;nbsp;Savochenko" href="http://wiki.oscada.org/RomanSavochenko?v=1bw8" name=".romansavochenko">Roman Savochenko</a></span>: The main works on the projecting, development, documentation's writing and testing.</li><li style="font-family: Verdana; font-size: 13px; "><span style="color: rgb(0, 51, 153); text-decoration: none; "><a title="Home&amp;nbsp;Page&amp;nbsp;En&amp;nbsp;/&amp;nbsp;Maxim&amp;nbsp;Lysenko" href="http://wiki.oscada.org/HomePageEn/MaximLysenko?v=t6q" name=".homepageen.maximlysenko">Maxim Lysenko</a></span>: Development of the &quot;ElFigure&quot; VCA primitive, creation of the DB module &quot;PostgreSQL&quot; and translation of the main part of documentation into English.</li><li style="font-family: Verdana; font-size: 13px; "><span style="color: rgb(0, 51, 153); text-decoration: none; "><a title="Yashina&amp;nbsp;Ksenia" href="http://wiki.oscada.org/YashinaKsenia?v=139q" name=".yashinaksenia">Yashina Ksenia</a></span>: Development of the &quot;ElFigure&quot; VCA primitive.</li><li style="font-family: Verdana; font-size: 13px; "><em>Попкова Ирина</em>: Translation of the system interface of OpenSCADA and its modules into German language.</li><li style="font-family: Verdana; font-size: 13px; "><em>Almaz Kharimov</em>: Development of the DCON Protocol module and active testing of the system.</li><li style="font-family: Verdana; font-size: 13px; "><span style="color: rgb(0, 51, 153); text-decoration: none; "><a title="Popkov&amp;nbsp;Aleksey" href="http://wiki.oscada.org/PopkovAleksey?v=141x" name=".popkovaleksey">Popkov Aleksey</a></span>: Active testing and participation.</li><li style="font-family: Verdana; font-size: 13px; ">Many other OpenSCADA users, via extensive testing.</li></ul>]]></content:encoded>
			<category>News</category>
			
			<author>rom_as@oscada.org</author>
			<pubDate>Mon, 07 May 2012 15:00:00 +0300</pubDate>
			
		</item>
		
		<item>
			<title>On April, 20th 2012 in Moscow city (Russia) the &quot;Open Technologies in engineering&quot; conference took place.</title>
			<link>http://oscada.org/en/news-storage/single-page/article/on-september-27-30th-2011-in-city-kiev-ukraine-the-international-innovation-forum-and-on-october-1/</link>
			<description>The report about the practice of free SCADA-systems on the example of OpenSCADA and OpenSCADA 0.8.0...</description>
			<content:encoded><![CDATA[<p class="align-justify indent10">The following OpenSCADA solutions have presented within the exhibition:</p><ul><li>The dynamic models of of technological processes and their control systems: Gas compressor station for six compressors, Steam multifuel boiler unit BKZ-160.</li><li>The model and controller (ICP_DAS) of the ACS of ball mill for coal grinding for the boilers of thermal power station.</li><li>OpenSCADA on the mobile devices: Nokia N800, N900, N950.</li><li>OpenSCADA on the industrial controllers: ICP_DAS LP-8781, Tion-Pro270.</li><li>&quot;Smart Home&quot; system on the Tion-Pro270 board.</li></ul><p class="indent10 align-justify"><span id="result_box" lang="en"><span class="hps">More thanks&nbsp;</span></span><span id="result_box" class="short_text" lang="en"><span class="hps">organizers Sergey Hotejev, Leonid Schtadnel and all </span></span>having to do<span id="result_box" class="short_text" lang="en"><span class="hps">   for the conference.</span></span></p>]]></content:encoded>
			<category>News</category>
			<category>Report</category>
			<category>Publication</category>
			
			<author>rom_as@oscada.org</author>
			<pubDate>Mon, 23 Apr 2012 10:00:00 +0300</pubDate>
			
		</item>
		
		<item>
			<title>Production release of OpenSCADA 0.8.0 LTS</title>
			<link>http://oscada.org/en/news-storage/single-page/article/production-release-of-openscada-080-lts/</link>
			<description>Production release is targeted for wide implementation to automations solutions for platforms Linux...</description>
			<content:encoded><![CDATA[<h1 class="align-center">OpenSCADA 0.8.0 LTS</h1>
<h2> Changes </h2><ul style="margin: 0px 0px 5px; "><li>06.04.2010 - Production release 0.8.0.</li></ul><h2>Introduction</h2>
<p id="p25720-4" class="align-justify auto indent10"> The release of an open SCADA (Supervisory control and data acquisition)  system of version 0.8.0 is the stable industrial release with the long  term support (LTS).</p>
<p id="p25720-4" class="indent10 auto align-justify">The main purpose of this release is providing the community of users and  developers of free software with the platform for the solutions of  complex automation systems and related solutions, as well as providing  commercial services on the basis of the OpenSCADA project.</p>
<p id="p25720-5" class="indent10 auto align-justify"> This release is the next stable release, for which technical support is  available from the developers and for which it is planned to release  fixes during a long time. The life cycle of the previous stable release  0.7.0 LTS will be terminated within one month after the 0.8.0 release by  the latest update.</p>
<p id="p25720-6" class="indent10 auto align-justify"> This document is the processing (compilation) of &lt;ChangeLog&gt;  document of the OpenSCADA system version 0.8.0, including the  intermediate working releases 0.7.1 and 0.7.2, which is designed to  cover brief and clear the new features of the OpenSCADA system. To get  acquainted with all the changes in the OpenSCADA system it is possible  in the file ChangeLog from the distribution kit of the system, or here  (RU): <a href="http://wiki.oscada.org/Works/ChangeLog" target="_blank" class="outerlink" >http://wiki.oscada.org/Works/ChangeLog</a>.</p>
<p id="p25720-7" class="auto indent10"> The key features of this version are:</p><ul><li> Implementation of planned tasks. </li><li> Optimization, increasing of stability, sustainability and system performance. </li><li> Improvement and stabilization of the VCA. </li><li> Expansion of the user programming API. </li><li> System-wide expansions. </li><li> Publication of OpenSCADA solutions.</li></ul><p id="p25720-8" class="auto indent10"> New and updated modules:</p><ul><li> <em>Archive.DBArch (0.9.5)</em> — The limits for requesting data on the request time are added as well as some more extensions. </li><li> <em>Archive.FSArch (1.5.1)</em> — Significant stabilization. The set of extensions, including: <ul><li> The files' indexes of the values' archives read performance is increased. </li><li> The adaptation of storing and reading the floating to the ARM FPA. </li><li> The limits for requesting data on the request time are added. </li><li> The limit on the total files' size of the values' archiver is added. </li></ul></li><li> <em>DB.MySQL (1.7.1)</em> — Stabilization. The ability to specify the connection timeouts is added. </li><li> <em>DB.SQLite (1.6.4)</em> — Stabilization </li><li> <em>DB.FireBird (0.9.7)</em> — Stabilization </li><li> <em>DB.PostgreSQL (0.9.2)</em> — Stabilization </li><li> <em>DAQ.DiamondBoards (1.2.5)</em> — The ability to change the parameter's type is added. Stabilization.  </li><li> <em>DAQ.System (1.7.5)</em> — Stabilization. The dependence on the library &quot;Libsensors&quot; is made the ​​optional one. The CRON scheduling of calls is added.  </li><li> <em>DAQ.BlockCalc (1.6.0)</em> — Stabilization. The set of extensions, including: <ul><li> The syntax highlighting is added. </li><li> The CRON scheduling of calls is added. </li><li> The start and stop blocks' call is added. </li><li> The support of the object parameters' type is added. </li></ul></li><li> <em>DAQ.JavaLikeCalc (2.0.0)</em> — Significant stabilization. The set of extensions, including: <ul><li> The syntax highlighting is added. </li><li> The adaptation to the ARM hardware architecture is completed. </li><li> The implementation of regular expressions and a number of  user's API extensions are added. </li><li> The ability to write the string characters using the octal &quot;\041&quot; and the hex &quot;\x21&quot; numbers is added. </li><li> The direct, dynamic call of library functions is added. </li><li> The direct association of string constants is added. </li><li> The conditional call of the expression's arguments ( the  second argument) with the logical operators ||(OR) and &amp;&amp;(AND)  is added. </li><li> The support of the data source object parameters' type is added. </li></ul></li><li> <em>DAQ.LogicLev (1.3.0)</em> — Stabilization. The set of extensions, including: <ul><li> The ability to change the parameter's type is added. </li><li> The CRON scheduling of calls is added. </li><li> The support of the object parameters' type is added. </li></ul></li><li> <em>DAQ.SNMP (0.7.0)</em> — Significant stabilization. The set of extensions, including: <ul><li> The implementation of the full support of the protocol's client-side is done. </li><li> The support of all values' types is added. </li><li> The support of the values' record is added. </li><li> An error handling is improved. </li><li> The additional connection configuration parameters are added. </li><li> The the ability to directly query the scalars is added. </li></ul></li><li> <em>DAQ.Siemens (1.4.0)</em> — Significant stabilization. The set of extensions, including: <ul><li> Library LibnoDave is updated to the 0.8.4.6 version. </li><li> The CRON scheduling of calls is added. </li><li> The reconnection function for the &quot;Industrial Ethernet&quot; connections is added. </li><li> The ISO_TCP version of the protocol is added for S7-200. </li><li> The support of the object parameters' type is added. </li><li> The &quot;ADS&quot; protocol implementation is added. </li><li> Connection errors are some unified. </li><li> The ability to set the database number and offset in hexadecimal is added. </li></ul></li><li> <em>DAQ.ModBus (1.3.0)</em> — Significant stabilization. The set of extensions, including: <ul><li>  The attributes' syntax highlighting is added. </li><li> The support for &quot;Logical&quot; parameter's type is added for the  working with template of the parameter, and also the functions of the  user's API to send arbitrary, non-standard ModBus requests from the  templates are added.  </li><li> The function of the formation the alarm messages in the controller is added and used. </li><li> The support of the function for group record (0x0F, 0x10) is added. </li><li> The option to install the block size limit of the group requests is added. </li><li> The support of the object parameters' type is added. </li><li> The maximum size of the request block is made optional. </li><li> The ability to comment the items in the list of attributes of  the standard parameter's type by the '#' at the beginning is added. </li></ul></li><li> <em>DAQ.DCON (0.5.1)</em> — The module is completely rewritten for the support of mixed modules by selecting the request commands. Stabilization. </li><li> <em>DAQ.ICP_DAS (0.8.0)</em> — The &quot;ICP DAS&quot; API library  libi8k.a for the ARM architecture is added, the ability to build the  module for ARM is added. The build is disabled by default to prevent  attempts to build on the wrong ARM environment. Stabilization. </li><li> <em>DAQ.DAQGate (0.9.5)</em> — The parameters' cache for their  initialization during the autonomous operation is added.  The CRON  scheduling of calls is added. Stabilization. </li><li> <em>DAQ.SoundCard (0.6.2)</em> — Stabilization. </li><li> <em>DAQ.OPC_UA (0.6.2)</em> — Stabilization. The syntax  highlighting of the attributes' list is added. The adaptation of storing  and reading the floating to the ARM FPA is done.  </li><li> <em>DAQ.BFN (0.5.1)</em> — New module. </li><li> <em>Protocol.ModBus (0.6.4)</em> — Stabilization. Some improvements. </li><li> <em>Protocol.OPC_UA (0.6.2)</em> — Stabilization. </li><li> <em>Transport.Sockets (1.5.1)</em> — Significant stabilization. The outgoing transport request retry timeout is added. </li><li> <em>Transport.SSL (1.0.1)</em> — Stabilization. Some improvements. </li><li> <em>Transport.Serial (0.8.0)</em> — Stabilization. During  initialization of the port the previous settings are used and an  opportunity to omit some of the settings is implemented.  The flow  control using RTS signal for the simple RS232-&gt;RS485 signals  transducers is added. </li><li> <em>Protocol.HTTP (1.6.0)</em> — Significant stabilization. The set of extensions, including: <ul><li> The support for HTTP variable &quot;Transfer-Encoding = chunked&quot; in the outgoing transport is added. </li><li> The support of user's templates for internal contents of the module is added. </li><li> The generation of the user's authentication messages is added. </li><li> The support of all major versions of the completion the string during HTTP-request parsing is added.  </li></ul></li><li> <em>Protocol.SelfSystem (0.9.5)</em> — Stabilization. </li><li> <em>Protocol.UserProtocol (0.6.2)</em> — The syntax highlighting is added. Stabilization. </li><li> <em>Special.FLibComplex1 (1.1.0)</em> — The direct, dynamic call of library functions is added. </li><li> <em>Special.FLibMath (0.6.0)</em> — The direct, dynamic call of library functions is added. </li><li> <em>Special.FLibSYS (1.0.0)</em> — The direct, dynamic call of library functions is added. </li><li> <em>Special.SystemTests (1.5.1)</em> — Some improvements. </li><li> <em>UI.QTStarter (1.7.0)</em> — Stabilization. Significant extensions and improvements. </li><li> <em>UI.QTCfg (2.1.1)</em> — Stabilization. Significant extensions and improvements. </li><li> <em>UI.WebCfg (1.5.6)</em> — Stabilization. </li><li> <em>UI.WebCfgD (0.8.1)</em> — Stabilization. Significant extensions and improvements. </li><li> <em>UI.VCAEngine (1.3.0)</em> — Stabilization. Significant extensions and improvements. </li><li> <em>UI.Vision (1.3.0)</em> — Stabilization. Significant extensions and improvements. </li><li> <em>UI.WebVision (1.0.1)</em> — Significant stabilization. Significant extensions and improvements. </li><li> <em>UI.WebUser (0.6.2)</em> — Stabilization. The syntax highlighting in the procedures is added.</li></ul><p class="bodytext">&nbsp;</p>
<h2>1 Implementation of planned tasks</h2>
<p id="p25720-9" class="auto indent10"> In accordance with the <a name=".homepageen.works.roadmap" href="http://wiki.oscada.org/HomePageEn/Works/RoadMap?v=119w" title="Home&amp;nbsp;Page&amp;nbsp;En&amp;nbsp;/&amp;nbsp;Works&amp;nbsp;/&amp;nbsp;Road&amp;nbsp;Map">plane</a> of the release there were made the following tasks:</p><ul><li> <em>Formation of the provision of commercial services based on OpenSCADA.</em> - The concept is built and the mechanisms are created to provide commercial services by the developers based on OpenSCADA (<a href="../en/services" title="Внешняя ссылка (откроется в новом окне)" target="_blank" class="outerlink" ><img src="http://wiki.oscada.org/themes/default/icons/web.gif" />http://oscada.org/en/services</a> ). </li><li> <em>Adaptation of OpenSCADA to work on the ARM hardware platform.</em> - The building, adaptation and full testing of OpenSCADA on the ARM architecture is made on the <a href="http://en.wikipedia.org/wiki/Nokia_N800" title="Внешняя ссылка (откроется в новом окне)" target="_blank" class="outerlink" ><img src="http://wiki.oscada.org/themes/default/icons/web.gif" />N800</a> Internet tablet of the <a href="http://en.wikipedia.org/wiki/Nokia" title="Внешняя ссылка (откроется в новом окне)" target="_blank" class="outerlink" ><img src="http://wiki.oscada.org/themes/default/icons/web.gif" />Nokia</a> company (<a href="http://wiki.oscada.org/Works/Tests/ARM" target="_blank" class="outerlink" >http://wiki.oscada.org/Works/Tests/ARM</a> (RU)). The build and adaptation of OpenSCADA for complex (very old) software environment of the <a name=".homepageen.using.lp5xxx" href="http://wiki.oscada.org/HomePageEn/Using/LP5xxx?v=stx" title="Home&amp;nbsp;Page&amp;nbsp;En&amp;nbsp;/&amp;nbsp;Using&amp;nbsp;/&amp;nbsp;LP&amp;nbsp;5&amp;nbsp;xxx">LP-5451</a> controller are completed, as well as build for the <a href="http://segnetics.com/main.aspx?Page=412" title="Внешняя ссылка (откроется в новом окне)" target="_blank" class="outerlink" ><img src="http://wiki.oscada.org/themes/default/icons/web.gif" />SMH2Gi</a> controller and <a href="http://en.wikipedia.org/wiki/Nokia" target="_blank" class="outerlink" >Nokia</a> smart phones: <a href="http://en.wikipedia.org/wiki/Nokia_N900" target="_blank" class="outerlink" >N900</a>, N950, <a href="http://en.wikipedia.org/wiki/Nokia_N9" target="_blank" class="outerlink" >N9</a> are completed also. As part of the build and adaptation to different mobile devices the following tasks were done: <ul><li> <em>SYS</em>: <ul><li> Functions' prototypes TMess::put(), TMess::get(),  TCntrNode::grpSize(), TCntrNode::grpId(), TCntrNode::grpAt() are changed  to correct the usage of an unsigned type &quot;char&quot; on the ARM as a signed. </li><li> The adaptation to build with GLibC version less than 2.5 (2.3.2) is done. </li><li> <em>TVariant, DAQ.{AMRDevs, OPC_UA}</em>: The not aligned access to data is fixed. </li><li> <em>DAQ.OPC_UA</em>: The system functions floatLE(),  floatLErev(), doubleLE(), doubleLErev() are added to convert the storage  format of a real number on different architectures. </li><li> The adaptation to uClibc is done. Build begins with 0.9.32  version, which has the support of real-time functions such as  clock_nanosleep(). </li><li> The check and disable the usage the &quot;Iconv&quot; and &quot;Intl&quot; (I18N) API is added. </li><li> The automatic detection and enabling the <em>--enable-CrossCompile</em> configuration option for cross-compilation environment is added. </li><li> The <em>--enable-CoreLibStatic</em> configuration option to  disable the OpenSCADA kernel shared library build and static linking of  the call-launch program is added. </li><li> The usleep() function is everywhere replaced by the own  wrapper function TSYS::sysSleep() due to lack of the usleep() function  in uCLibc and availability of it only in the case of special  configuration of the uClibc build. The nanosleep() is used at the  TSYS::sysSleep() function. </li><li> The pthread_yield() function is replaced by the sched_yield(). </li></ul></li><li> <em>DAQ</em>: <ul><li> <em>JavaLikeCalc</em>: Virtual Machine is rewritten for direct  using the structures of commands to avoid alignment problems, as well as  for some increasing of productivity. </li><li> <em>Siemens</em>: The problem of the NoDave library for a global packing structures command calling &quot;#pragma pack(1)&quot; is fixed. </li><li> <em>ICP_DAS</em>: The &quot;ICP DAS&quot; API library libi8k.a for the ARM architecture is added, the ability to build the module for ARM is added. </li></ul></li><li> <em>Archive</em>: <ul><li> Functions' prototypes TArchiveS::messPut() and  TArchiveS::messGet() are changed to correct variable of the message  level as a signed number. </li><li> <em>FSArch</em>: <ul><li> The LE format real number storage in the archive on the ARM architecture is fixed. </li><li> The algorithm of the quickly count the number of bits uses the function of not aligned reading TSYS::getUnalign32(). </li><li> The encoding field size in the plane archive of messages expanded from 9 to 99 characters. </li></ul></li></ul></li><li> <em>UI.QTCfg</em>: The short time sleep  after closing all windows in the switch off function is added, in order  to provide the time for the object of all the windows to be finally  destroyed and to prevent crashing. </li></ul></li><li> <em>The implementation of the editing changes rollbacks mechanism in the Vision.</em>  —  As part of the widgets' visual editing window the multi-level  changes rollback mechanism is is implemented for all basic operations:  visual geometry changes, the widget attribute's value change, add/remove  widgets, widget's copy and edit the widgets, based on the &quot;ElFigure&quot;  primitive.</li></ul><h2>2 Optimization, stability, sustainability and system performance increasing</h2>
<p id="p25720-10" class="indent10 auto align-justify"> Since the latest stable release During the work on this version, as well  as during its practical adaptation, it was discovered and corrected in a  total of about 300 errors.  In general, the work on cleaning code from  the compiler's warnings with the &quot;-Wall&quot; flag has been done:</p><ul><li> unused variables removing; </li><li> adding the return in the all functions; </li><li> initialization of variables with the possibility of their undefined using; </li><li> exception of the incomplete handling of the enumeration types in the select operation; </li><li> comparison between signed with unsigned integer.</li></ul><p id="p25720-11" class="auto indent10"> Lets list the most significant errors the correction of which significantly affected the increasing of stability:</p><ul><li> <em>System-wide:</em> <ul><li> The command of the building system &quot;$ make dist&quot; is corrected and adapted to correct creation of the OpenSCADA distributions. </li><li> The <em>TSYS::cron()</em> function to call on the schedule is repeatedly corrected. </li><li> The variable type to store the result of the <em>find()</em> function, the string, is everywhere changed to the correct one &quot;size_t&quot;. </li><li> The unscheduled calls on the schedule, related to desync of the functions values <em>time()</em> and <em>clock_gettime(CLOCK_REALTIME,&amp;sp_tm)</em>, are fixed. </li><li> The checking and waiting for threads to access due to the overlapping with the previous, eponymous one's stop are fixed. </li><li> The waiting for initialization of the disconnectable tasks is  disabled in order to prevent freezing in anticipation of rapidly closing  tasks. </li><li> The work of not aligned reading functions <em>getUnalign*()</em> is fixed on the ARM. The Problem is detected on PXA270. </li><li> <em>Function</em>: The possibility of a memory leak when attempting to set the object to a non-object function's parameter is excluded. </li><li> <em>DAQ.ModBus, Transport.Serial, UI.{WebCfg, WebCfgD, WebUser, WebVision}</em>:   The incorrect usage of the completion string symbol '\n' is fixed for a  variety of software platforms UNIX, MAC, DOS/Windows by replacing it  with &quot;\x0A&quot;. </li><li> <em>ResString</em>: The &quot;string(vl.data (), vl.size ())&quot; way is used for read-write of string in order to prevent the COW algorithm. </li><li> <em>Function</em>: The check for a modification during the installation of the various IO types values (Real to Integer) is fixed. </li></ul></li><li> <em>Data bases:</em> <ul><li> <em>DB.PostgreSQL</em>: The handling of database address to determine the empty fields is fixed. </li></ul></li><li> <em>Transports and protocols:</em> <ul><li> <em>Transport</em>: <ul><li> The loading of all transports from the database is fixed, if  there are records about the transport the module of which is missing. </li><li> The using of unsigned type in the return of the <em>read()</em> and <em>write()</em> functions is fixed. The resources for the counters of the i/o requests are added. </li><li> The option of interrupting the outgoing transport by the  signal on the timeout waiting. It is useful to interrupt the transport  on exit/shutdown. </li><li> <em>Sockets</em>: <ul><li> The missing of the initialization of the size of the return value of the <em>getsockopt()</em> function is fixed. </li><li> The closing of the client connection by the time out of the lifetime for connections in the case of the data absence is fixed. </li><li> Unix-socket is set to nonblocking mode by the O_NONBLOCK flag.  The generating of the error messages for outgoing transports is fixed. </li></ul></li><li> <em>Serial</em>: O_NONBLOCK flag is set to <em>open()</em> function of a serial device to prevent the blocking of port's opening on some USB-&gt;RS485 converters. </li><li> <em>Sockets, SSL</em>: The cleaning of the input buffer to prevent re-use on the high latency channels after timeout is added. </li></ul></li><li> <em>Transport, DAQ.{AMRDevs, DCON, ICP_DAS, ModBus, OPC_UA}, Protocol.HTTP</em>: The usage of the <em>TTransportOut::messIO()</em> function at the request of the tail and getting the zero response is fixed. </li><li> <em>Protocol.HTTP, UI.{WebCfg, WebCfgD, WebVision, WebUser}</em>: The parsing of POST-request elements is fixed by the for parsing all the attributes of each element. </li></ul></li><li> <em>Data acquisition and archives:</em> <ul><li> <em>Archive</em>: <ul><li> The using of the buffer with a soft grid with low-and high-resolution time in the archives of values is fixed. </li><li> The calculation of the archive's beginning in the <em>begin()</em> function with an empty buffer is corrected. </li><li> <em>FSArch</em>: <ul><li> The creation of messages archive's files during the placing of  the set of old messages is fixed. The parameter to prevent duplicates is  added. </li><li> The result of the <em>fgetc()</em> function is recorded in an integer variable instead of a character one that has corrected the discovery of &quot;EOF&quot;. </li><li> The reading of data from the archive's buffer in accordance  with the size of the buffer in the algorithm of fast calculation of the  bits number is fixed. </li><li> The placement of the offset into the cache from the algorithm of fast calculation of the bits number is fixed. </li><li> The incorrect processing of the not aligned blocks end of the fast bits number counting algorithm is fixed. </li><li> The exclusive resource to the <em>calcVlOff()</em> function call is added to prevent the incorrect operation with cache. </li></ul></li></ul></li><li> <em>DAQ</em>: <ul><li> <em>System</em>: The crash when exiting to the &quot;Hddtemp&quot; source is fixed. </li><li> <em>ModBus</em>: The setting of values of the parameter's attributes mode is changed to active and the error handling is improved. </li><li> <em>JavaLikeCalc</em>: <ul><li> The check of the index when accessing the character of the  string on the index is added, in order to prevent the out of range  situation. </li><li> The crash of the <em>replace()</em> function of the &quot;RegExp&quot; object is fixed. </li></ul></li><li> <em>Siemens</em>: <ul><li> The receiving and recording the values of real types is fixed. </li><li> The reconnect in the case of error is fixed. </li><li> The using of the integer, real and string size property is fixed. </li><li> The cleaning of the parameter's links at its disabling is added. </li></ul></li></ul></li></ul></li><li> <em>Visualization Interfaces:</em> <ul><li> <em>VCAEngine</em>: <ul><li> The blocking of the session for dynamically active projects with dynamic access to their own widget's attributes is fixed. </li><li> The possibility of changes' loss in the visualization server  is precluded when displayed in the visualizers by preliminary saving the  value of clock counter in the &quot;openList&quot; service request. </li><li> Resources to widget's attributes is made more clear (by use  Recursive mutex) and use one generic resource, for session and other,  for each other dead locking prevent. </li></ul></li><li> <em>Vision, WebVision</em>: <ul><li> The resolution of the coordinates is increased of all the  widgets to three decimal places, in order to ensure proper positioning  on the large scales. </li><li> The access abroad the vector's size during the rendering of the primitives &quot;FormEls&quot; graphics is fixed. </li><li> The redraw of the primitive &quot;Elementary figure&quot; is fixed when the scale is changed. </li><li> The update of the &quot;Protocol&quot; primitive in time and size is fixed. </li></ul></li><li> <em>Vision</em>: <ul><li> The crash of the session for projects with an execution period of more than 500 ms is fixed. </li><li> The fine-tuning of the coordinates of the &quot;Elementary figure&quot;  primitive shapes is implemented to the remainder of the widget's  position. </li><li> Scaling the text primitive &quot;Text&quot; is changed to change the  font size instead of scaling the final image, which increased the  overall quality of the display font. </li></ul></li><li> <em>WebVision</em>: <ul><li> The validation of figures' points for their getting to the  display area of the primitive &quot;Elementary figure&quot; is removed. This  function is shifted to the GD library. </li><li> The possibility of crashing for primitives &quot;Diagram&quot; or  &quot;ElFigure&quot; is excluded in the case of transmission of incorrect values  of attributes of the image &quot;xSc&quot; or &quot;ySc&quot; from a Web-browser. </li><li> The opening and replacing the root page is fixed. </li><li> The handling of nested pages' scale is fixed, taking into account the scale of the root one. </li><li> The clearing of the &quot;Protocol&quot; primitive's tail is fixed.</li></ul></li></ul></li></ul><p id="p25720-12" class="auto indent10"> Optimization and performance improvement :</p><ul><li> <em>SYS</em>: <ul><li> The mechanism of the &quot;ResString&quot; object resource is replaced  from the RW-locks with mutex in order to improve performance and reduce  memory consumption. </li><li> <em>TConfig</em>: The object of the configuration item (TCfg)  is based on TVariant. An access to the &quot;TCfg&quot; object is made clear,  which allows to use links without the basic types. </li><li> The mechanism for storing child nodes in the map wit the key  &quot;string&quot; is changed to the key type &quot;const char*&quot;. All nodes are adapted  to the constancy of the identifier. </li></ul></li><li> <em>Archive.FSArch</em>: The processing of the  values' archive index table is significantly accelerated through the use  of fast algorithm for computing the number of bits in a 32-bit integer. </li><li> <em>UI.WebCfgD</em>: <ul><li> The resizing of icons on the server side is added to reduce traffic. </li><li> The group request of the page's contents is used to greatly improve the performance on slow and high latency channels. </li></ul></li><li> <em>UI.QTCfg</em>: <ul><li> The group request to the control interface is used for performance improvement on slow and high latency connections. </li><li> The multiple query of selective table columns elements is excluded. </li></ul></li><li> <em>UI.Vision</em>: The rendering performance of the fills of the &quot;ElFigure&quot; primitive is improved. </li><li> <em>UI.VCAEngine</em>: <ul><li> The measures to increase the speed of project's session initiation are implemented: <ul><li> The initialization of the basic attributes because of their subsequent inheritance is skipped. </li><li> The translation of certain messages of the runtime session is removed. </li><li> The enabling of only the necessary pages at startup of the  session is implemented. Other pages of the running session are enabled  when accessed. This has greatly increase the speed of session's startup,  as well as reduce the dependence of the starting speed on the  complexity of the visualization project. </li></ul></li><li> Implementation of the archive mode of the &quot;Document&quot;  primitive is changed to direct work with the database, which let to  expand the depth of the archive up to the 1000000 documents, and without  prejudice to the RAM.</li></ul></li></ul><h2>3 Improvement and stabilization of the graphics subsystem</h2>
<p id="p25720-13" class="indent10 auto align-justify"> The notable work was made within the graphics system, namely in the VCA engine modules <em>UI.VCAEngine</em>, visualizers <em>UI.Vision</em> and <em>UI.WebVision</em>,  as well as in the configurators. The changes were provided for  stabilization, the optimization of memory consumption and improvement of  user's properties.</p>
<p id="p25720-14" class="auto indent10"> Improvements of the graphics subsystem:</p><ul><li> <em>The API of syntax highlighting is added.</em> On the basis of this API the syntax highlighting is added to: <ul><li> <em>DAQ</em>: <ul><li> <em>BlockCalc</em>: Syntax highlighting in description of the parameters' attributes. </li><li> <em>JavaLikeCalc</em>: Syntax highlighting for the compiler of the <em>JavaLikeCalc.JavaScript</em> language, as well as for all text fields using the language inside the module. </li><li> <em>ModBus, OPC_UA</em>: syntax highlighting of the attributes' list. </li></ul></li><li> <em>Protocol.UserProtocol</em>: syntax highlighting to the text of the protocol's procedures. </li><li> <em>UI</em>: <ul><li> <em>QTCfg</em>: multilevel syntax highlighting displaying, transmitted from the data model in the form of the rules of regular expressions. </li><li> <em>VCAEngine</em>: syntax highlighting for text attributes of the widget's primitives for which this is necessary. </li><li> <em>Vision</em>: syntax highlighting for text attributes of the widget's primitives, as well as for the texts of the widgets' programs. </li><li> <em>WebUser</em>: syntax highlighting in the procedures for constructing the Web-based interface. </li></ul></li></ul></li><li> <em>UI.QTStarter</em>: <ul><li> Adaptation to the ARM. </li><li> Font message in &quot;Splash&quot; is fixed at 10 pixels to ensure a uniform display. </li><li> The OpenSCADA stop is implemented in the case of closure the last dialog box of the QT UI-modules selection . </li><li> The forwarding of the QT4 command line options from the OpenSCADA is done (eg, <em>--qws</em> and <em>--style</em> to <em>-qws</em> and <em>-style</em>). </li></ul></li><li> <em>UI.QTCfg</em>: <ul><li>The ability to manual change the height of the text and table  fields is added. Change is made by grasping and dragging the bottom edge  of the field. </li><li> Adaptation to the ARM. </li><li> Group request &quot;CntrReqs&quot; is used to query the page's context. </li><li> The restriction on the height of the rows of tables at half the height of the table is added. </li><li> The limit on the size of the input dialogue is added, and the adaptive determination of its size on its contents is added. </li><li> The fixed style &quot;StyledPanel&quot; is set for the elements, available to adjust their height by the user for the work elsewhere. </li><li> The function of full text editing of table's cells is added. </li><li> Playback engine of the syntax highlight rules is completely rewritten to simplify it and to avoid hidden errors. </li></ul></li><li> <em>UI.{VCAEngine, Vision, WebVision}</em>: <ul><li> The addressing abroad the array's (vector's) size in the construction of trends of the &quot;Diagram&quot; primitive is fixed. </li><li> The width property of trend of the &quot;Diagram&quot; primitive is added and implemented. </li><li> The periodic inspection of the widgets' tree of the page is  added in order to detect the fact of widgets' removing by requesting the  complete list of widgets. </li><li> The display of trends, graphics group of the &quot;Diagram&quot;  primitive in the scale of values is implemented in the case of  differences between the scales of all graphs not more than 20%. </li><li> The ability to select the confirmation mode for the items of the line and text editing of the primitive &quot;FormEl&quot;. </li><li> The possibility of loosing of some changes in the model, when displayed in the visualizers is fixed. </li><li> The property of the values' count of the one pixel in the  trends of the &quot;Diagram&quot; primitive is added and implemented in order to  control granularity of export to CSV etc. </li><li> The logarithmic scale of values for the trends of &quot;Diagram&quot; is implemented. </li><li> The storage of aspect ratio property of the main page during  the maximization of the main window of the project's session execution  is added and implemented. </li><li> The new type &quot;Full Video&quot; is added in the &quot;Media&quot; primitive. To implement the &quot;Phonon&quot; media engine in the <em>UI.Vision</em>. </li><li> The field of the archive's properties &quot;prm{X}prop&quot; is added in  the &quot;Diagram&quot; primitive, which is filled with the value of the  available depth and frequency of the archive. </li></ul></li><li> <em>UI.VCAEngine</em>: <ul><li> The specific properties of the attributes of primitives are added, such as help and syntax highlighting. </li><li> The enabling of project's session pages when it is really  necessary is implemented in order to speed up the startup and optimize  memory usage. </li><li> The &quot;Document&quot; primitive is remade for keeping the archives  fully in the database, as well as the function of user API to access the  elements of the archive is added. </li><li> The periodic (30 minutes) check and the closing of the unused (orphaned) projects' sessions are added. </li><li> The previous one (controversial) rollback mechanism of nested  widgets deleting is removed and it is replaced by the full-fledged  rollback mechanism in the <em>UI.Vision</em> visualizer. </li><li> Optimization of memory usage by the session's elements up to 20% is implemented. </li><li> The support of the first, out of date, version of the database structure of the visual area is removed. </li><li> The restriction on the time of the document's generation in the &quot;Document&quot; primitive in 5 seconds is added. </li><li> The support of the attribute's type &quot;Object&quot; and &quot;Text&quot; is added. </li><li> The forced initialization of new user's attributes in EVAL is disabled. </li><li> The display of help for the widget's attributes is added. </li><li> The &quot;Document&quot; primitive is switched to XML parsing in order to fully preserve the XHTML markup. </li><li> The display of the correct status of the links in the form of &quot;(+)&quot; at the end of the line is added. </li><li> The redirection to the above page of raw events is added. This allows you to globally handle events at the very top page. </li><li> The ability to make the links between widgets of &quot;wdg:&quot; type in the form of absolute and relative ones. </li><li> The support of the &quot;arh:&quot; link type is added. </li><li> The support of the data source parameters' object type is added. </li></ul></li><li> <em>UI.Vision</em>: <ul><li> The display of help for the widget's attributes is added. </li><li> Adaptation to the ARM. </li><li> The display of message about loss of connection with the  visualization server and its recovery is added for remote visualization. </li><li> The separate full-text editor for text attributes is added. </li><li> The implementation of the full-fledged changes undo and redo in visual editing of widgets is added. </li><li> Improvements in the sensitivity and updating the changes in  the project's session: the rendering performance of the &quot;ElFigure&quot;  primitives is optimized, handling of the changes in the &quot;geomZ&quot; level of  the widget is added. </li><li> The export to CSV format from the &quot;Diagram&quot; and &quot;Document&quot; primitives is added. </li><li> The limit on the size of the input dialogs is added and an adaptive determination of their sizes by their contents is added. </li><li> The rules' execution mechanism for syntax highlighting is completely rewritten. </li><li>The new session creation after the restoration of remote connection and absence of the previous session is added. </li><li> Window background for the editable widget is set to  &quot;QT::Dense7Pattern&quot; template to eliminate the possible of overlapping by  color. </li><li> The event handling of the widget's selecting when press in the scroll area, but outside of the widget is added. </li><li> &quot;Elementary figure&quot; primitive: <ul><li> The dialog to set properties for the separately selected figures is added. </li><li> The reorganization of the operations of the Properties dialog and context menu with dynamic and static properties is completed. </li><li> In the process of addition the figure its rendering when moving the mouse cursor is implemented. </li></ul></li></ul></li><li> <em>UI.WebVision</em>: <ul><li> The support for &quot;gif&quot; and &quot;jpg&quot; images in the elements of the &quot;Elementary figure&quot; primitive is added. </li><li> The handling of nested frames scale is fixed, as well as the mechanism of formation-enabling of scroll is revised. </li><li> The function of the images conversion on the server's side is  added. Conversion function is used for resizing and discoloration the  images of inactive buttons. </li><li> The opening of small windows of the nested pages as the  DIV-blocks is implemented, it solves the problem of lock and the long  opening of the external windows in many browsers. </li><li> The main page of the interface is centered in the browser's window. </li></ul></li><li> <em>UI.WebCfgD</em>:  <ul><li> The brightness of decolorized-passive buttons is reduced. </li><li> All dialogs windows are implemented as DIV-blocks in order to  avoid problems and delays in opening external windows in different  browsers. </li><li> The group request the page's contents is used for the  significant improvement of the performance on slow and high latency  channels. </li><li> The information in the status bar about the current user and the possibility of its change are added. </li><li> The adaptation to work in full screen width is made.</li></ul></li></ul><h2>4 Formation, expansion and stabilization of the user programming API</h2>
<p id="p25720-15" class="indent10 auto align-justify"> It was continued the development of object API of the user programming,  which provides the integration of user's functions in the object's tree  of OpenSCADA. In addition, a number of changes were made to the existing  library of the user's API functions.</p>
<p id="p25720-16" class="auto indent10"> In particular the following changes were made:</p><ul><li> <em>SYS</em>: <ul><li> User's API for the TArrayObj object is extended for the  possibility of using object properties if the properties are not the  numbers. </li><li> In the object tree of OpenSCADA of the user's API the  SYS.Security.access() function is added to control user access to  OpenSCADA resources with the necessary privileges. </li><li> The functions to work with files are added: <em>SYS.fileRead()</em> and <em>SYS.fileWrite()</em>. </li><li> The <em>getElementBy()</em> function is added to the XMLNodeObj object's API to search for embedded nodes by attribute's value. </li><li> The function of encoding the text between different character encodings is added. </li><li> The NodeObj.nodePath() function is added. </li></ul></li><li> <em>SYS, DAQ.JavaLikeCalc</em>:The implementation of  the support for regular expressions of user's API, based on &quot;PCRE&quot;,  through the &quot;TRegExp&quot; object is added. The interface of functions <em>RegExp.exec()</em> and <em>RegExp.test()</em> is implemented in the standard for the &quot;JavaScript&quot; language. The &quot;<strong>new RegExp()</strong>&quot; initialization of the &quot;TRegExp&quot; object is implemented for the DAQ.JavaLikeCalc. The additional functions using &quot;RegExp&quot;: <em>int  search(); Array match(); Array split(RegExp pat, int limit); string  replace(string substr, string str); string replace(RegExp pat, string  str)</em> are implemented for DAQ.JavaLikeCalc. </li><li> <em>TConfig, TBD, TTransportIn, TTransportOut, TUser, TGroup,  TPrmTmplLib, TPrmTempl, TParamContr, TController, TVArchive,  TVArchivator, TMArchivator</em>: The following functions of the user API are added: <em>cfg()</em> and <em>cfgSet()</em> to access the configuration of the objects (stored in the database). </li><li> <em>TFunction, DAQ.JavaLikeCalc</em>: The user's API object &quot;TFuncArgObj&quot; is added for function arguments get. </li><li> <em>DB</em>: The following functions of the user's API are added: <em>fieldStruct(), fieldSeek(), fieldGet(), fieldSet() and fieldDel()</em> for thetable object to provide the user access to the database through the database interface OpenSCADA. </li><li> <em>DAQ</em>: <ul><li> The <em>TController::alarmSet()</em> function is added to generate the typical alarms in the controller's object of the &quot;Data acquisition&quot; subsystem's modules. </li><li> The <em>SYS.DAQ[&quot;Modul&quot;][&quot;Controller&quot;][&quot;Parameter&quot;][&quot;Attribute&quot;].arch()</em> function is added to directly access the object's archive associated with the attribute of the parameter. </li><li> The following functions of the user API are added: <em>enable()</em> and <em>start()</em> for the direct monitoring of the controller's object. </li><li> <em>JavaLikeCalc</em>: <ul><li> The built-in function <em>typeof()</em> to check the value's type is added. </li><li> The <em>isEVal()</em> function for the &quot;null&quot; data type is added, which always returns &quot;true&quot;. </li><li> The <em>call()</em> function of the user API is added to the objects of the library functions. </li></ul></li><li> <em>ModBus</em>: The <em>messIO()</em> function of  the user API is added in the &quot;ModBus&quot; controller's object in order to  provide an opportunity to send custom ModBus-queries directly from the  template of the parameter. </li></ul></li><li> <em>DAQ.JavaLikeCalc, Special.{FLibComplex1, FLibMath, FLibSYS}</em>: The function for the dynamic call of the library functions is added: <em>SYS.DAQ.JavaLikeCalc[&quot;lib_{Lib}&quot;].funcId(prms, ...)</em>. </li><li> <em>Archive</em>: The following functions of the user API are added: <em>status()</em>, <em>end()</em> and <em>begin()</em> for access to the state and properties of an object of the messages' archiver. </li><li> <em>UI.VCAEngine</em>:  The <em>wdgAt()</em> function of the user's API is added for easy connection to the widget, both in absolute and relative path.</li></ul><h2>5 System-wide extensions</h2>
<p id="p25720-17" class="indent10 auto align-justify"> There have been made the significant changes and extensions to the  system-wide API of the OpenSCADA system with the purpose of the general  stabilization and in view of the general measures for cleaning the  source code and reorganizing the sources' tree:</p><ul><li> <em>SYS</em>:  <ul><li> The new structure of the sources tree is  implemented. </li><li> All the resources of the project are moved to the separate archive. </li><li> To create sources' and resources' archives it can be used the command &quot;$ make dist-lzma&quot; and &quot;$ make dist-reslzma&quot;. </li><li> Documentation is made the static for modules and is divided by  languages. The separate package is formed for each documentation  language. In the documentation of each language it is created an index  file for the entire list of local and network documentation. The total  list of local documentation is greatly expanded with new documents, as  well as with the supported network documentation. </li><li> The packages of librarian databases are added: &quot;*-LibDB.Main&quot; and &quot;*-LibDB.VCA&quot;, they are placed to &quot;data/LibsDB&quot;.  </li><li> The packages of the &quot;AGLKS&quot; and &quot;Boiler&quot; models are added and placed to the &quot;data/ModelsDB&quot; instead of the &quot;DemoDB&quot; package.  </li><li> Configuration files to build RPM and DEB packages are updated. </li><li> Dependence on the library PCRECPP is globally replaced by PCRE. </li><li> The new function <em>TSYS::time2str()</em> is added to convert time intervals into a string like &quot;1hour 23min 10sec&quot;. This function is used everywhere. </li><li> The implementation of own XML-parser is added, instead of  Expat. The own XML-parser solves the problem of supporting different  character sets other than UTF, as well as the problem of safe handling  the situation of the characters presence that are not valid for the  current character encoding. </li><li> <em>TMess</em>:  Common control interface messages are moved into one <em>TMess::lab*</em> function. </li><li> The storage object of the string with the &quot;ResString&quot; resource  is significantly expanded for the clear conversion from/to &quot;std::string  type&quot;. </li><li> The ability to save to the configuration file is added: <ul><li> The database prefix &quot;&lt;cfg&gt;&quot; is added for presentation of the configuration file as a source of load/store configuration. </li><li> The <em>TDBS::dataSeek()</em> and <em>TDBS::dataDel()</em> functions are updated for the strict processing the configuration file. </li><li> The <em>chkSelDB()</em> function is adapted to support the record to the configuration file. </li><li> The storage of large and multi-line field values in the text box of the individual tag of the configuration file is added. </li></ul></li><li> The &quot;long long&quot; type, usually a 64-bit integer is replaced everywhere by the &quot;int64_t&quot; on all architectures. </li><li> The objects of the OpenSCADA treads are rigidly linked with  their thread. The load and periodic threads' calls statistics is added. </li><li> The possibility of checking the loaded objects for their  absence in the database and deleting is added. Check function is  activated only in the case of direct loading from the database. </li><li> The <em>perSYSCall()</em> system periodic function for the  call of subsystems' and their modules' objects is added. It is used for  service purposes of unloaded and rare task of the modules and  subsystems. </li><li> The test function of the expression by the template is moved to the &quot;TRegExp&quot; object. </li><li> <em>XMLNode</em>: <ul><li> The code of &quot;Expat&quot; XML-parser using is completely removed. </li><li> The ability to load text parts of the tag to the separate  specific tags in full mode is added. It is designed for full storage the  configuration of the tag. </li><li> The ability to load and store the comments blocks into the separate specific tags in full mode is added. </li></ul></li><li>  The built-in function of enabling the generation of  a memory dump (removal of restrictions on file size) by setting the  start OpenSCADA <em>--CoreDumpAllow</em> option is added. </li><li> The automatic memory dump file processing procedure (the  creation of the stack reversal - backtrace) is added to all the starting  scripts of OpenSCADA. A memory dump file is expected to be in the  working directory as a &quot;core&quot;. </li><li> The ability to include (embed) modules to the kernel library of OpenSCADA is added. </li><li> The version of the module API of all subsystems is increased to 6. </li><li> <em>TConfig, TValFunc, TVal</em>: The storage the string  configuration fields is moved to the &quot;ResString&quot; object of the resource  string , and then it is returned with the use of internal resource. </li><li> <em>TVariant</em>: The storage mechanism for the string is  changed in the storage of the pointer to an array of &quot;union&quot; with an  adaptive mechanism for memory allocation (simple one, up to 7 characters  is stored statically, but for the longer ones the more memory is  allocated dynamically). </li><li> The building system has been significantly updated: <ul><li> The check and disabling of the &quot;Iconv&quot; and &quot;Intl&quot; (I18N) API using is added.  </li><li> The automatic detection and enabling of the <em>-enable-CrossCompile</em> configuration parameter for cross-compilation environment is added. </li><li> The <em>-enable-CoreLibStatic</em> configuration option is added to disable the OpenSCADA core shared library build and static linking of the call-start program. </li><li> The summary configuration table is added. </li><li> Moving the I18N processing code to the I18N.mk file and  including it directly to the Make-files, if it is necessary, on the last  stage of the configuration is added. </li><li> The general macro AX_MOD_EN() is added for the unified modules control. </li><li> The installation of the included files (headers) is added. </li><li> The openscada.pc file to check the OpenSCADA configuration in the construction of external modules is added. </li><li> The global version of the OpenSCADA source files version is  changed to 0.8.0 and the OpenSCADA core library version is changed to  2.0.0. </li></ul></li><li> Implementation of the manipulation with objects through the parameters' attributes: <ul><li> The overall threading safety for the &quot;TVarObj&quot;, &quot;TArrayObj&quot; and  &quot;XMLNodeObj&quot; user's API objects is implemented: The automatic removal  of the object in the &quot;AutoHD&quot; at the &quot;true&quot; AHDDisConnect() function's  return. </li><li> The reverse serialization (parsing of the object's XML  representation) is added for the &quot;TVarObj&quot;, &quot;TArrayObj&quot; and &quot;XMLNodeObj&quot;  objects. It is enabled for the &quot;TVariant&quot;, &quot;TVal&quot;, &quot;TValFunc&quot;,  &quot;UI.VCAEngine.Widget&quot;, that allows you to save and load a value of the  object type to/from the database. </li><li> <em>TVal, DAQ.{BlockCalc,JavaLikeCalc,LogicLev,ModBus,Siemens}, UI.VCAEngine</em>: The support of the a &quot;Object&quot; value's type is added. It is enabled for general use. </li></ul></li></ul></li><li> <em>DOC</em>: <ul><li> Check and repair of the English texts in the OpenSCADA core are  made. The translations for the OpenSCADA core to German, Russian and  Ukrainian languages are updated. </li><li> Check and repair of the English texts in the OpenSCADA modules  are made. The translations for the OpenSCADA modules to German, Russian  and Ukrainian languages are updated. </li><li> The all key documents in accessible languages are updated:  openscada.pdf, build.pdf, properties.pdf, &quot;OpenSCADA API&quot;, &quot;About  OpenSCADA&quot;, &quot;TechApp Library&quot;, &quot;Quick Start&quot;, &quot;WLib Main&quot;, &quot;WLib Mnemo  Elements&quot;.  </li></ul></li><li> <em>Libraries databases</em>: <ul><li> The library of the main visual elements is appended by: <ul><li> the frames of the implementation editing and execution of &quot;Prescriptions&quot; - &quot;User's programs&quot;; </li><li> selection and configuration dialog of the the &quot;Graphics group&quot; frame parameter; </li><li> some improvements are added to the &quot;Graphics group&quot; frame for  the selection of the parameters by the user and for other purposes; </li><li> the horizontal scroll bar is added to the &quot;Graphics group&quot; frame for the comfortable viewing the archives. </li></ul></li><li> The <a name=".homepageen.using.graphicelementslibraries.electroelements" href="http://wiki.oscada.org/HomePageEn/Using/GraphicElementsLibraries/ElectroElements?v=48e" title="Home&amp;nbsp;Page&amp;nbsp;En&amp;nbsp;/&amp;nbsp;Using&amp;nbsp;/&amp;nbsp;Graphic&amp;nbsp;Elements&amp;nbsp;Libraries&amp;nbsp;/&amp;nbsp;Electro&amp;nbsp;Elements">library of the electrical elements</a> is added to the kit of libraries package.  </li><li> The frame of the main page is appended by the mechanism of &quot;playing&quot; the models of technological processes (TP). </li><li> The <a name=".using.modeldmkk9" href="http://wiki.oscada.org/Using/ModelDMKK9?v=yz3" title="Using&amp;nbsp;/&amp;nbsp;Model&amp;nbsp;DMKK&amp;nbsp;9">industrial boiler unit(RUS</a>) model is translated to English and Ukrainian languages. </li></ul></li><li> <em>DB</em>: The time limit of 5 seconds and the  field of specifying the starting offset are added for the request of the  large tables' contents. </li><li> <em>Transport</em>: <ul><li> The function <em>TTransportS::traf2str()</em> is added to convert the value of the traffic's counter to the string like &quot;12.5KiB&quot;. </li><li> Types of formats for outgoing requests are expanded with versions of the text with a different end of line: LF, CR, CR/LF. </li></ul></li><li> <em>DAQ</em>: <ul><li> The ability to select the type of the &quot;object&quot; template's attribute is added. </li><li> <em>DiamondBoards, ModBus, LogicLev</em>: The ability to  change the type of the parameter for the disabled parameters of  multi-type modules of &quot;Data acquisition&quot; subsystem is added. </li><li> <em>LogicLev, ModBus, Siemens</em>: <ul><li> In the case of the scheduled implementation the time after the  last calculation is written in the &quot;f_frq&quot; attribute as the negative  one. </li><li> The initialization and stop calls are added at the start/stop of the parameter. </li><li> The update of the boolean parameter's attributes when changing the type, the &quot;ReadOnly&quot; flag or the name in the template. </li></ul></li></ul></li><li> <em>TArchives</em>: <ul><li> The ability to use regular expressions when searching by category with the help of &quot;/match/&quot; is added. </li><li> <em>DBArch, FSArch</em>: The time border when requesting messages from the archive is added.  </li><li> The link's address on the parameter's attribute is simplified  to the &quot;DAQMod.Cntr.Prm.attr&quot; form. Support of the old address is  stored.</li></ul></li></ul><h2>6 Publication of OpenSCADA solutions</h2>
<p id="p25720-18" class="indent10 auto align-justify"> During the work on this version the solutions, based on the OpenSCADA,  have been presented at various conferences and exhibitions:</p><ul><li> <a href="http://www.foss-sea.org.ua/" title="Внешняя ссылка (откроется в новом окне)" target="_blank" class="outerlink" ><img src="http://wiki.oscada.org/themes/default/icons/web.gif" />FOSS Sea 2011</a>  — the report about the solutions, based on the OpenSCADA was read at  the conference and in the hall there was made the mini-stand with the  live solutions, based on OpenSCADA. </li><li> <a href="http://www.hi-techexpo.com/" title="Внешняя ссылка (откроется в новом окне)" target="_blank" class="outerlink" ><img src="http://wiki.oscada.org/themes/default/icons/web.gif" />International Innovation Forum 2011</a>  — at the stand of &quot;DІYA&quot; Ltd and Dneprodzerzhinsk State University  (DSTU) the equipment and materials on the solution, based on OpenSCADA  were presented. </li><li> <a href="http://conference.osdn.org.ua/" title="Внешняя ссылка (откроется в новом окне)" target="_blank" class="outerlink" ><img src="http://wiki.oscada.org/themes/default/icons/web.gif" />10 Ukrainian Conference for Free Software Developers and Users</a>  —  the report about the solutions, based on the OpenSCADA was read at  the conference and in the hall there was made the mini-stand with the  live solutions, based on OpenSCADA. </li><li> <a href="http://qt.nokia.com/qtdevdays2011" title="Внешняя ссылка (откроется в новом окне)" target="_blank" class="outerlink" ><img src="http://wiki.oscada.org/themes/default/icons/web.gif" />Qt Developer Days 2011</a> in Munich and San Francisco: there were made the demonstration of OpenSCADA solutions <a href="http://wiki.oscada.org/Using/ModelDMKK9" target="_blank" class="outerlink" >Dynamic model of the DMKD multifuel steam boiler unit №9</a> on the PC and <a href="http://wiki.oscada.org/HomePageEn/Using/ModelAGLKS" target="_blank" class="outerlink" >The dynamic model of real-time of the Anastasievskaja GLKS</a> on Nokia N9 in the Qt Demo Pavilion.</li></ul><p class="bodytext"> <a name="h1101-9"></a></p>
<h2>Conclusion</h2>
<p id="p25720-19" class="indent10 auto align-justify"> During the creation the new stable 0.8.0 release for industrial use with  long-term support a lot of work to stabilize, enhance the functionality  and adapt for running on the alternative hardware platforms (on the ARM  architecture) is done. All this is in general make it possible to  extend the sphere of OpenSCADA using on all levels of automation from  the PLC, SCADA-systems server to the distributed visualization systems.</p>
<p id="p25720-20" class="indent10 auto align-justify"> The following people took an active part in the appearance of the new industrial 0.8.0 version of the OpenSCADA system:</p><ul><li> <a name=".romansavochenko" href="http://wiki.oscada.org/RomanSavochenko?v=11j8" title="Roman&amp;nbsp;Savochenko">Roman Savochenko</a>: The bulk of the work on developing, documenting, and testing. </li><li> <a name=".homepageen.maximlysenko" href="http://wiki.oscada.org/HomePageEn/MaximLysenko?v=vwg" title="Home&amp;nbsp;Page&amp;nbsp;En&amp;nbsp;/&amp;nbsp;Maxim&amp;nbsp;Lysenko">Maxim Lysenko</a>:  Maintenance and stabilization of the &quot;Elementary figure&quot; primitive of  the visual control area (VCA), as well as translation and update much of  the documentation in English. </li><li> <em>Irina Popkova</em>: Translation and update of the OpenSCADA system interface and its modules in German language. </li><li> <em>Almaz Karimov</em>: Expansion of the DCON protocol module support and active testing. </li><li> <a name=".popkovaleksey" href="http://wiki.oscada.org/PopkovAleksey?v=141x" title="Popkov&amp;nbsp;Aleksey">Aleksey Popkov</a>: Building packages for Fedora-based distributions. </li><li> Many other OpenSCADA users  through comprehensive testing.</li></ul><p id="p25720-21" class="indent10 auto align-justify"> Further development efforts will be directed to the software  multiplatform implementation, and expanding of functionality by creating  new interfaces support  modules, including the advanced development  scheme, with the implementation costs distribution for the sold copies  (for the modules, which interact with the commercial systems and  interfaces). In order to implement a centralized distribution of  solutions, services and enhancements based on OpenSCADA the creation of  the store is planned within the main information OpenSCADA resource (<a href="http://oscada.org%29/" title="Внешняя ссылка (откроется в новом окне)" target="_blank" class="outerlink" ><img src="http://wiki.oscada.org/themes/default/icons/web.gif" alt="">http://oscada.org)</a>.</p>]]></content:encoded>
			<category>News</category>
			<category>Release</category>
			
			<author>rom_as@oscada.org</author>
			<pubDate>Fri, 06 Apr 2012 17:00:00 +0300</pubDate>
			
		</item>
		
		<item>
			<title>OpenSCADA into programmable logic controller (PLC)</title>
			<link>http://oscada.org/en/news-storage/single-page/article/openscada-into-programmable-logic-controller-plc/</link>
			<description>Name: PLC
Founded: October 2008
Version: 1.0.0
Status: GPL
Members: Roman...</description>
			<content:encoded><![CDATA[<p id="p96371-5" class="indent10 auto align-justify"> 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 PCS contains the field  equipment (sensors and actuators), as well as programmable logic  controllers (PLC). The upper level consists of the system of operational  visualization and monitoring of the process — SCADA system. PLC is the  responsible part of the APCS, which performs the function of the data  acquisition from the field equipment, calculation and making the  regulatory, blocking and other effects on the regulating parts of field  equipment.</p>
<p id="p96371-6" class="indent10 auto align-justify"> OpenSCADA is an open implementation of the SCADA system, which is based  on the modular architecture that allows to build the ultimate solutions  for different requirements. The purpose of OpenSCADA are the systems of  upper level, but the high degree of modularity and scalability allows to  solve the wide range of tasks of the adjacent areas.</p>
<h2>1. Industrial programmable logic controllers</h2>
<p id="p96371-7" class="indent10 auto align-justify"> PLC market is saturated with wide range of products with different  architecture and design. Architectural PLC can be divided into three  groups:</p><ul><li> hard-programmable PLC and modular computer-process interfaces (CPI); </li><li> highly intellectual commercial PLC; </li><li> PC-compatible PLC.</li></ul><p id="p96371-8" class="indent10 auto align-justify"> Hard-programmable PLC are typically based on single-crystal  microcomputer or chips of programmable logic. The program of such  controllers is flashed one-time, enabling the software of  parameterization, or formed with the specialized environment endowed  with functions of binary firmware compilation of the runtime with the  user program, such as <a href="http://www.isagraf.ru/" title="Внешняя ссылка (откроется в новом окне)" target="_blank" class="outerlink" ><img src="http://wiki.oscada.org/themes/default/icons/web.gif" alt="">ISaGRAF</a> and <a href="http://www.labview.ru/" title="Внешняя ссылка (откроется в новом окне)" target="_blank" class="outerlink" ><img src="http://wiki.oscada.org/themes/default/icons/web.gif" alt="">LabView</a>. As an example of such PLC can be the modules of distributed PCI of <a href="http://www.advantech.com/" title="Внешняя ссылка (откроется в новом окне)" target="_blank" class="outerlink" ><img src="http://wiki.oscada.org/themes/default/icons/web.gif" alt="">Advantech</a> company.</p>
<p id="p96371-9" class="indent10 auto align-justify"> Highly intellectual commercial PLC typically are based on more powerful  hardware architecture and are close to full-fledged 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 <a href="http://www.automation.siemens.com/simatic/controller/html_76/produkte/simatic-s7-400.htm" title="Внешняя ссылка (откроется в новом окне)" target="_blank" class="outerlink" ><img src="http://wiki.oscada.org/themes/default/icons/web.gif" alt="">Siemens</a> company.</p>
<p id="p96371-10" class="indent10 auto align-justify"> PC-compatible PLC is not the group of the PLC directly compatible with  PC, but the PLC which don't have the integrated runtime and which are  often delivered without an operating system. Architecture of the such  PLC may be different, ranging from cost-effective solutions and ending  with the x86 architecture decisions ARM and MIPS. The runtime 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 <a href="http://ru.wikipedia.org/wiki/PC/104" title="Внешняя ссылка (откроется в новом окне)" target="_blank" class="outerlink" ><img src="http://wiki.oscada.org/themes/default/icons/web.gif" alt="">PC/104</a> form factor.</p>
<p id="p96371-11" class="indent10 auto align-justify"> Variants of constructive execution of the PLC can be divided into  monoblock and modular. Monoblock 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 monoblock, able to  expand its CPI by external CPI blocks connected to one of the standard  interfaces such as RS-485.</p>
<h2>2. OpenSCADA as runtime of the PLC</h2>
<p id="p96371-12" class="indent10 auto align-justify"> System architecture of the OpenSCADA allows you to create the final  decisions under various requirements and resources through the modular  expansion. 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.</p>
<p id="p96371-13" class="indent10 auto align-justify"> 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 runtime based on unified  PC-platforms.</p>
<p id="p96371-14" class="indent10 auto align-justify"> OpenSCADA allows the realization of the idea of creating an open  platform for the implementation of the runtime of PLC. Already you can  make the PLC's runtime slightly inferior to the commercial intellectual  controllers, and in many respects superior to them, due to the  possibility of integration of functions specific to SCADA systems into  the runtime 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.</p>
<p id="p96371-15" class="auto indent10"> Here are the functions which are solved by OpenSCADA within the runtime of PLC:</p><ul><li> data acquisition of various range of devices in the synchronous, asynchronous or block mode; </li><li> user data processing and making the control actions procedures  on the Java-like high level language and formal language of block  schemes; </li><li> archiving data, beginning from the temporary buffer in memory  and ending with full-fledged archives on the file system or database of  varying rate and depth; </li><li> integration into the APCS infrastructure through the  implementation of standard protocols of interaction (ModBus, SNMP, OPC  UA ...); </li><li> integration with the DBMS for the data export, storage of the configuration or archives; </li><li> free configuration and administration of the PLC network  through an operational interface of the administration station and  through the Web-interface; </li><li> the possibility of implementation the operator's panels with the control interface for integrated Touch-panel; </li><li> providing the Web-interfaces of operational and supervisory control.</li></ul><h2>3. Firmware and PLC program environment creation for architecture x86</h2>
<p id="p14247-1" class="auto indent10"> The following requirements were pulled out to the implementation of the PLC firmware:</p><ul><li>  Compactness. In connection with the direct dependence of prices on  industrial flash drives with their volume, as well as the reality of the  need for frequent updates, the image of the firmware need to be packed,  reaching the level of compactness up to the 8-50MB at runtime PLC in  the full-fledged OS. </li><li> Uniform source repository. Since the firmware is not something  unchangeable, not expandable and finally fixed, then it must be based  on the real, developing repository of OS package. This will allow for a  long time to form renewals and expansions, not maintaining the mediated  repository. </li><li> Debugged and simple building procedure. Given the fact that  the configuration of firmware can be for some time be stabilized and in  addition in the operating system's components and in OpenSCADA too it  will be detected and eliminated the bugs, the procedure of building of  the firmware should not be burdensome, but on the contrary - easily  adaptable. </li><li> Clear implementation of the recording mode in the OS tree.  Although the firmware means the creation of packaged not modified image  of firmware, but the characteristics of the PLC runtime involves the  modifying of the database and archives. In addition, the possibility of  correction of the initial configuration is an important requirement. </li><li> Reliability and stability to the sudden shutdowns. The  specificity of exploitation of PLC is usually the inability to properly  shutdown, as well as the practical reality of the situation instantly  and unpredictable power outage. PLC in these situations must keep  working, i.e. to contain the journaled file system and ensure that its  verification and automatic correction of errors. </li><li> Conditional division of the PLC configuration into two types: <ul><li> PLC without the local display, possibly with a simple text display. </li><li> Touch-panels with the PLC function.</li></ul></li></ul><p class="bodytext"> <a name="h958-2"></a></p>
<h3>3.1. Tools and work environments building</h3>
<p id="p14247-2" class="indent10 auto align-justify"> Given the above requirements, for the creation of the firmware it was  chosen the package's repository of the distributive of OS Linux <a href="http://altlinux.ru/" title="Внешняя ссылка (откроется в новом окне)" target="_blank" class="outerlink" ><img src="http://wiki.oscada.org/themes/default/icons/web.gif" alt="">ALTLinux</a> and the tool for creating the distributions <a href="http://www.altlinux.org/Mkimage" title="Внешняя ссылка (откроется в новом окне)" target="_blank" class="outerlink" ><img src="http://wiki.oscada.org/themes/default/icons/web.gif" alt="">mkimage</a>.  mkimage is the tool for building Sisyphus-based system on the basis of  the template. As an initial set of templates it was used the set of  templates of formation of ALTLinux distributions at  <i>git://git.altlinux.org/people/boyarsh/packages/mkimage-profiles-desktop</i>  by the command:</p><blockquote style="margin-bottom:0;margin-top:0;"><p id="p14247-2" style="font-family: Courier;" class="indent10 auto align-justify">git clone git://git.altlinux.org/people/boyarsh/packages/mkimage-profiles-desktop</p></blockquote><p class="indent10">As the basis it was taken the &quot;rescue&quot; template, as the most compact and close to the target PLC.</p>
<h4>3.1.1. Result</h4>
<p id="p14247-20" class="auto indent10"> The result is the firmware with the size from 30Mb to 100Mb, satisfying all stated requirements and it provides:</p><ul><li> Loading for 27 seconds from the the controller's switch on and including the initialization of BIOS. </li><li> Checking and restoration of the working file system in the &quot;work&quot; file. </li><li> Storing the user data and changes of the firmware in &quot;work&quot; file. </li><li> Automatic network configuration with DHCP (or 192.168.0.1). </li><li> Access to the controller via SSH and user-friendly interface of working, including mc. </li><li> Time synchronization via ntp. </li><li> OpenSCADA execution with the available network interfaces: <ul><li> configuration via Web (10002,10004); </li><li> runtime on the Web (10002,10004); </li><li> control interface of OpenSCADA (10005).</li></ul></li></ul><p class="bodytext"> <a name="h958-6"></a></p>
<h4>3.1.2. OpenSCADA</h4>
<p id="p14247-21" class="indent10 auto align-justify"> As the PLC runtime system the OpenSCADA is used. For this case we'll  take the building with separate packages for each module and indicate to  install the virtual package openscada-plc, which contains all the  dependences on all the OpenSCADA packages, typical used for this  configuration. The package of gd2 graphics library has been rebuilt  without the support of xpm graphic file format and library was called  libgd2-noxpm. All this was done in order to avoid the heavy dependencies  on the libraries of GUI XOrg.</p>
<p id="p14247-22" class="auto indent10"> The result is the runtime of the PLC with support:</p><ul><li> DB: <ul><li> DBF </li><li> MySQL </li><li> SQLite </li></ul></li><li> Archiving: <ul><li> on the file system </li><li> on the DB </li></ul></li><li> Data source: <ul><li> calculator of the functional blocks </li><li> calculator on the Java-like language of high-level </li><li> controllers of the logic level </li><li> various PLC's on the protocol ModBus (RTU,ASCII,TCP) </li><li> OS data </li><li> remote OpenSCADA stations data </li></ul></li><li> Transport:  <ul><li> serial interfaces; </li><li> TCP, UDP and UNIX sockets; </li><li> security socket layer. </li></ul></li><li> Transport protocols: <ul><li> HTTP </li><li> self control protocol of OpenSCADA </li></ul></li><li> User Interface: <ul><li> visual control area engine (VCA); </li><li> Web-based visualizer of VCA; </li><li> Web-based configurator of OpenSCADA.</li></ul></li></ul><p id="p14247-23" class="indent10 auto align-justify"> The current configuration of OpenSCADA runs in demon mode in locale  uk_UA.UTF-8 using the local database SQLite, providing the following  default network services:</p><ul><li> configuration through the Web (10002,10004); </li><li> runtime through the Web (10002,10004); </li><li> control interface of OpenSCADA (10005).</li></ul><h3>3.2. <a href="http://irobo.com.ua/irobo-3000a-ns103-d425-r1-h120.html" title="Внешняя ссылка (откроется в новом окне)" target="_blank" class="outerlink" ><img src="http://wiki.oscada.org/themes/default/icons/web.gif">iROBO-3000a</a></h3>
<p id="p14247-32" class="indent10 auto align-justify"> iROBO-3000a is a fanless industrial computer with Intel Atom D425 1.8  GHz с VGA, 2xGb LAN, 4xCOM, 4xUSB, 1GB RAM, 1x2.5&quot; SATA HDD 120GB,  Mini-PCIe, 4x4 DIO, CF slot, SIM Card slot, Audio, WDT on board,  operating temperature range -5..+55°С. Performance of this computer is  enough to run the functions of data acquisition, monitoring and control  server, as well as the visualization station's functions. However,  because of usage the non-productive Atom processor family, the  implementation of mathematical models of processes will require almost  all of the CPU resources. For example, during the performance of the <a name=".homepageen.using.modelaglks" href="http://wiki.oscada.org/HomePageEn/Using/ModelAGLKS?v=gnj" title="Home&amp;nbsp;Page&amp;nbsp;En&amp;nbsp;/&amp;nbsp;Using&amp;nbsp;/&amp;nbsp;Model&amp;nbsp;AGLKS">AGLKS</a>  mathematical model, the CPU is loaded at 86%. The controller has been  certified by &quot;UKRSEPRO&quot; that may be important for many users in the  territory of Ukraine.</p><div style="float:center; text-align:center"><p class="bodytext"><img src="http://wiki.oscada.org/Using/PLC/firmware/files?get=irobo.png" alt=""></p></div><p id="p14247-33" class="indent10 auto align-justify"> OpenSCADA operating environment for this computer was based on the packets base of the <a href="http://www.altlinux.ru/" title="Внешняя ссылка (откроется в новом окне)" target="_blank" class="outerlink" ><img src="http://wiki.oscada.org/themes/default/icons/web.gif" alt="">ALTLinux</a> T6 distribution, as well as freshly-builded <a href="http://www.trinitydesktop.org/" title="Внешняя ссылка (откроется в новом окне)" target="_blank" class="outerlink" ><img src="http://wiki.oscada.org/themes/default/icons/web.gif" alt="">Trinity</a>  (TDE) desktop environment. Building of the environment was made using  the above described conception with an updated profile of &quot;mkimage&quot;. The  &quot;plc&quot; objective has been added to the new profile, but its nature has  changed in fact and has become a copy of the &quot;live&quot; target, which became  possible thanks to the implementation in primary initialization stage  the transparent mount of the partition with the &quot;alt-live-storage&quot; label  as a reflection of a packed file system with random access to the  modification. In general, it made possible to create the fixed core of  the firmware with the basic set of software environment with the size of  300MB and with the possibility of free expansion by installing the  necessary packages from the distribution.</p>
<p id="p14247-34" class="indent10 auto align-justify"> The Trinity was selected as the desktop environment because of the  presence of background artefacts problem in conjunction with XOrgServer  1.10 + QT4, as well as because of TDE low-resource with high maturity  and stability.</p>
<p id="p14247-35" class="indent10 auto align-justify"> Archive of the build profiles of the new environment is called <a href="ftp://ftp.oscada.org/OpenSCADA/PLC/mkimage-profiles-6-kdesktop-plc.tgz" target="_blank" class="outerlink" ><img src="http://wiki.oscada.org/themes/default/icons/file.gif" alt="">mkimage-profiles-6-kdesktop-plc.tgz</a>, and the latest build of the firmware <a href="ftp://ftp.oscada.org/OpenSCADA/PLC/ALTLinux6-OpenSCADA_0.7.2-i586-plcUI_TDE-generic.flash.tar" title="Внешняя ссылка (откроется в новом окне)" target="_blank" class="outerlink" ><img src="http://wiki.oscada.org/themes/default/icons/web.gif" alt="">ALTLinux6-OpenSCADA_0.7.2-i586-plcUI_TDE-generic.flash.tar</a>. </p>
<h2>4. Flash and the creation of the PLC software environment for the ARM architecture</h2>
<p id="p22137-1" class="indent10 auto align-justify"> Widespread in embedded solutions the <a href="http://en.wikipedia.org/wiki/ARM" target="_blank" class="outerlink" >ARM</a>  architecture obtained due to its relatively high productivity coupled  with low power consumption and cost. In order to perform routine task to  provide the hardware multiplatform the OpenSCADA system was adapted to  the building and operation on the equipment of ARM-architecture. Thus,  the following projects were made <a name=".using.nokialinux" href="http://wiki.oscada.org/Using/NokiaLinux?v=15z7" title="Using&amp;nbsp;/&amp;nbsp;Nokia&amp;nbsp;Linux">Building the OpenSCADA project for the mobile devices of the Nokia company (N800, N900, N950) (RUS)</a> and <a name=".homepageen.using.lp5xxx" href="http://wiki.oscada.org/HomePageEn/Using/LP5xxx?v=stx" title="Home&amp;nbsp;Page&amp;nbsp;En&amp;nbsp;/&amp;nbsp;Using&amp;nbsp;/&amp;nbsp;LP&amp;nbsp;5&amp;nbsp;xxx">Building the OpenSCADA and firmware for the ARM-based controllers from ICP DAS (LP-5141)</a>.  The purpose of this section is to systematize the procedures and track  he problems of creating the OpenSCADA buildings and software environment  firmwares as a whole for a variety of embedded ARM-architecture  hardware.</p>
<p id="p22137-2" class="indent10 auto align-justify"> Feature of the ARM architecture is the lack of a compulsory  hardware-dependent software system of the basic initialization and  configuration of equipment, which is characteristic for the x86  architecture, - BIOS, and the structure of hardware configuration  typically includes: CPU, integrated operational and flash memory, as  well as a number of built-in equipment on a standard system-level buses.  The flash and RAM are placed in general address segment. Initialization  of the such system with the software environment is made by downloading  executable code directly on the built-in flash memory.</p>
<p id="p22137-3" class="indent10 auto align-justify"> To use computing functions of OpenSCADA and other related libraries and  software the performance of floating point calculations is very  important. Feature of the ARM architecture processor is the ease of its  core and availability of optional extensions such as math coprocessor.  As a consequence, the performance on floating point operations is highly  dependent on the specific processor, and on the emulation type of the  floating point coprocessor if it is absent at all. There are two formats  of floating point in the ARM-architecture processors: FPA and VFP. FPA  format is obsolete and met as a hardware implementation in the ARM cores  up to the <a href="http://en.wikipedia.org/wiki/StrongARM" target="_blank" class="outerlink" >StrongARM</a> family (ARMv4). <a href="http://en.wikipedia.org/wiki/XScale" target="_blank" class="outerlink" >XScale</a> ARM core families (ARMv5TE) did not have math coprocessor. And the ARM core, starting with the <a href="http://en.wikipedia.org/wiki/ARM11" target="_blank" class="outerlink" >ARM11</a>  family (ARMv6) are equipped with VFP format math coprocessor. At the  same time the ARM processors with the ARMv5 architecture are still  widespread, and thus the question of performance of mathematical  calculations for them comes down to the performance of the FPA or VFP  format emulation. In the case of the Linux environment the emulation of  FPA is usually done by the Linux kernel by the CPU exceptions handling  when calling FPA commands. Software emulation in the math library is  usually found with the VFP format which requires the rebuilding of all  programs. The FPA emulation by means of exceptions is much worse than  the performance of software VFP emulation. You can compare the  performance of floating-point calculations on different architectures,  processors and ways of emulation in the table below:</p><table rules="all" frame="box" style="border-style: solid; border-color: rgb(0, 0, 0);" class="contenttable"> <thead><tr class="userrow"><th scope="col" class="usercell"><p class="bodytext"> <strong>Equipment</strong> </p></th><th scope="col" class="usercell"><p class="bodytext"> <strong>Operation sin(Pi) [in JavaLikeCalc], microseconds</strong> </p></th><th scope="col" class="usercell"><p class="bodytext"> <strong>Operation pow(Pi,2) [in JavaLikeCalc], microseconds</strong> </p></th></tr></thead><tbody> <tr class="userrow"><td class="usercell" colspan="3"><p class="bodytext"> <em>ARM</em> </p></td></tr> <tr class="userrow"><td class="usercell"><p class="bodytext"> ICP DAS LP-5141 (PXA270, FPA) </p></td><td class="usercell"><p class="bodytext"> 100 [200] </p></td><td class="usercell"><p class="bodytext"> 51 [152] </p></td></tr> <tr class="userrow"><td class="usercell"><p class="bodytext"> ZAO ZEO TionPro270 (PXA270, SoftVFP, uCLibc-0.9.32.1, -Os) </p></td><td class="usercell"><p class="bodytext"> 22 [51] </p></td><td class="usercell"><p class="bodytext"> 14 [41] </p></td></tr> <tr class="userrow"><td class="usercell"><p class="bodytext"> ZAO ZEO TionPro270 (PXA270, SoftVFP, GLibC-2.14.1, -O2) </p></td><td class="usercell"><p class="bodytext"> 15 [33] </p></td><td class="usercell"><p class="bodytext"> 12 [31] </p></td></tr> <tr class="userrow"><td class="usercell"><p class="bodytext"> Segnetics SMH2Gi (ARM926EJ-S, SoftVFP) </p></td><td class="usercell"><p class="bodytext"> 23 [44] </p></td><td class="usercell"><p class="bodytext"> 12 [31] </p></td></tr> <tr class="userrow"><td class="usercell"><p class="bodytext"> Nokia N800 (400 MHz) </p></td><td class="usercell"><p class="bodytext"> 6 [15] </p></td><td class="usercell"><p class="bodytext"> 6 [17] </p></td></tr> <tr class="userrow"><td class="usercell"><p class="bodytext"> Nokia N900 (1ГГц), N950 (1GHz) </p></td><td class="usercell"><p class="bodytext"> 3 [6] </p></td><td class="usercell"><p class="bodytext"> 2 [6] </p></td></tr> <tr class="userrow"><td class="usercell" colspan="3"><p class="bodytext"> <em>x86</em> </p></td></tr> <tr class="userrow"><td class="usercell"><p class="bodytext"> AMD Geode LX800 (500 MHz) </p></td><td class="usercell"><p class="bodytext"> 3 [7] </p></td><td class="usercell"><p class="bodytext"> 4 [9] </p></td></tr> <tr class="userrow"><td class="usercell"><p class="bodytext"> AMD Athlon X2 3600+ </p></td><td class="usercell"><p class="bodytext"> 3 [3] </p></td><td class="usercell"><p class="bodytext"> 3 [3] </p></td></tr> <tr class="userrow"><td class="usercell"><p class="bodytext"> AMD Turion L625 1.6 </p></td><td class="usercell"><p class="bodytext"> 3 [4] </p></td><td class="usercell"><p class="bodytext"> 3 [4] </p></td></tr> <tr class="userrow"><td class="usercell"><p class="bodytext"> Intel Core2 Duo 1.6 </p></td><td class="usercell"><p class="bodytext"> 2 [2] </p></td><td class="usercell"><p class="bodytext"> 2 [3] </p></td></tr> </tbody></table><p id="p22137-4" class="auto">&nbsp;</p>
<p id="p22137-4" class="indent10 auto align-justify"> 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 the  math coprocessor. The performance of math coprocessor is usually not  directly connected with the performance and frequency of the processor  core.</p>
<p id="p22137-5" class="indent10 auto align-justify"> The typical software environment based on the Linux operating system for ARM based hardware is: Loader <a href="http://en.wikipedia.org/wiki/Das_U-Boot" target="_blank" class="outerlink" >UBoot</a>,  Linux kernel and root file system (RFS). UBoot loader is loaded into  the zero sector of flash memory, and its settings are stored in the  first one. From the second sector the kernel code is loaded, and  immediately after it - the RFS. RFS is usually uses as basis the <a href="http://en.wikipedia.org/wiki/JFFS2" target="_blank" class="outerlink" >JFFS2</a> or <a href="http://en.wikipedia.org/wiki/UBIFS" target="_blank" class="outerlink" >UbiFS</a>  file system, which are optimized to work on block devices - flash  memory with a limited resource of records. Examples of partitioning a  block device (flash memory) for LP-5141 and TionPro270 are presented  below:<br /> </p><blockquote style="margin-bottom:0;margin-top:0;"><p id="p22137-5" style="font-family: Courier;" class="auto"># LP-5141 </p>
<p id="p22137-5" style="font-family: Courier;" class="auto">$ cat /proc/mtd </p>
<p id="p22137-5" style="font-family: Courier;" class="auto">dev:    size   erasesize  name </p>
<p id="p22137-5" style="font-family: Courier;" class="auto">mtd0: 00040000 00020000 &quot;Bootloader&quot; </p>
<p id="p22137-5" style="font-family: Courier;" class="auto">mtd1: 00040000 00020000 &quot;Bootloader Param&quot; </p>
<p id="p22137-5" style="font-family: Courier;" class="auto">mtd2: 00280000 00080000 &quot;Kernel&quot; </p>
<p id="p22137-5" style="font-family: Courier;" class="auto">mtd3: 03c80000 00080000 &quot;JFFS2 Filesystem&quot; </p>
<p id="p22137-5" style="font-family: Courier;" class="auto"># TionPro270 </p>
<p id="p22137-5" style="font-family: Courier;" class="auto">$ cat /proc/mtd </p>
<p id="p22137-5" style="font-family: Courier;" class="auto">dev:    size   erasesize  name </p>
<p id="p22137-5" style="font-family: Courier;" class="auto">mtd0: 00080000 00040000 &quot;Bootloader&quot; </p>
<p id="p22137-5" style="font-family: Courier;" class="auto">mtd1: 00400000 00040000 &quot;Kernel&quot;</p>
<p id="p22137-5" style="font-family: Courier;" class="auto">mtd2: 01b80000 00040000 &quot;Filesystem&quot;</p></blockquote><p class="indent10 align-justify">The root filesystem contains a typical UNIX-tree with work programs,  libraries and other files. The basis of any program or library are the  system libraries <a href="http://en.wikipedia.org/wiki/Glibc" target="_blank" class="outerlink" >GLibC</a> or <a href="http://en.wikipedia.org/wiki/UClibc" target="_blank" class="outerlink" >UClibc</a>.  OpenSCADA is adapted for building and operating with &quot;GLibC&quot; version  &gt;= 2.3. &quot;UClibC&quot;, created as a lightweight version of &quot;GLibC&quot; for  embedded systems, contains a number of limitations and has not yet been  implemented or has errors in the implementation of a number of  functions.</p>
<p id="p22137-7" class="indent10 auto align-justify"> RFS and software environment based on Linux can be supplied with the  ARM-equipment and contain closed binary libraries, Linux kernel modules,  etc. In this case, an independent building and replacement of the  original software environment is impractical task because it leads to  the loss of original functionality. However, it often happens the  delivery of the ARM equipment without the source (original) software  environment, or with an environment that does not contain closed code  and which can be replaced. An example of the first case is the  controller <a href="http://wiki.oscada.org/HomePageEn/Using/LP5xxx?v=stx" title="Home&nbsp;Page&nbsp;En&nbsp;/&nbsp;Using&nbsp;/&nbsp;LP&nbsp;5&nbsp;xxx" target="_blank" >LP-5141</a>  and similar of the &quot;ICP DAS&quot; company, which contain the binary building  of the specialized equipment API library (libi8k) and Linux kernel  modules for its initialization. An example of the second case is a  single board computer <a href="http://www.zao-zeo.ru/catalog/sbc/67-tion-pro270" title="Внешняя ссылка (откроется в новом окне)" target="_blank" class="outerlink" ><img src="http://wiki.oscada.org/themes/default/icons/web.gif" alt="">Chion-Pro270</a>, the software environment creating and OpenSCADA building for the ARM architecture of which will be considered below.</p>
<h3>4.1.  Building tools for the Linux kernel and working environments for different target architectures </h3>
<p id="p22137-8" class="indent10 auto align-justify"> Linux RFS can be formed on the basis of ready packages of the existing  binary distribution, source package of the current distribution, as well  as to build from the original sources through the ToolChain in one of  the building systems.</p>
<p id="p22137-9" class="indent10 auto align-justify"> Building of the programs or of an entire RFS for architectures other  than x86 and x86_64, is usually made using the Cross Compilation tools  (ToolChain) for building, linking and debugging for the target ARM  architecture. To automate this process, a number of tools to build the  ready RFS exists.</p>
<h4>4.1.1.  <a href="http://buildroot.uclibc.org/" title="Внешняя ссылка (откроется в новом окне)" target="_blank" class="outerlink" ><img src="http://wiki.oscada.org/themes/default/icons/web.gif">BuildRoot</a> </h4>
<p id="p22137-10" class="indent10 auto align-justify"> This building system is a part of the project for creation an alternative library of functions of &quot;C&quot; language <a href="http://en.wikipedia.org/wiki/UClibc" target="_blank" class="outerlink" >UClibc</a>,  so basically aims to build environments with &quot;UClibc&quot;, and with  appropriate restrictions. BuildRoot is well in the work on the host  systems of different versions, and allows to build the software  environments based on Linux without too much troubles.</p>
<h4>4.1.2.  <a href="http://www.ptxdist.org/" title="Внешняя ссылка (откроется в новом окне)" target="_blank" class="outerlink" ><img src="http://wiki.oscada.org/themes/default/icons/web.gif">PTXDist</a> </h4>
<p id="p22137-13" class="indent10 auto align-justify"> Universal tool fro the building of kernel's, ToolChain and software  environments based on Linux from the &quot;Pengutronix&quot; company. PTXDist is a  powerful and flexible tool, but its older versions have problems in the  modern host systems, which complicates the task of building the  software environments for relatively old but still prevalent hardware  platforms. For example, now (2012) can be found new hardware with the  ARM XScale, ARM9 (ARMv5) processors of the 2003 year. However, newer  versions of PTXDist support the old platforms, what can be learned from  the support table by the link: <a href="http://www.pengutronix.de/oselas/toolchain/index_en.html" title="Внешняя ссылка (откроется в новом окне)" target="_blank" class="outerlink" ><img src="http://wiki.oscada.org/themes/default/icons/web.gif" alt="">http://www.pengutronix.de/oselas/toolchain/index_en.html</a>.</p>
<h3>4.2.  <a href="http://www.zao-zeo.ru/catalog/sbc/67-tion-pro270" title="Внешняя ссылка (откроется в новом окне)" target="_blank" class="outerlink" ><img src="http://wiki.oscada.org/themes/default/icons/web.gif">Tion-Pro270</a></h3>
<p id="p22137-16" class="indent10 auto align-justify"> Single Board Computer &quot;Tion-Pro270&quot; is a highly integrated  computational-control system, based on the Marvell PXA270 processor with  XScale ARM core from the <a href="http://www.zao-zeo.ru/" title="Внешняя ссылка (откроется в новом окне)" target="_blank" class="outerlink" ><img src="http://wiki.oscada.org/themes/default/icons/web.gif" alt="">ZEO</a> company. This card was given to the developers of the OpenSCADA project by the <a href="../ru/soobshchestvo/uchastniki/userInfo/aleksey" title="Внешняя ссылка (откроется в новом окне)" target="_blank" class="outerlink" ><img src="http://wiki.oscada.org/themes/default/icons/web.gif" alt="">Alex Popkov</a> in order to adapt the OpenSCADA for it.</p>
<p id="p22137-17" class="indent10 auto align-justify"> All materials on building the programming environment with OpenSCADA and ready builds for Tion-Pro270 board can be obtained at:<br /> <a href="ftp://ftp.oscada.org/OpenSCADA/PLC/TionPro270" title="Внешняя ссылка (откроется в новом окне)" target="_blank" class="outerlink" ><img src="http://wiki.oscada.org/themes/default/icons/web.gif" alt="">ftp://ftp.oscada.org/OpenSCADA/PLC/TionPro270</a></p><div style="float:center; text-align:center"><p class="bodytext"><img src="http://wiki.oscada.org/Using/PLC/firmwareARM/files?get=tionpro270.png" alt=""></p></div><p id="p22137-18" class="indent10 auto align-justify"> The board is supplied by the equipment manufacturer with pre-installed  software environment based on Linux ™ or Windows CE ©. Besides all the  source materials of the software environments are available in <a href="http://www.zao-zeo.ru/dokuwiki" title="Внешняя ссылка (откроется в новом окне)" target="_blank" class="outerlink" ><img src="http://wiki.oscada.org/themes/default/icons/web.gif" alt="">Wiki-resource</a> of the manufacturer.</p>
<h3>4.3.  <a href="http://segnetics.com/main.aspx?Page=412" title="Внешняя ссылка (откроется в новом окне)" target="_blank" class="outerlink" ><img src="http://wiki.oscada.org/themes/default/icons/web.gif">SMH2Gi</a></h3>
<p id="p22137-35" class="indent10 auto align-justify"> Freely programmable panel controller &quot;SMH2Gi&quot; is a highly integrated  computational control system with the iMx27 processor based on the   ARM926EJ-S core of the <a href="http://segnetics.com/" title="Внешняя ссылка (откроется в новом окне)" target="_blank" class="outerlink" ><img src="http://wiki.oscada.org/themes/default/icons/web.gif" alt="">Segnetics</a> company. Adaptation and build of the OpenSCADA for this controller was needed as part of the <a name=".homepageen.using.vacuumprocunit" href="http://wiki.oscada.org/HomePageEn/Using/VacuumProcUnit?v=t08" title="Home&amp;nbsp;Page&amp;nbsp;En&amp;nbsp;/&amp;nbsp;Using&amp;nbsp;/&amp;nbsp;Vacuum&amp;nbsp;Proc&amp;nbsp;Unit">Automated control system for the vacuum process unit</a> project.</p>
<p id="p22137-36" class="indent10 auto align-justify"> All materials on building the programming environment with OpenSCADA and  ready builds for the panel controller can be obtained at:<br /> <a href="ftp://ftp.oscada.org/OpenSCADA/PLC/Segnetics-SMH2Gi" title="Внешняя ссылка (откроется в новом окне)" target="_blank" class="outerlink" ><img src="http://wiki.oscada.org/themes/default/icons/web.gif" alt="">ftp://ftp.oscada.org/OpenSCADA/PLC/Segnetics-SMH2Gi</a></p><div style="float:center; text-align:center"><p class="bodytext"><img src="http://wiki.oscada.org/Using/PLC/firmwareARM/files?get=smh2gi.png" alt=""></p></div><p id="p22137-37" class="indent10 auto align-justify"> Panel controller is supplied by the equipment manufacturer with  pre-installed environment based on Linux ™, and its own runtime of the  controller - &quot;SMLogix&quot;. The role of OpenSCADA for this controller was  seen as enhanced programming environment of the controller, integrated  and programmed from the top level station on the basis of OpenSCADA. To  preserve the possibility of visualization and control of data obtained  in OpenSCADA on the integrated display, while minimizing the effort  required for the adaptation, it was decided to preserve the original  runtime environment &quot;SMLogix&quot; for the task of data visualization on the  internal display, and to transmit data to/from it via a local ModBus/TCP  connection.</p>
<p id="p22137-37" class="indent10 auto align-justify">With regard to the software environment of the panel controller SMH2Gi  in general it is necessary to make some remarks. The controller uses the  Linux 2.6.29 kernel with the hard real-time extension that allows you  to hold periodical intervals up to 100 microseconds. In addition, all  critical system threads run with the real time planning management  policy. In this case, although the processor does not have a math  coprocessor, emulation is performed optimally in the form of SoftVFP.  All this makes it possible for OpenSCADA to perform highly determinate  control tasks at regular intervals up to 100 microseconds and with an  acceptable computational performance. </p>]]></content:encoded>
			<category>Solution</category>
			
			<author>rom_as@oscada.org</author>
			<pubDate>Wed, 01 Feb 2012 17:41:00 +0200</pubDate>
			
		</item>
		
		<item>
			<title>Build the OpenSCADA project for mobile devices of the Nokia company (N800, N900, N950)</title>
			<link>http://oscada.org/en/news-storage/single-page/article/build-the-openscada-project-for-mobile-devices-of-the-nokia-company-n800-n900-n950/</link>
			<description>Name: NokiaLinux
Start: december 2010
Performers: Roman Savochenko, Maxim Lysenko
Description:...</description>
			<content:encoded><![CDATA[<p id="p44359-4" class="indent10 auto align-justify"> The <a href="http://en.wikipedia.org/wiki/Nokia" target="_blank" class="outerlink" >Nokia</a>  company is one of the global leaders in the manufacture and sale of  mobile phones. In 2005 the Nokia company has released a pocket-sized  personal digital assistant (PDA) N770 on the basis of the full-blown <em>Linux</em> environment with their own desktop environment (based on the GTK +) - <a href="http://en.wikipedia.org/wiki/Hildon" target="_blank" class="outerlink" >Hildon</a> with the title of the project - <a href="http://en.wikipedia.org/wiki/Maemo" target="_blank" class="outerlink" >Maemo</a>. Subsequently, based on the <em>Maemo</em> platform three more mobile devices were produced, namely, two PDAs, &quot;Internet Tablets» <a href="http://en.wikipedia.org/wiki/Nokia_N800" target="_blank" class="outerlink" >N800</a>, <a href="http://en.wikipedia.org/wiki/Nokia_N810" target="_blank" class="outerlink" >N810</a>, and smart phone, &quot;Internet Tablet&quot; <a href="http://en.wikipedia.org/wiki/Nokia_N900" target="_blank" class="outerlink" >N900</a>. In 2010 the <em>Nokia</em> company teamed up to work on <em>Maemo</em> with the <a href="http://en.wikipedia.org/wiki/Moblin" target="_blank" class="outerlink" >MobLin</a> project of the <a href="http://en.wikipedia.org/wiki/Intel" target="_blank" class="outerlink" >Intel</a> company, thus creating the <a href="http://en.wikipedia.org/wiki/MeeGo" target="_blank" class="outerlink" >WikiPedia:MeeGo</a> project. Based on the <em>MeeGo</em> platform in 2011 two smartphones <a href="http://en.wikipedia.org/wiki/Nokia_N950" target="_blank" class="outerlink" >N950</a>(prototype) and <a href="http://en.wikipedia.org/wiki/Nokia_N9" target="_blank" class="outerlink" >N9</a> were released.</p>
<p id="p44359-5" class="indent10 auto align-justify"> For the <em>OpenSCADA</em> project the mobile devices of the <em>Nokia</em> company on the <em>Maemo</em> and <em>MeeGo</em> platforms are interesting in terms of their full-blown <em>OS Linux</em> environment, and the lack of restrictions and blocks on the expansions of these platforms by building and adapting the typical <em>OS Linux</em> programs, which allows easy to adapt the <em>OpenSCADA</em> to the <a href="http://en.wikipedia.org/wiki/ARM" target="_blank" class="outerlink" >ARM</a> hardware platform and to build the project for these mobile devices of the <em>Nokia</em> company.</p>
<p id="p44359-6" class="indent10 auto align-justify"> Adaptation of the <em>OpenSCADA</em> project to run on the <em>ARM</em> hardware platforms was made in 2011 in accordance with the general plan of development <a href="http://wiki.oscada.org/HomePageEn/Works/RoadMap" target="_blank" class="outerlink" >http://wiki.oscada.org/HomePageEn/Works/RoadMap</a> in the <em>N800</em> environment (<a href="http://wiki.oscada.org/Works/Tests/ARM" target="_blank" class="outerlink" >http://wiki.oscada.org/Works/Tests/ARM</a>). Much of adaptation was made in the <a href="http://en.wikipedia.org/wiki/chroot" target="_blank" class="outerlink" >chroot</a>  environment of the ALTLinux distribution, as more recent and less  problematic. The latest builds of the OpenSCADA correctly operate in the  native environment of the <em>N800</em>.</p>
<h2>N800 (Maemo 4.1)</h2>
<p id="p44359-7" class="indent10 auto align-justify"> <a href="http://en.wikipedia.org/wiki/Nokia_N800" target="_blank" class="outerlink" >N800</a>  PDA (fig.1) contains the OMAP2420 processor, with an operating  frequency of 400 MHz, touch (resistive) 4.1 &quot;800×480&quot; and is based on  the <em>Maemo 4.1</em> software platform.</p><div style="float:center; text-align:center"><p class="bodytext"><img src="http://wiki.oscada.org/Using/NokiaLinux/files?get=N800.png" alt=""><br /> Fig. 1. N800 PDA, &quot;Internet Tablet»</p></div><p id="p44359-8" class="indent10 auto align-justify"> At the stage of exploring the possibility of building the OpenSCADA on  the N800 some problems of obsolescence of software environment and a  number of problems in the performance of the built OpenSCADA were found,  part of which was associated with unwillingness the OpenSCADA to work  on the ARM architecture. For this reason, the build of OpenSCADA in  &quot;chroot&quot; environment of the <a href="http://altlinux.org/" title="Внешняя ссылка (откроется в новом окне)" target="_blank" class="outerlink" ><img src="http://wiki.oscada.org/themes/default/icons/web.gif" alt="">ALTLinux</a>  distribution on the N800 was made. Among the most significant problems  encountered during building of OpenSCADA, it may be noted:</p><ul><li> <em>The relatively small amount of RAM, as well as the the paged memory for build.</em>  Thus, the device contains 128MB of RAM and up to 128MB of paged memory,  which is not enough to build in the &quot;chroot&quot; some of the user interface  modules with (-O2) optimization. </li><li> <em>Access to the file system problem during the loading libraries' and models' databases of OpenSCADA.</em>  On the early stages of the OpenSCADA start in the N800 native  environment the OpenSCADA crashes during the loading of standard  libraries in the SQLite database were found, which was not seen in the  ALTLinux chroot environment. Later this problem was solved by a fine  adaptation of OpenSCADA to work in a &quot;bad&quot; <a name="lp5xxx" href="http://wiki.oscada.org/HomePageEn/Using/LP5xxx?v=stx" title="HomePageEn/Using/LP&amp;nbsp;5&amp;nbsp;xxx">environment of the LP-5141 controller of the &quot;ICP DAS&quot; company</a>. </li><li> <em>The low performance of the device.</em> The device  contains the TI OMAP 2420 processor with 400MHz frequency, which is not  sufficient for a full run of mathematical models. In general, the low  processor's frequency aggravated by low processor's speed of  floating-point calculations, detailed information can be seen from <a name="plc" href="http://wiki.oscada.org/HomePageEn/Using/PLC?v=670#h1088-1" title="HomePageEn/Using/PLC">the performance analysis of the floating-point calculations</a>.</li></ul><p id="p44359-9" class="indent10 auto align-justify"> To safely make the experiments with the device and prevent possible  damage of the original software environment it was adjusted the  multi-boot with the ability to boot from the original software  environment on the internal flash-drive and from the experimental  environment on the internal SD-card, a copy of the original software  environment (<a href="http://habrahabr.ru/blogs/n800/24111" title="Внешняя ссылка (откроется в новом окне)" target="_blank" class="outerlink" ><img src="http://wiki.oscada.org/themes/default/icons/web.gif" alt="">http://habrahabr.ru/blogs/n800/24111</a>).</p>
<p id="p44359-10" class="indent10 auto align-justify"> To create the &quot;chroot&quot; of the ARM environment of ALTLinux repository the manual <a href="http://www.altlinux.org/Ports/arm/chroot" title="Внешняя ссылка (откроется в новом окне)" target="_blank" class="outerlink" ><img src="http://wiki.oscada.org/themes/default/icons/web.gif" alt="">http://www.altlinux.org/Ports/arm/chroot</a>  was used. On the basis of the received chroot  it was created the  building environment to build the OpenSCADA in it, directly on the N800.  Theoretically it is possible to build directly on the big PC through  quemu, but at the same time I'm having problems with crashing of quemu.  In addition to the building of OpenSCADA the resulting &quot;chroot&quot;  environment has also been successfully used to launch a fresh  environment KDE 3.5.12 on the N800.</p>
<p id="p44359-11" class="indent10 auto align-justify"> Subsequently, to build the OpenSCADA with GUI for the native  environment, which became possible with the appearance of the QT4  packages, the official SDK and compile environment of the Nokia company  was installed. Installation was made by the installation script of the  building environment <a href="http://tablets-dev.nokia.com/4.1/maemo-scratchbox-install_4.1.sh" title="Внешняя ссылка (откроется в новом окне)" target="_blank" class="outerlink" ><img src="http://wiki.oscada.org/themes/default/icons/web.gif" alt="">maemo-scratchbox-install_4.1.sh</a> and the SDK installation script <a href="http://tablets-dev.nokia.com/4.1/maemo-sdk-install_4.1.sh" title="Внешняя ссылка (откроется в новом окне)" target="_blank" class="outerlink" ><img src="http://wiki.oscada.org/themes/default/icons/web.gif" alt="">maemo-sdk-install_4.1.sh</a>. General description of the SDK can be obtained from the <a href="http://maemo.org/development/sdks/maemo-4-1-diablo-sdk" title="Внешняя ссылка (откроется в новом окне)" target="_blank" class="outerlink" ><img src="http://wiki.oscada.org/themes/default/icons/web.gif" alt="">link</a>.</p>
<p id="p44359-12" class="indent10 auto align-justify"> <span class="mark">Attention!</span> In the extended Maemo 4.1  repository, the latest version of QT4 (libqtcore4,  libqtgui4-4.5.3-1maemo1) contains an error which leads to the crash of  the applications at the time of the creation/deletion of widgets that  can be observed in the OpenSCADA configurator on the QT library. To  circumvent this problem, it is necessary to install and fix from the  updating the previous version of QT4 (libqtcore4,  libqtgui4-4.5.2-1maemo2), which does not have this problem and is  stable.</p>
<p id="p44359-13" class="auto indent10"> In addition to the primary purpose of building and running OpenSCADA on this device the following tasks were also made:</p><ul><li>  Installing the KDE3 (3.5.8) desktop environment as more developed and  familiar environment, supplementing the original &quot;Hildon&quot; environment. </li><li> Correction of the virtual keyboardprogram <a href="http://kde-apps.org/content/show.php/Kvkbd?content=56019" title="Внешняя ссылка (откроется в новом окне)" target="_blank" class="outerlink" ><img src="http://wiki.oscada.org/themes/default/icons/web.gif" />kvkbd</a> when switching <em>Shift</em>. </li><li> Build of the <a href="http://www.krusader.org/" title="Внешняя ссылка (откроется в новом окне)" target="_blank" class="outerlink" ><img src="http://wiki.oscada.org/themes/default/icons/web.gif" />krusader</a> file manager program.</li></ul><p class="bodytext"> <a name="h1094-4"></a></p>
<h2>N900 (Maemo 5)</h2>
<p id="p44359-14" class="indent10 auto align-justify"> Nokia N900 contains the ARM processor Cortex-A8 OMAP3430 (600 MHz), touch (resistive) display 3.5 &quot;848 × 480 and is based on <a href="http://en.wikipedia.org/wiki/Maemo" target="_blank" class="outerlink" >Maemo 5</a> software platform.</p><div style="float:center; text-align:center"><p class="bodytext"><img src="http://wiki.oscada.org/Using/NokiaLinux/files?get=N900.png" alt=""><br /> Fig. 2. N900 mobile phone</p></div><p id="p44359-15" class="indent10 auto align-justify"> To build the OpenSCADA for the native environment an official SDK and  compile environment of Nokia company was installed. Installation was  made by the building environment installation script <a href="http://repository.maemo.org/stable/5.0/maemo-scratchbox-install_5.0.sh" title="Внешняя ссылка (откроется в новом окне)" target="_blank" class="outerlink" ><img src="http://wiki.oscada.org/themes/default/icons/web.gif" alt="">maemo-scratchbox-install_5.0.sh</a> and the SDK installation script <a href="http://repository.maemo.org/stable/5.0/maemo-sdk-install_5.0.sh" title="Внешняя ссылка (откроется в новом окне)" target="_blank" class="outerlink" ><img src="http://wiki.oscada.org/themes/default/icons/web.gif" alt="">maemo-sdk-install_5.0.sh</a>. General description of the SDK is available at the <a href="http://www.developer.nokia.com/info/sw.nokia.com/id/c05693a1-265c-4c7f-a389-fc227db4c465/Maemo_5_SDK.html" title="Внешняя ссылка (откроется в новом окне)" target="_blank" class="outerlink" ><img src="http://wiki.oscada.org/themes/default/icons/web.gif" alt="">link</a>.</p>
<h2>N950, N9 (MeeGo 1.2 Harmattan)</h2>
<p id="p44359-16" class="indent10 auto align-justify"> Nokia N950 contains the ARM processor Cortex-A8 OMAP3630 (1 GHz), touch (capacitive) display 4 &quot;854 × 480 and is based on the <em>MeeGo 1.2 Harmattan</em> software platform.</p>
<p id="p44359-17" class="auto indent10"> The phone was received from Nokia within the <a href="http://qt.nokia.com/qt-in-use/ambassadors/qtambassador" title="Внешняя ссылка (откроется в новом окне)" target="_blank" class="outerlink" ><img src="http://wiki.oscada.org/themes/default/icons/web.gif" alt="">Qt Ambassador Program</a> program to adapt the OpenSCADA for it.</p><div style="float:center; text-align:center"><p class="bodytext"><img src="http://wiki.oscada.org/Using/NokiaLinux/files?get=N950.png" alt=""><br /> Fig. 3. N950 mobile phone</p></div><p id="p44359-18" class="indent10 auto align-justify"> To build the OpenSCADA for the native environment an official SDK and  compile environment of Nokia company was installed. Installation was  made using the installation script <a href="http://harmattan-dev.nokia.com/stable/harmattan/harmattan-sdk-setup.py" title="Внешняя ссылка (откроется в новом окне)" target="_blank" class="outerlink" ><img src="http://wiki.oscada.org/themes/default/icons/web.gif" alt="">harmattan-sdk-setup.py</a>. General description of the SDK and installation instructions are available at the <a href="http://harmattan-dev.nokia.com/docs/library/html/guide/html/Developer_Library_Alternative_development_environments_Platform_SDK_user_guide_Installing_Harmattan_Platform_SDK.html" title="Внешняя ссылка (откроется в новом окне)" target="_blank" class="outerlink" ><img src="http://wiki.oscada.org/themes/default/icons/web.gif" alt="">link</a>.</p>]]></content:encoded>
			<category>News</category>
			<category>Solution</category>
			
			<author>rom_as@oscada.org</author>
			<pubDate>Sun, 01 Jan 2012 09:26:00 +0200</pubDate>
			
		</item>
		
		<item>
			<title>OpenSCADA took part in the exhibition during the Qt Developer Days 2011 in Munich and San Francisco</title>
			<link>http://qt.nokia.com/qtdevdays2011</link>
			<description>The following solutions were presented:

The dynamic model of the DMKD multifuel stem boiler unit...</description>
			<content:encoded><![CDATA[]]></content:encoded>
			<category>News</category>
			<category>Publication</category>
			
			
			<pubDate>Thu, 08 Dec 2011 16:28:00 +0200</pubDate>
			
		</item>
		
		<item>
			<title>Release of OpenSCADA 0.7.2</title>
			<link>http://oscada.org/en/news-storage/single-page/article/release-of-openscada-072/</link>
			<description>The main purpose of this release is the stabilization and testing of key functions before releasing...</description>
			<content:encoded><![CDATA[<p class="indent10">&nbsp;</p><div style="text-align: center; "><h1 style="margin: 0px; padding: 2px 0px 7px; font-family: Verdana; font-size: 23px; line-height: 25px; color: rgb(51, 51, 51); ">&nbsp;</h1>
<h1 style="margin: 0px; padding: 2px 0px 7px; font-family: Verdana; font-size: 23px; line-height: 25px; color: rgb(51, 51, 51); ">OpenSCADA 0.7.2 </h1></div><h2>Introduction</h2>
<p id="p31934-3" class="indent10 auto align-justify"> This release is a planned one of a working version of OpenSCADA, which  are usually made at intervals of 3-4 months. The main purpose of this  release is the stabilization and testing of key functions before  releasing the next long term support (LTS) version of OpenSCADA 0.8.0.  In addition to the main purposes within the limits of this release a  great work for stabilization, cleaning the source code, full empowerment  and testing on the embedded and mobile ARM devices is made.</p>
<p id="p31934-4" class="indent10 auto align-justify"> This document is the processing (compilation) of &lt;ChangeLog&gt;  document of the OpenSCADA system of 0.7.2 version, which is designed for  briefly and clearly covering the new features and changes of the  OpenSCADA system. To get acquainted with all the changes in the  OpenSCADA system it is possible in the file ChangeLog from the  distribution kit of the  system, or here: <a href="../websvn/filedetails.php?repname=OpenSCADA&amp;path=%2Ftrunk%2FOpenSCADA%2FChangeLog" title="Внешняя ссылка (откроется в новом окне)" target="_blank" class="outerlink" ><img src="http://wiki.oscada.org/themes/default/icons/web.gif" alt="">http://oscada.org/websvn/filedetails.php?repname=OpenSCADA&amp;path=%2Ftrunk%2FOpenSCADA%2FChangeLog</a> .</p>
<p id="p31934-5" class="auto indent10"> The key features of this version are:</p><ul><li> Implementation of planned tasks. </li><li> Optimization, increasing of stability, sustainability and system performance. </li><li> Improvement and stabilization of the graphics subsystem. </li><li> Expansion of user programming API. </li><li> System-wide expansions. </li><li> Publication of OpenSCADA solutions.</li></ul><p id="p31934-6" class="auto indent10"> New and updated modules:</p><ul><li> <em>Archive.DBArch (0.9.5)</em> — The limits for requesting data on the request time are added as well as some more extensions. </li><li> <em>Archive.FSArch (1.5.0)</em> — The files' indexes of the  values' archives read performance is increased. The adaptation of  storing and reading the floating to the ARM FPA is made. The limits for  requesting data on the request time are added. Some extensions. A  significant stabilization. </li><li> <em>DB.FireBird (0.9.7)</em> — Stabilization. </li><li> <em>DB.MySQL (1.7.1)</em> — Stabilization. </li><li> <em>DB.PostgreSQL (0.9.2)</em> — Stabilization. </li><li> <em>DB.SQLite (1.6.4)</em> — Stabilization. </li><li> <em>DAQ.BFN (0.5.1)</em> — Stabilization. </li><li> <em>DAQ.BlockCalc (1.5.0)</em> — The CRON scheduling of calls is added. The start and stop blocks' call is added. Stabilization. </li><li> <em>DAQ.DAQGate (0.9.5)</em> — The CRON scheduling of calls is added. Stabilization. </li><li> <em>DAQ.DCON (0.5.1)</em> — Stabilization. </li><li> <em>DAQ.DiamondBoards (1.2.5)</em> — The ability to change the parameter's type is added. Stabilization. </li><li> <em>DAQ.ICP_DAS (0.8.0)</em> — The &quot;ICP DAS&quot; API library  libi8k.a for the ARM architecture is added, the ability to build the  module for ARM is added. Stabilization. </li><li> <em>DAQ.JavaLikeCalc (1.9.5)</em> — The direct, dynamic call  of library functions is added. The direct association of string  constants is added. The conditional call of the expression's arguments (  the second argument) with the logical operators ||(OR) and  &amp;&amp;(AND) is added. The significant stabilization. Some  extensions. </li><li> <em>DAQ.LogicLev (1.2.0)</em> — Stabilization. The ability to change the parameter's type is added. The CRON scheduling of calls is added.  Some extensions. </li><li> <em>DAQ.ModBus (1.2.0)</em> — The support for &quot;Logical&quot;  parameter's type is added for the working with template of the  parameter, and also the functions of the user's API to send arbitrary,  non-standard ModBus requests from the templates are added. The function  is added and used the formation of alleged violations of the controller.  The support of the function for group record (0x0F, 0x10) is added. The  significant stabilization. </li><li> <em>DAQ.OPC_UA (0.6.2)</em> — Stabilization. The adaptation of storing and reading the floating to the ARM FPA. </li><li> <em>DAQ.SNMP (0.6.1)</em> — Stabilization. Some improvements. </li><li> <em>DAQ.Siemens (1.3.0)</em> — Significant stabilization.  Library LibnoDave is updated to the 0.8.4.6 version. The CRON scheduling  of calls is added. The reconnection function for the &quot;Industrial  Ethernet&quot; connections is added. Some extensions. </li><li> <em>DAQ.System (1.7.5)</em> — Stabilization. The CRON scheduling of calls is added. </li><li> <em>Transport.SSL (1.0.0)</em> — Stabilization. Some improvements. </li><li> <em>Transport.Serial (0.7.3)</em> — Stabilization. </li><li> <em>Transport.Sockets (1.5.0)</em> — Significant stabilization. </li><li> <em>Protocol.HTTP (1.6.0)</em> — The support of user's  templates for internal contents of the module is added. The generation  of the user's authentication messages is added. The support of all major  versions of the completion the string during HTTP-request parsing is  added. </li><li> <em>Protocol.ModBus (0.6.3)</em> — Stabilization. Some improvements. </li><li> <em>Protocol.OPC_UA (0.6.2)</em> — Stabilization. </li><li> <em>Protocol.SelfSystem (0.9.5)</em> — Stabilization. </li><li> <em>Protocol.UserProtocol (0.6.2)</em> — Stabilization. </li><li> <em>Special.FLibComplex1 (1.1.0)</em> — The direct, dynamic call of library functions is added. </li><li> <em>Special.FLibMath (0.6.0)</em> — The direct, dynamic call of library functions is added. </li><li> <em>Special.FLibSYS (1.0.0)</em> — The direct, dynamic call of library functions is added. </li><li> <em>UI.QTCfg (2.1.0)</em> — Stabilization. Significant extensions and improvements. The implementation of a number of features to enhance comfort. </li><li> <em>UI.QTStarter (1.6.2)</em> — Stabilization. The font of message in splash is fixed at 10 pixels to ensure the uniform representation. </li><li> <em>UI.VCAEngine (1.2.0)</em> — Stabilization. Significant extensions and improvements. </li><li> <em>UI.Vision (1.2.0)</em> — Significant stabilization. Significant extensions and improvements. </li><li> <em>UI.WebCfg (1.5.6)</em> — Stabilization. </li><li> <em>UI.WebCfgD (0.8.0)</em> — Stabilization. Significant extensions and improvements. </li><li> <em>UI.WebUser (0.6.2)</em> — Stabilization. </li><li> <em>UI.WebVision (1.0.0)</em> — Significant stabilization. Significant extensions and improvements.</li></ul><p class="bodytext"> <a name="h1084-3"></a></p>
<h2>1 Implementation of planned tasks</h2>
<p id="p31934-7" class="indent10 auto align-justify"> In accordance with the <a name=".homepageen.works.roadmap" href="http://wiki.oscada.org/HomePageEn/Works/RoadMap?v=nqm" title="Home&amp;nbsp;Page&amp;nbsp;En&amp;nbsp;/&amp;nbsp;Works&amp;nbsp;/&amp;nbsp;Road&amp;nbsp;Map">plane</a> of the release there were made the following tasks:</p><ul><li> <em>The implementation of the undo/redo editing changes mechanism in the Vision. </em>  — As part of the widget's visual editing window the multi-level  changes' undo/redo mechanism is implemented for all basic operations: a  visual changes in the geometry, changing the value of the widget's  attribute, add/remove the widget, copy the widget and editing the  widgets, based on the primitive &quot;ElFigure&quot;. </li><li> <em>Adaptation of OpenSCADA to work on the ARM hardware platform.</em> — In addition to the primary adaptation, in the last release for the N800 tablet (<a href="http://wiki.oscada.org/Works/Tests/ARM" target="_blank" class="outerlink" >http://wiki.oscada.org/Works/Tests/ARM</a> ) the build and adaption of OpenSCADA for the complex (very old) program environment of the <a name=".homepageen.using.lp5xxx" href="http://wiki.oscada.org/HomePageEn/Using/LP5xxx?v=7g7" title="Home&amp;nbsp;Page&amp;nbsp;En&amp;nbsp;/&amp;nbsp;Using&amp;nbsp;/&amp;nbsp;LP&amp;nbsp;5&amp;nbsp;xxx">LP-5451</a> controller was made, and also the builds for the <a href="http://segnetics.com/main.aspx?Page=412" title="Внешняя ссылка (откроется в новом окне)" target="_blank" class="outerlink" ><img src="http://wiki.oscada.org/themes/default/icons/web.gif" />SMH2Gi</a>  controller and for the Nokia smartphones: N900, N950, N9 were made. As  part of the build and adaptation to different mobile devices the  following tasks were implemented: <ul><li> <em>DAQ.ICP_DAS</em>:	The &quot;ICP DAS&quot; API library libi8k.a for the ARM architecture is added, the ability to build the module for ARM is added. </li><li> <em>SYS, DAQ.OPC_UA</em>: The system functions floatLE(),  floatLErev(), doubleLE(), doubleLErev() are added to convert the storage  format of a real number on different architectures. </li><li> <em>SYS</em>: The adaptation is made to build with the GLibC version less than 2.5 (2.3.2). </li><li> <em>Archive.FSArch</em>: <ul><li> The LE format real number storage in the archive on the ARM architecture is fixed. </li><li> The algorithm of the quickly count the number of bits uses the function of not aligned reading TSYS::getUnalign32(). </li><li> The encoding field size in the plane archive of messages expanded from 9 to 99 characters.</li></ul></li></ul></li></ul><p class="bodytext"> <a name="h1084-4"></a></p>
<h2>2 Optimization, stability, sustainability and system performance increasing</h2>
<p id="p31934-8" class="indent10 auto align-justify"> During the work on this version, as well as during its practical  adaptation, it was discovered and corrected in a total of about 170  error. Also the work on cleaning code from the compiler's warnings with  the &quot;-Wall&quot; flag was continued.</p>
<p id="p31934-9" class="indent10 auto align-justify"> Lets list the most significant errors correction of which significantly affected the increasing of stability:</p><ul><li> <em>SYS</em>: <ul><li> The unscheduled calls on the schedule, related to desync of the  functions values time() and clock_gettime(CLOCK_REALTIME,&amp;sp_tm),  are fixed. </li><li> The checking and waiting for threads to access due to the overlapping with the previous, eponymous one's stop. </li><li> The waiting for initialization of the disconnectable tasks is  disabled in order to prevent freezing in anticipation of rapidly closing  tasks. </li><li> The work of not aligned reading functions getUnalign*() is fixed on the ARM. The Problem is detected on PXA270. </li></ul></li><li> <em>Archive.FSArch</em>: <ul><li> The reading data from the archive's buffer in accordance with  the buffer's size in the algorithm of fast calculation of the bits'  number is fixed. </li><li> The placement of the offset in the cache from the algorithm of fast calculation of the bits' number is fixed. </li><li> The incorrect handling of the end of not aligned blocks of the fast algorithm for calculation of the bits' number is fixed. </li><li> The exclusive resource to the calcVlOff() function's call is added in order to prevent the incorrect operation with cache. </li></ul></li><li> <em>Transport, DAQ.AMRDevs, DAQ.DCON, DAQ.ICP_DAS, DAQ.ModBus, DAQ.OPC_UA, Protocol.HTTP</em>: The usage of the TTransportOut::messIO() function at the request of the tail and getting the zero response is fixed. </li><li> <em>DAQ.ModBus, Transport.Serial, UI.WebCfg, UI.WebCfgD, UI.WebUser, UI.WebVision</em>:  The incorrect using of the string terminator '\n' for a variety of  software platforms UNIX, MAC, DOS/Windows is fixed by replacing it with  &quot;\x0A&quot;. </li><li> <em>Transport.*</em>: The using of unsigned type in the return  of the read() and write() functions is fixed. The resources for the  counters of the i/o requests are added. </li><li> <em>Transport.Sockets</em>: The missing of the initialization of the size of the return value of the getsockopt() function is fixed. </li><li> <em>DAQ.JavaLikeCalc</em>: The crash of the replace() function of the &quot;RegExp&quot; object is fixed. </li><li> <em>DAQ.Siemens</em>: The receiving and recording the values  of real types is fixed. The reconnect in the case of error is fixed. The  using of the size property of the integer, real and string is fixed.  The cleaning of the parameter's links at its disabling is added. </li><li> <em>UI.Vision, UI.WebVision</em>: The access abroad the vector's size during the rendering of the primitives &quot;FormEls&quot; graphics is fixed. </li><li> <em>UI.VCAEngine</em>: The possibility of changes' loss in the  visualization server is precluded when displayed in the visualizers by  preliminary saving the value of clock counter in the &quot;openList&quot; service  request. </li><li> <em>UI.WebVision</em>: <ul><li> The opening and replacing the root page is fixed. </li><li> The handling of nested pages' scale is fixed, taking into account the scale of the root one.</li></ul></li></ul><p id="p31934-10" class="auto indent10"> Optimization and performance improvement:</p><ul><li> <em>SYS</em>: The  mechanism of the &quot;ResString&quot; object resource is replaced from the  RW-locks with mutex in order to improve performance and reduce memory  consumption. </li><li> <em>Archive.FSArch</em>: The processing of the values' archive  index table is significantly accelerated through the use of fast  algorithm for computing the number of bits in a 32-bit integer. </li><li> <em>UI.WebCfgD</em>: The group request of the page's contents is used to greatly improve the performance on slow and high latency channels. </li><li> <em>UI.Vision</em>: The rendering performance of the fills of the &quot;ElFigure&quot; primitive is improved. </li><li> <em>UI.VCAEngine</em>: <ul><li> The measures to increase the speed of project's session  initiation are implemented: the initialization of the basic attributes  because of their subsequent inheritance is skipped. </li><li> The translation of certain messages of the runtime session is removed. </li><li> The enabling of only the necessary pages at startup of the  session is implemented. Other pages of the running session are enabled  when accessed. This has greatly increase the speed of session's startup,  as well as reduce the dependence of the starting speed on the  complexity of the visualization project. </li><li> Implementation of the archive mode of the &quot;Document&quot; primitive  is changed to direct work with the database, which let to expand the  depth of the archive up to the 1000000 documents, and without prejudice  to the RAM.</li></ul></li></ul><p class="bodytext"> <a name="h1084-5"></a></p>
<h2>3 Improvement and stabilization of the graphics subsystem</h2>
<p id="p31934-11" class="indent10 auto align-justify"> The notable work was made within the graphics system, namely in the VCA  engine modules UI.VCAEngine, visualizers UI.Vision and UI.WebVision, as  well as in the configurators. The changes were provided for  stabilization, the optimization of memory consumption and improvement of  user's properties.</p>
<p id="p31934-12" class="auto"> Improvements of the graphics subsystem:</p><ul><li> <em>UI.VCAEngine, UI.Vision, UI.WebVision</em>: <ul><li> The handling abroad the array (vector) in the construction of trends of the &quot;Diagram&quot; primitive is fixed. </li><li> The width property of trend of the &quot;Diagram&quot; primitive is added and implemented. </li><li> The periodic inspection of the widgets' tree of the page is  added in order to detect the fact of widgets' removing by requesting the  complete list of widgets. </li><li> The display of trends, graphics group of the &quot;Diagram&quot;  primitive in the scale of values is implemented in the case of  differences between the scales of all graphs not more than 20%. </li><li> The ability to select the confirmation mode for the items of the line and text editing of the primitive &quot;FormEl&quot;. </li><li> The possibility of loosing of some changes in the model, when displayed in the visualizers is fixed. </li><li> The property of the values' count of the one pixel in the  trends of the &quot;Diagram&quot; primitive is added and implemented in order to  control granularity of export to CSV etc. </li><li> The logarithmic scale of values for the trends of &quot;Diagram&quot; is implemented. </li><li> The storage of aspect ratio property of the main page during  the maximization of the main window of the project's session execution  is added and implemented. </li></ul></li><li> <em>UI.VCAEngine</em>: <ul><li> The enabling of project's session pages when it is really  necessary is implemented in order to speed up the startup and optimize  memory usage. </li><li> The &quot;Document&quot; primitive is remade for keeping the archives  fully in the database, as well as the function of user API to access the  elements of the archive is added. </li><li> The periodic (30 minutes) check and the closing of the unused (orphaned) projects' sessions are added. </li><li> The previous one (controversial) rollback mechanism of nested  widgets deleting is removed and it is replaced by the full-fledged  rollback mechanism in the <em>UI.Vision</em> visualizer. </li><li> Optimization of memory usage by the session's elements up to 20% is implemented. </li><li> The support of the first, out of date, version of the database structure of the visual area is removed. </li><li> The restriction on the time of the document's generation in the &quot;Document&quot; primitive in 5 seconds is added. </li><li> The support of the attribute's type &quot;Object&quot; and &quot;Text&quot; is added. </li><li> The forced initialization of new user's attributes in EVAL is disabled. </li><li> The &quot;Document&quot; primitive is switched to XML parsing in order to fully preserve the XHTML markup. </li><li> The display of the correct status of the links in the form of &quot;(+)&quot; at the end of the line is added. </li></ul></li><li> <em>UI.Vision</em>: <ul><li> The implementation of the full-fledged undo and redo the changes in visual editing widgets is added. </li><li> Improvements in the sensitivity and updating the changes in  the project's session: the rendering performance of the &quot;ElFigure&quot;  primitives is optimized, handling of the changes in the &quot;geomZ&quot; level of  the widget is added. </li><li> The export to CSV format from the &quot;Diagram&quot; and &quot;Document&quot; primitives is added. </li><li> The limit on the size of the input dialogs is added and an adaptive determination of their sizes by their contents is added. </li><li> The rules' execution mechanism for syntax highlighting is completely rewritten. </li><li> The new session creation after the restoration of remote connection and absence of the previous session is added. </li><li> Window background for the editable widget is set to  QT::Dense7Pattern template to eliminate the possible of overlapping by  color. </li><li> The event handling of the widget's selecting when press in the scroll area, but outside of the widget is added. </li><li> &quot;Elementary figure&quot; primitive: <ul><li> The reorganization of the operations of the Properties dialog and context menu with dynamic and static properties is completed. </li><li> In the process of addition the figure its rendering when moving the mouse cursor is implemented. </li></ul></li></ul></li><li> <em>UI.WebVision</em>: <ul><li> The handling of nested frames scale is fixed, as well as the mechanism of formation-enabling of scroll is revised. </li><li> The function of the images conversion on the server's side is  added. Conversion function is used for resizing and discoloration the  images of inactive buttons. </li><li> The opening of small windows of the nested pages as the  DIV-blocks is implemented, it solves the problem of lock and the long  opening of the external windows in many browsers. </li><li> The main page of the interface is centered in the browser's window. </li></ul></li><li> <em>UI.QTCfg</em>: <ul><li> The restriction on the height of the rows of tables at half the height of the table is added. </li><li> The limit on the size of the input dialogue is added, and the adaptive determination of its size on its contents is added. </li><li> For the elements available to adjust their height by the user, for the work elsewhere, the fixed style &quot;StyledPanel&quot; is set. </li><li> The function of full text editing of table's cells is added. </li><li> Playback engine of the syntax highlight rules is completely rewritten to simplify it and to avoid hidden errors. </li></ul></li><li> <em>UI.WebCfgD</em>:  <ul><li> The brightness of decolorized-passive buttons is reduced. </li><li> All dialogs windows are implemented as DIV-blocks in order to  avoid problems and delays in opening external windows in different  browsers. </li><li> The group request the page's contents is used for the  significant improvement of the performance on slow and high latency  channels. </li><li> The information in the status bar about the current user and the possibility of its change are added. </li><li> The adaptation to work in full screen width is made.</li></ul></li></ul><p class="bodytext"> <a name="h1084-6"></a></p>
<h2>4 Extension of the user programming API</h2>
<p id="p31934-13" class="indent10 auto align-justify"> It was continued the development of object API of the user programming,  which provides the integration of user's functions into the object's  tree of OpenSCADA. In addition, a number of changes was made to the  existing library of the user's API functions.</p>
<p id="p31934-14" class="auto indent10"> In particular the following changes were made:</p><ul><li> <em>SYS</em>: <ul><li> The functions to work with files are added: SYS.fileRead() and SYS.fileWrite(). </li><li> The getElementBy() function is added to the XMLNodeObj object's API to search for embedded nodes by attribute's value. </li><li> The function of encoding the text between different character encodings is added. </li><li> The NodeObj.nodePath() function is added. </li></ul></li><li> <em>TConfig, TBD, TTransportIn, TTransportOut,  TUser, TGroup, TPrmTmplLib, TPrmTempl, TParamContr, TController,  TVArchive, TVArchivator, TMArchivator</em>: The following functions of  the user API are added: cfg() and cfgSet() to access the configuration  of the objects (stored in the database). </li><li> <em>DAQ</em>: <ul><li> The TController::alarmSet() function is added to generate the  typical alarms in the controller's object of the &quot;Data acquisition&quot;  subsystem's modules. </li><li> The  SYS.DAQ[&quot;Modul&quot;][&quot;Controller&quot;][&quot;Parameter&quot;][&quot;Attribute&quot;].arch() function  is added to directly access the object's archive associated with the  attribute of the parameter. </li><li> The following functions of the user API are added: enable() and start() for the direct monitoring of the controller's object. </li></ul></li><li> <em>DAQ.JavaLikeCalc, Special.FLibComplex1, Special.FLibMath, Special.FLibSYS</em>: The function for the dynamic call of the library functions is added: SYS.DAQ.JavaLikeCalc[&quot;lib_{Lib}&quot;].funcId(prms, ...). </li><li> <em>Archive</em>: The following functions of the user API are  added: status(), end() and begin() for access to the state and  properties of an object of the messages' archiver. </li><li> <em>DAQ.JavaLikeCalc</em>: <ul><li> The isEVal() function for the &quot;null&quot; data type is added, which always returns &quot;true&quot;. </li><li> The call() function of the user API is added to the objects of the library functions. </li></ul></li><li> <em>DAQ.ModBus</em>: The messIO() function of the  user API is added in the &quot;ModBus&quot; controller's object in order to  provide an opportunity to send custom ModBus-queries directly from the  template of the parameter.</li></ul><p class="bodytext"> <a name="h1084-7"></a></p>
<h2>5 System-wide expansions</h2>
<p id="p31934-15" class="indent10 auto align-justify"> To the system-wide API of the OpenSCADA system there have been made the  significant changes and extensions with the purpose of the general  stabilization and expansion:</p><ul><li> <em>SYS</em>:  <ul><li> The storage object of the string with the &quot;ResString&quot; resource  is significantly expanded for the clear conversion from/to std::string  type. </li><li> The ability to save to the configuration file is added: <ul><li> The database prefix &quot;&lt;cfg&gt;&quot; is added for presentation of the configuration file as a source of load/store configuration. </li><li> The TDBS::dataSeek() and TDBS::dataDel() functions are updated for the strict processing the configuration file. </li><li> The chkSelDB() function is adapted to support the record to the configuration file. </li><li> The storage of large and multi-line field values in the text box of the individual tag of the configuration file is added. </li></ul></li><li> The &quot;long long&quot; type, usually a 64-bit integer is replaced everywhere by the &quot;int64_t&quot; on all architectures. </li><li> The objects of the OpenSCADA treads are rigidly linked with  their thread. The load and periodic threads' calls statistics is added. </li><li> The possibility of checking the loaded objects for their  absence in the database and deleting is added. Check function is  activated only in the case of direct loading from the database. </li><li> The perSYSCall() system periodic function for the call of  subsystems' and their modules' objects is added. It is used for service  purposes of unloaded and rare task of the modules and subsystems. </li><li> The test function of the expression by the template is moved to the TRegExp object. </li><li> <em>SYS.XMLNode</em>: <ul><li> The code of &quot;Expat&quot; XML-parser using is completely removed. </li><li> The ability to load text parts of the tag to the separate  specific tags in full mode is added. It is designed for full storage the  configuration of the tag. </li><li> The ability to load and store the comments blocks into the separate specific tags in full mode is added. </li></ul></li></ul></li><li> <em>DOC</em>: <ul><li> Check and repair the English texts in the OpenSCADA core is  made. The translations for the OpenSCADA core to German, Russian and  Ukrainian languages are updated. </li><li> Check and repair the English texts in the OpenSCADA modules is  made. The translations for the OpenSCADA modules to German, Russian and  Ukrainian languages are updated. </li><li> The all key documents in accessible languages are updated:  openscada.pdf, build.pdf, properties.pdf, &quot;OpenSCADA API&quot;, &quot;About  OpenSCADA&quot;, &quot;TechApp Library&quot;, &quot;Quick Start&quot;, &quot;WLib Main&quot;, &quot;WLib Mnemo  Elements&quot;.  </li></ul></li><li> <em>Libraries databases</em>: <ul><li> The library of the main visual elements is appended by the  frames of the implementation of editing and execution of &quot;Prescriptions&quot;  - &quot;User's programs&quot;. </li><li> The <a name=".homepageen.using.graphicelementslibraries.electroelements" href="http://wiki.oscada.org/HomePageEn/Using/GraphicElementsLibraries/ElectroElements?v=48e" title="Home&amp;nbsp;Page&amp;nbsp;En&amp;nbsp;/&amp;nbsp;Using&amp;nbsp;/&amp;nbsp;Graphic&amp;nbsp;Elements&amp;nbsp;Libraries&amp;nbsp;/&amp;nbsp;Electro&amp;nbsp;Elements">library of the electrical elements</a> is added to the kit of libraries package.  </li><li> The frame of the main page is appended by the mechanism of &quot;playing&quot; the models of technological processes (TP). </li><li> The <a name=".using.modeldmkk9" href="http://wiki.oscada.org/Using/ModelDMKK9?v=yz3" title="Using&amp;nbsp;/&amp;nbsp;Model&amp;nbsp;DMKK&amp;nbsp;9">industrial boiler unit(RUS</a>) model is translated to English and Ukrainian languages. </li></ul></li><li> <em>DB</em>: The time limit of 5 seconds and the  field of specifying the starting offset are added for the request of the  large tables' contents. </li><li> <em>DAQ</em>: The ability to select the type of the &quot;object&quot;  template's attribute is added. It is made primarily to store internal  data in the object and can not be used as the type of parameter's  attribute of data source controller's object. </li><li> <em>TArchives</em>: The ability to use regular expressions when searching by category using &quot;/match/&quot; is added. </li><li> <em>Transport</em>: Types of formats for outgoing requests are expanded with versions of the text with a different end of line: LF, CR, CR/LF. </li><li> <em>DAQ, DAQ.DiamondBoards, DAQ.ModBus, DAQ.LogicLev</em>: The  ability to change the type of the parameter for the disabled parameters  of multi-type modules of &quot;Data acquisition&quot; subsystem is added. </li><li> <em>DAQ.LogicLev, DAQ.Siemens, DAQ.ModBus</em>: In the case of  the scheduled execution the time after the last calculation in the  negative value is written to the &quot;f_frq&quot; attribute. The initialization  and stop calls are added during enabling/disabling of the parameter. </li><li> <em>TArchives, Archive.DBArch, Archive.FSArch</em>: The time border when requesting messages from the archive is added. </li><li> <em>SYS.TConfig, Archives, DAQ, Security, Transports, Archive.*, DAQ.*, Protocol.UserProtocol, Transport.*, UI.VCAEngine, UI.WebUser</em>:  Keeping the string configuration fields is moved to the &quot;ResString&quot; object of the resource string.</li></ul><p class="bodytext"> <a name="h1084-8"></a></p>
<h2>6 Publication of OpenSCADA solutions</h2>
<p id="p31934-16" class="indent10 auto align-justify"> During the work on this version the solutions, based on the OpenSCADA,  have been presented at various conferences and exhibitions:</p><ul><li> <a href="http://www.foss-sea.org.ua/" title="Внешняя ссылка (откроется в новом окне)" target="_blank" class="outerlink" ><img src="http://wiki.oscada.org/themes/default/icons/web.gif" />FOSS Sea 2011</a>  — the report about the solutions, based on the OpenSCADA was read at  the conference and in the hall there was made the mini-stand with the  live solutions, based on OpenSCADA. </li><li> <a href="http://www.hi-techexpo.com/" title="Внешняя ссылка (откроется в новом окне)" target="_blank" class="outerlink" ><img src="http://wiki.oscada.org/themes/default/icons/web.gif" />International Innovation Forum 2011</a>  — at the stand of &quot;DІYA&quot; Ltd and Dneprodzerzhinsk State University  (DSTU) the equipment and materials on the solution, based on OpenSCADA  were presented. </li><li> <a href="http://conference.osdn.org.ua/" title="Внешняя ссылка (откроется в новом окне)" target="_blank" class="outerlink" ><img src="http://wiki.oscada.org/themes/default/icons/web.gif" />10 Ukrainian Conference for Free Software Developers and Users</a>  —  the report about the solutions, based on the OpenSCADA was read at  the conference and in the hall there was made the mini-stand with the  live solutions, based on OpenSCADA. </li><li> <a href="http://qt.nokia.com/qtdevdays2011" title="Внешняя ссылка (откроется в новом окне)" target="_blank" class="outerlink" ><img src="http://wiki.oscada.org/themes/default/icons/web.gif" />Qt Developer Days 2011</a> in Munich and San Francisco: there were made the demonstration of OpenSCADA solutions <a href="http://wiki.oscada.org/Using/ModelDMKK9" target="_blank" class="outerlink" >Dynamic model of the DMKD multifuel steam boiler unit №9</a> on the PC and <a href="http://wiki.oscada.org/HonmePageEn/Using/ModelAGLKS" target="_blank" class="outerlink" >The dynamic model of real-time of the Anastasievskaja GLKS</a> on Nokia N9 in the Qt Demo Pavilion.</li></ul><p class="bodytext"> <a name="h1084-9"></a></p>
<h2>Conclusion</h2>
<p id="p31934-17" class="indent10 auto align-justify"> This release of OpenSCADA actually finishes the work on adaptation to  the ARM hardware architecture, which will be verified in the provision  and publication of the official release 0.7.2 builds for mobile devices.</p>
<p id="p31934-18" class="indent10 auto align-justify"> Although this release was delayed and a few late but it still was  carefully prepared and will be a good basis for finishing the project's  code base for the upcoming responsible release 0.8.0 LTS. In addition,  this release can be used for widespread implementation in critical  applications, followed by a smooth transition to 0.8.0 LTS after its  release.</p>
<p id="p31934-19" class="indent10 auto align-justify"> Subsequent development efforts will be directed to the completion of  planned tasks and preparation for release the OpenSCADA long term  support (LTS) version 0.8.0.</p>]]></content:encoded>
			<category>News</category>
			<category>Release</category>
			
			<author>rom_as@oscada.org</author>
			<pubDate>Mon, 05 Dec 2011 16:00:00 +0200</pubDate>
			
		</item>
		
		<item>
			<title>On September, 27-30th 2011 in city Kiev (Ukraine) the international innovation forum and On October 1 the conference of developers and users of the free software and exhibition of free software solutions took place.</title>
			<link>http://oscada.org/en/news-storage/single-page/article/on-september-27-30th-2011-in-city-kiev-ukraine-the-international-innovation-forum-and-on-october/</link>
			<description>On the stand of Dneprodzerzhinsk State Technical University (DSTU) and Co. Ltd. NPC &quot;DІYA&quot; within...</description>
			<content:encoded><![CDATA[<p class="align-justify indent10">The forum and exhibition was present the following OpenSCADA solutions:</p><ul><li>Dynamic models of of technological processes and their control systems: Gas compressor station for six compressors, steam multifuel boiler unit BKZ-160.</li><li>The model and controller (ICP_DAS) of the ACS of ball mill for coal grinding for the boilers of thermal power station.</li><li>OpenSCADA on the mobile devices: Nokia N800, N950.</li><li>OpenSCADA on the industrial controllers: ICP_DAS LP-8781, LP-5141.</li></ul>]]></content:encoded>
			<category>News</category>
			<category>Report</category>
			<category>Publication</category>
			
			<author>rom_as@oscada.org</author>
			<pubDate>Sun, 25 Sep 2011 08:52:00 +0300</pubDate>
			
		</item>
		
		<item>
			<title>Building OpenSCADA and firmware for ARM-controllers of ICP DAS company (LP-5141)</title>
			<link>http://oscada.org/en/news-storage/single-page/article/building-openscada-and-firmware-for-arm-controllers-of-icp-das-company-lp-5141/</link>
			<description>Name: LP-5xxx
Start: august 2011
Finish: september 2011
Version: 1.0.0
Performers: Roman...</description>
			<content:encoded><![CDATA[<p id="p13944-4" class="align-justify auto indent10"> The <a href="http://www.icpdas.com/" title="Внешняя ссылка (откроется в новом окне)" target="_blank" class="outerlink" ><img src="http://wiki.oscada.org/themes/default/icons/web.gif" alt="">ICP_DAS</a> company produces the controllers on <a href="http://en.wikipedia.org/wiki/ARM" target="_blank" class="outerlink" >ARM</a> architecture processors for quite a long time with <a href="http://en.wikipedia.org/wiki/Linux" target="_blank" class="outerlink" >OS Linux</a> as preinstalled environment, which makes interesting the creation or OpenSCADA build or the new firmware with OpenSCADA.</p>
<p id="p13944-5" class="indent10 auto align-justify"> Until the last moment there were a number of reasons that prevent the  creation of an OpenSCADA build for ARM-controllers of the ICP DAS:</p><ul><li> absence of the ARM-controller; </li><li> unavailability of OpenSCADA to work on ARM-architecture; </li><li> extremely outdated Linux environment on the ARM-controllers of &quot;ICP DAS&quot;.</li></ul><p id="p13944-6" class="indent10 auto align-justify"> At the moment, all of these obstacles have been eliminated. So, thanks  to Peter Litkovets we got the LP-5141 controller, and by this time  OpenSCADA was largely already adapted to work on ARM-architecture,  through processing and stabilization on the handheld computer of <a href="http://www.nokia.com/" title="Внешняя ссылка (откроется в новом окне)" target="_blank" class="outerlink" ><img src="http://wiki.oscada.org/themes/default/icons/web.gif" alt="">Nokia</a> company - <a href="http://en.wikipedia.org/wiki/Nokia_N800" title="Внешняя ссылка (откроется в новом окне)" target="_blank" class="outerlink" ><img src="http://wiki.oscada.org/themes/default/icons/web.gif" alt="">N800</a>.  Later during the same work with the LP-5141 controller it has been  eliminated the last obstacle by updating the original software  environment while maintaining the original functionality.</p>
<p id="p13944-7" class="indent10 auto align-justify"> In general, the goal of this project is to develop the mechanisms and  the creation of OpenSCADA building for the ARM family of the controllers  of &quot;ICP DAS&quot; company, as well as the creation of a firmware for the  &quot;ICP DAS&quot; controllers, which will fall into the hands of OpenSCADA  developers.</p>
<h2>1. PLC LP-5141</h2>
<p id="p93132-8" class="indent10 auto align-justify"> PLC (Fig. 1) is designed in the monoblock form-factor that does not include built-in computer-process interface, except for the possibility of installing a special expansion board IO, and the connection of the external one is made through the built in RS-485, for example, in the form of modules I-7000 of the the &quot;ICP DAS&quot; company.</p><div style="float:center; text-align:center"><p class="bodytext"><img src="http://wiki.oscada.org/Using/LP5xxx/files?get=lp5141.png" alt=""><br /> Fig. PLC of the LP-5xxx series.</p></div><p id="p13944-9" style="font-family: Verdana; font-size: 13px; line-height: 16px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); " class="auto indent10">&nbsp;</p>
<p class="indent10">CPU of the controller has the following specifications:</p><table style="border-width: 0px; border-style: none; border-collapse: collapse; color: rgb(0, 0, 0); font-family: Verdana; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 16px; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; background-color: rgb(255, 255, 255);" class="contenttable"><thead><tr class="userrow"><th scope="col" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; " class="usercell"><p class="bodytext">CPU</p></th><th scope="col" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; " class="usercell"><p class="bodytext">PXA270 or compatible (32-bit and 520MHz)</p></th></tr></thead><tbody><tr class="userrow"><td class="usercell" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext">SDRAM</p></td><td class="usercell" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext">128 MB</p></td></tr><tr class="userrow"><td class="usercell" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext">Flash</p></td><td class="usercell" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext">64 MB</p></td></tr><tr class="userrow"><td class="usercell" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext">EEPROM</p></td><td class="usercell" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext">16 KB<br />Data storage: 40 years; 1,000,000 delete/write cycles.</p></td></tr><tr class="userrow"><td class="usercell" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext">Extended Flash memory</p></td><td class="usercell" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext">microSD socket with a 2GB microSD card (can support 16 GB microSDHC card)</p></td></tr><tr class="userrow"><td class="usercell" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext">64-bit serial number of the equipment</p></td><td class="usercell" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext">Present</p></td></tr><tr class="userrow"><td class="usercell" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext">Dual Watchdog Timer</p></td><td class="usercell" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext">Present</p></td></tr><tr class="userrow"><td class="usercell" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext">VGA</p></td><td class="usercell" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext">800 × 600</p></td></tr><tr class="userrow"><td class="usercell" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext">Ethernet ports</p></td><td class="usercell" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext">RJ-45 x 2, 10/100 Base-TX Ethernet controller (Auto-negotiation, auto MDI/MDI-X, LED indicator)</p></td></tr><tr class="userrow"><td class="usercell" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext">USB 1.1 (хост)</p></td><td class="usercell" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext">1</p></td></tr><tr class="userrow"><td class="usercell" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext">COM1 (/dev/ttySA0)</p></td><td class="usercell" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext">RS-232 (RxD, TxD and GND); not isolated</p></td></tr><tr class="userrow"><td class="usercell" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext">COM2 (/dev/ttySA1)</p></td><td class="usercell" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext">RS-485 (D2+,D2-); 2500 VDC; isolated</p></td></tr><tr class="userrow"><td class="usercell" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext">COM3 (/dev/ttySA3)</p></td><td class="usercell" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext">RS-232 (RxD, TxD and GND); not isolated</p></td></tr><tr class="userrow"><td class="usercell" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext">Operating temperature</p></td><td class="usercell" style="font-family: Verdana; font-size: 13px; line-height: 1.3em; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; vertical-align: top; "><p class="bodytext">-25 ~ +75 °C</p></td></tr></tbody></table><h2>2. Software environment based on OpenSCADA.</h2>
<p class="indent10 align-justify">Software environment, based on the Linux operating system for ARM controllers of ICP DAS usually includes: the Linux kernel 2.6.19, GLibC 2.2.5 and GCC 2.95. To build a third-party software the ICP DAS provides an SDK with the cross-compiler, set of libraries and headers for them (Linux toolchain). As you can see, the version of GCC and are very old, namely it is the 2001 year. OpenSCADA building in this environment is actually impossible. If the using of the GLibC of 2.2.5 version is still possible, the GCC of version 2.95 has the C++ compiler, which crashes during the building of the OpenSCADA code, and the standard C++ library or STL is extremely limited and it requires the significant and senseless adaptation. For this reason, it is necessary to update the original software environment to version for at least 3 of GCC compiler and C++ library.</p>
<p class="indent10 align-justify">Because internal flash memory has a relatively small capacity (64 MB), and a full rebuild of the original software environment of the controller - a very laborious process, it was decided to ensure the compatibility of the basic libraries of old and new environments. Namely, the ability to use libraries like fontconfig, i8k from the source environment and the work of the source environment programs with the new libraries.</p>
<p class="indent10 align-justify">In the process of selecting a new software environment for the PXA-270 processor of the &quot;ICP DAS&quot; controller several options have been tried because some of them had one or other disadvantages:</p><ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px; color: rgb(0, 0, 0); font-family: Verdana; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 16px; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); "><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em; "><em><span style="color: rgb(0, 51, 153); text-decoration: none; "><a href="http://kegel.com/crosstool" title="Внешняя ссылка (откроется в новом окне)" target="_blank" class="outerlink" ><img src="http://wiki.oscada.org/themes/default/icons/web.gif" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; vertical-align: middle; " />crosstool-0.43</a></span></em><span class="Apple-converted-space">&nbsp;</span>— interesting but outdated project (latest version is 2006 year) to build a Linux cross environment for the necessary equipment. It was postponed after several unsuccessful attempts to build a new environment to work with &quot;Software FP&quot; and &quot;VFP&quot;. As it turned out subsequently for the original environment object files the information about the presence there &quot;Software FP&quot; and &quot;VFP&quot; is incorrectly displayed, when in fact the operations with real numbers there are made through &quot;FPA&quot;. Subsequently the problem solve, described in section &quot;<span style="color: rgb(0, 51, 153); text-decoration: none; "><a href="http://wiki.oscada.org/HomePageEn/Using/LP5xxx?v=stx#h1078-5" name="oh1078-5">Remarks</a></span>&quot;, by aid the tool have been built ToolChain grounded on profile &quot;arm-xscale.dat&quot; and &quot;gcc-4.0.2-glibc-2.3.6-tls.dat&quot;, which at last have been used on base of new firmware.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em; "><em><span style="color: rgb(0, 51, 153); text-decoration: none; "><a href="http://pxa-linux.sourceforge.net/" title="Внешняя ссылка (откроется в новом окне)" target="_blank" class="outerlink" ><img src="http://wiki.oscada.org/themes/default/icons/web.gif" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; vertical-align: middle; " />PXA-Linux Project</a></span></em><span class="Apple-converted-space">&nbsp;</span>— a project to create an independent set of Linux tools for building for the PXA processor. It has the binary building<span class="Apple-converted-space">&nbsp;</span><span style="color: rgb(0, 51, 153); text-decoration: none; "><a href="ftp://ftp.arm.linux.org.uk/pub/armlinux/people/xscale/mainstone/02-25-2005/bin/arm-linux-toolchain-bin-12-15-04-driscoll.tar.gz" target="_blank" class="outerlink" ><img src="http://wiki.oscada.org/themes/default/icons/file.gif" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; vertical-align: middle; " />02-25-2005/bin/arm-linux-toolchain-bin-12-15-04-driscoll.tar.gz</a></span>. It turned out that this building was built with the &quot;Software FP&quot; and &quot;VFP&quot;, and also has a problem in the form of disabling of set of expansions for the gcc compiler, for example: __attribute__((packed)).</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em; "><em><span style="color: rgb(0, 51, 153); text-decoration: none; "><a href="http://voipac.com/" title="Внешняя ссылка (откроется в новом окне)" target="_blank" class="outerlink" ><img src="http://wiki.oscada.org/themes/default/icons/web.gif" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; vertical-align: middle; " />Voipac</a></span></em><span class="Apple-converted-space">&nbsp;</span>— binary build of the cross compilation tools (<span style="color: rgb(0, 51, 153); text-decoration: none; "><a href="http://voipac.com/downloads/pxa/toolchain/bin/arm-linux-gcc-3.4.1.tar.gz" target="_blank" class="outerlink" ><img src="http://wiki.oscada.org/themes/default/icons/file.gif" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; vertical-align: middle; " />arm-linux-gcc-3.4.1.tar.gz</a></span>) from the firm &quot;Voipac&quot; for their own equipment on the PXA-270 processor. This ToolChain built by help early seen<span class="Apple-converted-space">&nbsp;</span><span style="color: rgb(0, 51, 153); text-decoration: none; "><a href="http://kegel.com/crosstool" title="Внешняя ссылка (откроется в новом окне)" target="_blank" class="outerlink" ><img src="http://wiki.oscada.org/themes/default/icons/web.gif" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; vertical-align: middle; " />crosstool</a></span>.</li></ul><p class="indent10 align-justify">The resulting environment of the controller with OpenSCADA was formed by replacing the original environment core libraries on the libraries from new tools, building of the OpenSCADA and placing the OpenSCADA files to source environment tree.</p>
<p class="indent10 align-justify">OpenSCADA was built with disabling of the number of libraries and modules. So, it were build and tested the following modules and functions of OpenSCADA:</p><ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px; color: rgb(0, 0, 0); font-family: Verdana; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 16px; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); "><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em; "><em>OpenSCADA core</em><span class="Apple-converted-space">&nbsp;</span>— built with the LibGD2 library (the work is checked). In the process of checking and adaptation the functions of storage the OpenSCADA configuration in the configuration file are expanded.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em; "><em>DB.SQLite</em><span class="Apple-converted-space">&nbsp;</span>— SQLite DB (the work is checked). The library and module of OpenSCADA to work with SQLite database are built. During the check process the error of GLibC 2.3.2, related to the lack of check on inter-locking of &quot;rw&quot;-resources is found and eliminated.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em; "><em>DB.DBF</em><span class="Apple-converted-space">&nbsp;</span>— DBF DB (the work is checked). Module to work with DBF-files of version 3.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em; "><em>Transport.Sockets</em><span class="Apple-converted-space">&nbsp;</span>— The module the the TCP, UDP and Unix sockets' transport (the work is checked). In the process of TCP-sockets using it was found and corrected the structure's of check the socket's status not initialization.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em; "><em>Transport.SSL</em><span class="Apple-converted-space">&nbsp;</span>— Transport module of the secure socket layer: SSL, TLS (the work is checked).</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em; "><em>Transport.Serial</em><span class="Apple-converted-space">&nbsp;</span>— Transport module of serial interfaces (the work is checked). It was found that for some reason COM3 is located on the device /dev/ttySA3.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em; "><em>Protocol.SelfSystem</em><span class="Apple-converted-space">&nbsp;</span>— The module of the own OpenSCADA protocol (the work is checked).</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em; "><em>Protocol.HTTP</em><span class="Apple-converted-space">&nbsp;</span>— The module of the HTTP protocol implementation (the work is checked).</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em; "><em>Protocol.ModBus</em><span class="Apple-converted-space">&nbsp;</span>— The module of the ModBus protocol implementation (the work is checked). The configuration of the station as a data server through the ModBus protocol.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em; "><em>Protocol.OPC_UA</em><span class="Apple-converted-space">&nbsp;</span>— The module of the OPC UA protocol implementation (the work is checked). The configuration of the station as a data server through the OPC UA protocol . There was a problem of difference of real number representation on x86 and ARM FPA!</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em; "><em>Protocol.UserProtocol</em><span class="Apple-converted-space">&nbsp;</span>— The module of free implementation by the user of simple protocols using the programming language of OpenSCADA (the work is checked).</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em; "><em>DAQ.System</em><span class="Apple-converted-space">&nbsp;</span>— The module of the operating system data (the work is checked). It is built without the LibSensors library using.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em; "><em>DAQ.JavaLikeCalc</em><span class="Apple-converted-space">&nbsp;</span>— The module of implementation of user Java-like language and calculations based on it (the work is checked).</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em; "><em>DAQ.BlockCalc</em><span class="Apple-converted-space">&nbsp;</span>— The module of implementation of block computing (the work is checked).</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em; "><em>DAQ.LogicLev</em><span class="Apple-converted-space">&nbsp;</span>— The module of implementation of the logic level data sources (the work is checked).</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em; "><em>DAQ.ModBus</em><span class="Apple-converted-space">&nbsp;</span>— The module of working with data sources via the ModBus protocol (the work is checked).</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em; "><em>DAQ.DCON</em><span class="Apple-converted-space">&nbsp;</span>— The module of working with data sources via the DCON protocol (the work is checked). For example, with the devices ICP_DAS I-7000. It was found and fixed the crash when receiving a negative response size. The result of the answer is now always returned &gt;=0.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em; "><em>DAQ.ICP_DAS</em><span class="Apple-converted-space">&nbsp;</span>— The module of the ICP_DAS data sources (<span class="cl-blue" style="color: rgb(0, 0, 204); ">there is no equipment to check</span>). Serial series: I-87000 and I-7000; Parallel (quick): series I-8000. The module is built with a library libi8k.a for ARM-architecture.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em; "><em>DAQ.DAQGate</em><span class="Apple-converted-space">&nbsp;</span>— The module of implementation of the locking of data sources from other OpenSCADA stations (the work is checked).</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em; "><em>DAQ.OPC_UA</em><span class="Apple-converted-space">&nbsp;</span>— The module of working with data sources via the OPC_UA protocol (the work is checked). There was a problem of difference of real number representation on x86 and ARM FPA - the conversion when transmitting is added!</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em; "><em>DAQ.Siemens</em><span class="Apple-converted-space">&nbsp;</span>— The module of the working with the Siemens controllers via Industrial Ethernet (ISO_TCP) (the work is checked).</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em; "><em>DAQ.SNMP</em><span class="Apple-converted-space">&nbsp;</span>— The data acquisition module of the network equipment via SNMP (the work is checked).</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em; "><em>Archive.DBArch</em><span class="Apple-converted-space">&nbsp;</span>— The module of the database archiving (the work is checked).</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em; "><em>Archive.FSArch</em><span class="Apple-converted-space">&nbsp;</span>— The module of the file system archiving (the work is checked). There was a problem during the verifying of the archive, giving the following message at startup: &quot;Error archive file structure: &lt;ARCHIVES/VAL/1s/CPULoad_load 2011-09-12 17:47:17.val&gt;. Margin = -8 byte. Will try fix it!&quot;. As a result, it was found that the algorithm of fast bits' counting is not aligned to 4 bytes when reading the memory buffer - it is fixed.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em; "><em>UI.WebCfg</em><span class="Apple-converted-space">&nbsp;</span>— The Web configurator module of OpenSCADA (the work is checked).</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em; "><em>UI.WebCfgD</em><span class="Apple-converted-space">&nbsp;</span>— The dynamic Web configurator module of OpenSCADA (the work is checked).</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em; "><em>UI.VCAEngine</em><span class="Apple-converted-space">&nbsp;</span>— The visualization engine module (the work is checked).</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em; "><em>UI.WebVision</em><span class="Apple-converted-space">&nbsp;</span>— The module of the user interfaces visualizer in the<span class="Apple-converted-space">&nbsp;</span><em>UI.VCAEngine</em><span class="Apple-converted-space">&nbsp;</span>by means of the Web-interface (the work is checked).</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em; "><em>UI.WebUser</em><span class="Apple-converted-space">&nbsp;</span>— The module of free user's visualization by means of the Web-interface (the work is checked).</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em; "><em>Special.FLibComplex1</em><span class="Apple-converted-space">&nbsp;</span>— The library of compatibility functions with Complex1 (&quot;DIYA&quot; LTD) (the work is checked). It is used for the block programming.</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em; "><em>Special.FLibMath</em><span class="Apple-converted-space">&nbsp;</span>—The library of standard mathematical functions (the work is checked).</li><li style="font-family: Verdana; font-size: 13px; line-height: 1.3em; "><em>Special.FLibSYS</em><span class="Apple-converted-space">&nbsp;</span>— The library of system expansion functions of OpenSCADA (the work is checked).</li></ul><h2>3. Remarks</h2>
<p class="indent10 align-justify">As it turned out that the operations with real numbers are performed by the FPA co-processor instructions (Float Point Acceleration), which is not present in this processor, and calls of the commands themselves are made through an imitation of an exception in the Linux kernel, then the performance of mathematical calculations is extremely low, even compared to the direct &quot;Software FP&quot;, &quot;VFP&quot;. For example, the calculation of a single operation<span class="Apple-converted-space">&nbsp;</span><strong>sin(pi)</strong><span class="Apple-converted-space">&nbsp;</span>is about ~200 ms, compared to ~20 ms for N800 with VFP and ~2 ms at x86, detailed in table by<span class="Apple-converted-space">&nbsp;</span><span style="color: rgb(0, 51, 153); text-decoration: none; "><a name=".homepageen.using.plc" href="http://wiki.oscada.org/HomePageEn/Using/PLC?v=670#h26982-1" title="Home&amp;nbsp;Page&amp;nbsp;En&amp;nbsp;/&amp;nbsp;Using&amp;nbsp;/&amp;nbsp;PLC">the link</a></span>. So, this controller shouldn't be considered as the platform for at least any serious calculations! Moreover, the real numbers when working with FPA are stored in a different way - namely, the special<span class="Apple-converted-space">&nbsp;</span><em>big-endian</em>, which requires a transformation in the case of the binary external exchange to the typical<span class="Apple-converted-space">&nbsp;</span><em>little-endian</em>representation, for example for DAQ.OPC_UA.</p>
<p class="indent10 align-justify">In the initial configuration the COM1 port (/dev/ttySA0) is used as a console, which is initialized by the kernel command &quot;console=/dev/ttySA0&quot;. However, after adjustment this is not necessary and is often desirable to release another one COM-port for other purposes. It is possible to release COM1 from work for a console by reassigning the other device for this role, for example by:<span class="Apple-converted-space">&nbsp;</span><strong>$busybox setconsole /dev/tty1</strong>. However, this method does not fully release the COM-port and requests are lost, reading by the parallel connection. Probably need to edit the kernel boot options line in the bootloader U-Boot, even enter into it possible only in the position of RS = 2, however for which the initialization parameters are separated from the main mode of RS = 0. It is necessary to achieve the entrance to the U-Boot from the primary mode of RS = 0!</p>
<p class="indent10 align-justify">In the process of using the created software environment with OpenSCADA it was found a strange problem: crashing the OpenSCADA during access to an instance of the resource string from different threads. The problem is reproduced when polling the controller via ModBus/RTU with 100 ms frequency, the polling an absent module by DCON on the same RS485 interface as the ModBus/RTU. At the same time the periodic (1 sec) record of two registers to the polled via ModBus/RTU controller is made. The crash does not occur immediately, but within 10 minutes - 5 hours. Analysis of the problem:</p><div class="indent" style="margin-left: 40px; color: rgb(0, 0, 0); font-family: Verdana; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 16px; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); "><p class="bodytext">(*) In the case of disabling the record to the controller via ModBus/RTU crashes don't occur.<br />(*) It was found that the crashes begin in case of a achievement by TMdContr::modBusReq() function of DAQ.ModBus module, namely, concurrent access to controller's object property &quot;mPrt&quot; in the context of the &quot;XMLNode req (mPrt);&quot; constructor from different threads of reading and writing.<br />(*) To clarify the nature of the problem it has been configured the generation of death memory dump, as well as assembled the gdb cross-debugger. During the study of death dump it was found that there is a destruction of the stack, and there is no rational reasons for that in OpenSCADA, so this is a problem of the system environment for specific conditions.<br />(*) When you access the &quot;mAddr&quot; property, in the first line of the TMdContr::modBusReq() function and in the problem context of &quot;XMLNode req (mPrt);&quot; (with an incomplete record), the crash is not seen.<br />(*) Checking the call of the second line &quot;XMLNode req (mPrt);&quot; when writing and in general with the &quot;RTU&quot; constant. Replacement with &quot;RTU&quot; in general make the system crash in another place. When you replace only the incomplete record the system doesn't crash. The second and last crashing place was the next line<span class="Apple-converted-space">&nbsp;</span><strong>req.setAttr (&quot;id&quot;,id())</strong>. There is something common among them - the access to the configuration element of string type, using the object of the resource type &quot;ResString&quot;. Conclusion: the current software environment does not work correctly with the resource type object &quot;ResString&quot; for read access from two different threads.<br />(*) The way of storing an &quot;ResString&quot; object in a &quot;TCfg&quot; configuration field element does not matter - namely, the crash is observed when &quot;ResString&quot; is directly stored in the &quot;TCfg&quot;, as well as during the direct access to the &quot;string&quot; object inside &quot;ResString&quot; in the case of the &quot;id()&quot;.<br />(*) Check when you disable the resource coverage does not solve the problem.<br />(*) Building a new environment with the help of &quot;PTXDist&quot; and running it through a &quot;chroot&quot; when you run EABI environment for TionPro270 out of chroot - the &quot;Illegal instruction!&quot; error occurs. The EABI kernel from TionPro270 with similar mistake does not run. The built ToolChain from the profile &quot;arm-xscale_hardfloat-linux-gnu_gcc-4.0.4_glibc-2.3.6_binutils-2.17_kernel-2.6.18.ptxconfig&quot; in the &quot;OSELAS.Toolchain-2011.11.0&quot; crashes with a segmentation fault at the startup of OpenSCADA built under the the original environment.<br />(*) Building the OpenSCADA including all the necessary modules in the OpenSCADA kernel library does not solve the problem.<br />(*) Check of the same configuration on the another PXA270 device-(<span style="color: rgb(0, 51, 153); text-decoration: none; "><a href="http://wiki.oscada.org/Using/PLC#h1086-5" target="_blank" class="outerlink" >TionPro270(RUS)</a></span>) for the final clarification of the source of the problem (hardware or software environment) - configuration worked correctly for two days.<br />(*) To replace in the TCfg object &quot;ResString&quot; to the usual &quot;string&quot; with the removal of access resource to the TConfig object container, reducing the memory consumption by a generalization of the resource for access to the string object - replacement is done, the problem is still not solved.<br />(*) To build the system with the replacement of &quot;ResString&quot; by the usual &quot;string&quot; in TCfg and to check the current crashing location - the place of the crash is the same.<br />(*) To get &quot;crosstool&quot; and build more recent toolchain - the toolchain &quot;gcc-4.0.2-glibc-2.3.6-arm-xscale-linux-gnu&quot; is built, the problem is still present, most likely a problem is in working with memory in the current kernel. In the process of studying the precedents with similar problems in the glibc-2.2 - 2.7 which contains the implementation of malloc unsafe for threads (nothread-safe) were found.<br />(*) Replacing the memory allocator - unable to find the working and thus a transparent implementation of third-party allocator, ptmalloc3 just crashes.<br />(*) Building of the ToolChain and OpenSCADA with all possible options include thread-safe - in all variants the problem is present, namely the GLibC parameters of the ToolChain: &quot;<strong>~ - with-tls - with-__thread</strong>&quot; and OpenSCADA is builtwith the following parameters: &quot;<strong>-pthread-D_REENTERANT</strong>&quot;.<br />(*) Interception of calls for memory allocation and wrapping with a global resource of the &quot;C&quot; functions<span class="Apple-converted-space">&nbsp;</span><strong>malloc</strong>,<span class="Apple-converted-space">&nbsp;</span><strong>free</strong><span class="Apple-converted-space">&nbsp;</span>and &quot;C++&quot; functions new, delete - the crash is still present.<br />(+) Testing the hypothesis of the problematic implementation (atomicity) of the COW (Copy on Write) algorithm in the &quot;string&quot; object - copying from the &quot;string&quot; object store is made ​​by the<span class="Apple-converted-space">&nbsp;</span><strong>val.c_str()</strong>, which excludes the implementation of COW: confirmed that this problem is connected with the COW algorithm, namely with the atomic access to the strings counter &quot;_Atomic_word _M_refcount;&quot; probably because of an outdated threads system &quot;linuxthread&quot;.</p></div><h2>4. Conclusion</h2>
<p class="indent10 align-justify">The result was the building of OpenSCADA for Linux controllers of ARM-architecture of &quot;ICP DAS&quot; company. The building can be loaded directly on any Linux-ARM controller, unpacking it at the root of the original operating system. In this case, however, the duplicates of the old core libraries (/lib/*) will remain, which can be removed after a successful restart.</p>
<p class="indent10 align-justify">For family of controllers LP-5x4x the firmware with the building OpenSCADA was created, which can be downloaded in the standard for these controllers way, which is described in the original &quot;ICP DAS&quot; documentation. Firmware for LP-5x4x can possible fit for the LP-5x3x, but it is not checked!</p>
<p class="indent10 align-justify">Due to outdated and non-optimal initial building of the Linux environment from &quot;ICP_DAS&quot;, which imposes the restriction on freedom of building the optimal environment, after the completion of the project it is planned to apply for support to &quot;ICP_DAS&quot; with the request to correct this situation.</p><div class="indent" style="margin-left: 40px; color: rgb(0, 0, 0); font-family: Verdana; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 16px; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); "><p class="bodytext">(*) Treatment carried out however no response until the response to the request was not followed!</p></div>]]></content:encoded>
			<category>News</category>
			<category>Solution</category>
			
			<author>rom_as@oscada.org</author>
			<pubDate>Fri, 23 Sep 2011 09:26:00 +0300</pubDate>
			
		</item>
		
		<item>
			<title>On September, 16-18th 2011 in city Odessa (Ukraine) the conference of developers and users of the free software and exhibition of free software solutions on the Sea took place.</title>
			<link>http://oscada.org/en/news-storage/single-page/article/on-september-16-18th-2011-in-odessa-the-conference-of-developers-and-users-of-the-free-software-and/</link>
			<description>The conference is organized by [Root@UA]Media, UAFOSS and Odessa National University. There was...</description>
			<content:encoded><![CDATA[<p class="indent10 align-justify">The exhibition was present the following OpenSCADA solutions:</p><ul style="margin: 0px; padding: 0px 0px 6px 60px; overflow: auto;"><li style="margin: 0px; padding: 0px; text-indent: 0px;"><span class="right-column inline-block" style="margin: 0px; padding: 0px;">Dynamic models of of technological processes and their control systems: Gas compressor station for six compressors, steam multifuel boiler unit BKZ-160.</span></li><li style="margin: 0px; padding: 0px; text-indent: 0px;"><span class="right-column inline-block" style="margin: 0px; padding: 0px;">The model and controller (ICP_DAS) of the ACS of ball mill for coal grinding for the boilers of thermal power station.</span></li><li style="margin: 0px; padding: 0px; text-indent: 0px;"><span class="right-column inline-block" style="margin: 0px; padding: 0px;">OpenSCADA on the mobile devices: Nokia N800, N950.</span></li><li style="margin: 0px; padding: 0px; text-indent: 0px;"><span class="right-column inline-block" style="margin: 0px; padding: 0px;">OpenSCADA on the industrial controllers: ICP_DAS LP-8781, LP-5141.</span></li></ul>]]></content:encoded>
			<category>News</category>
			<category>Report</category>
			<category>Publication</category>
			
			<author>rom_as@oscada.org</author>
			<pubDate>Mon, 19 Sep 2011 11:00:00 +0300</pubDate>
			
		</item>
		
	</channel>
</rss>
