Ovladač SimDrv systému REXYGEN
Uživatelská příručka

REX Controls s.r.o.

Verze 3.0.2
Plzeň
7.9.2024

Obsah

Kapitola 1
Ovladač SimDrv a systém REXYGEN

1.1 Úvod

V této příručce je popsáno používání ovladače SimDrv za účelem usnadnění ladění algoritmu systému REXYGEN na jiné než cílové platformě (obvykle osobním počítači). Ovladač nedokáže simulovat celou technologii, ale umožňuje generovat různé periodické signály a generovat signál na základě jiné hodnoty. Koncepce simulačního ovladače umožňuje k existujícímu schématu (.mdl souboru) s odkazy do libovolného ovladače systému REXYGEN velice rychle vytvořit konfiguraci simulačního ovladače (.rio soubor). Když je potřeba nahradit SimDrv reálným ovladačem, projekt zůstane téměř nezměněný, pouze v hlavním bloku EXEC bude SimDrv nahrazen jiným ovladačem se stejným jménem. Oladač SimDrv byl vyvinut společností REX Controls.

1.2 Požadavky na systém

Ovladač SimDrv je možné provozovat na všech platformách a systémech, kde je možné provozování plnohodnotného řídicího systému REXYGEN.

U tohoto ovladače se předpokládá, že vývojový (konfigurační) počítač je přímo cílovým zařízením. To však není nezbytné. Aby bylo možno ovladač využívat, musí být na vývojovém počítači a na cílovém zařízení nainstalováno programové vybavení:

Vývojový počítač

Operační systém

jeden ze systémů: Windows 10/11, GNU/Linux

Vývojové nástroje

verze REXYGEN pro daný operační systém

Cílové zařízení

Řídicí systém REXYGEN

výkonné jádro pro korespondující operační systém

I/O ovladač

verze pro korespondující operační systém

V případě, že vývojový počítač je přímo cílovým zařízením, instaluje se pouze jedna kopie řídicího systému REXYGEN.

1.3 Instalace ovladače na vývojový počítač

Ovladač SimDrv se instaluje jako součást instalace řídicího systému REXYGEN. Je obsažen v instalátoru vývojových nástrojů systému REXYGEN a pro jeho nainstalování je nutné ho v instalačním programu systému REXYGEN zaškrtnout. Při typické instalaci se řídicí systém REXYGEN nainstaluje do cílového adresáře C:\ProgramFiles\REXControls\REXYGEN<verze>.

Po úspěšné instalaci se do cílového adresáře zkopírují soubory:

Bin\SimDrv_H.dll – Konfigurační část ovladače SimDrv.
Bin\SimDrv_T.dll – Cílová část ovladače SimDrv spouštěná exekutivou RexCore. Tato verze se používá, pokud na cílovém zařízení běží operační systém Windows 10/11. Pro jinou cílovou platformu je na ni třeba nainstalovat příslušnou verzi systému REXYGEN.
DOC\PDF\CZECH\SimDrv_CZ.pdf Tato uživatelská příručka.

1.4 Instalace ovladače na cílové zařízení

1.4.1 Zařízení s operačním systémem Windows

Cílová část ovladače, využitá pro REXYGEN na Windows 10/11, je zahrnuta mezi nástroji pro vývoj systému REXYGEN.

1.4.2 Zařízení s operačním systémem Linux

Pokud ještě nemáte nainstalovaný runtime modul RexCore řídicího systému REXYGEN, nainstalujte jej nejdříve podle příručky Začínáme se systémem REXYGEN [1]. Instalace obsahuje všechny nezbytné ovladače včetně SimDrv.

Pokud chcete nainstalovat SimDrv samostatně, můžete tak učinit z příkazové řádky pomocí příkazu:

sudo apt-get install rex-simdrvt

Kapitola 2
Zařazení ovladače do projektu aplikace

Zařazení ovladače do projektu aplikace 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 SimDrv do projektu

Přidání ovladače SimDrv do hlavního souboru projektu je znázorněno na obr. 2.1. Filozofie používání SimDrv je taková, že by ovladač měl nahrazovat jiný, konkrétní ovladač.


PIC


Obrázek 2.1: Příklad zařazení ovladače SimDrv do projektu

