Ú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. |
 |
|
|
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í). |
 |
|
|
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). |
 |
4. Podrobné schéma jednoho TCP serveru |
 |
|
|
5. Schéma celého serveru (všechny 4 kanály)
|
 |
|
|
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). |
 |
|
|
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ý. |
 |
 |
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í. |
|
|
|
|