Ovladač systému REXYGEN pro Raspberry Pi
(modul RPiDrv)
Uživatelská příručka
4.7.2025
Plzeň
Obsah
1.1 Úvod
1.2 Instalace
2 Zařazení ovladače do projektu
2.1 Přidání ovladače RPiDrv
2.2 Připojení vstupů a výstupů v řídicím algoritmu
2.2.1 Příklad připojení GPIO pinů Raspberry Pi
2.2.2 Příklad připojení rozšiřující desky PiFace Digital
2.2.3 Příklad připojení rozšiřující desky Unipi v1.1
2.2.4 Příklad připojení Pigeon PLC
2.2.5 Příklad připojení rozšiřující desky Intellisys PIO
3 Co dělat při problémech
Kapitola 1
Ovladač RPiDrv a systém REXYGEN
1.1 Úvod
V této příručce je popsáno používání ovladače RPiDrv pro zpřístupnění GPIO pinů minipočítače Raspberry Pi (Raspberry Pi je registrovaná obchodní známka Raspberry Pi Foundation.) v řídicím systému REXYGEN. Ovladač umožňuje jak vstupní, tak výstupní režimy pinů a je kompatibilní s modely Raspberry Pi 1-4. Pro Raspberry Pi 5 je nutné použít ovladač popsaný v [1]. Ovladač RPiDrv také podporuje rozšiřující desky Unipi v1.1 [2], PiFace Digital 1/2 [3], Intellisys PIO [4] a Pigeon PLC [5], založené na Raspberry Pi. Ovladač byl vyvinut firmou REX Controls.
Pokud začínáte s REXYGEN, doporučujeme nejdříve projít tutoriály Začínáme a návody krok za krokem, které:
- Vás seznámí se základními principy systému REXYGEN a jeho vývojovými nástroji [6],
- Vám pomohou s instalací a konfigurací systému REXYGEN na cílové zařízení [7],
- Vám ukážou, jak vytvořit jednoduchý projekt včetně základního uživatelského rozhraní [8],
- ukáží, jak nakonfigurovat vstupy a výstupy daného zařízení [9],
- Vám umožní vytvořit vlastní grafické uživatelské rozhraní [10].
1.2 Instalace
Pro možnost konfigurace ovladače RPiDrv ve vývojovém prostředí REXYGEN Studio je nutné během instalace REXYGEN Studio mít zaškrtnutu možnost Raspberry Pi driver v kroku Select Components. Nejjednodušší je vybrat možnost Full installation.
Ovladač RPiDrv je součástí standardní instalace RexCore na cílovém zařízení (Raspberry Pi) a měl by být nainstalován, ať už jste zvolili jakýkoliv způsob instalace popsaný v [7].
Pokud z nějakého důvodu musíte instalovat RPiDrv samostatně, můžete tak učinit
z příkazové řádky Raspberry Pi pomocí příkazu:
sudo apt-get install rex-rpidrvt
Kapitola 2
Zařazení ovladače do projektu
Zařazení ovladače do projektu spočívá v přidání ovladače do hlavního souboru projektu a v připojení vstupů a výstupů ovladače v řídicích algoritmech.
2.1 Přidání ovladače RPiDrv
Přidání ovladače RPiDrv do hlavního souboru projektu je znázorněno na obr. 2.1.
Pro zařazení ovladače do projektu slouží blok typu IODRV připojený k výstupu Drivers hlavního bloku EXEC. Po otevření Block properties - vlastností bloku (pomocí dvojkliku na blok) můžete upravovat nastavení parametrů. Čtyři nejdůležitější parametry bloku IODRV jsou:
- module – název modulu připojeného k ovladači, v tomto případě RPiDrv
- classname – třída ovladače
- RPiDrv – Raspberry Pi GPIO nebo rozšiřující deska PiFace Digital
- UnpDrv – rozšiřující deska Unipi v1.1
- PioDrv – Intellisys PIO
- PgnDrv – Pigeon PLC
- cfgname – název konfiguračního souboru ovladače (tento ovladač žádný nevyužívá a tedy ponechte prázdné)
- factor – násobek parametru tick bloku EXEC definující periodu vykonávání úloh ovladačem.
Poznámka: Zařízení PiFace Digital, Unipi 1.1, Pigeon PLC a Intellisys PIO jsou považovány za zastaralé a nejsou aktivně testovány. Doporučujeme použít Monarco HAT.
Jménem bloku IODRV (viz Obr. 2.1) začínají všechny vstupní a výstupní signály tohoto ovladače. Doporučené pojmenování bloku IODRV podle použité platformy je:
- RPI – Raspberry Pi GPIO nebo rozšiřující deska PiFace Digital
- UNP – rozšiřující deska Unipi v1.1
- PIO – Intellisys PIO
- PGN – Pigeon PLC
2.2 Připojení vstupů a výstupů v řídicím algoritmu
Vstupy a výstupy z ovladačů je možné do algoritmu v jednotlivých úlohách připojit několika funkčními bloky:
- Pro čtení jedné hodnoty je výhodné použít blok From.
- Pro zápis jedné hodnoty se používá blok Goto.
- Protože ovladač umožňuje pod jedním symbolickým jménem získávat několik vstupů či nastavovat několik výstupů, lze s výhodou používat bloky čtyřnásobných, osminásobných a šestnáctinásobných vstupů a výstupů (INQUAD, OUTQUAD, INOCT, OUTOCT a INHEXD, OUTHEXD). Výhodou takového užití je zvýšení rychlosti a částečně i přehlednosti algoritmů.
Příslušnost bloků From a Goto k danému ovladači je dána jejich parametrem Goto tag, který začíná názvem tohoto ovladače (viz Obr. 2.1), pokračuje oddělovačem __ (za sebou dva znaky ’_’) a končí jménem signálu. Pro bloky INQUAD, OUTQUAD, INOCT, OUTOCT, INHEXD a OUTHEXD je tento identifikační řetězec zadáván přímo do jejich názvu. Podrobný popis bloků lze nalézt v příručce [11].
Úlohy jsou poté zapojovány v hlavním souboru projektu na výstupy QTask, Level0, Level1, Level2 a Level3 bloku EXEC. Výstupy QTask a Level0 jsou vyhrazeny pro úlohy s nejvyšší prioritou, výstup Level3 pro úlohy s nejnižší prioritou.
Níže jsou uvedeny příklady pro jednotlivé platformy podporované ovladačem RPiDrv. Pro čtení se v příkladech využívá funkční blok From, pro zápis signálu funkční blok Goto. Oba tyto bloky mají parametr Goto tag, který je nastaven na název signálu.
2.2.1 Příklad připojení GPIO pinů Raspberry Pi
Vzhledem k variabilitě GPIO oproti klasickým vstupům a výstupům je výše popsaný způsob nastavování Goto tag ještě na konci doplněn o nepovinné písmeno. V závislosti na písmenu se nastavují následující vlastnosti:
- U – aktivace pull-up rezistoru na vstupu,
- D – aktivace pull-down rezistoru na vstupu,
- H – nastavení počátečního stavu výstupu na logickou 1 (on),
- L – nastavení počátečního stavu výstupu na logickou 0 (off).
Příklad použití je vidět na Obr. 2.2. Pro více informací o GPIO pinech navštivte stránku http://elinux.org/RPi_Low-level_peripherals.
Jeden blok From sloužící pro připojení jednoho vstupu má parametr Goto tag nastaven na RPI__GPIO21U, druhý na RPI__GPIO22U. Název za podtržítky ve vlajce odpovídá názvu použitého GPIO pinu (označení pinů je vidět na Obr. 2.3). Blok typu Goto používaný pro připojení jednoho výstupu má hodnotu parametru Goto tag nastavenou na RPI__GPIO23.
Podobně pro ostatní piny můžeme využít například tyto vlajky:
- Goto, RPI__GPIO22 – digitální výstup 22
- Goto, RPI__GPIO23H – digitální výstup 23, který je okamžitě při inicializaci nastaven na logickou 1 (HIGH, ON)
- Goto, RPI__PWM18 – PWM výstup na pinu 18
- 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
- From, RPI__GPIO21 – digitální vstup 21 bez pull up/down rezistoru
Instalace systému REXYGEN obsahuje knihovnu příkladů, kde je mimo jiné sekce 0120_Raspberry_Pi věnována použití RPiDrv. Příklad 0120-00_IO_Flags obsahuje knihovnu použitelných nastavení GPIO.
2.2.2 Příklad připojení rozšiřující desky PiFace Digital
Oproti konvenci pojmenování vstupů a výstupů popsané výše je u desky PiFace Digital možné na konec názvu vstupu přidat nepovinné písmeno U pro aktivaci pull-up rezistoru. Příklad použití je vidět na Obr. 2.4.
Jeden blok From sloužící pro připojení jednoho vstupu má parametr Goto tag nastaven na RPI__PFI0U, druhý na RPI__PFI1U. Název za podtržítky ve vlajce odpovídá názvu použitého pinu terminálu (označení pinů je vidět na Obr. 2.3). Blok typu Goto používaný pro připojení jednoho výstupu má hodnotu parametru Goto tag nastavenou na RPI__PFO3.
Poznámka: Ovladač také umožňuje získávat/nastavovat všech 8 vstupů či výstupů PiFace Digital najednou, což je z hlediska rychlosti vykonávání algoritmu výhodnější. V takovém případě se využijí bloky osminásobných vstupů a výstupů INOCT a OUTOCT, jejichž jména musí být RPI__PFI respektive RPI__PFO.
Instalace systému REXYGEN obsahuje knihovnu příkladů, kde je mimo jiné sekce 0124_PiFace_Digital věnována použití RPiDrv s rozšiřující deskou PiFace Digital. Příklad 0124-00_IO_Flags obsahuje knihovnu použitelných nastavení vstupů a výstupů.
Použití více karet PiFace Digital najednou: V základním nastavení se předpokládá, že adresa karty PiFace Digital je nastavena na 0. Pokud tomu tak není, musí být adresa zanesena do vstupních/výstupních vlajek. Např. RPI__PFO3C2 odkazuje na čtvrtý výstup karty PiFace Digital s adresou 2.
2.2.3 Příklad připojení rozšiřující desky Unipi v1.1
Příklad přístupu k vstupům a výstupům přídavné desky Unipi v1.1 je vidět na Obr. 2.6.
Jeden blok From sloužící pro připojení jednoho vstupu má parametr Goto tag nastaven na UNP__I01, druhý na UNP__I03. Název za podtržítky ve vlajce odpovídá názvu použitého pinu terminálu (označení pinů je vidět na Obr. 2.7). Blok typu Goto používaný pro připojení jednoho výstupu má hodnotu parametru Goto tag nastavenou na UNP__RLY1.
Instalace systému REXYGEN obsahuje knihovnu příkladů, kde je mimo jiné sekce 0122_UniPi_1.1 věnována použití RPiDrv s Unipi v1.1. Příklad 0122-00_IO_Flags obsahuje knihovnu použitelných nastavení vstupů a výstupů.
2.2.4 Příklad připojení Pigeon PLC
Příklad přístupu k vstupům a výstupům Pigeon PLC je znázorněn na Obr. 2.8.
Jeden blok From sloužící pro připojení jednoho vstupu má parametr Goto tag nastaven na PGN__ID1, druhý na PGN__ID3. Název za podtržítky ve vlajce odpovídá názvu použitého pinu terminálu (označení pinů je vidět na Obr. 2.9). Blok typu Goto používaný pro připojení jednoho výstupu má hodnotu parametru Goto tag nastavenou na PGN__O1.
Instalace systému REXYGEN obsahuje knihovnu příkladů, kde je mimo jiné sekce 0123_Pigeon_PLC věnována použití RPiDrv s Pigeon PLC. Příklad 0123-00_IO_Flags obsahuje knihovnu použitelných nastavení vstupů a výstupů.
2.2.5 Příklad připojení rozšiřující desky Intellisys PIO
Příklad přístupu k vstupům a výstupům rozšiřující desky Intellisys PIO je znázorněn na Obr. 2.10.
Jeden blok From sloužící pro připojení jednoho vstupu má parametr Goto tag nastaven na PIO__DI1, druhý na PIO__DI2. Název za podtržítky ve vlajce odpovídá názvu použitého pinu terminálu (označení pinů je vidět na Obr. 2.11). Blok typu Goto používaný pro připojení jednoho výstupu má hodnotu parametru Goto tag nastavenou na PIO__DO1.
Instalace systému REXYGEN obsahuje knihovnu příkladů, kde je mimo jiné sekce 0125_Intellisys_PIO věnována použití RPiDrv s rozšiřující deskou Intellisys PIO. Příklad 0125-00_IO_Flags obsahuje knihovnu použitelných nastavení vstupů a výstupů.
Kapitola 3
Co dělat při problémech
Ze všeho nejdříve je vhodné prozkoumat knihovny příkladů týkající se použití RPiDrv s konkrétním zařízením.
V případě, že v diagnostických prostředcích systému REXYGEN jsou neočekávané nebo nesprávné hodnoty vstupů nebo výstupů, je vhodné nejdříve ověřit jejich funkci nezávisle na systému REXYGEN. Dále je nutné překontrolovat konfiguraci. Nejčastější chyby jsou:
- Chyba v hardware – špatné zapojení
- Chyba v přístupu k pinům – pin je používán jiným zařízením (SPI sběrnice, I2C sběrnice, sériová linka) nebo programem
V případě, že daný vstup či výstup funguje pomocí jiných softwarových nástrojů správně a při shodném zapojení v systému REXYGEN nefunguje, prosíme o zaslání informace o problému emailem na adresu podpora@rexcontrols.cz. Pro co nejrychlejší vyřešení problému by informace by měla obsahovat:
- Identifikační údaje Vaší instalace vyexportované pomocí programu REXYGEN Studio (Target Licensing Export).
- Stručný a výstižný popis problému.
- Co možná nejvíce zjednodušenou konfiguraci řídicího systému REXYGEN, ve které se problém vyskytuje (obsahující soubory s příponou .mdl).
Literatura
[1] REX Controls s.r.o.. Ovladač systému REXYGEN pro GPIO piny – Uživatelská příručka, 2024. .
[2] Unipi Technology s.r.o. Unipi technology. http://www.unipi.technology, 2024. .
[3] University of Manchester. PiFace Digital Interface. http://www.piface.org.uk, 2013. .
[4] Intellisys S.r.l. PIO programmable input-output interface. http://www.intellisys.it, 2014.
[5] Kristech. Pigeon PLC. http://www.pigeoncomputers.com, 2024. .
[6] REX Controls s.r.o.. Začínáme s řídicím systémem REXYGEN, 2024. .
[7] REX Controls s.r.o.. Instalace RexCore (REXYGEN runtime core), 2024. .
[8] REX Controls s.r.o.. První projekt, 2024. .
[9] REX Controls s.r.o.. Konfigurace vstupů a výstupů na cílových platformách, 2024. .
[10] REX Controls s.r.o.. Tvorba HMI v REXYGEN HMI Designer, 2024. .
[11] REX Controls s.r.o.. Funkční bloky systému REXYGEN – Referenční příručka, 2024. .
Referenční číslo dokumentace: 17331
2025 © REX Controls s.r.o., www.rexygen.com