První projekt
Uživatelská příručka

REX Controls s.r.o.

Verze 3.0.4
27.3.2025
Plzeň

Obsah

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:

  1. 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).
  2. Složka bude obsahovat dva důležité soubory:
    • myproject_exec.mdl
    • myproject_task.mdl
  3. 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).

    myproject_exec Exported by REXYGEN Studio Plain project See the README.md file in project folder for detailed information. Modules Drivers Archives QTask Level0 Level1 Level2 Level3 EXEC prev next myproject_task Plain project - task Drag&drop function blocks here... (Ctrl+L to open the library) See the README.md file in project folder for detailed information. myproject_exec

  4. Úloha je připojena k výstupu Level0 bloku EXEC a proto je její časování definováno parametry tick a ntick0 bloku EXEC.
  5. 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].

    PIC

  6. Všimněte si, že tick=0.05 a ntick0=2, takže úloha bude běžet každých 100 milisekund (0.05 2 = 0.1s). V tuto chvíli není třeba měnit žádný parametr. Zavřete dialog.
  7. 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.
  8. 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.
  9. 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í.

    PIC

  10. 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ří.
  11. 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 YCN = off.
    • LOGIC/OR – logický blok OR. Přejmenujte jej na OR_A.
    • LOGIC/AND – logický blok AND.
    • LOGIC/TIMER – blok časovače. Nastavte parametr mode = 2: Delayed ON, pt = 5.0.
    • INOUT/Display – displej pro zobrazení hodnot v reálném čase.
    • ARC/TRND – záznam v reálném čase. Nastavte parametry l = 2000, Title = My timer, ostatní hodnoty nechte výchozí.
    • MATH/CNB – konstanta typu Boolean, změňte název na CNB_RUN, nastavte parametr YCN = on.

    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.

    myproject_task Exported by REXYGEN Studio U1 U2 Y NY AND on CNB_RUN off CNB_SWITCH1 ??? U1 U2 Y NY OR_A U HLD R1 Q et rt TIMER u1 u2 u3 u4 RUN R1 y1 y2 y3 y4 iE TRND myproject_task

  12. Zduplikujte blok CNB_SWITCH1 přetažením pravým tlačítkem myši. Nebo jednoduše blok zkopírujte a vložte.
  13. Zduplikujte blok ještě dvakrát.
  14. Zduplikujte také blok OR_A. Přejmenujte duplikát na OR_B.

    myproject_task Exported by REXYGEN Studio U1 U2 Y NY AND on CNB_RUN off CNB_SWITCH1 off CNB_SWITCH2 off CNB_SWITCH3 off CNB_SWITCH4 ??? 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

  15. 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.

    myproject_task Exported by REXYGEN Studio U1 U2 Y NY AND on CNB_RUN off CNB_SWITCH1 off CNB_SWITCH2 off CNB_SWITCH3 off CNB_SWITCH4 ??? 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

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.

PIC

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í.

PIC

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. ž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.

PIC

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).

myproject_task Exported by REXYGEN Studio U1 U2 Y NY AND off off off on Y CNB_RUN Y CNB_SWITCH1 Y CNB_SWITCH2 Y CNB_SWITCH3 Y CNB_SWITCH4 off U1 U2 Y NY OR_A off off off on U1 U2 Y NY OR_B off off off on U HLD R1 Q et rt TIMER off off off off 0 5 u1 u2 u3 u4 RUN R1 y1 y2 y3 y4 iE TRND myproject_task

Nyní je možné dvakrát kliknout na blok CNB_SWITCH1 a změnit Booleovskou proměnnou na YCN = on (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.

PIC

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).

PIC

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:

PIC

  1. 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'); 
    }
  2. Tento soubor bude zpracován při kompilaci projektu. Je však nutné nejprve přidat blok EXEC/HMI do hlavního souboru projektu.

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

  3. Dvakrát klikněte na blok HMI a upravte jeho parametry. Nastavte GenerateWebWatch = off 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.
  4. 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.
  5. 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.

    PIC

  6. 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.
  7. Můžete také změnit nastavení časovače a zkrátit nebo prodloužit interval.
  8. Viz [5] pro podrobné informace o prvcích WebBuDi a možnosti přizpůsobení (barvy, pozadí atd.).
  9. Výchozí URL adresa je http://192.168.1.100:8008/hmi/index.html (nahraďte 192.168.1.100 IP adresou vaší platformy).
  10. 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.

PIC

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: 17159

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