K začlenění ovladače do projektu slouží blok IODRV, který je připojen na výstup Drivers hlavního bloku EXEC. Ovladač SimDrv je speciálním typem ovladače, jelikož slouží k dočasnému nahrazení reálného ovladače. Standardní konvence pro pojmenování ovladačů nám říká, že by měl být ovladač pojmenován podle svého typu. V tomto konkrétním případě bychom tedy měli ovladač pojmenovat SIM (viz obrázek 2.1). Jméno ovladače ale určuje i jména všech jeho vstupních a výstupních signálů. Pokud bychom pojmenovali SimDrv ovladač SIM, museli bychom při výměně ovladače upravit jména všech jeho vstupních a výstupních signálů. Proto je vhodné pojmenovat SimDrv ovladač tak, aby odpovídal jménu nahrazeného ovladače, například MNR, RPi, WG, atd. Čtyři nejdůležitější parametry bloku IODRV jsou:

  • module – jméno modulu, ve kterém je ovladač implementován, v tomto případě SimDrv
  • classname – třída ovladače, v tomto případě SimDrv
  • cfgname – jméno konfiguračního souboru ovladače. Vytváření konfiguračního souboru je popsáno v kapitole 3. Doporučeno je zadávat jej ve tvaru <jméno_třídy>.rio, kde přípona *.rio (REXYGEN Input/Output) byla zavedena pro tento účel.
  • factor – násobek parametru tick bloku EXEC definující periodu vykonávání úloh ovladačem.

POZOR! Nastavení parametrů rozlišuje velká a malá písmena!

Právě popsané parametry bloku IODRV se konfigurují v programu REXYGEN Studio v dialogovém okně, které je rovněž ukázáno na obrázku 2.1.

Tlačítko Configure otvírá konfigurační dialog ovladače SimDrv, který je popsán v kapitole 3.

2.2 Připojení vstupů a výstupů do řídicího 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ů.

Podrobný popis bloků lze nalézt v příručce [2].

V hlavním souboru projektu jsou úlohy uvedeny pouze odkazem v blocích typu QTASK nebo TASK připojovaných na výstupy QTask, Level0,…, Level3 exekutivy. Vstupní a výstupní bloky je vhodné převzít z příručky pro ovladač, který následně nahradí SimDrv, tedy například z příruček pro ovladač Monarco, Raspberry, Wago, atd.

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 definovaným v konfiguraci ovladače (viz kapitola 3). Pro bloky INQUAD, OUTQUAD, INOCT, OUTOCT a INHEXD, OUTHEXD je tento identifikační řetězec zadáván přímo do jejich názvu. Pro konkrétní příklad konzultujte příručku driveru, který bude nahrazovat SimDrv.

Kapitola 3
Konfigurace ovladače

V této kapitole je popsána konfigurace jednotlivých vstupních a výstupních signálů a jejich symbolické pojmenování. Signály jsou namapovány na jednotlivé hodnoty poskytované simulací SimDrv.

3.1 Konfigurační dialogové okno


PIC


Obrázek 3.1: Konfigurační dialog vstupů a výstupů

Konfigurační dialogové okno znázorněné na obr. 3.1 je součástí souboru SimDrv_H.dll. Lze ho aktivovat prostřednictvím programu REXYGEN Studio kliknutím na tlačítko Configure v dialogovém okně parametrů bloku IODRV (viz kapitola 2) nebo kliknutím na ozubené kolo umístěné v pravé části bloku IODRV.

V horní části dialogu je několik objektů s globálním významem:

Add items automatically – Pokud je pole zaškrtnuto, tak se při překladu programem REXYGEN Compiler automaticky přidají do konfigurace ovladače všechny reference vstupně výstupních bloků ze všech připojených tasků, které ještě v konfiguraci nejsou. Pokud pole není zaškrtnuto, tak se položky jen použijí při překladu programem REXYGEN Compiler, aby nedošlo k chybě při překladu, ale do konfiguračního souboru se nepřidají.
Type of added items – Automaticky přidávané položky budou mít následující typ. Pokud vybereme Unknown, položka se nepřidá a při překladu je hlášena chyba.
Input file – CSV soubor s hodnotami pro vstupy. Lze použít místo Mode ve spodní části konfiguračního okna.
Output file – CSV soubor, kam budou ukládány hodnoty výstupů.

Ve spodní části okna jsou definovány jednotlivé signály, které mohou být následně využity k simulaci čtení nebo zápisu v řídicím systému REXYGEN. Jednoduše přidejte signály, případně je nechte vygenerovat automaticky při překladu zaškrtnutím možnosti Add Items automatically.

Signály lze do tabulky přidávat stiskem tlačítka Add item, editovat tlačítkem Edit item, případně dvojklikem na danou položku v tabulce. Viz obr. 3.1.

