OK1UFC
 
    Virtuální sériové porty

Poslední aktualizace v srpnu 2020    

 
    Úvod

Sériový port se stal základem komunikace pro velké množství aplikací z oblasti dálkového ovládání a telemetrie (DO a TM). Realizace takové komunikace je pro programátora rychlá a jednoduchá. Abychom docílili přenosu informací po Internetu, síti WAN, LAN, včetně WiFi, použijeme SW třetích stran, pomocí kterého vytvoříme virtuální sériové porty, které budou komunikovat pomocí TCP/IP protokolu se serverem Elfin (IP adresa a port). Problematika a realizace irtuálních sériových portů je předmětem tohoto článku.

V navazujícím článku budou zmíněné aplikace, které přímo komunikují pomocí TCP/IP protokolu se serverem Elfin EW10.
V dalším souvisejícím článku bude popsán malý webový server, který umožní komunikaci aplikace z mobilních zařízení, které jsou vybavené pouze moderním browserem (Edge, Chromium, Chrome, Opera, ...)

 

 
   Virtuální sériové porty v operačním systému Windows 

Řešení s jedním virtuálním sériovým portem
 
Na stránkách HW group najdete a můžete si stáhnout freewarový program, který jednoduše nainstalujete. Jeho obrovskou výhodou je, že jednoduše vytvoříte virtuální sériový port. Například COM9, jako na obrázku vpravo. Jediné, co musíte udělat, tak je vybrat číslo COM (zde COM9) a vyplnit správně IP adresu a číslo portu, kde naslouchá server, který umí směrovat bajty přijaté z virtuálního portu do fyzického portu, který má. Můj server na druhé straně je Elfin EW10.

Ve své aplikaci, např. v ovládacím programu stanice, pouze zvolíte číslo portu COM9, nastavíte obvyklé parametry, např. baudovou rychlost, počet bitů, stopbitů a paritu. A je hotovo. Aplikace si virtuální port otevře, posílá do portu bajt po bajtu, tedy svůj protokol a přijímá na tomtéž portu bajt za bajtem z druhého konce relace.

Výhody

HW VSP3 single je zadarmo. Jednoduše se instaluje, jednoduše se nastavuje a spolehlivě funguje. Funguje i ve spolupráci s programy nakreslenými např. pomocí prostředků Profilab Expert. Zde příklad přepínače antén:

Switch

HW group Virtual serial

Program není rovněž vázán na žádný HW. Stačí mu vyplnit IP adresu a port naslouchajícího serveru! Dovolím si upozornit na nesmyslný mýtus, že virtuální sériový port je jen ovladač, vztažený ke konkrétnímu HW. Ne, opravdu, NENÍ to tak. Ovladač HW je úplně jinde, na jiném zařízení, které má fyzický sériový port.
 
Poznámky:

1. Na obrázku vpravo jsem ukázal, kde a jak je vidět ve Správci zařízení virtuální sériový port. Není mezi porty (COM a LPT), ale objeví se jako samostatná položka Virtual Serial Port (Eltima Software).


2. Stáhnul jsem též verzi programu, která umí více virtuálních portů. Šla nainstalovat. Verze je však určená jen pro propietární řešení HW group s konkrétním HW. Protože žádné takové zařízení nemám, nezkoušel jsem ani ten SW. Hlavní důvod však vidím v tom, že předpokládám, že výrobce bude šifrovat IP komunikaci a přenos nebude transparentní. Lidově - ze vzdáleného fyzického portu nepoleze nic nebo pouze jen jakási posloupnost nesmyslných bajtů.

3. Před instalací víceportové verze musíte odinstalovat původní jednoportovou verzi. Obdobně, před další instalací single COM verze musíte odtsranit multi COM verzi.

4. Při opětovné instalaci single COM se vyskytly při instalaci problémy. Nicméně, instalaci jsem dokončil, poté SW odinstaloval pomocí Revo Uninstaler, a to s hloubkovým prohledáním na všechny soubory, adresáře a záznamy v registru. Následně proběhla opětovná instalace korektně.
 
 

Správce zařízení

5. Při prvním spuštění a vytváření portu jsem pravděpodobně někde udělal chybu. Doporučuji po prvním spuštění dodržet tento postup:

- Otevřít záložku Settings, provést login a uložit nastavení do ini souboru.
- Potom lze jít na záložku Virtual Serial Port a vytvořit tam virtuální port. To znamená vybrat COM (já jsem vybral COM9) a vyplnit IP adresu (moje je 192.168.1.5) a nastavit port (8899). Zařízení s IP adresou nemusí být při vytváření virtuálního portu spuštěné.
- Port se vytvoří, program napíše Created a port se objeví ve Správci zařízení. Domníval jsem se, že vždy tak, jak jsem ukázal v tomto článku. Nemusí to však být pravda vždy. Teď, když píšu tento odstavec, tak vše zkouším s Win 10, build 1903, který jsem nedávno instaloval a virtuální port se mi objevuje mezi Porty (COM a LPT). Proč je to jednou tak a podruhé jinak, to netuším.

