Table of Contents

Měřící systém pro průmyslové snímače

Pro připojení průmyslových měřících snímačů se nejčastěji používají normované analogové signály, nebo proudová smyčka 4-20mA. Výhodou použití proudové smyčky je možnost detekce chybových stavů snímače, jako je zkrat, nebo přerušení vedení.

Moderní zařízení však vyžadují digitalizaci měřených hodnot, proto byla navržena konstrukce ISMS01, která umožňuje převedení analogových signálů na rozhraní I²C, které pak díky knihovně Pymlab a použití moderních jednodeskových počítačů umožňuje připojení do složitých měřících sítí a systémů.

Blokové schéma měřící ústředny ISMS01A je následující.

 Průmyslový měřící systém využívající jednodeskové počítače a sběrnici I2C.

Vlastnosti

Popis funkce

Na řídícím počítači běží operační systém Linux Ubuntu, společně s utilitou pro zápis dat pracující s knihovnou pymlab. Tím vzniká datový záznam v podobě CSV sobouru. Čas souboru je v Unixtimestamp Formát je následující.

#Time, PH1, Temp1, Conduct1, O2,,,,,,,

Proudová smyčka

Proudovou smyčku zařízení čte modulem vcai2c, který má softwarový ovladač v knihovně pymlab.

Modbus

Modbus rozhraní je v přístroji implementováno pomocí Python knihovny MinimalModbus.

Použité moduly

Instalace software

Instalace předpokládá staniční počítač ODROID-C1 s běžícím systémem Ubuntu 16.04 minimal od Hardkernelu. Musí také v sytému existovat uživatel pod jehož účtem bude celá stanice běžet. Například uživatel “geozor”. Instalační postup je určen pro uživatele, který zná základy používání operačních systémů.

Nejdříve nainstalujeme potřebný software, který je v repozitářích Ubuntu.

sudo apt-get install build-essential cmake libusb-1.0-0-dev i2c-tools python-smbus libusb-1.0 cython python-setuptools python-numpy python-cheetah libboost-all-dev  autossh  pv ntp python-paramiko git  libpcap-dev

Pak můžeme stáhnout software, který je specifický pro MLAB měřící stanice:

mkdir repos
cd ~/repos
git clone https://github.com/MLAB-project/python-mlab-utils.git
cd python-mlab-utils
sudo python setup.py install
cd ~/repos
git clone https://github.com/MLAB-project/station-supervisor.git
cd station-supervisor/
git checkout geozor
cd ~/repos
git clone https://github.com/bolidozor/data-uploader.git
git checkout geozor

Dále potřebujeme obslužný program měřícího systému.

svn co svn://svn.mlab.cz/MLAB/Designs/Measuring_instruments/ISMS01A/SW ISMS01A

Příprava SDkarty

Na staničním počítači je dobré zapisovat záznamy na SD kartu, která se připojí do složky ~/geozor. Toto opatření snižuje počet zápisů na eMMC kartu, ze které stanice bootuje a prodlužuje tak její životnost. Případně poškozenou SDkartu je pak i jednodušší vyměnit dílky nepoškozenému operačnímu systému stanice.

Novou SDkartu naformátujeme na souborový systém F2FS. K tomu potřebujeme do systému nainstalovat podporu souborového systému F2FS.

sudo apt install f2fs-tools gparted

Pak můžeme programem Gparted naformátovat SDkartu na souborový systém F2FS, který je optimalizovaný pro paměťová media s omezeným počtem zápisů.

Naformátovanou SDkartu pak připojíme do adresáře ~/geozor a nastavíme souborová práva pro přístup i jinými uživateli než root.

sudo mount -t f2fs /dev/mmcblk1p1 ~/geozor/
sudo chgrp -R geozor geozor
sudo chown -R geozor geozor

Následně při namountované kartě vytvoříme složky pro data.

mkdir -p ~/geozor/station/data

Nastavení staničního času

Změníme systémové časové pásmo na UT.

sudo dpkg-reconfigure tzdata

Někdy je také potřeba vygenerovat místní nastavení např:

sudo locale-gen cs_CZ.UTF-8

Vzdálený přístup na stanici

Pro případ, že bude potřeba servisní zásah na stanici, je vhodné aktivovat i reverzní ssh tunel, který může sloužit pro vzdálenou správu stanice.

To lze udělat spuštěním těchto příkazů:

wget http://space.astro.cz/bolidozor/support/scripts/setup_reverse_tunnel.sh
chmod +x ./setup_reverse_tunnel.sh
sudo ./setup_reverse_tunnel.sh

Skript nakonec vypíše nastavené parametry. Např.

Host radio-test.tunnel
  Port 4958
  HostName space.astro.cz
  User testak1

Ty je potřeba zkopírovat a odeslat na stejnou adresu, jako v případě registrace stanice.

Použití vzdáleného přístupu

Pro vzdálený přístup je potřeba mít nahraný na serveru space.astro.cz veřejný ssh klíč počítače ze kterého se připojujeme.

Pro přístup k servisnímu rozhraní je třeba mít přístupové údaje na server space.astro.cz. Z něj je pak možné přistupovat ke stanici.

Postup připojení je následující:

ssh uzivatel@space.astro.cz

V případě že autentizace veřejným klíčem proběhne v pořádku, budete připojeni na server space.astro.cz. Na něm si můžete prohlížet svoje staniční data. Případně promazávat nehodnotná data, která byla do datového úložiště omylem zanesena.

K samotné stanici se pak připojíte příkazem

ssh odroid@geozor-vrty.tunnel

Stanice se pak zeptá na uživatelské heslo. Následně máme k dispozici příkazový řádek stanice. Pro základní informace o použití příkazového řádku je možné si pročíst stránku os.

Spuštění po startu

Protože se většina stanic instaluje na počítač zvaný Odroid, jehož výchozí uživatel se jmenuje odroid, předpokládá následující, že se tak jmenuje i uživatel, pod kterým bude běžet staniční software. Dosaďte za odroid správné jméno, pokud to tak není.

Do /etc/rc.local je třeba zapsat, co se má spustit po startu. Na všech stanicích by se mělo spustit /home/odroid/repos/station-supervisor/start.sh, což nastartuje všechen staniční software. Protože má staniční software běžet pod uživatelem odroid, bude celý příkaz ke zkopírování vypadat takto:

su odroid /home/odroid/repos/station-supervisor/start.sh

Pokud se mají na Odroidu zapisovat záznamy na SD kartu, mělo by se ještě před start.sh spustit také /home/odroid/repos/station-supervisor/mount-sd-card.sh, což kartu připojí přes /home/odroid/bolidozor.

Příkazy by se do rc.local měly přidat před exit 0, které tak zůstane na konci. Příklad /etc/rc.local po úpravě:

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

pon gprs

/home/geozor/repos/station-supervisor/mount-sd-card.sh

su odroid /home/geozor/repos/station-supervisor/start.sh &

exit 0

Aby fungoval příkaz “pon gprs” tak je nejdříve potřeba mít správně nastavený GPRS modem.