EPC – Spouštění externích programů
Symbol blokuPotřebná licence: ADVANCED
Popis funkce
Blok EPC vykoná externí program, když je detekována náběžná hrana
(offon) na
vstupu EXEC. Název programu a parametry jsou specifikovány parametrem cmd,
formátované přesně tak, jak by byly na příkazové řádce operačního
systému.
Data mohou být předávána mezi systémem REXYGEN a externím programem pomocí souborů. Formát souboru, specifikovaný parametrem format, je textový, aby byla zajištěna kompatibilita a snadné použití s různými softwarovými nástroji. Například data lze načíst v MATLABu pomocí příkazu:
a v SCILABu s:
Upravte název souboru a počet sloupců podle potřeby vašeho konkrétního projektu. Data lze také získat zpět do systému REXYGEN pomocí stejného formátu souboru.
Blok EPC pracuje ve dvou režimech:
- Základní režim:
- Spuštěný náběžnou hranou na EXEC, tento režim čte aktuální vstupní data a ukládá je do určených souborů specifikovaných parametrem ifns. Každý i-tý vstupní vektor uVec<i> je uložen do svého odpovídajícího i-tého souboru.
- Vzorkovací režim:
- V tomto režimu jsou data z vstupních vektorů neustále ukládána do souborů v každém algoritmickém cyklu, což usnadňuje záznam dat v reálném čase.
V obou režimech jsou data z jednoho časového okamžiku uložena v jednom řádku v souboru. Obdobně jsou data z výstupních souborů získána a přiřazena výstupům bloku (yVec<i>), přičemž každý řádek z i-tého výstupního souboru jde do i-tého výstupního vektoru.
Vstupy pracující ve vzorkovacím režimu jsou definovány seznamem sl (Např. 1,3..5,8. Programy třetích stran (Simulink, OPC klienti, atd.) pracují s celým číslem, které reprezentuje binární masku, např. 157 (binárně 10011101) v uvedeném příkladu.). Výstupy pracují vždy ve vzorkovacím režimu – poslední hodnoty jsou udržovány, když je dosaženo konce souboru. Kopírování dat do vstupních souborů může být blokováno vstupem DSI, to samé platí pro výstupní data a vstup DSO.
Pro sloučení více signálů do jednoho vektoru použijte blok RTOV. Pro rozložení vektoru na jednotlivé signály použijte blok VTOR. Tyto bloky lze řetězit pro zpracování vektorů libovolné velikosti, což zvyšuje flexibilitu bloku při zpracování složitých datových struktur.
Poznámky:
- Volaný externí program má stejnou prioritu jako volající úloha. Tato
priorita je vysoká, v některých případech vyšší než úlohy jádra
operačního systému. Na systémech založených na Linuxu je možné
snížit prioritu pomocí příkazu chrt:
chrt -o 0 extprg.sh,
kde extprg.sh je původní externí program. - Velikost signálů je omezena parametrem nmax. Větší parametr znamená větší spotřebu paměti, takže zvolte tento parametr co nejmenší.
- Názvy souborů musí respektovat konvence pojmenování operačního systému cílové platformy. Doporučuje se používat pouze alfanumerické znaky a podtržítko, aby se předešlo problémům. Dodržujte také velká a malá písmena.
- Blok také vytváří kopie souborů ifns a ofns z implementačních důvodů. Názvy těchto souborů jsou rozšířeny o podtržítko.
- Cesty ifns a ofns jsou relativní k adresáři, kde jsou uloženy archivy systému REXYGEN. Doporučuje se definovat symbolický odkaz na RAM-disk uvnitř tohoto adresáře pro zlepšení výkonu. Na druhou stranu, pro dlouhé řady dat je lepší ukládat data na trvalé úložiště, protože data lze např. po obnovení po výpadku napájení přidat.
- Blok OSCALL lze také použít pro provedení některých funkcí operačního systému.
Tento blok nepropaguje kvalitu signálu. Více informací je uvedeno v sekci 1.4.
Vstup
uVec1..uVec8 | Vstupní vektorový signál | Reference |
EXEC | Náběžná hrana spouští externí program | Bool |
RESET | Reset bloku | Bool |
DSI | Pozastavení vzorkování na vstupech | Bool |
DSO | Pozastavení vzorkování na výstupech | Bool |
Parametr
cmd | Externí program | String |
ifns | Vstupní soubory (oddělené středníkem) epc_uVec1;epc_uVec2 | String |
ofns | Výstupní soubory (oddělené středníkem) epc_yVec1;epc_yVec2 | String |
sl | Seznam vzorkovacích vstupů (oddělené čárkou) 0 255 85 | Long (I32) |
ifm | Maximální počet vzorků ve vstupním souboru 10000 | Long (I32) |
format | Formát vstupních a výstupních souborů 1 | Long (I32) |
|
|
|
nmax | Maximální délka výstupních vektorů 2 1000000 100 | Long (I32) |
Výstup
yVec1..yVec8 | Výstupní vektorový signál | Reference |
DONE | Příznak skončení externího programu | Bool |
BUSY | Příznak běhu externího programu | Bool |
ERR | Příznak chyby | Bool |
errID | Kód chyby | Error |
res | Návratový kód externího programu | Long (I32) |
icnt | Aktuální číslo vzorku na vstupech | Long (I32) |
ocnt | Aktuální číslo vzorku na výstupech | Long (I32) |
[Na začátek] [Výše] [Další]
2024 © REX Controls s.r.o., www.rexygen.com