Aktualizováno v srpnu 2019

      
 

   Dálkově řízený tuner z aplikace klienta TCP, přes LAN/WiFi do serveru TCP z převodem  do RS232
 
Úvod

Dálkově řízený tuner, který využívá sériového portu rozhraní na tuneru a přenosu povelů přes WiFi (místní LAN síť) z řídícího PC v hamovně do místního venkovního PC (vedle grilu pod pergolou, blízko antény) jsem popsal  v jiném seriálu článků zde. Zde, v článcích k úvodu do programování popisuji program klientské části aplikace (PC v hamovně) a serverové části na zahradě (stařičký noťas u antén vedle grilu). Nejdřív, jak ty hračky vypadají.

1. Server (hned pod textem) ukáže po spuštění maličký monitor, který ukazuje status serveru, povely, které byly odeslány do mikropočítače tuneru (čip PICAXE). Povely jsou zobrazeny jako hexadecimální dvojice čísel 00h až FFh. Pokud se k serveru připojí klient, rozsvítí se na monitoru zeleně LED. V dolní polovině obrazovky je spuštěná jedna aplikace klienta. Ta mi slouží jako místní ovládání, pokud bych si chtěl u antény poštelovat LC článek.
 
Server
  
2. Aplikace klienta běží na PC v hamovně. Má řídítka na štelování L a C a na přepínání konfigurace LC nebo CL. Pokud si stejnou aplikaci pustíme na notebooku, kde běží server, můžeme ji používat jako místní řízení (ovládání).
 
  Tuner
  
3. Blokové schéma

Aplikace má 3 řídítka, slidery (potenciometry ?) na nastavení L a C a přepínač konfigurace. V aplikaci je ještě jeden TCP socket navíc (rezerva pro přepínač antén). Po spuštění aplikace se tato automaticky spojí se serverem. Spojení je signalizováno zelenými LED. Server se tedy spouští jako první. Po zapnutí začne naslouchat na naprogramovaných portech (zde 8890, 8891, 8892 a 8893).
 
Blokové schéma
4. Podrobné schéma jednoho TCP serveru
 
Jeden kanál serveru
  
5. Schéma celého serveru (všechny 4 kanály)
 
Celý server
  
6. Komentář k zapojení serveru. Všechny 4 kanály jsou téměř identické. Také byly nakreslené jen jednou, ale musely být nastavené u TCP serverů 4 různé porty (8890 až 8893), jsou rozdílně označené jumpery se signály a jsou rozdílně nastavené preambule u COM objektů (118, 119, 120, 121), aby byla posílána data do správného čipu.
 
7. Schéma aplikace s řídítky a klienty TCP


Aplikace musí být nastavena na IP adresu serveru. Musí být nastaveny odpovídajícím způsobem porty.

Pomocí sliderů nastavujeme hodnoty L a C. Tlačítkem (přepínačem) posíláme požadavek na polohu relé konfigurace LC nebo CL.

Jeden klient je v rezervě. Bude použit k řízení anténních přepínačů.

Protože mi zařízení slouží pro práci na anténách (hlavně potřebuji znát hodnoty L a C přizpůsobení), jsou v této aplikaci ještě moduly F. Ty nedělají nic jiného, než násobí vstup E0 konstantou a výsledek posílají na výstup A. Na displejích ND1, ND2 vidím skutečné hodnoty veličin L a C, nikoliv hexadecimální povely.

LED diody svítí zeleně, pokud se klient úřipojí k naslouchajícímu serveru.

Generátory G1, G2, G3 udávají takt, tedy jak často (kolikrát za sekundu) se posílají hodnoty povelů do relátek tuneru. Mám rád dálkové řízení svižné a plynulé. Posílám povel každých sto ms.

Celý program byl nakreslen v ProfiLab Expert. Na stanici v hamovně jsem ho spustil ve Windows 10. Na serveru u antény jsem ho pustil na stařičkém notebooku HP compaq 6110 pod Linux Mint 19.2 s runtime Wine 4.0.5

I s tak málo výkonným serverem běží přenos a řízení tuneru velmi svižně.

Aplikace je po kompilaci reprezentována jako "portable" aplikace. Jde o jediný exe soubor, který je spolu s dalšími konfiguračními soubory (např. číly portů) v jediném adresáři. Nic se nikam neinstaluje, aplikaci přeneseme na cílový počítač, nakonfigurujeme IP adresy, číla portů a čísla sériových portů (COM xx).
Schéma klientské aplikace
  
