První projekt
Uživatelská příručka
4.7.2025
Plzeň
Obsah
2 Vytvoření nového projektu
3 Kompilace a spuštění projektu
4 Přidání uživatelského rozhraní (HMI)
5 Připraveno pro interakci s vnějším světem
Kapitola 1
Úvod
Proces tvorby řídicího algoritmu bude demonstrován na velmi jednoduchém příkladu se čtyřmi Booleovskými proměnnými představujícími manuální přepínače. V navazujícím manuálu [1] budou dva z nich nahrazeny fyzickými vstupy platformy. Pro měření času, kdy jsou proměnné pravdivé (tj. přepínače jsou v pozici on), bude použit softwarový časovač. Booleovský signál bude indikovat, že uplynul interval předem definované délky.
Kapitola 2
Vytvoření nového projektu
Konfigurace projektu je vytvořena pomocí programu REXYGEN Studio. Každý projekt sestává z alespoň dvou souborů .mdl. První soubor je hlavním souborem projektu, který se používá ke konfiguraci úloh, ovladačů, priorit a časování. Ostatní soubor(y) obsahují jednotlivé řídicí algoritmy (úlohy).
Nejprve vytvoříme příklad 0101-01 z knihovny příkladů od začátku (Všechny příklady, které jsou součástí instalace REXYGEN Studio, jsou označeny svým unikátním kódem. Nejaktuálnější příklady jsou dostupné s nejnovější instalací vývojových nástrojů nebo na https://www.rexygen.com/example-projects/). Standardní postup:
- Spusťte program REXYGEN Studio. Začněte s prázdným projektem a vyberte složku, kam uložíte soubory projektu (např. D:\GettingStarted).
- Složka bude obsahovat dva důležité soubory:
- myproject_exec.mdl
- myproject_task.mdl
- myproject_exec.mdl je hlavním souborem projektu. Obsahuje jeden blok EXEC z
knihovny EXEC. Druhým je blok TASK ze stejné knihovny a je přejmenován na
myproject_task, aby odkazoval na druhý soubor projektu (myproject_task.mdl),
který bude obsahovat algoritmus (tzv. úloha).
- Úloha je připojena k výstupu Level0 bloku EXEC a proto je její časování definováno parametry tick a ntick0 bloku EXEC.
- Blok EXEC (a jakýkoli jiný blok) lze nakonfigurovat dvojitým kliknutím na něj.
Objeví se dialog parametrů a vlastností bloku. Parametry všech bloků systému
REXYGEN jsou popsány v nápovědě (stiskněte klávesu F1) a v referenčním
manuálu bloků [2].
- Všimněte si, že tick=0.05 a ntick0=2, takže úloha bude běžet každých 100 milisekund (). V tuto chvíli není třeba měnit žádný parametr. Zavřete dialog.
- Můžete smazat všechny popisné texty v souborech projektu. Ty nemají žádný vliv na funkčnost a lze je považovat za poznámky programátora.
- Otevřete Knihovnu bloků (Block Library) - Vyberte v menu Window->Block Library nebo použijte klávesovou zkratku Ctrl+L. Knihovna se objeví v pravé části studia, pokud tam již nebyla.
- Ve výchozím nastavení je knihovna v režimu Tree view, kde jsou bloky
organizovány v podknihovnách. Jejich umístění je vždy označeno jako
podknihovna/blok, např. LOGIC/AND pro logický blok AND v podknihovně LOGIC. V
rámci podknihovny jsou bloky řazeny v abecedním pořadí.
- Můžete také přepnout knihovnu do režimu List view, kde jsou všechny bloky řazeny abecedně bez ohledu na podknihovnu, do které patří.
- Vyhledejte následující funkční bloky v Block Library a přetáhněte je do
souboru úlohy:
- MATH/CNB – konstanta typu Boolean. Jakmile ji přetáhnete, dvojitým kliknutím zobrazte dialog parametrů a změňte název na CNB_SWITCH1. Nastavte také parametr .
- LOGIC/OR – logický blok OR. Přejmenujte jej na OR_A.
- LOGIC/AND – logický blok AND.
- LOGIC/TIMER – blok časovače. Nastavte parametr , .
- INOUT/Display – displej pro zobrazení hodnot v reálném čase.
- ARC/TRND – záznam v reálném čase. Nastavte parametry , , ostatní hodnoty nechte výchozí.
- MATH/CNB – konstanta typu Boolean, změňte název na CNB_RUN, nastavte parametr .
Tip: Bloky můžete vkládat také tak, že začnete psát jejich název a z našeptávače vyberete požadovaný blok.
- Zduplikujte blok CNB_SWITCH1 přetažením pravým tlačítkem myši. Nebo jednoduše blok zkopírujte a vložte.
- Zduplikujte blok ještě dvakrát.
- Zduplikujte také blok OR_A. Přejmenujte duplikát na OR_B.
- Spojte bloky, jak je ukázáno níže. K propojení bloků přetáhněte výstupní
šipku jednoho bloku na vstupní šipku druhého bloku pomocí levého tlačítka
myši. Spojení bude navázáno, když bude čára tučná a zelená. Po
uvolnění tlačítka myši můžete úspěšně propojenou čáru rozpoznat podle
jejího stylu. Plná čára zakončená plnou šipkou na vstupu propojeného bloku
indikuje platné propojení. Přerušovaná červená čára zakončená tenkou
šipkou indikuje nepropojenou čáru. Novou větev stávající čáry
můžete vytvořit přetažením stávající čáry pravým tlačítkem
myši.
V tuto chvíli jsou exekutiva myproject_exec.mdl a odpovídající soubor s algoritmem myproject_task.mdl připraveny. Algoritmus bude vyhodnocován ve směru šipek, počínaje zdrojovými bloky CNB, přes bloky OR, AND a TIMER a konče bloky Display a TRND. Gratulujeme, váš první projekt je připraven ke kompilaci!
Kapitola 3
Kompilace a spuštění projektu
Vyvinutý algoritmus musí být před nasazením zkompilován do binární formy. Vyberte Project/Compile z nabídky nebo použijte ikonu na panelu nástrojů. Výstup kompilátoru se zobrazuje v okně Kompilátoru. Pokud nejsou nalezeny žádné chyby, je vytvořen soubor myproject_exec.rex.
V tuto chvíli je možné nasadit řídicí algoritmus na cílovou platformu. Použijte Project/Compile and download v nabídce nebo klikněte na ikonu pro tento účel. Po úspěšné kompilaci se zobrazí dialog pro definování cílového zařízení.
Zadejte IP adresu vaší platformy do pole Target a přihlašovací údaje. Výchozí uživatel je admin a výchozí heslo je prázdné. Ostatní prvky nechte beze změny a klikněte na Download.
Pokud na vaší platformě není licence, musíte ji nejprve získat. Můžete získat DEMO licenci zdarma. Viz [3] pro podrobnosti a poté se vraťte.
Jakmile je stahování dokončeno, je možné přepnout REXYGEN Studio do tzv. režimu sledování (Watch mode) a sledovat řídicí algoritmus v reálném čase – klikněte na Watch.
V režimu sledování je pozadí všech souborů šedé a nemůžete přesouvat ani mazat bloky nebo spojení. Klikněte pravým tlačítkem na blok TIMER a v nabídce vyberte Watch selection pro sledování vstupů a výstupů časovače. Stejně tak můžete postupovat s bloky OR a AND (nebo jakýmikoli jinými výběry).
Nyní je možné dvakrát kliknout na blok CNB_SWITCH1 a změnit Booleovskou proměnnou na (zaškrtněte checkbox a klikněte na OK). Jakmile provedete totéž s blokem CNB_SWITCH3, výstupy obou bloků OR jsou on a výstup Y bloku AND se změní na on a TIMER začne odpočítávat. Sledujte výstup rt. (Nenechte se zmást výchozí obnovovací frekvencí 1 sekunda v režimu sledování. Algoritmus na cílovém zařízení běží každých 100 milisekund, jak bylo zmíněno dříve.) Jakmile časovač dosáhne nuly, jeho výstup Q se nastaví na on a zůstane on tak dlouho, jak dlouho bude vstup U on.
Můžete dvakrát kliknout na blok TRND a sledovat signály v grafu v reálném čase. Červená čára je výstup bloku OR_A, magenta čára je výstup bloku OR_B, zelená čára je zbývající čas časovače a modrá čára je Booleovský výstup časovače.
Zkuste vypnout bloky CNB a změnit parametr pt bloku TIMER. Poté opět zapněte bloky CNB a sledujte signály v bloku TRND znovu. Jak vidíte, můžete měnit jakýkoli parametr v reálném čase, což vám umožňuje jemně doladit váš algoritmus.
Je také možné otevřít Diagnostiku algoritmu v záložce. Vyberte Target/Diagnostics z nabídky nebo klikněte na ikonu a uvidíte algoritmus v stromovém zobrazení, které vám umožní podrobně sledovat řídicí algoritmus. Můžete ověřit, že vzorkovací frekvence vašeho algoritmu je skutečně 100 milisekund. Můžete také upravit parametry jednotlivých funkčních bloků, což má stejný efekt jako jejich přímá úprava ve Vlastnostech bloku (Block properties).
Nyní můžete přepnout REXYGEN Studio zpět do režimu vývoje. Můžete to udělat deaktivací režimu sledování (použijte ikonu). Bude vám nabídnuta synchronizace změněných parametrů se zdrojovými soubory projektu, v tuto chvíli vyberte Ne.
Všechny změny provedené v režimu sledování nejsou trvale uloženy v cílovém zařízení (pokud se tak nerozhodnete, viz [4]). Po restartování RexCore runtime modulu se algoritmus spustí s parametry definovanými ve zdrojových souborech projektu, které byly platné při kompilaci a stahování algoritmu do cílového zařízení. Chcete-li změny trvale aplikovat, musíte změny přenést do zdrojových souborů a provést Compile and Download projektu znovu, což definuje nové počáteční hodnoty.
Kapitola 4
Přidání uživatelského rozhraní (HMI)
Dalším krokem ve vývoji řídicího algoritmu je jeho uživatelské rozhraní, neboli HMI, Human-Machine Interface. Umožňuje každému (i těm, kteří nejsou obeznámeni se systémem REXYGEN) interagovat s algoritmem. HMI systému REXYGEN využívá moderní webové technologie, a proto je HMI přístupné prostřednictvím webového prohlížeče na desktopovém PC, tabletu nebo chytrém telefonu.
V tomto tutoriálu vytvoříme jednoduché HMI pomocí technologie zvané WebBuDi. Ta poskytuje velmi jednoduché indikátory a vstupní prvky pro interakci s řídicím algoritmem prostřednictvím webové stránky (Web Buttons a Displays).
Kroky pro vytvoření HMI jsou popsány níže. Takto bude vypadat výsledné HMI:
- Ve složce s projektovými soubory vytvořte podadresář hmisrc. Uvnitř této
složky vytvořte soubor pojmenovaný index.hmi.js a upravte ho v oblíbeném
textovém editoru. Obsah by měl být následující:
REX.HMI.init = function(){ //Indikatory a virtualni spinace - skupina A var switchesA = { column: 1, title: 'Spinace - skupina A', rows: [ {type: 'DW', alias: 'switch1', desc: 'Spinac 1', cstring: 'myproject_task.CNB_SWITCH1:YCN'}, {type: 'DW', alias: 'switch2', desc: 'Spinac 2', cstring: 'myproject_task.CNB_SWITCH2:YCN'}, {type: 'DR', alias: 'S1orS2', desc: 'S1 NEBO S2', cstring: 'myproject_task.OR_A:Y'}, ] }; REX.WebBuDi.addSection(switchesA); //Indikatory a virtualni spinace - skupina B var switchesB = { column: 1, title: 'Spinace - skupina B', rows: [ {type: 'DW', alias: 'switch3', desc: 'Spinac 3', cstring: 'myproject_task.CNB_SWITCH3:YCN'}, {type: 'DW', alias: 'switch4', desc: 'Spinac 4', cstring: 'myproject_task.CNB_SWITCH4:YCN'}, {type: 'DR', alias: 'S3orS4', desc: 'S3 NEBO S4', cstring: 'myproject_task.OR_B:Y'}, ] }; REX.WebBuDi.addSection(switchesB); //Vstup casovace var timerInput = { column: 2, title: 'Vstup casovace', rows: [ {type: 'DR', alias: 'inputA', desc: 'Skupina A', cstring: 'myproject_task.AND:U1'}, {type: 'DR', alias: 'inputB', desc: 'Skupina B', cstring: 'myproject_task.AND:U2'}, {type: 'DR', alias: 'AandB', desc: 'A A B', cstring: 'myproject_task.AND:Y'}, ] }; REX.WebBuDi.addSection(timerInput); //Nastaveni a stav casovace var timer = { column: 2, title: 'Casovac', rows: [ {type: 'AW', alias: 'interval', desc: 'Interval casovace', cstring: 'myproject_task.TIMER:pt'}, {type: 'AR', alias: 'rt', desc: 'Zbyvajici cas', cstring: 'myproject_task.TIMER:rt'}, {type: 'DR', alias: 'timerQ', desc: 'Vystup casovace', cstring: 'myproject_task.TIMER:Q'}, ] }; REX.WebBuDi.addSection(timer); //Pridani trendu v realnem case REX.HMI.Graph.addTrend({cstring: 'myproject_task.TRND'}); REX.HMI.Graph.setMaxBufferSize(200); // Zmena nazvu stranky REX.HMI.setTitle('Muj casovac - priklad HMI'); }
- Tento soubor bude zpracován při kompilaci projektu. Je však nutné nejprve
přidat blok EXEC/HMI do hlavního souboru projektu.
- Dvakrát klikněte na blok HMI a upravte jeho parametry. Nastavte a potvrďte. WebWatch je jiný typ HMI, který momentálně nepotřebujete. Viz [5] pro podrobnosti, je to velmi zajímavý nástroj pro vývojáře a techniky.
- HMI je nyní nedílnou součástí vašeho projektu. Zkompilujte projekt znovu a uvidíte, že log kompilace obsahuje více informací. Soubor index.html je generován ze zdrojového souboru index.hmi.js. Všechny HMI soubory jsou generovány do podadresáře hmi (HTML, JS a CSS soubory) a zahrnuty v výsledném binárním souboru myproject_exec.rex.
- Po stažení projektu do cílového zařízení můžete přistupovat k HMI
prostřednictvím webového prohlížeče. Přejděte do nabídky Target/Web
Interface, která otevře webovou stránku. Pamatujte si výchozí přihlašovací
údaje: admin bez hesla.
- Můžete přepínat spínače a pozorovat výsledky. Virtuální spínače jsou propojeny s jednotlivými funkčními bloky CNB, takže efekt je stejný jako přepínání hodnot přímo v REXYGEN Studio.
- Můžete také změnit nastavení časovače a zkrátit nebo prodloužit interval.
- Viz [5] pro podrobné informace o prvcích WebBuDi a možnosti přizpůsobení (barvy, pozadí atd.).
- Výchozí URL adresa je http://192.168.1.100:8008/hmi/index.html (nahraďte 192.168.1.100 IP adresou vaší platformy).
- Výchozí port webového serveru (8008) lze změnit v nastaveních RexCore. Viz [6] pro podrobnosti.
Vezměte prosím na vědomí, že existuje také program REXYGEN HMI Designer, který umožňuje vytvářet grafická uživatelská rozhraní. Doprovodný manuál [7] ukazuje kroky k vytvoření základního grafického rozhraní k příkladu vytvořenému výše. Složitější HMI na obrázcích níže je uvedeno pouze pro inspirační účely.
Kapitola 5
Připraveno pro interakci s vnějším světem
Gratulujeme! Vytvořili jste příklad 0101-01 od začátku (Všechny příklady, které jsou součástí instalace REXYGEN Studio, jsou označeny svým unikátním kódem. Nejaktuálnější příklady jsou dostupné s nejnovější instalací vývojových nástrojů nebo na https://www.rexygen.com/example-projects/). Naučili jste se základní postupy pro vývoj a spuštění vašich algoritmů pomocí systému REXYGEN, který je stejný pro všechny platformy. Nyní je čas přidat takzvané vstupně-výstupní ovladače, aby algoritmus mohl interagovat se senzory, aktuátory a externími daty. Konfigurace vstupů a výstupů specifických pro cílová zařízení, vycházející z příkladového projektu uvedeného v této kapitole, je popsána v příručce Konfigurace vstupů a výstupů na cílových platformách [1].
Literatura
[1] REX Controls s.r.o.. Konfigurace vstupů a výstupů na cílových platformách, 2024. .
[2] REX Controls s.r.o.. Funkční bloky systému REXYGEN – Referenční příručka, 2024. .
[3] REX Controls s.r.o.. Licencování REXYGEN – Uživatelská příručka, 2024. .
[4] REX Controls s.r.o.. REXYGEN Studio – Uživatelská příručka, 2024. .
[5] REX Controls s.r.o.. REXYGEN HMI – Uživatelská příručka, 2024. .
[6] REX Controls s.r.o.. RexCore – Uživatelská příručka, 2024. .
[7] REX Controls s.r.o.. Tvorba HMI v REXYGEN HMI Designer, 2024. .
Referenční číslo dokumentace: 17331
2025 © REX Controls s.r.o., www.rexygen.com