Vezérlés Etherneten Keresztül
VEKer
(FREE!)
A
project lezárva!
Módosítva:
2004. 07. 21.
Ezzel a kapcsolással és a hozzá tartozó programokkal lehetővé
válik berendezések (pl: kazán, melegház, antennaforgató, stb.) szabványos
Ethernet hálózaton keresztüli mérése (8x10 bites analóg bemenet), és vezérlése
(8 digitális kimenet). Ez a PIC 16F877-el vezérelt ISA 3C509B Ethernet kártya (3Com Etherlink III) egy TCP/IP protokollos
mini webszervert alkot, melynek 8 csatornás 10 bites analóg/digitális
átalakítója (ADC) és 8 bites digitális kimenete egy kliensprogram segítségével
lekérdezhető illetve vezérelhető. Az analóg bemeneten megfelelő jelillesztés
(0-5V-os méréstartomány) után, mérhetünk hőmérsékletet, vízszintet,
nyomást, fényerőt, páratartalmat, stb., a digitális kimenetekkel pl. relén
keresztül vezérelhetünk fűtőszálat, szelepet, motorokat, stb-t. A kapcsolás(15
kB) rendkívül egyszerű, gyakorlatilag csak egy 5V-os tápot (bemenet min ~8V)
és egy XT buszszélességű (8 bites) ISA buszt tartalmaz melyet egy PIC
16F877-es kontroller vezérel. A kontroller teljes (8) AN analóg portját és a
teljes (8) RC digitális portját egy kliensprogram segítségével a felhasználó
lekérdezheti és vezérelheti.
Minden egyes vezérlő (VEKer) fix IP cím alapján azonosítható,
mely távvezérelve a kliensprogrammal (VEKer) szabadon megváltoztatható.
A kliensprogram TCP/IP protokolon keresztül kommunikál a vezérlővel, így az
"Internetes" protokolon kívül nem kell semmi más a hálózatnak.
Fix Internet kapcsolat van (fix IP cím tartonmánnyal), és a tűzfalon át
engedélyeztetjük az egyes vezérlők IP címét, akár Interneten keresztül
is vezérelhetünk berendezéseket. Az alkalmazott Ethernet hálózati kártya
(3C509B) 10 Mbites, így egy 100 MBites hálózat esetén dual sebességű HUB
vagy Switch (10/100) alkalmazása szükséges. A kábelezést teljesen csak az
éppen alkalmazott 3C509B-s kártya szabja meg, lehet UTP vagy 50 Ohm-os Coax.
Minden egyéb szerelést a szabványos Ethernet előírások határozzák meg.
Egy hálózaton belül a jelenlegi kliensprogram max 255 vezérlőt tud
egyszerre kezelni.
Az illesztett hálózati kártya: 3Con Etherlink III 3C509B chip
-es (a 3C509B chip set a lényeg)!
Eddig én három féle kivitelével találkoztam vele:
3C509B Ethernet NIC
ICP
és ISA csatlakozó módosítás VEKer
1.D
(
,
Protel SCH), és PCB V1.2 (
,
Protel PCB)!
ÚJ!!!
ISA
csatlakozó kiosztási infó!
(ISA buszos vezérlő)
Figyelem!
A Vezérlő csak PIC16F877-el működik!!!
3C5x9B gépkönyve (angol
zip-elve
334 kB)
- A lényeg a PIC-en belüli Firmware(hex) program és a PC-n futó kliensprogram(zip 2.4 MB) -on belül van!
- Firmware tudása (PIC 16F877 VEKer V1.0.0 AD):
- ARP, ICMP (ping), UDP/IP protokollok 3C509B ISA (8 bites XT) driverral,
- Kétirányu I/O kommunikáció UDP datagrammal,
- 8 csatornás, 10 bites ADC input,
- 8 bites digitális output,
- Adatfilter (kliens program azonosítás),
- IP cím változtatás+Reset,
- Direkt Reset,
- Konfigurációs byte és adatport bitlekérdezés,
- Vezérlő azonosítás (Vezérlő család, Firmware verzió és I/O típus lekérdezés).
A Firmware beégetéséhez ezt a programozót
ajánlom.
Ping teszt működő IP:192.168.1.99
című vezérlőn. Az adathosszt (-l) max 21-re lehet állítani!
Egy szűz hálózati kártyát mielőtt összeépítenénk a
PIC-el, először egy lassabb ISA buszos PC-be be kell konfigurálni.
Az I/O címet 300h-ra az IRQ-t bármire és a PNP (Plug And Play) Disabled-re
(tiltottra) kell állítani ezzel a DOS-os konfiguráló programmal: 3C5x9bcfg.zip
(182 kB)! Sajnos gyors PC esetén a config program nullával való osztás hibával
le fog állni, ilyenkor nincs mit tenni, keresni kell egy régebbi, lassabb PC-t
:-(.
A jelenlegi Firmware nem kezeli a kártya PNP funkcióját.
PC
oldali kliensprogram
(VEKer V1.0.1 végső verzió)
A kapcsolat másik oldalán egy Free kliensprogram (VEKer V1.0.1 zip 2.4 MB) fut.
Rendszerigény: Win9x; NT4; Win2000; WinXP
VEKer kliensprogram. Bővebb infó
itt!
A
free VEKer V1.0.1 maximum 255 vezérlő
teljes körű kezelését teszi lehetővé.
VEKer
kliens Onlin Help és bővebb információ itt!
Szerzői jogok:
A kliensprogram (VEKer V1.0.1) és a vezérlő Firmvare-ja magáncélokra szabadon
felhasználható! Minden egyéb jogokat fentartok.
A
project fejlesztését és támogatását megszüntettem (átadtam)! Kérem e témában már
ne
érdeklődjenek!
GYIK
(Gyakran Ismételgetett Kérdések)
A VEKer Firmware-ja csak a 3C509B-s, ISA
buszos chip-pel működik?
Igen! Itt a drivert nekem kellett megírni, aminél
fogva közvetlenül kell kezelnem az ISA buszt és a 3C509B-s Ethernetes vezérlő
chipet. Elvben a Firmware kompadtibilis a 3C5x9B chip családdal (a chip leírása
szerint szoftver kompadtibilisek egymással), de én ezt még nem teszteltem.
Néhány szót
lehetne a jelillesztésekről?
Példa a C port bitenkénti
illesztése egy egyen 6V-os reléhez:
A reléhez a feszültséget az 5V-os stab elöl szedném le.
A bemeneti illesztésről azt kell tudni, hogy 0-tól +5V-ig mehet a mérendő
feszültség. 0V-nál digitális 0-át kapunk, közel +5V-nál 1023-mat (10
bites ADC). Hőmérséklet mérésére egy példakapcsolás (és méretezés) itt
található. Hasonló képen lehet illeszteni minden kisváltozást eredményező
szondát. Nagyobb feszültségeket (+ egyen fesz) sima ellenállásos feszültségosztóval
(kimenete max +5V lehet) vezethetjük az AN bemenetekre. Érdemes egy kb. 1uF-os
kondival szűretni a közvetlen bemenetet, az 50 Hz-es brumm kiszűrése miatt
(nem ugrál a mért érték).
Lehetne a kommunikáción
kívül a vezérlőre egy vagy több önálló szabályzási feladatot rábízni?
Még nem! Pontosan azért építettem
bele a kártyaazonosítási funkciót, mert így kifejleszthető más tudású kártya
(család) is. Kellő érdekeltség esetén, terveim között szerepel egy
programozható (LAN-on keresztül), 8 csatornás (1 AN -> 1 C port) alsó és
felsőérték szabályzó (pl, fűtés, hűtés, vízszint, megvilágítás,
stb. szabályzása), kombinálva programozható 24h-ás (félórás lépésekben)
idő függő értékszabályzóval (meghatározott időintervallumban aktív
csak az adott csatornás értékszabályzó, több csatorna összevonásával
lehetőség lenne különböző időpontokban, különböző értékekre szabályozni).
Mind ezt a VEKer kliens programon keresztül programozni és monitorozni (persze
a vezérlő a már a letöltött programot önállóan futtatná). És még ott
van a soros kommunikáció lehetősége is (ezért használom user-nak a C
portot)! De ez már egy harmadik kártya lenne....
Hogyan lehet az
analóg bemenetet digitális bemenetként (kapcsolót) kezelni?
Egy 1.5 kOhm-os ellenállással
+5V-ra fel kell húzatni az ANx bitjét. Az ellenállás ANx felöli végét
kell a kapcsoló egyik végére kötni, a kapcsoló másikvégét GND-re kötni.
A kapcsoló zárt állásban 0-ra (GND-re) húzza az AN bemenetet, nyitott állásban
az ellenállás +5V-re. A VEKer kliens programban a megfelelő AN bemenet szorzóját
0.0009775-re lehet írni és így nyitott kapcsolónál 1-et, zártnál 0-át
fog kijelezni. Ha a GND-t és a +5V-ot megcseréljük, fordított kijelzést
kapunk.
Mi a teendő ha rossz IP cím megadás után
a vezérlőt nem tudom elérni a hálózaton keresztül?
Más megoldás nincs mint beégetni a Firmware-t újra a vezérlőbe. Az
IP cím a vezérlőn belül beégetődik, ezért a tápfesz kimaradás
(kikapcsolás) nincs hatással a vezérlő IP címére (csak a portok állapotára).
A javasolt programozó készülék itt található.
Hogyan lehet beazonosítani könnyen a
használható Ethernet kártyát?
Ilyen Chipnek kell rajta lenni:
Valamint esetleg ilyen feliratnak (3C509B):
Vége.