8. Doba kreslení aplikace
 
Tento rozhodující parametr vám s radostí prozradím. Se základy kreslení aplikace v ProfiLab Expert se naučíte dělat za jeden večer. Jakmile pochopíte základní principy a porozhlédnete se po komponentech, které ProfiLab nabízí, namalujete tuto nebo podobnou aplikaci za desítky minut. Já jsem to maloval méně, než hodinu. Z toho jsem chvíli geometricky rozmístňoval komponenty po panelech, aby to vypadalo přehledně. Doufám, že neočekáváte jakýkoliv kód! Žádný kód, ani čárku jsem opravdu nepsal. Celý program byl nakreslen.

9. Co je třeba konfigurovat

U TCP serveru musíte znát jeho IP adresu, pod kterou se notebook přihlásil do routeru. Jak zjistit, popsal jsem mnohokrát jinde. Ve Windows můžete spustit cmd.exe a ipconfig.
IP adresu musíte vyplnit poctivě do všech klientů, které mají být serverem slyšet. Každý ze serverů (zde byly použity 4 a potřebovali jsme tři) musí mít číslo portu, na kterém naslouchá. Zde jsem použil IP adresu serveru 192.168.1.162 a porty 8890, 8891, 8892 (nevyužit) a 8893.  IP adresa a číslo portu je vše, co jsem konfiguroval.

Na serveru ještě běží konverze dat. Data se posílají do mikropočítače u relátek v tuneru. Používám jednoduchý program (asi 5 funkčních řádek), již jsem ho popsal. Na konkrétní bajt musí reagovat jenom konkrétní čip (nebo jeho konkrétní algoritmus). Aby to ten algoritmus poznal, odesílám před tímto datovým bajtem tzv. preambuli, která obsahuje čísla 118, 119, 120, 121. Podle preambule čip nebo algoritmus pozná, že bajt je určen pro něho. Do portu odesílám 3 bajty (254, preamb, data). Číslo 254 nemá žádný bližší význam. Někdy se mu říká synchronizační bajt. Pokud algoritmus neobdrží před daty číslo 255 a preambuli, zahodí datový bajt. Tímto jednoduchým principem je zajištěna alespoň jednoduchá vidlácká kontrola přenosu. Neboť v prostředí vf polí jeden nikdy neví.

Dále musíme konfigurovat sériové porty. Tedy COMxx, pod kterým se nám hlásí USB - RS232 převodník na serveru. Pod Linuxem očekávejme COM33, protože 32 portů si na cosi rezervuje runtime Wine. Pod Windows se podíváme, jaký port nám vyrostl po zasunutí převodníku. Např. COM4 nebo třeba COM11. U komponent konfigurujeme baudovou rychlost, počet bitů v bajtu (8), paritu (nepoužívám), počet stopbitů (vystačil jsem s jedním).  A to je asi všechno. Než začneme ověřovat přenos mezi TCP klienty a serverem, je dobré mít jistotu, že nám funguje přenos skrz převodníky USB - RS232. Ale o tom jsem též psal v jiném článku o rozhraní RS232. Používám takový jednoduchý prográmek (lze do něj dopsat preambuli) a desku s mikropočítačem PICAXE a destičkou s ledkami. Pok LEDKY správně svítí, je předpoklad, že relátka v tuneru budou správně cvakat. Relátka v tuneru, mimochodem, trénuji stejným programem. Měřím indukčnost a kapacitu LC článku a zda spojuje správně konfiguraci relé v tuneru.
 
10. Se serverem mohou samozřejmě fungovat různě vyvedené aplikace klientů

Ergonomie je důležitá u každé aplikace. Například frajtr-tuner, jehož schéma je vpravo, komunikuje se stejným serverem. Přesto je jeho vzhled naprosto odlišný.
FT tuner
FT tuner
 
Závěr


Dálkově řízený tuner, to byl jen příklad programování jednoduché aplikace s TCP/IP komunikací a s využitím místní sériové komunikace. Už bych netvrdil, že jde o vidlácké programování. Funkční a zapouzdřené komponenty za nás napsali profesionální programátoři a dali je k dispozici formou ergonomického vývojového prostředí.
 
TU 73, Mira, ok1ufc