3.1.1 Zobrazení zkonfigurovaných signálů

Ve střední části dialogového okna jsou v tabulkové formě zobrazeny zkonfigurované signály. Každý řádek odpovídá signálu, jemuž je přiřazen jeden symbolický název. Jednotlivé sloupce tabulky mají stejný význam jako zadávací pole při konfiguraci a jsou popsány v sekci 3.1.2.

3.1.2 Konfigurace vstupů a výstupů

Ostatní prvky dialogu (tj. zadávací pole ve spodní části ) z obr. 3.1 slouží pro konfiguraci vstupních a výstupních signálů. Jsou to tato políčka:

Name – Jméno signálu v systému REXYGEN. Musí být zadáno jednoznačně.
Type – Typ signálu. Význam je zřejmý. Doporučuje se přednostně používat typy:
Bool logický signál,
Long celé číslo (32 bitů se znaménkem, tj. -2147483648 …2147483647)
Double desetinné číslo (v rozsahu 64 bitů)
Mode – Režim generování signálu. Pro výstupy (tj. signály z .mdl výkresu do ovladače) musí být Null. Pro vstup je několik generátorů, přičemž hodnota z generátoru je násobena parametrem Amplitude a k výsledku je ještě přičtena hodnota parametru Offset, tj. y = Amplitude x + Offset. U periodických generátorů je počátek generování posunut o hodnotu danou parametrem Phase. Následující režimy generují:
Null konstantní hodnotu danou parametrem Offset,
Noise pseudonáhodné číslo v intervalu 0 x(t) 1,
Rectangle obdélníkový průběh – střídají se hodnoty 1 po dobu
t < Ratio Period > a -1 po zbytek periody,
Sawtooth trojúhelníkový průběh – hodnota 1 x(t) 1 s lineárním nárůstem
po dobu t Ratio Period a lineárním poklesem po zbytek periody,
Sin funkce x(t) = sin(π tPeriod),
Filter filtr 1. řádu ze signálu, jehož číslo je v parametru Period,
tj. xi = Ratio xi1 + (1 Ratio) sig[Period],
Amplitude – Amplituda generovaného signálu.
Offset – Posunutí generovaného signálu (přičítá se k hodnotě).
Period – Perioda generátoru v sekundách.
Phase – Relativní posunutí počátku generátoru v čase; může nabývat hodnot 0 x < 1.
Ratio – Podíl první části periody v případě typu Sawtooth a Rectangle; může nabývat hodnot 0 x < 1.

Kapitola 4
Poznámky k implementaci

V této kapitole jsou soustředěny poznatky, které vznikly z dosavadních zkušeností. Některé položky v konfiguraci jsou často nesprávně pochopeny, ale podrobný popis výše by zhoršoval čitelnost textu. Proto jsou tyto postřehy uvedeny ve zvláštní kapitole. Je zde také podrobně popsán způsob přenosu hodnot.

Ovladač se typicky používá v situaci, kdy cílovou platformu nemáme k dispozici. Ve všech blocích v IODRV v exec.mdl přepíšeme parametr module a classname na hodnotu SimDrv a nastavíme jiné jméno konfiguračního souboru (parametr cfgname). Dále stiskneme tlačítko Configure (pokud konfigurační soubor neexistuje - zaklikneme vytvořit nový) a nastavíme Type of added items na long (lze i jiný, ale typ long se implicitně konvertuje na bool i double a jiné typy se vyskytují zřídka) a zaklikneme Add items automatically a uložíme tlačítkem OK. Pak projekt přeložíme (v REXYGEN Studio v menu Project|Compile). Nyní již lze vytvořený exec.rex spustit, ale na všech vstupech bude hodnota 0. Nyní je možné znovu spustit konfiguraci simulačního ovladače (tlačítko Configure) a nastavit u vstupů vhodnější generátory popřípadě typy hodnot (podle povahy technologie).

Kapitola 5
Co dělat při problémech

V případě, že daný ovladač SimDrv funguje v jednoduchých testovacích příkladech správně a při potřebné konfiguraci 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 (ve formátu souboru s příponou .mdl).
  • Konfigurační soubor ovladače SimDrv.

Literatura

[1]   REX Controls s.r.o.. Začínáme se systémem REXYGEN na Debian, 2020. .

[2]   REX Controls s.r.o.. Funkční bloky systému REXYGEN – Referenční příručka, 2020. .


Referenční číslo dokumentace: 16710

2024 © REX Controls s.r.o., www.rexygen.com