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 . 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 sc prázdný (nezadaný), není žádný parametr specifikován, jinak parametry sc 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á . 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ů , volit různý způsob zadání sc, 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 sc. V případě, že je , 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 sc specifikovat úplnou cestu k bloku, v níž jsou jednotlivé hierarchické úrovně odděleny tečkami. Například tedy volba a 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ě (offon) 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 u. V případě, že je parametr úspěšně nastaven, je na stejnou hodnotu nastaven i výstup y.
- 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 y.
- 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 . 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 sc, , kde je maximální číslo, pro něž je parametr sc 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 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 sc obsahuje jedinou dvojici <blok>:<param> (viz 1. syntaxe výše). Tato skutečnost umožňuje přecházet mezi oběma syntaxemi parametrů sc, 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
u | -tý analogový vstupní signál, | Double (F64) |
ips | Číslo sady parametrů (číslováno od 0) | Long (I32) |
SET | Přečtení vstupů u a nastavení parametrů sady ips na jejich hodnoty | Bool |
GET | Přečtení parametrů sady ips a nastavení výstupů y 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
y | -tý analogový výstupní signál, | 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 nebo , 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 , 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 sc, viz popis v textu výše . | String |
sc | Řetězce specifikující připojení vstupů u a výstupů y, k požadovaným parametrům, viz popis v textu výše | String |
[Předchozí] [Na začátek] [Výše] [Další]
2020 © REX Controls s.r.o., www.rexygen.com