SZARP is a full-featured and free SCADA system for GNU/Linux. Client programs are available for both Linux and Windows.
Switch branches/tags
custom_raporter3_1024reports custom-wx-jessie custom-wx-jessie-compile custom-wheezyforleg custom-sz3integrate2 custom-sz3integrate1 custom-sterille-devel-psetd-removal custom-sterille-devel-analiza-removal custom-sterille-devel-2 custom-sterille-activityless-2 custom-sss4win custom-raporter3-hotfix custom-raporter3-1024reports custom-noautotrang2 custom-noautotrang custom-meaner3-nodata-hotfix custom-libzmq3-1 custom-libzm3 custom-iks-sz3 custom-iks-sz3-9 custom-iks-sz3-8 custom-iks-sz3-7 custom-iks-sz3-6 custom-iks-sz3-5 custom-iks-sz3-4 custom-iks-sz3-3 custom-iks-sz3-2 custom-develup5 custom-develup4 custom-develup3 custom-develup2 custom-develup custom-defdmn custom-defdmn-zmqhwm custom-defdmn-zmq3 custom-defdmn-regexfix custom-defdmn-packagefix custom-cfgdealer6 custom-cfgdealer5 custom-cfgdealer4 custom-cfgdealer3 custom-cfgdealer2 custom-cfgdealer1 custom-borutadmn-z custom-borutadmn-z-v5 custom-borutadmn-z-v4 custom-borutadmn-z-v3 custom-borutadmn-z-v2 custom-boruta-fc custom-boruta-fc-v4 custom-boruta-fc-v3 custom-boruta-fc-v2 custom-3.17.11-ciechom analiza_psetd 6.1.617 6.1.616 6.1.615 4.1.426 3.18.9+10rc 3.18.9 3.18.8+9rc 3.18.8 3.18.7+8rc 3.18.7 3.18.5+6rc 3.18.5 3.18.3+4rc 3.18.3 3.18.2.8 3.18.2.7 3.18.2.6 3.18.2.5 3.18.2.4 3.18.2.3 3.18.2+3rc3 3.18.2+3rc2 3.18.2+3rc1 3.18.2+3rc 3.18.2.2 3.18.2.1 3.18.2 3.18.1+2rc 3.18.1 3.17.12+13rc 3.17.12 3.17.11+12rc2 3.17.11+12rc1 3.17.11+12rc 3.17.11.1 3.17.11 3.17.10+11rc1 3.17.10+11rc 3.17.10 3.17.9+10rc 3.17.8+9rc 3.17.8 3.17.7+8rc 3.17.7 3.17.6+7rc 3.17.6
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
cfgdealer Cfgdealer: added very verbose error message in case we cannot bind Aug 22, 2018
debian Documentation: build fix on stretch/unstable Sep 3, 2018
example-base Better instructions and scripts for example-base Mar 7, 2018
extern
iks Add user_defined LUA parameters to iks-server Sep 6, 2018
isl Removed code that is no longer in use Aug 2, 2018
libSzarp Add user_defined LUA parameters to iks-server Sep 6, 2018
libSzarp2 Add user_defined LUA parameters to iks-server Sep 6, 2018
m4 Wx2.8 to 3.0: whole szarp migration to wxWidgets3 Aug 17, 2017
meaner3 IPK: moved to separate files, minor changes in draw3 Jul 16, 2018
parcook documentation: k601 documentation fix Sep 7, 2018
python
qt4 filler2: fixed packaging error Sep 2, 2015
resources Removed code that is no longer in use Aug 2, 2018
script
sender sender: less logging on EAGAIN Jul 26, 2018
unit_tests Logger: added pid logging in file logger Aug 22, 2018
utils resources: added missing attribute and checking daemons Jul 31, 2018
www sssweb: warning fix Jul 4, 2017
wx Add missing header for newer builds Sep 11, 2018
.gitignore Added set-logging-level feature Jul 16, 2018
AUTHORS minor logic fix in updating script Dec 6, 2016
COPYING License files cleanup, added SZARP wallpaper Feb 27, 2017
ChangeLog * wx/draw3: more info about params in xyz graphs Apr 8, 2013
ChangeLog.old Importing SZARP sources Jun 24, 2009
Doxyfile Added generating callers and callees graphs in Doxyfile Nov 23, 2017
INSTALL fixed typo Aug 11, 2016
INSTALL.Windows more typos Sep 19, 2016
INSTALL.wxWidgets.sh.tgz mingw32: updated howto and added wxW. conf script Sep 2, 2015
LICENSE License files cleanup, added SZARP wallpaper Feb 27, 2017
Makefile.am autotools: major fixes Jul 4, 2017
NEWS news Oct 3, 2012
NEWS.pl_PL news Oct 3, 2012
README updated README files Jan 26, 2018
README.md updated README files Jan 26, 2018
autogen.sh Refactoring in m4 scripts Apr 25, 2014
build.sh build.sh: help changed Apr 18, 2016
configure.ac reenable legacy SSL (1.0) builds Jul 20, 2018
gpl-2.0-pl-win.txt Mingw: usunięcie polskich znaków z licencji Nov 23, 2015
gpl-2.0-pl.txt Licenses cleanup Feb 23, 2015
gpl-2.0.txt Added README.md Feb 25, 2015
overall.dia
push.sh
unbuild.sh

