Před použitím tohoto ovladače v aplikaci PROMOTIC je vhodné shlédnout "
PROMOTIC video kurz 4 - Komunikační ovladače".
Základní vlastnosti ovladače:
- Použití tohoto ovladače vyžaduje zakoupení
licence PmChar. Při vývoji aplikace (s
vývojovou licencí pro testovací účely) je tato komponenta vždy funkční. Tato komponenta
není funkční ve freeware módu
PmFree.
Je také potřeba zakoupit
příslušný počet licencí PmDataClient. Tento počet je uveden v konfigurátoru "
Maximální počet klientů".
- Ve verzi
PmFree je povolený počet klientů nastaven na 2.
- Při vývoji aplikace pro testovací účely je povolený počet klientů nastaven na 10.
- Komunikace je
pro Ethernet (aplikace PROMOTIC je server) (pro Ethernet-klienta nebo pro sériovou linku je určen komunikační ovladač
PmChar).
Ovladač je jednoduchý ale mocný nástroj pro komunikaci
uživatelsky konfigurovaným protokolem. Je určen především pro komunikace, u kterých se nevyplatí používat specializovaný komunikační protokol.
Použití ovladače je zvláště výhodné pro:
- komunikace jednoduchými protokoly.
- textově i binárně orientované komunikace.
- testovací účely.
Ovladač
PmCharServer není určen pro emulaci složitějších protokolů.
Při rozhodování, zda daný protokol lze realizovat pomocí
PmCharServer ovladače, Vám rádi
poradíme; kontaktujte nás! (
sw-support@microsys.cz).
Doporučené hodnoty parametrů objektu PmaComm:
Přijatá data budou vždy pouze v jednom paketu | Pokud je zatrženo, pak se předpokládá, že celý obsah přijaté zprávy se vždy vejde do jednoho IP paketu.
Toto nastavení má vliv na optimalizaci rychlosti příjmu:
Po příjmu jednoho paketu se vždy ukončí příjem a nečeká se na timeout (zadaný v konfigurátoru "Timeout přenosu jednoho paketu [ms]").
Velikost paketu je určena danou sítí. Může to být např. 521 bajtů, 1024 bajtů atd. |
| |
---|
Popis komunikace pomocí objektu PmaCommMsg typu Slave
Tento typ objektu může být umístěn v objektu
PmaComm pouze jednou.
Tento objekt bude přijímat všechny příchozí zprávy a případně odpovídat na tyto zprávy.
Parametry zprávy:
V 'Data-zaslání' je HexaString | V kartě "Data-zaslání" je vždy proměnná Data typu String.
Pokud je zatrženo, pak se předpokládá že obsahem této proměnné je tzv. HexaString, pomocí kterého lze v typu String přenášet libovolné binární hodnoty následovně:
Příklad: pokud se mají zaslat 4 bajty s binárními hodnotami 01 A0 00 B3 (v hexadecimálním tvaru), pak je nutno nastavit do proměnné typu String hodnotu "01A000B3" - tzn. text délky 2*4=8 znaků.
Takto lze jednoduše zasílat data obsahující i binární nuly, které v hodnotě typu String nesmějí být.
Pro přípravu vysílaných dat lze použít metodu Pm.TransformValue(240).
Pokud není zatrženo, pak nelze posílat binární data ale pouze textová data - zašle se přesně to co je v obsahu proměnné typu String. |
V 'Data-příjem' je HexaString | Stejné jako předchozí konfigurátor, pouze pro kartu Data-příjem.
Pokud je zatrženo, pak pro zpracování přijatých dat lze použít metoda Pm.TransformValue(241). |
---|
V kartě "
Data-zaslání" jsou proměnné:
Data - (String) Data určená pro zaslání.
V kartě "
Data-příjem" jsou proměnné:
Data - (String) Zde se uloží přijatá data.
Postup přenosu pro tento typ zpráv je následující:
- Objekt čeká na příjem dat z druhé strany.
- Po příjmu zprávy z druhé strany se určí, kterému objektu typu
Slave tyto data patří. Pokud je pouze jeden objekt typu
Slave, pak se přijatá data předají jemu, v jiném případě se rozhoduje následovně:
Zjistí se délka přijaté zprávy a zjistí se délka požadovaných dat v objektech (zadaná v kartě "
Data-příjem"). Přijatá zpráva se přidělí objektu, jehož požadovaná délka je rovna (nebo nejblíže větší) než délka přijaté zprávy.
- Po uložení přijatých dat do proměnné
Data v kartě "
Data-příjem" příslušného objektu je vyvolána událost
onDataReceive. Zde může projektant na základě přijatých dat nastavit data pro zaslání v kartě "
Data-zaslání".
- Pokud v kartě "
Data-zaslání" proměnná
Data obsahuje prázdný řetězec, pak se přenos ukončí (je vyvolána událost
onEndOfTransfer). Využívá se pokud PROMOTIC nemá poslat odpověď druhé straně.
- Pokud v kartě "
Data-zaslání" proměnná
Data obsahuje neprázdný řetězec, pak obsah této proměnné se upraví (např. se provede konverze z
HexaString do binárního tvaru) a upravená data se zašlou druhé straně.
Popis komunikace pomocí objektu PmaCommMsg typu Master
Tento typ objektu může být umístěn v objektu
PmaComm vícekrát.
Tento objekt je funkční pouze pokud konfigurátor "
Typ Ethernet přenosu" je nastaven na
TCP.
Tento objekt bude pouze zasílat zprávy pro daného klienta, nebude nic přijímat. Je určen pro situaci kdy server potřebuje zaslat data klientovi sám o sobě, bez vyžádání dat klientem.
Použití tohoto objektu je
prozatím omezeno pouze pro případ kdy se k serveru připojuje pouze jeden klient.
Parametry zprávy:
V 'Data-zaslání' je HexaString | V kartě "Data-zaslání" je vždy proměnná Data typu String.
Pokud je zatrženo, pak se předpokládá že obsahem této proměnné je tzv. HexaString, pomocí kterého lze v typu String přenášet libovolné binární hodnoty následovně:
Příklad: pokud se mají zaslat 4 bajty s binárními hodnotami 01 A0 00 B3 (v hexadecimálním tvaru), pak je nutno nastavit do proměnné typu String hodnotu "01A000B3" - tzn. text délky 2*4=8 znaků.
Takto lze jednoduše zasílat data obsahující i binární nuly, které v hodnotě typu String nesmějí být.
Pro přípravu vysílaných dat lze použít metodu Pm.TransformValue(240).
Pokud není zatrženo, pak nelze posílat binární data ale pouze textová data - zašle se přesně to co je v obsahu proměnné typu String. |
---|
V kartě "
Data-zaslání" jsou proměnné:
Data - (String) Data určená pro zaslání.
ClientId - (String) Identifikátor klienta, kterému se má tato zpráva poslat. Prozatím je omezení, že může být pouze jeden klient a proto musí být hodnota tohoto identifikátoru nenastavena.