GETPA – Blok pro vzdálené získání vektorového parametru

Symbol blokuPotřebná licence: STANDARD
PIC

Popis funkce
Blok GETPA slouží ke vzdálenému získávání vektorových parametrů ostatních bloků v modelu. Může pracovat ve dvou režimech, které se přepínají parametrem GETF. Pro GETF = off je na výstup arrRef vyveden vzdálený vektorový parametr při startu a dále pak při každé změně sledovaného vzdáleného parametru. Jestliže parametr GETF je on, pak bloky pracují v režimu jednorázového čtení vzdáleného parametru, který se přečte vždy, když nastane náběžná hrana (off on) na vstupu GET.

Jméno vzdáleného parametru určuje textový parametr sc (string connection), který se zadává ve tvaru <cesta_k_bloku:jmeno_parametru>. Cesta k bloku, jehož parametr má být získán, může obsahovat tečkami oddělené hierarchické úrovně, na jejichž konci je název bloku a může být:

  • Relativní – začíná v úrovni, do které je umístěn blok GETPA. V tomto případě text začíná znakem ’.’. Příklady hodnot relativních cest: ".CNDR:yp", ".Lights.ATMT:touts".
  • Relativní k tasku – začíná v základní úrovni tasku, do které je umístěn daný blok GETPA. V tomto případě text začíná znakem ’%’. Příklady hodnot cest: "%CNDR:yp", "%Lights.ATMT:touts".
  • Absolutní – úplná posloupnost hierarchických úrovní až k požadovanému bloku. V případě, že má být čten parametr z bloku umístěného v úloze ovladače (pro konfiguraci viz. blok IOTASK), je v první úrovni hierarchie uveden znak ’&’ následovaný názvem ovladače. Příklady hodnot absolutních cest: "uloha1.vstupy.ATMT:touts", "&EfaDrv.mereni.CNDR:yp".

Poznámka 1: Pokud se čte hodnota pole z jiné úlohy, je pro zajištění konzistence hodnot nutné použít tzv. semafor a počkat na dokončení úlohy, ze které se hodnota pole čte. Po celou dobu čekání na dokončení je úloha s blokem GETPA pozastavena! Z praktického hlediska to znamená, že blok GETPA se musí umístit do úlohy, která trvá dlouho a číst hodnotu pole z úlohy, která trvá krátce. Pokud je to opačně, dochází k čekání rychlé úlohy na pomalejší úlohu a rychlejší úloha se tím zpozdí. V této situaci je vhodné použít blok SETPA v déletrvající úloze.

Poznámka 2: Pokud je parametr GETF = off a navíc zdrojové pole (určené parametrem sc) je ze stejného tasku jako blok GETPA, na výstup se dává přímý odkaz na původní pole. To šetří paměť i procesorový čas. V tomto případě jsou parametry nmax, etype ignorovány.

Poznámka 3: Pokud se použije více bloků GETPA pro čtení polí v jiném tasku, není zajištěno, že se všechny pole přečtou v jedné periodě druhé úlohy. Je pouze zajištěno, že dříve provedený blok GETPA přečte pole ze stejné nebo dřívější periody druhého tasku než později provedený blok GETPA. Pořadí spouštění je vidět v diagnostice programu REXYGEN Studio.

Poznámka 4: Vzdálené pole (parametr na který blok odkazuje) musí být primární pole (např. CNA:acn, RTOV:xVec, MX_MAT:ay). Není podpořeno použít jako vzdálené pole odkaz (např. CNA:vec, RTOV:yVec, SUBSYSTEM:Outport).

Pořadí a názvy jednotlivých hierarchických úrovní jsou zobrazeny ve stromové struktuře konfigurace v diagnostice programu REXYGEN Studio.

Vstup

GET

Vstup pro jednorázové přečtení parametru. Pokud je GETF = on data se čtou jen při náběžné hraně na tomto vstupu.

Bool

Výstupy

arrRef

Odkaz na pole (vektor nebo matice)

Reference

E

Příznak chyby

Bool

Parametry

sc

Jméno vzdáleného parametru

String

GETF

Načtení parametru pouze po vyžádání

Bool

off ..

režim průběžného čtení parametru

on ...

režim jednorázového přečtení parametru po náběžné hraně na vstupu GET

nmax

Maximální velikost vektoru (pole)   10 256

Long (I32)

etype

Type položek pole. Jde o typ v přechodném (stavovém) poli, kam se originální data kopírují. Je provedena konverze, pokud původní data mají jiný typ.  8

Long (I32)

2 ....

Byte

3 ....

Short

4 ....

Long

5 ....

Word

6 ....

DWord

7 ....

Float

8 ....

Double

10 ...

Large

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