SGSLP – Nastavování, čtení, ukládání a načítání parametrů
Symbol blokuPotřebná licence: ADVANCED
Popis funkce
Blok SGSLP (z anglického Set, Get, Save and Load Parameters) je speciálním blokem pro
správu připojených parametrů jiných bloků v konfiguraci řídicího systému
REXYGEN. Blok pracuje i v systému Matlab-Simulink, jeho dosah je však omezen jen na
bloky téhož souboru .mdl, v němž je vložen.
Blok může pracovat až se šestnácti sadami parametrů, které jsou číslovány od 0 do 15 a volí se vstupem ips, aktuální počet sad je určen parametrem nps. Je-li vstup ips nepřipojen, pracuje blok se sadou ips=0. V každé sadě může být zkonfigurováno až 16 různých parametrů daných řetězcovými parametry sc0 až sc15, takže jeden blok SGSLP může pracovat s maximálně 256 parametry v řídicím systému REXYGEN. Je-li řetězec sci prázdný (nezadaný), není žádný parametr specifikován, jinak parametry sci mohou používat dvě syntaxe:
- <blok>:<param> – specifikují jeden blok se jménem blok s parametrem param. V tomto případě je použit tentýž blok a parametr pro všech nps sad parametrů.
- <blok>:<param><sep>…<blok>:<param> – v tomto případě je pro každou sadu parametrů ips uvažován obecně různý parametr, první dvojice <blok>:<param> odpovídá ips=0. Oddělovačem <sep> může být buď čárka nebo středník. Specifikovaných dvojic <blok>:<param> by mělo být právě nps. V případě, že jich je méně, a má se provést některá z operací (viz níže) se sadou, pro niž specifikace bloku a parametru chybí, požadovaná operace se neprovede.
Přestože lze obecně pro každý z indexů i, i=0…15 volit různý způsob zadání sci, doporučuje se pro celý blok volit buď syntaxi 1 nebo 2. První případ (několik hodnot pro stejný parametr) odpovídá např. výrobě nps druhů zboží, kde pro každé je nastavena jiná hodnota daného parametru. Druhý případ lze použít např. pro uložení co největšího počtu uživatelsky definovaných hodnot parametrů na disk (viz operaci SAVE níže), kde je vhodné blok SGSLP doplnit o logiku přepínání vstupu ips (např. pomocí bloku ATMT z knihovny LOGIC).
Pokud všechny bloky, jejichž parametry mají být nastavovány daným blokem SGSLP, leží v hierarchii bloků v nějakém subsystému nebo níže, lze výhodně použít řetězcový parametr broot, v němž se uvede jméno tohoto subsystému. Toto jméno se připojuje před každou specifikaci <blok> v parametrech sci. V případě, že je broot=’.’, je výsledek stejný, jako by parametr obsahoval cestu k subsystému, do nějž je daný blok SGSLP vložen (parametr se zadává bez uvozovek, ty jsou použity pouze v tomto textu pro zvýraznění jednotlivého znaku). Je-li hodnota parametru broot prázdná, musí každý výskyt <blok> v parametrech sci specifikovat úplnou cestu k bloku, v níž jsou jednotlivé hierarchické úrovně odděleny tečkami. Například tedy volba broot=. a sc0=CNR:ycn zajišťuje propojení na blok CNR a jeho parametr ycn, který se nachází ve stejném subsystému jako blok SGSLP. Případně můžeme ponechat parametr broot prázdný a umístit znak ’.’ na začátek řetězce sc0. Bližší informace o cestách v systému REXYGEN jsou uvedeny u bloků GETPR a SETPR.
Blok SGSLP může při náběžné hraně (off→on) na některém ze stejnojmenných vstupů provádět následující operace:
- SET – nastavit parametry dané množiny ips na hodnoty přivedené na vstupy ui. V případě, že je parametr úspěšně nastaven, je na stejnou hodnotu nastaven i výstup yi.
- GET – získat parametry dané množiny ips. V případě, že je parametr úspěšně získán, je jeho hodnota nastavena na výstup yi.
- SAVE – uložit parametry dané množiny ips do souboru (tzv. stavový soubor) na cílovém zařízení. Parametry a formát souboru jsou popsány níže.
- LOAD – načíst parametry dané množiny ips ze souboru na cílovém zařízení. Kromě načtení parametrů při náběžné hraně vstupu LOAD se parametry sady ips0 načtou při inicializaci bloku v případě, že je hodnota parametru ips0 v rozsahu od 0 do nps−1. Parametry a formát souboru jsou popsány níže.
Operace LOAD a SAVE pracují se souborem na cílovém zařízení, jehož jméno je uvedeno v parametru fname. Práce s parametrem fname se řídí následujícími pravidly:
- Pokud jméno souboru neobsahuje příponu, přidává se automaticky přípona .rxs (ReX Status file).
- Při ukládání bude vytvářen záložní soubor se stejným jménem, avšak s příponou modifovanou přidáním znaku ’~’ ihned za znak ’.’, např. pokud jméno souboru neobsahuje příponu, je přípona záložního souboru .~rxs.
- Cesta je relativní a je vztažena k adresáři s datovými soubory runtime jádra systému REXYGEN na cílovém zařízení. Data se typicky ukládají na pevný disk nebo flash disk nebo jiné médium, které po vypnutí a opětovném zapnutí zachovává soubory.
Data jsou příkazem SAVE ukládána do textového souboru, ze kterého jsou příkazem LOAD načítána zpět do bloku SGSLP. Pro každý parametr sci, i=0,…,m, kde m<16 je maximální číslo, pro něž je parametr scm neprázdný řetězec, obsahuje soubor dva řádky ve tvaru:
- "<blok>:<param>", …, "<blok>:<param>"
- <hodnota>, …, <hodnota>
Jednotlivé položky "<blok>:<param>" jsou mezi sebou odděleny čárkami a jejich počet odpovídá parametru nps, obdobně to platí i o položkách <hodnota> obsahujících hodnotu parametru, jehož jméno je uvedeno ve stejné pozici v předchozím řádku. Poznamenejme, že pro nps>1 má první z těchto dvou řádků vždy právě uvedený tvar (dvojice "<blok>:<param>" se opakuje nps-krát) a to i v případě, že parametr sci obsahuje jedinou dvojici <blok>:<param> (viz 1. syntaxe výše). Tato skutečnost umožňuje přecházet mezi oběma syntaxemi parametrů sci, aniž by musel být soubor upravován.
Při ukládání malého počtu hodnot můžete rovněž využít blok SILO.
Vstupy
ui | i-tý analogový vstupní signál, i=0,…,15 | Double (F64) |
ips | Číslo sady parametrů (číslováno od 0) | Long (I32) |
SET | Přečtení vstupů ui a nastavení parametrů sady ips na jejich hodnoty | Bool |
GET | Přečtení parametrů sady ips a nastavení výstupů yi na jejich hodnoty | Bool |
SAVE | Uložení parametrů sady ips do souboru na disk cílového zařízení | Bool |
LOAD | Načtení parametrů sady ips ze souboru na disku cílového zařízení | Bool |
Výstupy
yi | i-tý analogový výstupní signál, i=0,…,15 | Double (F64) |
E | Příznak chyby | Bool |
|
|
|
iE | Chybový nebo varovný výstup poslední operace | Long (I32) |
|
|
|
Parametry
nps | Počet sad parametrů ↓1 ↑16 ⊙1 | Long (I32) |
ips0 | Číslo sady parametrů, která se načte ze souboru při inicializaci bloku. Je-li ips0<0 nebo ips0≥nps, nečte se při inicializaci žádná sada ↓-1 ↑15 | Long (I32) |
iprec | Počet platných číslic pro zápis hodnoty typu double do souboru ↓2 ↑15 ⊙12 | Long (I32) |
icolw | Šířka sloupce v souboru. Je-li skutečná šířka menší, je doplněna zprava mezerami. Pokud je icolw<iprec, nebudou žádné mezery přidávány. ↓0 ↑22 | Long (I32) |
fname | Jméno souboru, do kterého se ukládají parametry příkazem SAVE a ze kterého se načítají příkazem LOAD ⊙status | String |
broot | Cesta k subsystému, přidávaná na začátek specifikace bloků v parametrech sci, viz popis v textu výše ⊙. | String |
sci | Řetězce specifikující připojení vstupů ui a výstupů yi, i=0,...,15 k požadovaným parametrům, viz popis v textu výše | String |
[Předchozí] [Na začátek] [Výše] [Další]
2023 © REX Controls s.r.o., www.rexygen.com