Jste zde

TEST – Emulátor sériové komunikace = COM Port Data Emulator

Pro potřeby odzkoušení funkce zařízení nebo softwaru pracujících se sériovým přenosem dat typu RS-232 či RS-485 nebo ethernetovou TCP/IP komunikací je často nutné zajistit vhodný "budící" testovací datový tok, kterým bude možné zjistit chování při různých přenosových situacích. Program COM Port Data Emulator umožňuje vysílat datový tok z dat uživatele i generovat náhodná data s různou periodou opakování či různou velikostí datových rámců. Program jsem prakticky vyzkoušel...

Po krátkém popisu PC softwaru realizujícím virtuální propojovací sériový kabel (Virtual-Null Modem), který najdete na odkazu automatizace.hw.cz/test-vyvojovy-a-testovaci-software-pro-rs232-virtual-null-modem, se dnes podíváme na další zajímavý testovací PC software z dílny stejné společnosti (AGG Software) tentokrát určený nejen pro sériovou komunikaci, ale i pro síťový ethernetový přenos dat. Jde o emulátor sériové komunikace a generátor zatížení pod názvem „COM Port Data Emulator“. Opět je to malý počítačový prográmek vcelku jednoduchý na ovládání, pokud víte, co která volba prakticky dělá. Zajímavý bude zejména opět pro vývojáře, či IT techniky PC softwaru nebo servisní techniky zařízení se sériovou či ethernetovou komunikací, kde může poměrně často vyvstávat požadavek na odladění, odzkoušení datové komunikace či reakce a stabilitu komunikujících systémů na různé komunikační a přenosové režimy (změny komunikačního zatížení, změny velikosti bloků / paketů přenášených dat apod.).

Zkráceně a laicky řečeno je to PC prográmek pro OS Windows pro „ruční“ nebo definované či náhodné automatické generování dat a jejich vysílání na zadaný sériový COM port nebo nastavenou TCP/IP adresu. Někdo namítne, že vysílat data umí i skoro každý RS-232 terminál (myslím tím PC software), ale obvykle již zde nemáte možnost automatického náhodného generování textových řetězců či binárních dat, nastavení velikosti přenášených bloků („rozsekání“ bloku binárních dat na menší přenášené bloky) a zpoždění mezi jejich vysíláním, automatický opakovaný přenos apod., tedy parametry, kterými lze účinně simulovat různé možné provozní situace i ty méně pravděpodobné.

Pokud to uvedeme odborně, tak program „COM Port Data Emulator“ je softwarový nástroj pro emulování funkce COM portu či ethernetového zařízení, který generuje sériový tok dat. Program umožňuje vytvářet datový tok, zabalit jej do paketů (RS-232, TCP/IP nebo UDP) a zaslat na definovaný port či IP adresu. Umožňuje náhodně generovat pakety či jednorázově nebo opakovaně vysílat textové či binární datové soubory v nastavených časových okamžicích. V případě použití dohromady s již dříve popsaným virtuálním propojovacím kabelem (Virtual Null Modem) jej lze použít i přímo pro testování počítačových komunikačních či řídicích softwarů s využitím jen jednoho počítače, který nemusí fyzicky obsahovat ani jeden komunikační port. Pomocí virtuálního kabelu si můžete například jako já při testování softwaru vytvořit dva propojené virtuální COM porty (např. COM10 a COM11), kde na například na COM 10 „připojíte“ zde uváděný program „COM Port Data Emulator „ a na druhé straně na COM11 připojíte libovolnou Vámi zkoušenou aplikaci, nebo jako já při zkouškách emulátoru třeba jen Vámi používaný RS-232 softwarový terminál.

Základní vlastnosti programu (dle informací výrobce):

  • Podpora: COM, RS232 (s převodníkem i RS-422/RS-485), TCP/IP, UDP
  • Plně duplexní režim
  • Podpora přenosové rychlosti až 115200 Baudů, různých datových délek, stopbitů, parity a všech možností řízení toku (hardwarové i softwarové)
  • Řízení datového toku pro COM / RS-232
  • U TCP/IP komunikace volba provozního režimu Server / Klient
  • Záznam a výpis událostí do souboru

TEST programu „COM Port Data Emulator“

Po nainstalování spuštěním instalačního .EXE souboru a následném spuštění poklikáním na vytvořenou ikonu na ploše se objeví následující základní okno (po zavření automaticky se objevující interaktivní nápovědy):

 

Zde se volí, kam se budou následně generovaná data (datový tok) vysílat. Vybrat lze jednu z voleb:

  • sériový COM port
  • TCP/ IP režim Server
  • TCP / IP režim Client

Nakonec je tu ještě položka „Send data directly do DataLogger“, která umožňuje data zasílat přímo do softwarového datového záznamníku, které též nabízí společnost AGG. Jinak sériová komunikace umožňuje nastavit COM port, přenosovou rychlost, počet bitů, stop bit, paritu a možnosti řízení (žádné, hardwarové, softwarové). U TCP/IP komunikace se samozřejmě definuje IP adresa a TCP kanál. Nastavení lze uložit pro snadné opakované vyvolání po opětovném spuštění programu nebo po změně nastavení prostřednictvím tlačítka „Load“ a následné volby „Save as“.

