Navigation Menu

Skip to content

cyclefusion/szarp

 
 

Repository files navigation

SZARP -  System Zbierania Archiwizacji i Prezentacji danych.
http://www.szarp.org

(C) 1991 - 2010 Witold Kowalewski Praterm Automatyzacja Ciep³ownictwa
(C) 1995 - 2009 Praterm S.A.
(C) 1991 - 2010 various authors (see AUTHORS file)

Table of contents:

0. Table of contents.
1. What is SZARP?
2. What does it mean SZARP, how to pronounce it?
3. What are the features of SZARP?
4. What is the origin of SZARP?
5. What platform is SZARP running on?
6. How to install SZARP?
7. Where are the docs?
8. How can I get SZARP sources?
9. How to setup my first SZARP server?
10. How to get help?


1. What is SZARP?

SZARP is a full-featured SCADA system, specially designed for controlling
slowly-changing industrial processes, such as operations of urban heating
systems. This is completely free software, published under GPL 2.0 
(or later version).


2. What does it mean SZARP, how to pronounce it?

SZARP is acronym from full Polish name: 'System Zbierania ARchwizacji i Prezentacji 
danych' which is 'System for Data Acquisition, Archiving and Presentation'. 'sz' in
Polish is pronounced as 'sh', so 'SZARP' should be pronounced as 'sharp'.


3. What are the features of SZARP?

SZARP architecure contains 3 main layers. 

The first layer is device drivers. There are several drivers available, for different 
devices, including:
* Modbus RTU/TCP, master and slave
* MBus
* Praterm ZET/Sterkom PLC
* Pollustat and Infocal heating meters
* Pozyton electricity meters
* text files and text output from programs
Device drivers are, for historical reasons, called 'line daemons'.

The second layer are deamons for collecting data from drivers, calculating average
values and formulas (defined parameters), and saving data to database. Datas are
generally available with 10-seconds resolution, but database contains 10-minutes
average values. There is also web server available for serving parameter values
by HTTP.

The third layer are client programs, including:
* Reporter - program for viewing current (10-seconds averages) values of parameters.
* Controller - program for signalling parameter values irregularities.
* Extractor - program for exporting data from database to spreadsheet files.
* Draw - powerfull tool for viewing and analyzing historical values of parameters.


4. What is the origin of SZARP?

SZARP was developed since 1991 (!) by Praterm company and was used in all heating
systems (over 20) owned by Praterm and in similar number of other systems all over 
Poland. In 2007 Praterm decided to publish almost all of the code under GPL License. 
Currently SZARP is developed as Open Source project on SourceForge.net. Project 
website is http://www.szarp.org. Main founder of development is currently Newterm 
company - http://newterm.pl.


5. What platform is SZARP running on?

SZARP is developed and deployed on Debian GNU/Linux, but should also compile and 
work on any modern Linux distribution, on x86, ia64, amd64 and ARM (server only). 
Clients applications can also run on Windows XP/Vista/7 machines with NTFS file system.


6. How to install SZARP?

File INSTALL contains installation instructions.


7. Where are the docs?

Most of the user documentation is available only in Polish. Sources of documentation
are in resources/documentation/new directory, it's also available on-line at 
http://www.szarp.org. Most of the new code is pretty-well documented, using Doxygen.


8. How can I get SZARP sources?

See http://www.szarp.org/en/download.


9. How to set-up my first SZARP server?

First install szarp-server (for details, see INSTALL):

 apt-get install szarp-server szarp-paramd szarp-wx

While configuring package, you must set 4-letters name of configuration (called 
'configuration prefix'), for example use 'test'. Answer 'yes' to question about
creating szbase directory.

Now look at the /etc/szarp directory. There are two files: 

* parstart.cfg - this files sets what SZARP services are to be run - the default
is to treat machine as SZARP server only if the machine name is equal to configuration
prefix. This is propably not your case, so modify the file that it contains:

PARCOOK=1
MEANER3=1
SENDER=1
PARAMD=1
PSETD=0
XSLTD=0
SSS=0

Now look at the /etc/szarp/szarp.cfg file and modify the begining of the file so
it looks like ($prefix$ variable shoud be set to 'test'):

$if $prefix$=""
$prefix$:="test"
# $prefix$:=exec("hostname -s")
$end

Now we have to prepare SZARP parameters configuration. We will make configuration
with one line daemon, that polls system for average load. Go to the directory
/opt/szarp/test and create subdirectory called 'config'. Place there file with name
'params.xml' and following content:

<?xml version="1.0"?>
<params xmlns="http://www.praterm.com.pl/SZARP/ipk" xmlns:exec="http://www.praterm.com.pl/SZARP/ipk-extra" version="1.0" read_freq="10" send_freq="10" title="Test configuration">
  <device daemon="/opt/szarp/bin/execdmn" path="/opt/szarp/test/get_la.sh" exec:frequency="10">
    <unit id="1" type="1" subtype="1" bufsize="1">
      <param name="Test:System:average system load" short_name="lavg" unit="-" prec="2" base_ind="auto">
        <raport title="System report"/>
        <draw title="System" min="0" max="100"/>
      </param>
    </unit>
  </device>
</params>

In directory /opt/szarp/test/config run this command:

 /opt/szarp/bin/i2smo

This produces szarp configuration files in old (non-XML) format, that are still 
in use by some scripts. Prepare executable script /opt/szarp/test/get_la.sh with the
following content:

#!/bin/bash
cat /proc/loadavg | cut -d ' ' -f 1 | tr -d '.'

Now restart SZARP services:

 /etc/init.d/parstart restart

Now you should be able to point your browser to http://localhost:8081 and see
configured parameter. After full 10 minutes you can also run draw3 program:

/opt/szarp/bin/draw3

and analyze your system average load.


10. How to get help?

You can try to write us at coders@newterm.pl.


About

SZARP is a full-featured, open source (GPL) SCADA system for Linux. Client programs are available for Linux and Windows.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 83.1%
  • Python 7.3%
  • C 5.4%
  • Shell 1.8%
  • XSLT 1.3%
  • Perl 0.8%
  • Other 0.3%