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. 2015 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 23 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, 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:
Modely A a B, rev.2
Modely A+, B+ a RPi2
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:
5.2.2
Softwarové připojení čidla
Zpřístupnění dat v Raspbianu Pro komunikaci s čidly je potřeba aktivovat tzv. w1 sběrnici, což zajistíme modifikací souboru /boot/config.txt. • V editoru nano otevřete soubor /boot/config.txt sudo nano /boot/config.txt • Na jeho konec přidejte řádku dtoverlay=w1-gpio,gpiopin=4,pullup=off • Pokud chcete čidla teploty provozovat v tzv. parazitním režimu, změňte parametr pullup na hodnotu on • Soubor uložte stisknutím Ctrl+X, pak Y a pak Enter. • Následně je potřeba restartovat Raspberry Pi. 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 20
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: 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 Pomocí následujícího příkazu můžeme vypsat nalezená 1-Wire zařízení: ls /sys/bus/w1/devices Výstup může vypadat například takto: 28-000003df1d55
28-00000551359d
w1_bus_master1
Položky začínající na 28- jsou identifikátory teplotních čidel DS18B20. Každé čidlo má svůj unikátní identifikátor. Pomocí příkazu owread /28.551DDF030000/temperature12 můžeme přečíst aktuálně změřenou teplotu (dosaďte identifikátor vašeho čidla). Všimněte si, že identifikátor čidla v příkazu owread má po dvojicích převrácené pořadí znaků. 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 ve formátu, který používá příkaz owread. Parametr Value určuje počáteční teplotu (23 ◦ C), kterou bude čidlo 21
hlásit, dokud nedojde k prvnímu přečtení skutečné teploty. Kliknutím na tlačítko OK uzavřete dialogové okno. Pro více informací si prostudujte příručku 1-Wire ovladače [2].
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 [3]. 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_
\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 [3]. 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
22
5.4
Přídavná karta UniPi
Řídicí systém REX na Raspberry Pi podporuje také rozšiřující kartu UniPi [4], pro kterou je k dispozici samostatná příručka pro rychlý start [5] a podrobnější informace jsou dále uvedeny v manuálu pro ovladač systému REX pro Raspberry Pi [3].
5.5
Přídavná karta Intellisys PIO
Řídicí systém REX na Raspberry Pi podporuje také rozšiřující kartu Intellisys PIO [6], pro kterou je k dispozici samostatná příručka pro rychlý start [7] a podrobnější informace jsou dále uvedeny v manuálu pro ovladač systému REX pro Raspberry Pi [3].
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 Standard, 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ím 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č OwsDrv systému REX pro 1-Wire zařízení – Uživatelská příručka, 2013. [3] REX Controls s.r.o.. Ovladač RPiDrv systému REX pro Raspberry Pi – Uživatelská příručka, 2013. [4] Faster CZ s.r.o. Universal Raspberry Pi add-on board. http://www.unipi.technology, 2014. [5] REX Controls s.r.o.. Začínáme se systémem REX na platformě UniPi, 2014. [6] Intellisys S.r.l. PIO programmable input-output interface. http://www.intellisys.it, 2014. [7] REX Controls s.r.o.. Začínáme se systémem REX na platformě Intellisys PIO, 2014.
Referenční číslo dokumentace: 5386
30