Pro nastavení režimu generovaných / vysílaných dat se využívá okno v záložce „Data Source“:

Asi nejdůležitější položkou je hned položka „Data Source“, pomocí které se zvolí zdroj vysílaných dat. Lze buď nadefinovat přesně uživatelem požadovaná textová či binární data ve volbách „Text file“, „Binary file“, „Text strings“ nebo zvolit automatické náhodné generování textových (ASCII znaky) či binárních dat ve volbách „Random text“, „Random bytes“.

Podle volby se pak zpřístupní další zadávací pole. Například v případě zvolení „Text file“ nebo „Binary file“ se zobrazí řádka pro nastavení cesty k souboru, který má být zdrojem, tedy jehož obsah se bude vysílat. U volby „Text strings“ se zobrazí okno pro zadání libovolného textu pro vysílání. Položky „Random text“ a „Random bytes“ neposkytují možnost další volby, data jsou generována automaticky programem bez zásahu uživatele.

Níže se pak nastavují režimy, jak mají být data vysílána. Volby jsou opět různě přístupné podle zvoleného zdroje dat:

  • Volba „Repeat mode“ (režim opakování) definuje v režimech „Text file“, „Binary file“, „Text Strings“, po jaké době se celý řetězec či data znovu automaticky odešlou od konce doby dokončení předchozího přenosu.

  • Volba „Auto sending intervals“ (automatický odesílací interval) pak na rozdíl od „Repeat mode“ časuje vysílání jednotlivých paketů. Prakticky aby mohla být využita volba automatického zasílání „Repeat mode“, musí být i nastavena volba „Auto sending intervals“. Rozdíl obou voleb je hlavně vidět u vysílání binárních souborů větších než nastavená velikost datového bloku (volba „Data block size“), kde tato volba definuje časovou mezeru mezi jednotlivým odesláním datových bloků. Vybrat lze režim pevně nastavené doby („Fixed“), nebo náhodně se měnící doby („Random“) v nastaveném rozsahu „od...do“. Tím se může simulovat různé komunikační zatížení.

  • Volba „Data block size“ (velikost datového bloku) je přístupná pouze u zdroje „Binary file“ a umožňuje definovat pevnou či proměnnou délku vysílaných datových bloků (paketů), na které se daný soubor rozdělí.

  • Volba „Create log file with data sent“ (vytvoř log. soubor z vysílaných dat) bude zapisovat vysílaná data do souboru na harddisku

  • Položka „Line ending characters“ umožňuje uživateli nadefinovat ukončovací příkazy / znaky

  • Volba „Interpret charakters like #XX as one charakter with hex code“ programu říká, aby ve vysílaných datech obsažené hexa kódy vykonal dle jejich významu místo toho, aby prostě jen odeslal.

Posledním oknem programu je záložka „Log“, do které se program přepne automaticky po kliknutí na tlačítko „Start“ realizující spuštění funkce emulace. Zde se v reálném čase vypisují nejen vysílaná data, ale i další informace o vytvářeném datovém toku, takže hned víte vcelku přesně, co se děje.

Praktické ukázky jednotlivých vysílacích režimů

 

Ručně napsaný text:

Volba "Text strings" bez ukončovacích znaků (vlevo) a s ukončovacími znaky (vpravo) v položce "Line ending characters".

Vygenerovaný datový tok v COM emulátoru (vpravo) a výsledek přijatých dat v programu Hyperterminál (vlevo)
- v horní části okna Hyperterminálu je přijatý text vysílaný bez ukončovacích znaků a v dolní části okna již text formátovaný ukončovacími znaky.

 

Náhodně generovaný text:

Volba "Random text" s ukončovacím řádkovým příkazem v položce "Line ending characters" provádí automatické generování různě dlouhých sekvencí ASCII čísel.

Vygenerovaný datový tok v COM emulátoru (vpravo) a výsledek přijatých dat v programu Hyperterminál (vlevo)
- v horní části okna Hyperterminálu je přijatý text vysílaný bez ukončovacích znaků a v dolní části okna již text formátovaný ukončovacími znaky.

 

Textový soubor:

Volba "Text file" vysílá obsah souboru jako ASCII znaky.

Vygenerovaný datový tok v COM emulátoru (vpravo) a výsledek přijatých dat v terminálovém programu Herkules (vlevo)
- zde pak formátovaný v případě, že je v emulátoru zadán ukončovací příkaz odřádkování.

 

Náhodně generovaná binární data:

Volba "Random bytes" vysílá náhodně generovanou posloupnost bajtů, zde navíc ještě s nastaveným náhodným časování odesílání v rozsahu 100 až 1000 ms.

Kompletně náhodně vygenerovaný datový tok v COM emulátoru (vpravo) a výsledek přijatých stejných dat v terminálovém programu Herkules (vlevo).

Binární soubor:

Volba "Binary file" vysílá kompletní obsah souboru se vším všudy. Všimněte si nastavení "rozporcování" datového souboru na náhodně veliké pakety o velikosti 5 až 256 bajtů.

Vygenerovaný datový tok v COM emulátoru (vpravo) a výsledek přijatých dat v terminálovém programu Herkules (vlevo).

 

Autor článku: Antonín Vojáček

DOWNLOAD & Odkazy

Hodnocení článku: