Ovladač systému REXYGEN pro Raspberry Pi
(modul RPiDrv)
Uživatelská příručka

REX Controls s.r.o.

Verze 3.0.5
4.7.2025
Plzeň

Obsah

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.


myproject_exec Exported by REXYGEN Studio Modules Drivers Archives QTask Level0 Level1 Level2 Level3 EXEC HMI prev next RPI prev next myproject_task myproject_exec


Obrázek 2.1: Příklad zařazení ovladače RPiDrv do hlavního souboru projektu

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.


myproject_task Exported by REXYGEN Studio U1 U2 Y NY AND_ on CNB_RUN off CNB_SWITCH2 off CNB_SWITCH4 ??? RPI__GPIO23U RPI__GPIO24U RPI__GPIO25 U Y NOT_ U Y NOT_1 U1 U2 Y NY OR_A U1 U2 Y NY OR_B U HLD R1 Q et rt TIMER_ u1 u2 u3 u4 RUN R1 y1 y2 y3 y4 iE TRND myproject_task


Obrázek 2.2: Příklad připojení GPIO Raspberry Pi v řídicím algoritmu

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.


PIC PIC

Obrázek 2.3: Označení GPIO pinů na Raspberry Pi.

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.


myproject_task Exported by REXYGEN Studio U1 U2 Y NY AND_ on CNB_RUN off CNB_SWITCH2 off CNB_SWITCH4 ??? RPI__PFI0U RPI__PFI1U RPI__PFO3 U Y NOT_ U Y NOT_1 U1 U2 Y NY OR_A U1 U2 Y NY OR_B U HLD R1 Q et rt TIMER_ u1 u2 u3 u4 RUN R1 y1 y2 y3 y4 iE TRND myproject_task


Obrázek 2.4: Příklad připojení PiFace Digital v řídicím algoritmu

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.


PIC image/svg+xml PFO7 PFO6 PFO5 PFO4 PFO3 PFO1 PFO2 PFO0 5V PFO0 PFO1 PFI7[U] PFI6[U] PFI5[U] PFI4[U] PFI3[U] PFI1[U] PFI2[U] PFI0[U] GND { { GND GND 5V

Obrázek 2.5: Označení pinů rozšiřující desky PiFace Digital 2

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.


myproject_task Exported by REXYGEN Studio U1 U2 Y NY AND_ on CNB_RUN off CNB_SWITCH2 off CNB_SWITCH4 ??? UNP__I01 UNP__I03 UNP__RLY1 U1 U2 Y NY OR_A U1 U2 Y NY OR_B U HLD R1 Q et rt TIMER_ u1 u2 u3 u4 RUN R1 y1 y2 y3 y4 iE TRND myproject_task


Obrázek 2.6: Příklad připojení Unipi v1.1 v řídicím algoritmu

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.


image/svg+xml AI1 AI2  I01    I02  I03  I04  I05  I06  I07  I08  I09  I10  I11  I12  AO RLY1 RLY2 RLY3 RLY4 RLY5 RLY6 RLY7 RLY8


Obrázek 2.7: Označení pinů rozšiřující desky Unipi v1.1

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.


myproject_task Exported by REXYGEN Studio U1 U2 Y NY AND_ on CNB_RUN off CNB_SWITCH2 off CNB_SWITCH4 ??? PGN__ID1 PGN__ID3 PGN__O1 U1 U2 Y NY OR_A U1 U2 Y NY OR_B U HLD R1 Q et rt TIMER_ u1 u2 u3 u4 RUN R1 y1 y2 y3 y4 iE TRND myproject_task


Obrázek 2.8: Příklad připojení Pigeon PLC v řídicím algoritmu

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.


ENCLOSURES FOR ELECTRONICS THE INFORMATION CONTAINED IN THIS DRAWING IS THE SOLE PROPERTY OF ALTINKAYA ENCLOSURES. ANY REPRODUCTION IN PART OR AS A WHOLE WITHOUT THE WRITTEN PERMISSION OF ALTINKAYA ENCLOSURES IS PROHIBITED. 45,50 90,60 68,87 44,90 89° 20,60 36,05 8 3 15,90 2,94 41,05 5,08 74,63 137,16 28x %%c 4 9,82 38,05 44,73 158 3,76 5,47 150 4,45 R 1 8,40 140,92 image/svg+xml   PWR USR ACT USB1 USB2 USB3 LAN HDMI   DC+ DC- GND ID1 ID2 ID3 ID4 PWR INPUTS C1 I1 I2 I3 I4 C2 I5 I6 I7 I8 OPTOISOLATED INPUTS O+ O1 O2 O3 O4 O5 O6 O7 O8 GND AO1 AO2 GND AI1 AI2 AI3 AI4 GND DIGITAL OUTPUTS ANALOG +5V DQ GND H L B A 1-WIRE CAN 485 COM 3 x USB HOST USB DEVICE RS-232 STATUS LED


Obrázek 2.9: Označení pinů Pigeon PLC

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.


PIO_task Exported by REXYGEN Studio U1 U2 Y NY AND_ on CNB_RUN off CNB_SWITCH2 off CNB_SWITCH4 ??? PIO__DI1 PIO__DI2 PIO__DO1 U1 U2 Y NY OR_A U1 U2 Y NY OR_B U HLD R1 Q et rt TIMER_ u1 u2 u3 u4 RUN R1 y1 y2 y3 y4 iE TRND PIO_task


Obrázek 2.10: Příklad připojení Intellisys PIO v řídicím algoritmu

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.


image/svg+xml AI1 AI2    DO1 DO2 DI1 DI2 DI3 DI4 UI1 UI2 12V GND 12V GND GND GND SW1


Obrázek 2.11: Označení svorek rozšiřující desky Intellisys PIO

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