README.md

SZARP - System Zbierania Archiwizacji i Prezentacji danych

http://www.szarp.org/

Copyright © 1991-2010 Witold Kowalewski Praterm Automatyzacja Ciepłownictwa
Copyright © 1995-2009 Praterm S.A.
Copyright © 1991-2018 various authors (see AUTHORS file)

Table of contents

  1. What is SZARP?
  2. What does SZARP mean? How to pronounce it?
  3. What are the features of SZARP?
  4. What is the origin of SZARP?
  5. On what platform is SZARP running?
  6. How to install SZARP?
  7. Where can I find documentation?
  8. How can I get SZARP sources?
  9. How to setup my first SZARP server?
  10. How can I get help?

  1. What is SZARP?

SZARP is a full-featured SCADA system designed for monitoring slowly changing industrial processes, for example operations of urban heating systems. It is completely free software, published under terms of the GNU General Public License 2.0 (or any later version).

  1. What does SZARP mean? How to pronounce it?

SZARP is an acronym for a Polish name: System Zbierania ARchwizacji i Prezentacji danych, which means System for Data Acquisition, Archiving and Presentation. Digraph "sz" in Polish is pronounced similarly to English "sh", so "SZARP" should be pronounced as a word "sharp".

  1. What are the features of SZARP?

SZARP architecture is organized into three layers.

The first layer are device drivers. There are several drivers available, including:

  • Modbus RTU/TCP (master and slave)
  • MBus
  • Praterm ZET/Sterkom PLC
  • Pollustat, Infocal and Kamstrup heating meters
  • DDE (Dynamic Data Exchange) protocol
  • communication with Python scripts through IPC
  • importing data from text files and text output of programs

These device drivers are called line daemons (for historical reasons).

The second layer consist of data collecting daemons that read data from drivers, calculate average probes and formulas (called defined parameters) and finally save data to SZARP database. Probes are generally available with any predefined resolution using the sz4 database (e.g. 1s or 1ms). There is also a web server available for serving parameters' values through HTTP.

In the third layer there are client programs, including:

  • Raporter - a program for viewing current values of parameters.
  • Reporter4 - as above, but for parameters from sz4 base.
  • Controller - a program for signalizing parameters' values irregularities.
  • Ekstraktor - a program for exporting data from databases to spreadsheet files.
  • Draw - a powerful tool for viewing and analyzing historical data.

More information about SZARP architecture is available in documentation.

  1. What is the origin of SZARP?

SZARP was developed since 1991 (sic!) by Praterm company and was used in all heating systems (over 20) owned by Praterm and that much other systems all over Poland. In 2007 Praterm decided to publish almost all of the code under GNU GPL. Nowadays SZARP is developed as an Open Source project on GitHub.

Project website is located at http://www.szarp.org/. Today, the main founder of SZARP's development is Newterm company.

  1. On what platform is SZARP running?

SZARP is developed and deployed for Debian GNU/Linux and Raspbian, but should compile and run on any modern Linux distribution on i386, amd64 and armel/armhf architectures. Client applications should also run on Windows XP/Vista/7/10 machines with NTFS filesystem.

  1. How to install SZARP?

File INSTALL contains installation instructions.

  1. Where can I find documentation?

Unluckily most of the user documentation is available only in Polish. Sources of documentation are in resources/documentation/new/ directory and available online. Most of the new code is pretty-well documented (in English) using Doxygen.

  1. How can I get SZARP sources?

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

  1. How to setup my first SZARP server?

First install szarp-server and szarp-wx packages (for details see INSTALL):

apt-get install szarp-server szarp-wx

In a configuration stage, you have to set 4-letter name of a configuration (called configuration prefix), for example use "test". Answer "yes" to a question about creating 'szbase' directory. To use modern sz4 database backend, select sz4 from the list of available databases.

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

  • parstart.cfg - obsolete. To choose which services will be run, do: dpkg-reconfigure szarp-server, which will create systemd service links

  • szarp.cfg - this is a SZARP system configuration file. There are a lot of available options, but for now you only need to set configuration prefix. Modify the beginning of the file so it looks like this:

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

($prefix$ variable should be set to "test")

If all above is done, you 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 a file named params.xml with the following content:

<?xml version="1.0" encoding="utf-8"?>
<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" draw_name="Average Load" short_name="lavg" unit="-" prec="2" base_ind="auto">
        <raport title="System report" order="1"/>
        <draw title="System" min="0" max="100" order="1"/>
      </param>
    </unit>
  </device>
</params>

Then, in directory /opt/szarp/test/config run command:

/opt/szarp/bin/i2smo

(this parses XML configuration, if every thing is ok, you should see "OK")

Prepare an executable script /opt/szarp/test/get_la.sh with the following content:

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

Save it and restart SZARP services:

systemctl restart szarp-server.target

And that's all, you should be able to point your browser to http://localhost:8081/ and see your configured parameter. You can also run Draw3 program:

/opt/szarp/bin/draw3

and analyze your system average load.

  1. How can I get help?

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