6. S jedním virtuálním sériovým portem vystačíme v mnoha případech dálkového ovládání a telemetrie, protože naše zařízení s čipy PICAXE jsou navržena tak, aby umožňovala adresaci zařízení na jedné sériové lince. Pokud tedy v jenom místě, např. u antény, potřebujeme ovládat přepínač antén, anténní tuner a měřiče přímého a odraženého výkonu, pak v tom místě vystačíme s jedním modulem Elfin EW 10 a na PC desktopu s jením virtuálním portem.

Řešení s více virtuálními sériovými porty
 
Řešení s mnoha virtuálními porty použijeme v případě, kdy měříme a ovládáme na mnoha geograficky různých místech. Rozumějme tomu tak, že pokud máme i na zahradě několik pracovišť, tak nebudeme do jednotlivých míst pokládat sdělovací a ovládací kabely. V každém místě použijeme modul Elfin EW10 s rozdílnou IP adresou v síti. Běžný domácí router umí pracovat s desítkami IP adres pro různá zařízení.
 
Pokud potřebujeme komunikovat s více zařízeními Elfin, bude nám výbormě fungovat placený program - emulátor sériových portů (cca 25 Euro) od malé společnosti Eterlogic.

Práce s programem je jednoduchá. Na následujících obrázcích je zadokumentován postup instalace v krocích a spuštění programu.

Postup

1. V ukázce jsem použil jeden port COM10 a jeden TCP/IP klient (připojuje se k TCP/IP serveru Elfin EW10).
2. Program VSPE lze vyzkoušet v neplacené demoverzi. V demoverzi jsme omezeni pouze tím, že musíme po spuštění odkliknout, že právě teď nebudeme vkládat licenční klíč,  ale chceme program pouze vyzkoušet.
3. První krok -  vytvoříme tzv. konektor. Na konektor se nám budou připojovat naše aplikace (napsané např. ve Visual Studiu, Profi Lab expertu, atd.) a taky se k němu připojí TCP Klient. Takto vytvořený COM se nám však nezobrazí ve správci zařízení Windows, jako v předchozím řešení. To však nijak nevadí, vše funguje.
4. Druhý krok -  vytvoříme TCP klienta a spojíme ho se serverem Elfin. Podmínkou je správně nakonfigurovaný Elfin v režimu STA a musíme znát jeho IP adresu a port. Klient se spojí také s konektorem COM10.
5. Nezapomeneme si konfiguraci uložit.
6. Spustíme simulaci portu. Naše aplikace se mohou připojovat k emulovanému COM10 a sériová data budou  na fyzickém rozhraní RS232 serveru Elfin EW10.
7. Simulace portu i komunikace funguje, pokud je aplikace VSPE spuštěná.
8. Pokud máme licenci (registrovanou verzi), lze si nastavit spuštění aplikace při startu Windows. Takto to používám na maličkém serveru, který jsem realizoval z tabletu PiPo. V případě aplikací, které jsem si napsal sám, startuji VSPE pomocí metody shell execute. To znamená, že aplikace, která potřebuje komunikovat po sériové lince si ve vhodný okamžik sama spustí VSPE a později začne komunikovat přes emulované virtuální sériové porty.

Dokumentace postupů (obrazovek):
 

Spuštění VSPE:

 
Vytvoření virtuálního konektoru:

 
Vybrání (volba) čísla portu COM (zde COM10):

 
Napojení konektoru COM10 na TCP klienta:


Nastavení IP adresy a portu:


Nastavení parametrů sériového rozhraní (baudová rychlost, počet bitů, počet stopbitů, atd.):

 
Spuštění emulace portu. Po spuštění je port k dispozici aplikacím a fyzicky jsou data na konektoru modulu Elfin EW10:

 


Uložení jedné z konfigurací do souboru:


Načtení konfigurace při dalším spuštění:

 
Ukázka emulace sériové linky mezi emulovaným COM10 a fyzickým konektorem na Elfin EW10 (IP: 192.168.1.104, port: 8899):

 
Závěr 

Není co dodat. Oba programy na emulaci sériových portů fungují. Takže obrovské poděkování všem autorům. Virtualizací sériových portů zcela určitě posunuli možnosti desktopů o mílové kroky směrem k jejich využití pro bezdrátové dálkové ovládání a telemetrii.

 

   TU 73, Mira, ok1ufc