Promotic

PmCharServer - Ovladač pro komunikaci uživatelsky konfigurovatelným ASCII/BIN protokolem

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 začleněn do systému PROMOTIC pomocí objektu PmaComm.
Ovladač podporuje použití objektu PmaCommMsg. Objekt PmaCommGroup nelze použít.
Pro snadné přidání tohoto ovladače do aplikace je vhodné použít: Předkonfigurace ve skupině "PmChar konfigurovatelný protokol"


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:

Popis a doporučené hodnoty pro Parametry protokolu:
Přijímaná data budou vždy jen v jednom paketuPokud 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 jen 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 HexaStringV 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ásledujícím způsobem:
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 jen textová data - zašle se přesně to co je v obsahu proměnné typu String.
V 'Data-příjem' je HexaStringStejné 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á k 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 jen 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 vyslá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ě.
- Po vyslání je vyvolána událost onEndOfTransfer.

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 zatím omezeno pouze pro případ kdy se k serveru připojuje pouze jeden klient.
Parametry zprávy:
V 'Data-zaslání' je HexaStringV 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ásledujícím způsobem:
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 jen 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á k 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.
V kartě "Data-příjem" není žádná proměnná. Tento objekt PmaCommMsg pouze vysílá a nečeká na příjem.

Historie:
Pm9.00.15: Zobecnění pro použití objektu PmaCommMsg typu Master. Prozatím pouze pro případ kdy se komunikuje pouze s jedním klientem.
Pm9.00.03: Vytvořeno
© MICROSYS, spol. s r.o.