SGSLP – Nastavování, čtení, ukládání a načítání parametrů

Symbol blokuPotřebná licence: ADVANCED
Qt SVG Document Exported by REXYGEN Studio u0 u1 u2 u3 u4 u5 u6 u7 u8 u9 u10 u11 u12 u13 u14 u15 ips SET GET SAVE LOAD y0 y1 y2 y3 y4 y5 y6 y7 y8 y9 y10 y11 y12 y13 y14 y15 E iE SGSLP

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

  1. <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ů.
  2. <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.

Doporučuje se nepoužívat obě syntaxe v jednom SGSLP bloku, všech 16 řetězců sci by mělo mít stejný formát. První syntaxe se například používá při výrobě nps typů výrobků, kdy je třeba měnit mnoho parametrů pro každý typ výroby. Druhá syntaxe se obvykle používá pro ukládání uživatelsky definovaných parametrů na disk (viz operace SAVE níže). V tomto případě je žádoucí zajistit automatizované 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 nps1. 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 modifikovanou 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.

Tento blok nepropaguje kvalitu signálu. Více informací je uvedeno v sekci 1.4.

Vstup

u0..u15

Analogový vstupní signál

Double (F64)

ips

Číslo sady parametrů (číslováno od 0)

Long (I32)

SET

Přečtení vstupů a nastavení parametrů

Bool

GET

Přečtení parametrů a nastavení výstupů

Bool

SAVE

Uložení parametrů do souboru

Bool

LOAD

Načtení parametrů ze souboru

Bool

Parametr

nps

Počet sad parametrů   1  16 1

Long (I32)

ips0

Číslo sady parametrů pro inicializaci bloku   -1  15

Long (I32)

iprec

Počet platných číslic pro hodnoty typu double   2  15 12

Long (I32)

icolw

Šířka sloupce v souboru   0  22

Long (I32)

fname

Jméno souboru pro ukládání/načítání parametrů  status

String

broot

Kořenový prvek v hierarchii  .

String

sc0..sc15

Seznam přiřazených parametrů

String

Výstup

y0..y15

Analogový výstupní signál

Double (F64)

E

Příznak chyby

Bool

off ..

bez chyby

on ...

nastala chyba

iE

Chybový nebo varovný výstup

Long (I32)

0 ....

Operace proběhla úspěšně

1 ....

Fatální chyba systému Matlab

2 ....

Chyba při operaci LOAD

3 ....

Chyba při operaci SAVE

4 ....

Nesprávný formát souboru

5 ....

Sada parametrů ips nebyla v souboru nalezena

6 ....

Nesoulad jmen parametrů

7 ....

Neočekávaný konec souboru

8 ....

Chyba zápisu na disk (nedostatek místa?)

9 ....

Chyba syntaxe parametru

10 ...

Jméno tvořeno pouze mezerami

11 ...

Nelze vytvořit záložní soubor

12 ...

Chyba při operaci GET

13 ...

Chyba při operaci SET

14 ...

Překročení času (timeout)

15 ...

Parametr je pouze pro čtení

16 ...

Sada číslo ips neexistuje

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