www.rexcontrols.cz
www.contlab.eu
www.pidlab.com
Začínáme se systémem REX na platformě Raspberry Pi
Uživatelská příručka
REX Controls s.r.o.
Verze 2.10.5
24.11.2014
Plzeň
Obsah
1 Úvod
1.1 Standardní součásti
1.1.1 RexDraw .
1.1.2 RexComp .
1.1.3 RexView . .
1.1.4 RexCore . .
.
.
.
.
.
2
2
2
3
3
3
2 Instalace vývojových nástrojů
2.1 Windows XP/Vista/7/8 . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.1.1 Postup instalace . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.1.2 Postup odinstalování . . . . . . . . . . . . . . . . . . . . . . . . . .
4
4
4
5
3 Instalace runtime modulu systému REX pro Raspbian
3.1 Instalace komponent na cílové zařízení Raspberry Pi . . . . . . . . . . . .
3.2 Instalované soubory a adresáře . . . . . . . . . . . . . . . . . . . . . . . .
6
6
7
4 Konfigurace, překlad a spuštění
9
systému
. . . . .
. . . . .
. . . . .
. . . . .
REX
. . .
. . .
. . .
. . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
5 Konfigurace IO na platformě Raspberry Pi
5.1 Práce s GPIO piny . . . . . . . . . . . . . . .
5.2 Teplotní čidlo DS18B20 jako analogový vstup
5.2.1 Fyzické připojení čidla . . . . . . . . .
5.2.2 Softwarové připojení čidla . . . . . . .
5.3 Přídavná karta PiFace Digital . . . . . . . . .
5.4 Přídavná karta UniPi . . . . . . . . . . . . . .
5.5 Přídavná karta Intellisys PIO . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
17
17
19
20
20
22
22
23
6 Licencování řídicího systému REX
24
6.1 Zkušební verze . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
6.2 Aktivace licence řídicího systému REX . . . . . . . . . . . . . . . . . . . . 24
Literatura
29
1
Kapitola 1
Úvod
Řídicí systém REX je otevřený a škálovatelný systém vhodný pro vnořené řízení (embedded control), přenositelný na různé platformy s překladači jazyka C a C++ od jednoúčelových řídicích desek s jednoduchou exekutivou reálného času až po procesní stanice se
standardními operačními systémy (Windows XP/Vista/7/8, Windows CE, GNU/Linux,
Phar Lap ETS, apod.).
Řídicí systém REX je kompatibilní s programovým balíkem Matlab/Simulink1 . Tato
kompatibilita je jednou ze základních myšlenek návrhu systému REX. Je možné využít
veškeré možnosti Simulinku pro simulaci a odladění algoritmů. Po simulačním ověření
lze řídicí algoritmy přeložit do binárních konfiguračních souborů, které je možné pomocí
diagnostického protokolu založeného na standardu TCP/IP poslat přímo do cílových
zařízení a podle nich zahájit řízení bez nutnosti odstavení zařízení. Ekvivalentní chování
simulace a řízení v reálném čase zaručuje rozsáhlá knihovna funkčních bloků [1] ve verzích
jak pro Simulink tak i pro každou cílovou platformu.
Na druhou stranu, systém REX je plnohodnotným nástrojem i v případě, že uživatel
nedisponuje licencí Simulinku, jeho součástí je plnohodnotné programové vybavení pro
vývoj a realizaci pokročilých řídicích systémů.
1.1
Standardní součásti systému REX
Řídicí systém REX se skládá z mnoha vývojových, diagnostických, vizualizačních a runtime komponent. Zatímco vývojové a diagnostické nástroje jsou k dispozici pro Microsoft
Windows XP/Vista/7/8, runtime modul systému REX může běžet na mnoha různých
platformách. Následuje stručný popis jednotlivých komponent systému REX.
1.1.1
RexDraw
Program RexDraw umožňuje navrhovat funkční schémata řídicího systému REX v grafickém prostředí. Schémata jsou tvořena pomocí bloků z rozsáhlé knihovny systému REX,
která je podrobně popsána v referenční příručce [1]. Výsledkem jsou soubory s příponou
1
Matlab i Simulink jsou registrovanými obchodními značkami firmy The MathWorks, Inc.
2
.mdl, které mohou být zkompilovány a výsledný řídicí algoritmus může být spuštěn na
cílovém zařízení systému REX.
1.1.2
RexComp
Na základě hlavního souboru projektu aplikace ve formátu .mdl generuje program RexComp binární konfigurační soubor .rex řídicího systému REX. Při svém spuštění vypisuje překladač informace o překládaných souborech a případně i výskyt chyb překladu.
Překladač je možné spouštět přímo z konfiguračního programu RexDraw v menu Compiler/Compile.
1.1.3
RexView
Diagnostický program RexView umožňuje sledovat, co se děje v runtime jádře RexCore
při jeho běhu, a proto je velmi důležitým nástrojem jak při uvádění řídicího systému do
provozu, tak v případě vzniku problémů během rutinního provozu. Program poskytuje
detailní hierarchicky uspořádané informace o všech subsystémech jádra. Komunikace
pomocí protokolu TCP/IP umožňuje připojit se k běžícímu jádru na lokálním počítači,
v lokální síti i ve vzdálené síti (např. přes Internet).
1.1.4
RexCore
Narozdíl od výše zmíněných vývojových nástrojů běží runtime modul RexCore, jádro
řídicího systému REX, na cílovém zařízení (PC, IPC, WinCon, WinPAC, Raspberry Pi
apod.). Jádro RexCore je komplexní program provádějící paralelně různé činnosti obvyklé v řídicích systémech. Jednotlivé úlohy jsou vykonávány na základě priorit v režimu
preemptivního multitaskingu pomocí několika subsystémů jádra.
3
Kapitola 2
Instalace vývojových nástrojů
Tato kapitola obsahuje podrobný návod na instalaci a případné odinstalování vývojových
nástrojů řídicího systému REX pro operační systémy Windows XP/Vista/7/8.
2.1
Windows XP/Vista/7/8
Vývojové prostředí RexDraw, překladač RexComp i diagnostický nástroj RexView pro
Microsoft Windows XP/Vista/7/8 jsou součástí instalátoru systému REX pro Windows,
který je možné stáhnout z internetových stránek firmy REX Controls,
http://www.rexcontrols.cz.
Před spuštěním instalace si ověřte, zda máte na daném PC administrátorská práva.
Pokud je již nainstalována starší verze systému REX, je doporučeno ji před instalací
odinstalovat.
2.1.1
Postup instalace
1. Spusťte instalaci programem REX_X_XX_X_XXXX_PPP.exe staženým z internetových
stránek
http://www.rexcontrols.cz.
2. Zvolte jazyk instalace a sledujte kroky instalačního průvodce.
3. Zvolte cílový instalační adresář, standardně je zvolen
C:\Program Files\REX Controls\REX_X_XX_X_XXXX_PPP.
4. Dále následuje možnost volby rozsáhlosti instalace. Vzhledem k maximální velikosti
instalace (120 MB) se doporučuje použití volby Úplná instalace.
5. Další kroky instalace jsou již standardní a zřejmé.
Po dokončení instalace není nutný restart systému.
4
2.1.2
Postup odinstalování
Odinstalace se provádí standardním postupem přes Ovládací panely a Přidat/Odebrat
programy, rovněž je možno využít položku Odinstalovat ve složce REX Controls ve Start
menu.
5
Kapitola 3
Instalace runtime modulu systému
REX pro Raspbian
Před instalací runtime modulu systému REX je potřeba mít na Raspberry Pi zprovozněnou distribuci Linuxu zvanou Raspbian (případně Soft-float Raspbian), více informací
naleznete na www.raspberrypi.org. Pro instalaci je nutné funkční připojení k Internetu.
3.1
Instalace komponent na cílové zařízení Raspberry Pi
1. Přihlašte se k Raspberry Pi, výchozí uživatel je pi a heslo raspberry.
2. Přepněte se do režimu administrátora systému (uživatel root)
sudo -s
3. Aktualizujte seznam dostupných balíčků distribuce Raspbian
apt-get update
4. Aktualizujte vaše Raspberry Pi na nejnovější verzi
apt-get upgrade
5. Pomocí textového editoru nano otevřete soubor /etc/apt/sources.list
nano /etc/apt/sources.list
6. Přidejte následující 2 řádky na konec souboru
deb http://download.rexcontrols.cz/repositories/debian-rex-2.10/ wheezy contrib
deb http://download.rexcontrols.cz/repositories/debian-rex-2.10/ wheezy non-free
Ukončete editor pomocí Ctrl+X, potvrďte uložení souboru pomocí Y a klávesy
Enter.
7. Stáhněte si veřejný klíč REX Controls
wget -O /tmp/rex.pub https://www.rexcontrols.cz/media/keys/rex-debian-key.pub
6
8. Přidejte klíč REX Controls mezi důvěryhodné
apt-key add /tmp/rex.pub
Výsledek operace musí být OK, jinak nebudete moci stáhnout instalační balíčky
systému REX.
9. Opět aktualizujte seznam dostupných balíčků,
apt-get update
10. Nainstalujte runtime modul systému REX
apt-get install rexcore
11. Pravděpodobně budete chtít nainstalovat také ovladač systému REX pro přístup k
GPIO pinům Raspberry Pi. Tento balíček můžete nainstalovat nyní, nicméně toto
téma bude podrobněji popsáno v dalších kapitolách.
apt-get install rex-rpidrvt
12. Pokud chcete používat i pokročilé funkční bloky systému REX, nainstalujte příslušný balíček. Narozdíl od základních funkčních bloků je pro použití těchto pokročilých bloků potřeba platná licence systému REX. Bližší informace o funkčních
blocích naleznete v [1]. Pro nainstalování balíčku spusťte následující příkaz
apt-get install rex-advblkt
13. Pokročilí uživatelé mohou v tuto chvíli nainstalovat i další komponenty systému
REX, bližší instrukce však naleznete dále.
Nápověda pro pokročilé: apt-cache search ^rex
Po instalaci je RexCore spuštěn automaticky na pozadí jako tzv. daemon a je možné se
připojit z vývojového počítače k Raspberry Pi pomocí programů RexDraw nebo RexView.
K automatickému spuštění RexCore dojde také při startu operačního systému.
Příkazem sudo apt-get remove rexcore odstraníte runtime modul řídicího systému REX z operačního systému.
3.2
Instalované soubory a adresáře
Systém REX využívá v prostředí GNU/Linux následující soubory a adresáře:
• /usr/bin pro spustitelné binární soubory (např. RexCore),
• /usr/lib pro binární knihovny,
• /usr/lib/rex pro dynamicky načítané binární knihovny a ovladače,
• /etc/rexcore adresář pro konfigurační soubory,
• /etc/rexcore/rexcore.conf konfigurační soubor RexCore,
7
• /etc/rexcore/rexcore.env.d adresář se skripty spouštěnými před startem jádra
RexCore,
• /etc/init.d/rexenv spouštěcí skript pro přípravu prostředí pro běh RexCore,
• /etc/init.d/rexcore spouštěcí skript pro RexCore,
• /rex hlavní adresář pro perzistentní soubory systému REX,
• /rex/rexcore hlavní adresář RexCore,
• /rex/rexcore/exec.rex soubor s aktuální exekutivou RexCore,
• /var/run/rexcore.pid zámek indikující běh RexCore,
• /var/log/rexcore.log soubor se zaznamenanými událostmi.
8
Kapitola 4
Konfigurace, překlad a spuštění
Postup vytváření algoritmu řízení budeme demonstrovat na jednoduché zpětnovazební
smyčce s PID regulátorem. Konfigurace projektu probíhá v programu RexDraw. Každý
projekt se skládá minimálně ze dvou souborů .mdl. První je hlavní soubor projektu,
ve kterém se konfigurují jednotlivé úlohy, ovladače, priority, časování a další. Ostatní
soubory projektu již obsahují samotné algoritmy (tasky).
Standardní postup:
1. Spusťte program RexDraw, uložte aktuální nový soubor jako např. exec.mdl
2. Otevřete Block Library, v menu View/Block Library nebo ikonkou
jové lišty
z nástro-
3. Vložte hlavní blok EXEC a dále pak blok TASK, oba z knihovny EXEC, do otevřeného modelu exec.mdl (dále v textu budeme umístění bloku v knihovně již značit
knihovna/blok, např. EXEC/TASK). Vložení bloku se provádí přetažením z knihovny
přidržením levého tlačítka myši.
4. Nyní propojte oba bloky, z výstupu Level0 bloku EXEC na vstup prev bloku TASK.
Propojení se provádí opět levým tlačítkem myši (přidržením a táhnutím z výstupu
na vstup nebo i opačně). K připojení dojde, jestliže se jednoduchý kříž myši změní
na dvojitý. Správně propojená čára není přerušovaná a končí plnou šipkou.
9
5. Konfigurace každého bloku ve schématu se provádí dvojklikem na příslušný blok.
Otevře se okno pro nastavení parametrů a vlastností. Parametry všech bloků systému REX jsou podrobně popsány v nápovědě (po stisknutí klávesy F1) a v manuálu
Funkční bloky systému REX [1].
6. V parametrech bloku EXEC nastavte ntick0 = 2, tj. úloha připojená na Level0
se bude provádět s periodou tick*ntick0=0.1s. V rozbalovacím seznamu vyberte
cílové zařízení target = Linux.
10
7. Blok TASK přejmenujeme na simple_PID_loop (políčko Block v konfiguračním
okně stejně jako parametry). Tímto přejmenováním zajistíme propojení modelu
simple_PID_loop.mdl s příslušnou spouštěnou úlohou. Zmíněný model pro úlohu
si vytvoříme dále.
8. Soubor exec.mdl uložíme. Nyní je nutné jej definovat jako hlavní soubor projektu.
To se provede v menu volbou File/Set as main. Po tomto nastavení se změní
název okna na exec - RexDraw [exec].
9. Pro tvorbu modelu simple_PID_loop si otevřeme nové okno a použijeme následující bloky z Block Library:
• MATH/CNB – konstanta typu Boolean, změna jména CNB_MAN, parametr YCN=off,
• MATH/CNB – konstanta typu Boolean, změna jména CNB_RUN, parametr YCN=on,
• MATH/CNR – konstanta typu Double, změna jména CNR_sp, parametr ycn = 22,
• MATH/CNR – konstanta typu Double, změna jména CNR_hv, parametr ycn=10,
• REG/SOPDT – model procesu druhého řádu s dopravním zpožděním, parametry
itf=2, k0=1, tau=0, tau1=5, tau2=4, del=0.2, ostatní jsou beze změny
• REG/PIDU – PID regulátor, parametry irtype=7: PID, k=4.3, ti=6.68, td=1.67,
nd=2, tt=3.34, hilim=100, lolim=0, ostatní jsou beze změny
• ARC/TRND – záznam trendů v reálném čase, parametry n=3, l=500
Propojíme bloky tak, jak ukazuje následující obrázek. Regulátor PIDU bude řídit model procesu SOPDT. Rozdvojení čar se provádí přidržením pravého tlačítka
myši na čáře a táhnutím. Aby bylo přesně definováno rozpojení rychlých zpětnovazebních smyček, jsou použity rozpojovací bloky EXEC/LPBRK znázorněné formou
„přeškrtnutého“ čtverečku. Bloky LPBRK je potřeba otočit, aby vstup měly vpravo
a výstup vlevo. Libovolný z bloků je možné ve schématu otočit pomocí parametru
Orientation v okně pro nastavení parametrů (Block properties).
11
Tímto postupem jsme vytvořili exekutivu exec.mdl a příslušný algoritmus řízení v souboru simple_PID_loop.mdl.
Jedná se o PID regulaci systému druhého řádu s dopravním zpožděním. Logická
konstanta CNB_MAN = on přepíná PID regulátor do manuálního režimu, kdy je na jeho
výstup mv pouze kopírován vstup hv, tedy konstanta CNR_hv. Naopak v automatickém
režimu (CNB_MAN = off) plní regulátor svoji hlavní funkci a svým výstupem mv řídí blok
SOPDT tak, aby jeho výstup co nejrychleji najel na požadovanou konstantní hodnotu
CNR_sp.
Před spuštěním projektu je nutné jej přeložit. Překlad se spustí výběrem položky
Compiler/Compile z menu nebo ikonkou
. Výsledek překladu se zobrazí v okně
Compiler window. Pokud překlad skončí bez chyby, vytvoří se soubor exec.rex.
12
Pro spuštění projektu na cílové platformě využijeme ikonu Compile and Download
.
Po překladu projektu jsme vyzváni k zadání cílového zařízení, do kterého chceme projekt
nahrát.
13
Do políčka Target name or address zadáme IP adresu cílového zařízení ( Raspberry
Pi), všechny ostatní položky ponecháme bez změn a stiskneme tlačítko Download. Po
úspěšném připojení a nahrání projektu máme možnost zůstat připojeni k cílovému zařízení a sledovat běh řídicího algoritmu, zvolíme Watch. Program RexDraw nyní pracuje v
tzv. online režimu. Pro sledování vstupů a výstupů regulátoru PIDU na něj 1x klikneme
levým tlačítkem myši a v menu zvolíme Target/Monitor selection.
14
Následně můžeme po dvojkliku na blok CNR_sp změnit požadovanou hodnotu regulační
smyčky např. na ycn = 28 a po nějaké době zpět na ycn = ycn = 22 a ihned uvidíme,
že PID regulátor začal na tuto změnu reagovat. Obdobným způsobem můžeme sledovat
i další bloky a měnit jejich parametry.
Nyní pomocí ikony
spustíme diagnostický program RexView, ve kterém můžeme
řídicí algoritmus sledovat ještě podrobněji. Potvrdíme nabízenou cílovou adresu zařízení.
V levém bílém panelu je možné rozbalit strom, který představuje běžící exekutivu na
připojeném zařízení. Najdeme si záložku simple_PID_loop, která obsahuje všechny bloky
naprogramovaného algoritmu. Procházením po jednotlivých blocích můžeme měnit jejich
parametry, sledovat vstupy a výstupy, při pokročilém ladění pak i vnitřní stavy. Zvolímeli blok TRND a záložku Trend, zobrazí se nám graf ukládaných výstupů. Nyní můžeme
v programu RexDraw opět změnit požadovanou hodnotu, tentokrát na CNR_sp.ycn = 50
a sledovat reakci PID regulátoru v grafu. Stejného výsledku bychom dosáhli, pokud
bychom konstantu CNR_sp.ycn změnili přímo v programu RexView a přepnuli se zpět na
záložku Trend bloku TRND.
15
Nyní můžeme programy RexView i RexDraw odpojit od cílového zařízení pomocí ikony
. Program RexDraw ještě nabídne přenesení změněného parametru CNR_sp.ycn do
zdrojového výkresu projektu, v tuto chvíli zvolíme No.
16
Kapitola 5
Konfigurace IO na platformě
Raspberry Pi
V předchozí kapitole bylo ukázáno, jak rozběhnout algoritmus systému REX na cílovém
zařízení. Ten však zatím nijak neinteraguje s okolím, není napojen na žádné fyzické
signály.
Nyní tedy přejdeme k řízení reálného procesu, který byl až dosud simulován pomocí
bloku SOPDT. Budeme vycházet z předchozího příkladu.
Nejprve si uložíme soubor exec.mdl jako exec_rpi.mdl a nastavíme ho jako hlavní
soubor projektu.
Pro interakci Raspberry Pi s okolním světem využijeme jeho GPIO piny. Ty lze nakonfigurovat jako vstupní nebo výstupní, pin 18 se navíc dá zkonfigurovat do režimu
pulzně-šířkové modulace (PWM). Jelikož Raspberry Pi samo o sobě nemá žádný analogový vstup, ukážeme jak měřit analogovou veličinu pomocí digitálního teplotního čidla
DS18B20 od Maxim Integrated.
5.1
Práce s GPIO piny
Pro přístup ke GPIO pinům ze systému REX musíme nainstalovat ovladač systému REX
pro Raspberry Pi, což provedeme příkazem
sudo apt-get update && sudo apt-get install rex-rpidrvt
Následně můžeme do projektu přidat ovladač a vstupně-výstupní vlajky zajišťující
napojení na jednotlivé fyzické signály.
Z knihovny Block library vložíme blok EXEC/MODULE a pojmenujeme ho RPiDrv.
Poté ještě vložíme blok ovladače IODRV. Přejmenujeme ho na RPI a nastavíme následující
parametry:
• module = RPiDrv,
17
• classname = RPiDrv,
• cfgname = RPiDrv.rio,
• factor = 1
a ostatní ponecháme beze změny. Pospojujte bloky v hlavním souboru projektu dle
obrázku níže.
Změna algoritmu řízení simple_PID_loop.mdl je následující. Nejprve si algoritmus
uložíme jako simple_PID_loop_rpi.mdl. V souboru exekutivy exec_rpi.mdl změníme
název bloku simple_PID_loop na simple_PID_loop_rpi. Vymažeme blok SOPDT. Na
výstup regulátoru mv připojíme výstupní vlajku (blok INOUT/Goto), které nastavíme
parametr GotoTag=RPI__PWM18). Touto vlajkou definujeme, že GPIO pin 18 bude přepnut do režimu pulzně-šířkové modulace a bude sloužit jako „analogový“ výstup PID
regulátoru ovlivňující řízený proces. Blok LIN přepočítává výstup regulátoru (0-100%)
na 10-bitovou pulsně šířkovou modulaci (0-1023). Nastavte u1 = 0, y1 = 0, u2 = 100,
y2 = 1023.
Obdobně pro další piny bychom použili například vlajky:
• Goto, RPI__GPIO22 – digitální výstup 22
• From, RPI__GPIO7U – digitální vstup 7 s interním pull-up rezistorem
• From, RPI__GPIO8D – digitální vstup 8 s interním pull-down rezistorem
18
• From, RPI__GPIO21 – digitální vstup 21 bez pull up/down rezistoru
Napojení na GPIO pin se tedy skládá ze jména driveru RPI, dvou podtržítek __, režimu
pinu (GPIO nebo PWM), čísla pinu a u vstupů ještě volitelného symbolu pro interní pull-up
(U) nebo pull-down (D) rezistor.
Číslování pinů na Raspberry Pi ukazují následující obrázky:
Model B, rev.2
Model B+
Pro detailnější informace o jednotlivých pinech navštivte stránku http://elinux.
org/RPi_Low-level_peripherals.
5.2
Teplotní čidlo DS18B20 jako analogový vstup
V algoritmu řízení simple_PID_loop_rpi.mdl dále na vstup pv PID regulátoru připojíme vlajku INOUT/From, které nastavíme parametr GotoTag=OWS__temperature. Po
správném zapojení čidla a zkonfigurování všech ovladačů se na této vlajce objeví teplota
přečtená z teplotního čidla.
19
5.2.1
Fyzické připojení čidla
Čidlo DS18B20 se připojuje na GPIO pin 4 podle následujícího schématu fyzického
zapojení. Nezapomeňte na 4k7 rezistor:
Komunikace s čidly v tzv. parazitním režimu není podporována. Pokud tuto funkčnost
vyžadujete, použijte USB nebo I2C převodní moduly pro sběrnici 1-Wire.
5.2.2
Softwarové připojení čidla
Zpřístupnění dat v Raspbianu
Pro komunikaci s čidly je potřeba do Raspberry Pi přidat moduly jádra, které jsou
součástí Raspbianu, ale nejsou defaultně aktivovány. Moduly natáhneme pomocí příkazu
sudo modprobe w1_gpio && sudo modprobe w1_therm
Aby se moduly natáhly automaticky i po restartu, přidáme je do souboru /etc/modules
pomocí příkazu
sudo sh -c "echo \"w1_gpio\nw1_therm\n\" >> /etc/modules"
Pro zpřístupnění informací z 1-Wire čidel využívá systém REX programový balík
OWFS a ovladač systému REX pro tento balík. Pomocí příkazu
sudo apt-get install rex-owsdrvt ow-shell
nainstalujeme ovladač systému REX a sadu nástrojů pro příkazovou řádku ow-shell.
Balíček owserver se nainstaluje v případě potřeby automaticky.
Nyní upravíme konfigurační soubor OWFS:
20
sudo nano /etc/owfs.conf
Pomocí # zakomentujeme vše kromě řádek
! server: server = localhost:4304
allow_other
server: port = localhost:4304
a přidáme řádku
server: w1
Následně je potřeba restartovat owserver, aby začala platit nová nastavení, což provedeme příkazem
sudo /etc/init.d/owserver restart
Nyní můžeme příkazem owdir vypsat nalezená 1-Wire zařízení. Výstup by měl vypadat zhruba takto:
/28.551DDF030000
/bus.1
/bus.0
/uncached
/settings
/system
/statistics
/structure
/simultaneous
/alarm
První řádka je identifikátor teplotního čidla, který se pro každé čidlo liší. Pomocí příkazu
owread /28.551DDF030000/temperature12
přečteme aktuálně změřenou teplotu (dosaďte identifikátor vašeho čidla).
Zpřístupnění dat v systému REX
Abychom mohli číst teploty i v systému REX, je potřeba:
1. Do exekutivy projektu zahrnout ovladač OwsDrv obdobně jako při přidávání ovladače pro GPIO piny (viz výše). Z knihovny Block library vložíme blok EXEC/MODULE
a pojmenujeme ho OwsDrv. Poté ještě vložíme blok ovladače IODRV. Přejmenujeme
ho na OWS a nastavíme následující parametry: classname = OwsDrv, cfgname =
OwsDrv.rio, factor = 100. Ostatní parametry ponecháme beze změny.
2. Nyní klikněte na tlačítko Special edit a potvrďte vytvoření souboru OwsDrv.rio
v adresáři s projektem. Upravte parametry v dialogu OwsDrv configuration podle
obrázku níže. Bude potřeba přidat (Add) jednu položku pro váš teplotní senzor a
vyplnit parametry. Nezapomeňte použít ID vašeho čidla. Parametr Value určuje
počáteční teplotu (23 ◦ C), kterou bude čidlo hlásit. Kliknutím na tlačítko OK
uzavřete dialogové okno.
21
Po přeložení projektu a opětovném nahrání do Raspberry Pi již systém REX fyzicky
interaguje se svým okolím. Opět je možné přejít do online režimu a sledovat data v reálném čase nebo pozorovat průběhy dat pomocí programu RexView. Tento ukázkový řídicí
algoritmus je možné například použít pro snímání teploty topné nebo vratné vody na
kotli a řízení jeho výkonu pomocí PWM výstupu. Nikdy se však do takových experimentů
nepouštějte, pokud si nejste 100% jisti, že víte, co děláte.
Pro řízení reálného systému je vždy potřeba upravit parametry bloku REG/PIDU podle
dynamického chování řízené soustavy, což však není předmětem tohoto návodu.
Podrobný popis zařazení ovladače pro Raspberry Pi lze nalézt v manuálu [2]. Standardní konfigurace exekutivy a soubor všech podporovaných vlajek jsou umístěny v instalačním adresáři systému REX (standardně adresář
C:\Program Files\REX Controls\REX_<version>\EXAMPLES\IODRV\RPI_Example.
5.3
Přídavná karta PiFace Digital
Pro použití přídavné karty PiFace Digital je potřeba v Raspbianu povolit sběrnici SPI.
Bližší instrukce naleznete v příručce [2]. Následně můžeme ke vstupům a výstupům
přídavné karty PiFace Digital přistupovat obdobně jako ke GPIO pinům, pouze změníme
propojovací řetězce ve vlajkách INOUT/From a INOUT/Goto. Můžeme použít například
• Goto, RPI__PFIO4 – digitální výstup 4
• From, RPI__PFIO5 – digitální vstup 5
• From, RPI__PFIO6U – digitální vstup 6 s interním pull-up rezistorem
5.4
Přídavná karta UniPi
Řídicí systém REX na Raspberry Pi podporuje také rozšiřující kartu UniPi [3], pro kterou
je k dispozici samostatná příručka pro rychlý start [4] a podrobnější informace jsou dále
uvedeny v manuálu pro ovladač systému REX pro Raspberry Pi [2].
22
5.5
Přídavná karta Intellisys PIO
Řídicí systém REX na Raspberry Pi podporuje také rozšiřující kartu Intellisys PIO [5],
pro kterou je k dispozici samostatná příručka pro rychlý start [6] a podrobnější informace
jsou dále uvedeny v manuálu pro ovladač systému REX pro Raspberry Pi [2].
23
Kapitola 6
Licencování řídicího systému REX
6.1
Zkušební verze
Zkušební verze systému REX je funkční po dobu 2 hodin, je možno použít všechny funkční
bloky kategorie Basic, viz [1]. Po uplynutí této doby je běh jádra RexCore na cílovém
zařízení bez jakéhokoliv upozornění ukončen.
Spuštění jádra RexCore ve zkušebním režimu je potřeba potvrdit pomocí dialogu,
který se objeví při prvním připojení k cílovému zařízení z programů RexView nebo
RexDraw.
6.2
Aktivace licence řídicího systému REX
Pro trvalý běh systému REX je potřeba aktivovat licenci jádra RexCore a dalších volitelných modulů. Licence je možno zakoupit v e-shopu na adrese
www.rexcontrols.cz/e-shop
Následně je potřeba zakoupenou licenci spárovat s konkrétním hardwarovým zařízením.
Každá instalace systému REX pro Raspberry Pi je identifikována pomocí tzv. SiteCode
identifikátoru, který lze získat pomocí programu RexView. Po připojení k cílovému zařízení otevřete pomocí pravého tlačítka myši a položky menu Licence dialogové okno,
odkud můžete identifikátor zkopírovat.
24
Následně se na portálu www.rexcontrols.cz přihlaste pomocí vašeho uživatelského
jména a hesla, abyste mohli zobrazit seznam licencí, které máte k dispozici.
25
Licenci spárujete s daným hardwarovým zařízení právě pomocí identifikátoru SiteCode.
Následně jste vyzváni k potvrzení přiřazení licence – jedná se o poslední a nevratný
krok.
26
Po přiřazení licence je vygenerován aktivační klíč, tzv. SiteKey, který umožní trvalý
běh jádra RexCore.
27
Tento klíč nahrajete pomocí licencovacího dialogu v RexView do cílového zařízení
(tlačítko Add).
Pokud je klíč platný, objeví se aktivované licence. Raspberry Pi je však potřeba
restartovat.
28
Po restartu je možno zkontrolovat, že licence byla aplikována správně a jádro RexCore
poběží trvale.
29
Literatura
[1] REX Controls s.r.o.. Funkční bloky systému REX – Referenční příručka, 2013.
[2] REX Controls s.r.o.. Ovladač RPiDrv systému REX pro Raspberry Pi – Uživatelská
příručka, 2013.
[3] Faster CZ s.r.o. Universal Raspberry Pi add-on board. http://www.unipi.technology,
2014.
[4] REX Controls s.r.o.. Začínáme se systémem REX na platformě UniPi, 2014.
[5] Intellisys S.r.l. PIO programmable input-output interface. http://www.intellisys.it,
2014.
[6] REX Controls s.r.o.. Začínáme se systémem REX na platformě Intellisys PIO, 2014.
Referenční číslo dokumentace: 4834
30
Download

Začínáme se systémem REX na Raspberry Pi