UNIVERZA V MARIBORU
FAKULTETA ZA ELEKTROTEHNIKO,
RAČUNALNIŠTVO IN INFORMATIKO
Gregor Goršek
UPORABA TEHNOLOGIJE LONWORKS® PRI NADZORU KOMERCIALNE HLADILNE TEHNIKE
Diplomska naloga
Griže, marec 2008
I
UNIVERZA V MARIBORU
FAKULTETA ZA ELEKTROTEHNIKO, RAČUNALNIŠTVO IN INFORMATIKO 2000 Maribor, Smetanova ul. 17
Diplomska naloga univerzitetnega študijskega programa
UPORABA TEHNOLOGIJE LONWORKS® PRI NADZORU KOMERCIALNE HLADILNE TEHNIKE
Študent: Gregor GORŠEK Študijski program: univerzitetni, Elektrotehnika Smer: Avtomatika
Mentor: doc. dr. Nenad MUŠKINJA Somentor: izred.prof. dr. Boris TOVORNIK
Griže, marec 2008
II
III
ZAHVALA
Zahvaljujem se mentorju dr. Nenadu Muškinji za
pomoč in vodenje pri opravljanju diplomske
naloge. Prav tako se zahvaljujem somentorju
dr. Borisu Tovorniku.
Posebna zahvala velja moji družini za podporo.
IV
UPORABA TEHNOLOGIJE LONWORKS® PRI NADZORU KOMERCIALNE HLADILNE TEHNIKE Ključne besede: elektrotehnika, avtomatika, snovanje sistemov vodenja,
LonWorks®, OPC, zajem podatkov, omrežja, hladilna tehnika
UDK: 681.51(043.2)
Povzetek
Z večanjem avtomatizacije procesov, narašča potreba po zanesljivem, natančnem,
hitrem in cenenem prenosu informacij med samimi vozlišči (senzorji, aktuatorji,
nadzornim sistemom...) ter višjimi nivoji računalniško integrirane proizvodnje ali vodenja
procesov. Pričujoče delo predstavlja tehnologijo LonWorks, ki jo je razvilo podjetje
Echelon za potrebe avtomatizacije industrije, pri uporabi za nadzor hladilne tehnike v
prodajnih in predelovalnih objektih. Obdelali smo teoretično podlago LonWorks
tehnologije, predvsem komunikacijskega protokola LonTalk, prikazali postopek postavitve
omrežja s komercialnim programom NL220 prozvajalca Newron system in v programskem
jeziku Visual Basic izdelali preprost grafični vmesnik, ki nam omogoča spremljanje in
spreminjanje parametrov krmilnika v postavljenem omrežju.
V
USE OF LONWORKS® TECHNOLOGY IN COMMERCIAL REFRIGERATION CONTROL
Key words: electrical engineering, automation, control systems design,
LonWorks®, OPC, data acquisition, network, commercial refrigeration
UDK: 681.51(043.2)
Abstract
The need of reliable, accurate, fast and cheap information flow among nodes (sensors,
actuators, control systems...) and higher level of computer integrated manufacturing (CIM)
or process control, is in rise, due to the expansion of process automation. This work
presents LonWorks technology, developed by Echelon corporation for industrial
automation, in use of commercial refrigeration control, like found in markets and food
processing industry. The work covers basics of LonWorks technology, especially LonTalk
communication protocol. We have also shown an example of building a simple network
using commercial software NL220 (Newron system company) and implementation of
software in Visual Basic, for reading and setting parameters on Danfoss EKC 201
controller, connected to computer by LonWorks.
VI
Vsebina
1. PODROČNA VODILA IN TEHNOLOGIJA LONWORKS.................................. 1
2. KOMUNIKACIJSKI PROTOKOL LONTALK ..................................................... 7
2.1 UPORABLJENA TERMINOLOGIJA................................................................................. 7 2.2 IMENOVANJE, NASLAVLJANJE IN USMERJANJE........................................................... 9
2.2.1 Domena kot komponenta naslova ................................................................. 10 2.2.2 Podomrežje kot komponenta naslova ........................................................... 10 2.2.3 Številka vozlišča v podomrežju kot komponenta naslova.......................... 11 2.2.4 Skupine kot komponenta naslova.................................................................. 11 2.2.5 Neuron ID kot komponenta naslova .............................................................. 11 2.2.6 NPDU načini naslavljanja................................................................................ 12
2.3 PREGLED LONTALK SLOJEV ................................................................................. 13 2.4 FIZIČNI SLOJ............................................................................................................. 14 2.5 MREŽNI SLOJ............................................................................................................ 16
2.5.1 Storitve mrežnega sloja ................................................................................... 16 2.5.2 Usmerjevalniki................................................................................................... 17
2.6 SLOJA PREDSTAVITVE IN UPORABE ......................................................................... 17 2.6.1 Storitve slojev predstavitve in uporabe ......................................................... 18 2.6.2 Vmesnik do uporabniškega programa .......................................................... 18 2.6.3 Formati APDU ................................................................................................... 19 2.6.4 Diagram protokola ............................................................................................ 20 2.6.5 Obvestilo o napaki pri prenosu uporabniškemu programu ........................ 21 2.6.6 LonMark standardizacija na sloju uporabe................................................... 21
3. LONWORKS® PROIZVODI ................................................................................... 25
3.1 KOMUNIKACIJSKI MODULI......................................................................................... 25 3.2 LONWORKS® USMERJEVALNIK ................................................................................ 26 3.3 LONWORKS® VMESNIKI IN PREHODI ....................................................................... 26 3.4 LONMANAGER® OMREŽNA ORODJA........................................................................ 29
3.4.1 LonWorks® moduli........................................................................................... 33 3.5 LONBUILDER ............................................................................................................ 34
4. PRIMER INSTALACIJE PREPROSTEGA LON OMREŽJA ............................ 36
4.1 OMREŽNI VMESNIK PCNSI IN NJEGOVA NAMESTITEV............................................. 36 4.1.1 Omrežni vmesnik PCNSI in njegova fizična namestitev v računalnik ...... 37
4.1.1.1 Namestitev gonilnikov za omrežni vmesnik PCNSI............................. 37 4.1.1.2 Nastavitev gonilnikov za omrežni vmesnik PCNSI .............................. 38
4.2 NEWRON SYSTEM NL220 INSTALACIJSKO ORODJE ................................................ 40 4.2.1 Namestitev programa Newron system NL220 ............................................. 41
VII
4.2.2 Zagon programa Newron system NL220...................................................... 42 4.3 KRMILNIK DANFOSS EKC 201 ................................................................................ 43
4.3.1 Krmilnik Danfoss EKC 201 230V ................................................................... 43 4.3.2 Krmilnik Danfoss EKC 201 12V ..................................................................... 44
4.4 POSTAVITEV FIZIČNEGA OMREŽJA ........................................................................... 44 4.5 KONFIGURACIJA OMREŽJA Z NL 220....................................................................... 45
4.5.1 Postavitev omrežja v NL 220.......................................................................... 46 4.5.1.1 Naslavljanje vozlišč..................................................................................... 48 4.5.1.2 Kreiranje domene Trgovina......................................................................... 48 4.5.1.3 Kreiranje podomrežij................................................................................... 49 4.5.1.4 Kreiranje kanala........................................................................................... 49 4.5.1.5 Pregled lastnosti vozlišč .............................................................................. 50
4.5.2 Nastavitev parametrov krmilnikov EKC 201 preko LonWorks .................. 52 4.5.2.1 Nastavitev željene temp. na krmilniku EKC 201 preko LonWorks ............ 53 4.5.2.2 Odčitavanje dejanske temp. na krmilniku EKC 201 preko LonWorks ....... 54 4.5.2.3 Ostale nastavitve.......................................................................................... 55
5. PROGRAMSKI VMESNIK ZA DELO.................................................................... 56
5.1 IMPLEMENTACIJA GRAFIČNEGA VMESNIKA............................................................... 56 5.1.1 Opis osnovne zgradbe programa .................................................................. 57
5.1.1.1 Modul za izris diagramov poteka temperatur.............................................. 57 5.1.1.2 Modul za nadzor krmilnika ......................................................................... 58
5.1.2 Opis uporabe grafičnega vmesnika ............................................................... 61 5.1.2.1 Opis uporabe modula za izris diagramov poteka temperatur ...................... 63 5.1.2.2 Opis uporabe modula za nadzor krmilnika.................................................. 66
6. ZAKLJUČEK ............................................................................................................. 73
DODATEK A: SHEMATIČNI PRIKAZ PROTOKOLOVNE PODATKOVNE ENOTE (PDU) IN PRINCIPA OVOJNIC...................................................................... 78
DODATEK B: ČASOVNE KARAKTERISTIKE OMREŽJA LONWORKS............ 79
DODATEK C: TABELE NASTAVITEV KRMILNIKOV DANFOSS EKC 201....... 82
DODATEK D: PROGRAMSKA KODA APLIKACIJE FREEZER 1.0 ..................... 83
1
1. PODROČNA VODILA IN TEHNOLOGIJA LONWORKS
S povečanjem obsega avtomatizacije procesov, je naraščala potreba po zanesljivem,
natančnem, hitrem in cenenem prenosu informacij med vozlišči (senzorji, aktuatorji,
nadzornim sistemom...) ter višjimi nivoji računalniško integrirane proizvodnje (CIM -
Computer Integrated Manufacturing). V 80. letih se je pojavila potreba po zamenjavi
standardne tokovne zanke 4 – 20 mA s sodobnejšimi komunikacijskimi sistemi [28].
Obdelali smo teoretično podlago LonWorks tehnologije, predvsem komunikacijskega
protokola LonTalk, prikazali postopek postavitve omrežja s komercialnim programom
NL220 prozvajalca Newron system in v programskem jeziku Visual Basic izdelali preprost
grafični vmesnik, ki nam omogoča spremljanje in spreminjanje parametrov krmilnika v
postavljenem omrežju.
Najprej so predstavljena področna vodila na splošno ter primerjava med njimi. Na
kratko je predstavljena tehnologija LonWorks, kot eno izmed množice področnih vodil.
V drugem poglavju je predstavljen sedem nivojski komunikacijski protokol LonTalk po
posameznih slojih. Poudarek je na slojih, ki so pomembnejši za postavitev omrežja.
V tretjem poglavju so predstavljeni LonWorks izdelki in njihova uporaba.
V četrtem poglavju je predstavljen primer instalacije enostavnega LonWorks omrežja
na področju uporabe v hladilni tehniki.
V petem poglavju je predstavljena implementacija in uporaba programa - grafičnega
vmesnika izvedenega z VB 6.0 programa
V dodatku A je celovit shematski prikaz protokolove podatkovne enote (PDU) ter
principa ovojnic za protokol LonTalk.
V dodatku B so prikazane časovne razmere v omrežju, zakasnitve in potrebni časi za
prenos sporočil.
2
V dodatku C so priložene tabele nastavitev krmilnikov Danfoss EKC 201.
V dodatku D je priložena izvorna koda programa za nadzor in izris temperaturnih
potekov Freezer 1.0.
Področna vodila (ang. Fieldbus) so nastala iz potrebe industrije po povezovanju
naprav v industrijskih procesih, do danes pa so se uveljavila tudi na mnogih drugih
področjih, kjer je potrebno podatke obdelovati v realnem času. Največkrat imajo obliko
vodila, ali pa jim vodilo, kot način povezovanja, predstavlja osnovo. Porazdeljeno vodenje
procesov je tesno povezano s področnimi vodili, vozlišča (senzorji, aktuatorji, krmilniki...)
prevzamejo nase številne funkcije povezane z obdelavo signalov (digitalizacija,
linearizacija...), s tem se zmanjša obremenitev centralnega računalnika in razbremenijo
komunikacijske poti. Podatki se prenašajo v digitalni obliki, saj se ustrezno digitalizirajo
že v vozlišču, s tem pa je prenos bolj zanesljiv.
Nadzorni sistemi, ki ne uporabljajo področnih vodil so sestavljeni iz nadzornega
krmilnika ali računalnika s priključenimi vsemi senzorji in aktuatorji. Topologija je
največkrat v obliki zvezde.
Nadaljne lastnosti oziroma zahteve področnega vodila so [31]:
• vnaprej določljiv odzivni čas • cenena izvedba vozlišča • kompatibilnost z obstoječim omrežjem • podpora večim različnim prenosnim
medijem • zmanjšanje števila potrebnih ožičenj • poceni ter preprosto vzdrževanje
• “Peer-to-peer” ahitektura • nizki stroški razvoja • odprta arhitektura • učinkovitost • sledi ISO/OSI referenčnemu modelu • podpora opremi različnih proizvajalcev • zanesljiv prenos in odpornost na napake
Področno vodilo in LAN se razlikujeta predvsem v pomenu in dolžini sporočil ter
okolju, kjer se ta uporabljajo. Pri področnih vodilih se prenašajo predvsem podatki
senzorjev in ukazi izvršilnim členom, dolžina teh sporočil pa je majhna. Bistveni podatek
pri LAN je količina prenešenih podatkov v sekundi, pri področnih vodilih pa število
transakcij v sekundi. Danes je na trgu veliko tehnologij (CAN, Profibus, FIP, LON,
BitBus, Interbus-S, Sercos), nobena pa ni priznana kot splošni mednarodni standard, za
razliko od LAN, kjer je tudi veliko različnih tehnologij, vendar so se te v zadnjem času
naslonile predvsem na TCP/IP, kot enoten protokol [31].
3
Komisija ISA SP50 v sodelovanju z IEC SC65C/WG6 dela na standardizaciji
področnih vodil, ki se uradno imenuje “Fieldbus Standard” IEC 1158/ISA SP50.02. Ta
standard definira tri sloje: fizični, podatkovni in sloj uporabe, ki so vertikalno povezani z
omrežnim in sistemskim upravljanjem. Ostali sloji so izpuščeni zaradi zahtev po obdelavi
v realnem času. Dodan je uporabniški sloj (ang. User Layer) na vrhu sloja uporabe [28].
V tabeli 1.1 je predstavljena osnovna delitev industrijskih omrežij [28].
Vodilo senzorjev in aktuatorjev (nivo bita)
vodilo naprav (nivo byta)
področna vodila (nivo bloka)
CAN CAN IEC 1158/ISA SP50.02 AS-Interface DeviceNet FOUNDATION Fieldbus
InterBus Sensor Loop SDS Profibus-PA Seriplex CAL/CANopen Profibus-FM SERCOS CAN Kingdom WorldFIP
Sensorplex Interbus-S P-Net Device WorldFIP (DWF) Measurement Bus FIP IO BitBus Profibus-DP I/O Lightbus SERCOS MIL-STD-1553
LonWorks
Tabela 1.1: Delitev področnih vodil
Naslednje tabele prikazujejo primerjavo med različnimi tipi področnih vodil [29]. Podjetje Leto
predstavitve Podprti standard
PROFIBUS DP/PA PTO DP - 1994 PA - 1995
DIN 19245 del 3/4
INTERBUS-S Phoenix Contact 1984 DIN 19258 DeviceNet Allen-Bradley 1994 ISO 11898 & 11519 ARCNET Datapoint/SMC 1975 ANSI 878 AS-I AS-I Consortium 1993 Poslan IEC Fieldbus Foundation Fieldbus Foundation 1995 ISA SP50 / IEC TC65 IEC/ISA SP50 Fieldbus ISA / Fieldbus F. 1992-1996 IEC 1158 / ANSI 850 Seriplex APC, Inc. 1990 Seriplex spec WorldFIP WorldFIP 1988 IEC 1158-2 LonWorks Echelon Corp. 1991 ASHARE of BACnet SDS Honeywell 1994 Honeywell spec.
poslan IEC, ISO 11989
Tabela 1.2: Osnovne informacije področnih vodil
4
Topologija Medij Naj.št.vozlišč Naj.razdalja PROFIBUS DP/PA
vodilo, zvezda, obroč
parica, opt.vlakno 127 24 km (opt.vlakno)
INTERBUS-S Segmentirano s "T" členi (vodilo)
parica, opt.vlakno, slip-ring
256 400 m/segment, 12,8 km največ
DeviceNet vodilo z vejami parica z napajanjem 64 500 m ARCNET vodilo, zvezda parica, optika 255 5 milj AS-I vodilo, obroč,
drevo dvožilni vod 31 odjemalcev 100 m, 300 m s
ponavljalnikom Fieldbus Foundation
vodilo z vejami parica 240 / segment, 65000 segmentov
1900 m @ 31,25Kbps 500 m @ 5Mbps
IEC/ISA SP50 Fieldbus
zvezda, vodilo parica, opt.vlakno, radio fr.
IS 3-7 ne IS 128
1700 m @31,25 Kbps 500 m @ 2,5 Mbps
Seriplex drevo, obroč, vodilo, zvezda
4 žilni kabel 500 500 ft
WorldFIP vodilo parica, opt.vlakno 256 do 40 km LonWorks vodilo, obroč,
zvezda, prosta topologija
parica, opt.vlakno, n.n.el.vod
32000 / domeno
2000 m @78 kbps
SDS vodilo z vejami parica z napajanjem 64 126 naslovov
500 m
Tabela 1.3: Fizične lastnosti področnih vodil
metoda
komunikacije komunikacijske
lastnosti velikost
okna arbitraža nadzor napak
PROFIBUS DP/PA
master/slave peer to peer
DP do 12 Mbps PA 31,25 kbps
244 bytov žeton HD4 CRC
INTERBUS-S master/slave s prenosom polnega okvirja
500 kbitov/s, full duplex
512 bytov, neomejen blok
ni 16 bitni CRC
DeviceNet master/slave, multi-master, drugo
500 kbps 250 kbps 125 kbps
8 bytov spremenlj. dolžina sporočila
Carrier-Sonac Multiple Access
CRC
ARCNET peer to peer 31,25 - 10 Mbps 508 bytov žeton 16 bitni CRC AS-I master/slave s
cikličnim pozivanjem
podatki in napajanje na istem vodu
31 slave z 4 in in 4 out
master/slave s cikličnim pozivanjem
Manchester kodiranje, hamming-2
Fieldbus Foundation
odjemalec/strežnik publisher/subscriber dogodki
31,25 kbps 1 Mbps 2,5 Mbps
16,6 M objektov / napravo
determinističen centraliziran scheduler
16-bitni CRC
IEC/ISA SP50 Fieldbus
odjemalec / strežnik publisher/subscriber
31,25 kbps IS+1; 2,6; 5 Mbps
64 octets visoke in 256 nizke prioritete
scheduler, žetoni, master
16-bitni CRC
Seriplex master/slave peer to peer
200 Mbps 7680 / transfer
sonal multipleksiranje
konec okvirja in kontrola odmeva
WorldFIP peer to peer 31,25 kbps, 1 & 2,5 Mbps, 6 Mbps optika
ni omejitve centralna arbitraža
16-bitni CRC
LonWorks master/slave 1,25 Mbps full 228 bytov CSMA 16-bitni CRC
5
peer to peer duplex SDS master/slave,
peer to peer, multi-cast, multi-master
1 Mbps 500 kbps 250 kbps 125 kbps
8 bytov Carrier-Sonac Multiple Access
CRC
Tabela 1.4: Prenosne lastnostni področnih vodil
čas cikla: 256 nepovezanih vozlišč
16 vozlišč z 16 I/O čas cikla:
128 analognih 16 vozlišč z 8 I/O prenos bloka 128 bytov
1 vozlišče PROFIBUS DP/PA
odvisno od konfiguracije < 2 ms
odvisno od konfiguracije -
INTERBUS-S 1,8 ms 7,4 ms 140 ms DeviceNet 2,0 ms master-slave pozivanje 10 ms master-slave pozivanje 4,0 ms ARCNET < 2 ms @ 2,5 Mbps < 2 ms @ 2,5 Mbps < 2 ms @ 2,5 Mbps AS-I 4,7 ms - - Fieldbus Foundation
100 ms @ 31,25 kbps < 1 ms @2,5 Mbps
600 ms @ 31,25 kbps < 8 ms @ 2,5 Mbps
36 ms @ 31,25 kbps
IEC/ISA SP50 Fieldbus
odvisno od konfiguracije odvisno od konfiguracije 0,2 ms @ 31,25 kbps 1,0 ms @1 Mbps
Seriplex 1,32 ms @ 200 kbps 10,4 ms 10,4 ms WorldFIP 2 ms @ 1Mbps 5 ms @ 1 Mbps 5 ms @ 1 Mbps LonWorks 20 ms 5 ms @ 1 Mbps 5 ms @ 1 Mbps SDS < 1 ms, event driven < 1 ms na dogodek 2 ms @ 1Mbps
Tabela 1.5: Zmogljivost področnih vodil
Lonworks je ena izmed tehnologij področnih vodil ameriškega proizvajalca Echelon.
LON je kratica za Local Operating Network. Tehnologija ponuja celovito rešitev za
načrtovanje, izvedbo, instalacijo in vzdrževanje nadzornih omrežij. Osrednji del je sedem
nivojski komunikacijski protokol LonTalk, kompatibilen z OSI/ISO referenčnim
modelom, poleg tega pa ponuja še: komunikacijske module za izbrani medij,
mikroprocesorje za izvajanje aplikacij in komunikacijskega protokola, programske
vmesnike (programski in strojni del) za senzorje in izvršilne člene, časovnike, programski
jezik z razhroščevalnikom, distribuiran operacijski sistem (LNS), ki deluje v realnem času,
orodje za upravljanje omrežja, orodja za sprotno (ang. on-line) diagnosticiranje in analizo
protokola, orodja za instalacijo ter konfiguracijo.
V protokolu LonTalk so, poleg osnovnih storitev, zajete tudi zahtevnejše storitve kot so
overovitev, prioritetni prenos, zaznavanje podvojenih sporočil, izogibanje trčenj,
avtomatično ponavljanja prenosa, komunikacija odjemalec-strežnik, standardiziranje
podatkovnih tipov in identifikacija, posamezno/skupinsko/splošno naslavljanje, podpora
različnih tipov fizičnih medijev in mešane hitrosi prenosa.
6
Osnovna enota je vozlišče (ang. node), in je običajno sestavljeno iz naslednjih
komponent:
• en ali več senzorjev in izvršilnih členov (aktuatorjev) z ustrežnimi vmesniki ter
prilagodilnimi členi;
• procesorska enota, katere funkcije so:
• zajemanje vhodov (senzorjev), obdelava podatkov senzorjev in ustrezno
nastavljanje izhodov (aktuatorjev);
• programska oprema komunicira z drugimi vozlišči (porazdeljeni nadzorni sistem);
• komunikacijski protokol omogoča dostop do komunikacijskih storitev
uporabniškemu programu;
• protokol dostopa do medija omogoča komunikacijo preko različnih
komunikacijskih medijev.
• komunikacijska enota - transmiter (oddajnik in sprejemnik), ki podpira naslednje
medije: parica, n.n.električno omrežje, radijske frekvence na kratkih in srednjih
valovih, optična vlakna in koaksialni kabel.
LonMark Interoperability Association je združenje, ki nadzira standardizacijo
proizvodov LonWorks. Izdelek, ki ima potrdilo LonMark, ustreza LonMark standardom in
je LonWorks kompatibilen, s tem pa je zagotovljeno nemoteno vključevanje tega izdelka v
sistem.
Slika 1.1: Zaščitni znak LonMark
Združenje LonMark izvaja testiranje proizvodov in izdaja potrdila o združljivosti [4].
7
2. KOMUNIKACIJSKI PROTOKOL LONTALK
Kot smo že omenili, LonTalk protokol sledi priporočilom OSI/ISO referenčnega
modela in je sestavljen iz sedmih slojev. Programerju in načrtovalcu omrežja je protokol
predstavljen kot množica storitev, ki so po potrebi uporabljene v času instalacije oziroma
konfiguriranja vozlišča.
2.1 Uporabljena terminologija
V tem poglavju bodo predstavljeni osnovni termini in definicije, ki so potrebne za
razumevanje protokola. V glavnem se uporablja terminologija enaka kot pri ISO/OSI
referenčnem modelu, so pa tudi nekatere pomenske razlike ([1] str. 8).
Kanal (ang. simple channel)
Ponavljalnik (ang. store&forward repeater) na istem kanalu ali pa povezuje dva kanala
Most (ang. bridge) povezuje dva kanala; prepušča vse pakete z x na y in obratno, če je domena paketa ista kot domena mostu
Podomrežje (ang. subnet) je množica vozlišč dostopnih na 2. sloju protokola
Usmerjevalnik (ang. router) povezuje dve podomrežji in ustrezno prepušča pakete glede na ciljni naslov; usmerjevalnik lahko spremeni naslov 3. sloja
Prehod (ang. gateway) povezuje dve omrežji z različnima protokoloma; dve LonTalk domeni sta lahko povezani z aplikacijskim prehodom
Slika 2.1: Terminologija
8
Naslednji tabeli prikazujeta razliko med ISO/OSI in LonTalk mostom ter med ISO/OSI
in LonTalk usmerjevalnikom.
most (ang. bridge) ISO/OSI LonTalk
Selektivna prepustnost glede na naslovnika v 2. sloju
V 2. sloju ni ciljnega naslovnika, most prepušča vse okvirje, če sta domeni mostu in ciljna domena enaki
Tabela 2.1: Primerjava med mostoma OSI/ISO in LonTalk
usmerjevalnik (ang. router) ISO/OSI LonTalk
Povezuje dva različna protokola na 3. sloju (mrežni sloj), tako da ustrezno preoblikuje naslov 3. sloja v paketu
Selektivno prepušča pakete glede na naslov 3. sloja (mrežni sloj), prav tako pa preprečuje, da bi paketi prišli v zanko (ang. loop), s tem da preoblikuje naslov 3. sloja (mrežni sloj) v paketu
Tabela 2.2: Primerjava med usmerjevalnikama ISO/OSI in LonTalk
Vsak sloj protokola lahko predstavimo kot kaže slika 2.2 ([1] str. 9).
Slika 2.2: Shema posameznega sloja protokola
PDU (ang. protokol data unit) je splošen naziv za protokolovno podatkovno enoto, ki se
navidezno prenaša vodoravno med istovetnima slojema v različnih vozliščih. Dejanski
pretok informacije poteka v navpični smeri do fizičnega nivoja, kjer se informacija
dejansko prenese v vodoravni smeri do drugega vozlišča. Vsak sloj (podsloj) ima svoj tip
podatkovne enote protokola:
MPDU podatkovna enota protokola podsloja MAC oz. okvir (ang. frame) MAC PDU
LPDU podatkovna enota protokola podatkovnega sloja oz. okvir (ang. frame)
9
Link PDU NPDU podatkovna enota protokola mrežnega sloja oz. paket (ang. packet)
Network PDU TPDU podatkovna enota protokola prenosnega sloja oz. sporočilo (ang. message)
Transport PDU SPDU podatkovna enota protokola pogovornega sloja oz. zahteva/odziv (ang.
request/response) Session PDU
NMPDU podatkovna enota protokola upravljanja mreže (spada v sloj uporabe) Network Management PDU
DPDU podatkovna enota protokola diagnosticiranja (spada v sloj uporabe) Diagnostic PDU
APDU podatkovna enota protokola sloja uporabe Application PDU
Tabela 2.3: Podatkovne enote protokola LonTalk (PDU)
Komunikacija med sloji poteka podobno kot klici procedur v višjem programskem
jeziku, imenuje pa se osnovna storitev vmesnika (ang. service interface primitives - SIP).
2.2 Imenovanje, naslavljanje in usmerjanje
Naslov (ang. adress) je identifikator, ki nedvoumno določa objekt ali skupino objektov.
Za razliko od imena, je lahko naslov dodeljen in spremenjen kadarkoli po izdelavi
integriranega vezja. LonTalk naslovi nedvoumno določajo izvorno in ciljno vozlišče
(vozlišča) paketa. Naslovi so uporabljeni tudi pri selektivnem usmerjanju med dvema
kanaloma.
Ime (ang. name) je identifikator, ki nedvoumno določa vozlišče. Ime je določeno pri
izdelavi in se s časom ne spreminja. Neuron integrirano vezje ima 48 bitno identifikacijsko
številko Neuron ID, ki nedvoumno določa Neuron integrirano vezje in ga s tem loči od
ostalih. Neuron ID se lahko uporabi tudi kot naslov, vendar je takšen način navadno
uporabljen le pri konfiguriranju vozlišč, ko se vozliščem šele določajo logični naslovi.
Zaradi lažjega usmerjanja in razpošiljanja paketov, LonTalk protokol definira
hierarhično strukturo naslavljanja. Takšen način naslavljanja omogoča naslovitev celotne
domene, dela omrežja - podomrežje, skupine ali posameznega vozlišča. Osnovni so trije
načini naslavljanja s tremi komponentami v naslovu:
10
• domena - podomrežje - vozlišče
• domena - podomrežje - Neuron ID
• domena - skupina - član skupine
Izvorni in ciljni naslov sta vključena v vsak PDU. Vsak naslov je kombinacija naslova
3. in 4. sloja (mrežni in prenosni sloj), na 2. sloju (sloj povezave) pa se naslovi ne
definirajo.
Tako je naslavljanje v LonTalk protokolu kombinirano z naslovnimi komponentami
uporabljenimi pri usmerjanju (sloj 3 - mrežni sloj) in imenovanju (sloj 4 - prenosni sloj)
([1] str. 12).
2.2.1 Domena kot komponenta naslova Domena (ang. domain) je logična množica vozlišč na enem ali več kanalih. Vsa
komunikacija med vozlišči poteka znotraj ene domene, zato tvori domena navidezno
omrežje (ang. Virtual Network). Več domen lahko uporablja iste kanale, tako da lahko
domene uporabimo za preprečitev motenj med vozlišči različnih omrežij.
Vozlišče lahko pripada eni ali dvema domenama. Vozlišče, ki pripada dvema
domenama, je lahko uporabljen kot prehod med tema dvema domenama. Ker protokol
neposredno ne podpira komunikacije med domenami, je potrebno realizirati prehod na
sloju uporabe z ustrezno programsko opremo (ang. Application Layer Gateway).
Vsaka domena ima svojo identifikacijsko številko (ID), ki je lahko dolžine 0, 1, 3 ali 6
bytov. Vsakemu paketu se doda naslov domene in se s tem poveča dolžina paketa, zato je
smiselno uporabljati krajše identifikacijske številke domene za omrežja, kjer ni možnosti,
da bi prišlo do motenj med različnimi domenami.
2.2.2 Podomrežje kot komponenta naslova Podomrežje (ang. subnet) je logična množica največ 127 vozlišč znotraj domene. V
posamezni domeni je lahko definiranih največ 255 podomrežij, vrednost 0 v naslovu pa
pomeni, da podomrežje ni znano oziroma ni definirano. Vsa vozlišča v podomrežju morajo
biti na istem kanalu in ne smejo prečkati usmerjevalnikov, lahko pa prečkajo most ali
11
ponavljalnik. Če vozlišče pripada dvema domenama, mora v vsaki domeni pripadati enemu
podomrežju.
Ponavadi vozlišča znotraj posamezne domene pripadajo enemu podomrežju, razen v
primerih:
• če pripadajo različnim segmentom, ki jih povezuje usmerjevalnik, ker
podomrežje ne sme prečkati usmerjevalnika,
• največje število vozlišč v podomrežju je omejeno na 127, zato je potrebno
definirati dve ali več podomrežij za povečanje števila vozlišč na kanalu.
2.2.3 Številka vozlišča v podomrežju kot komponenta naslova
Vsakemu vozlišču znotraj podomrežja je dodeljena nedvoumna identifikacijska
številka, ki je dolga 7 bitov, tako da je možnih 127 vozlišč v podomrežju. Tako je možnih
v eni domeni 32385 vozlišč (255 podomrežij x 127 vozlišč v podomrežju).
2.2.4 Skupine kot komponenta naslova
Skupina (ang. group) je logična množica vozlišč znotraj domene, pri tem pa ni
pomembna njihova fizična lokacija, za razliko od podomrežja. Vozlišče lahko pripada 15
različnim skupinam in se imenuje član skupine. Skupine so dober način za skupinsko
naslavljanje (ang. one-to-many). Največje število skupin v domeni je 256.
2.2.5 Neuron ID kot komponenta naslova
Vozlišče je vedno lahko naslavljano po Neuron ID identifikacijski številki. Številka je
48 bitna in se določi že pri izdelavi Neuron integriranega vezja, zagotavlja pa nedvoumno
identifikacijo, saj izdelovalec ne ponavlja ID številk.
Namen tega naslavljanja je prevsem pri instalaciji in konfiguriranju vozlišč, ko je
potrebno vozlišču določiti pripadnost domeni, podomrežju in skupini. V času izvajanja
uporabniškega programa tega načina naslavljanja ni priporočljivo uporabljati, razen v
izjemnih primerih.
12
2.2.6 NPDU načini naslavljanja
Pred konfiguriranjem vozlišča ima ta le naslov Neuron ID, ki je v bistvu ime. Šele ko je
vozlišče konfigurirano, ima dodeljenega enega ali več logičnih naslovov. Navadno je
dodeljen en naslov formata domena-podomrežje-vozlišče in od 0 do 15 naslovov formata
domena-skupina-član.
Vozlišča so lahko naslovljena s petimi naslovnimi formati. Tabela prikazuje naslednje
načine ([1] str. 15):
Tip Logični format
#0 Domena, IzvorPodomrežje-vozlišče, CiljPodomrežje
splošna (ang. broadcast)
celotna domena ali izbrano podomrežje
#1 Domena, IzvorPodomrežje-vozlišče, CiljSkupina skupinska (ang. multicast)
sporočilo ali opomin
#2a Domena, IzvorPodomrežje-vozlišče, CiljPodomrežje-vozlišče
posamezno (ang. unicast)
sporočilo, opomin, potrdilo
#2b Domena, IzvorPodomrežje-vozlišče, CiljPodomrežje-vozlišče, skupina, član
skupinska (ang. multicast)
potrdilo
#3 Domena, IzvorPodomrežje-vozlišče, CiljPodomrežje, Neuron ID
posamezno (ang. unicast)
sporočilo, opomin
Tabela 2.4: Načini naslavljanja NPDU/TPDU/SPDU
Slika 2.3: NPDU/TPDU/SPDU formati
V vsakem načinu pomeni vrednost 0 kompomente IzvorPodomrežje, da vozlišče ne
pozna svojega naslova lastnega podomrežja.
Način naslavljanja #0 omogoča splošno (ang. domain-wide broadcast) naslavljanje
znotraj domene. NPDU vsebuje naslov izvornega vozlišča (podomrežje, vozlišče) in ciljno
13
podomrežje. Če je za ciljno podomrežje navedena vrednost “0”, potem je sporočilo
namenjeno vsem vozliščem v domeni, ne glede na podomrežje, sicer pa se sporočilo
nanaša le na izbrano podomrežje (1 - 255).
Način naslavljanja #1 podpira skupinsko (ang. multicast) naslavljanje. NPDU vsebuje
izvorni naslov (podomrežje, vozlišče), ciljni naslov je skupina, tako da se sporočilo
prenese vsem vozliščem v izbrani skupini.
Način naslavljanja #2 ima dva formata. Osmi bit v polju številke izvornega vozlišča je
uporabljen kot izbirni bit. Če je vrednost bita 1, pomeni format naslavljanja #2a, če je
vrednost bita 0 pomeni način naslavljanja #2b. Format #2a se uporablja za prenos sporočil
in potrdil posameznemu vozlišču. Format #2b podpira prenos potrdil, če je bilo predhodno
sporočilo poslano po načinu #1 (skupinsko naslavljanje). Polji izvornega in ciljnega
naslova sta identični kot pri #2a, da je omogočeno usmerjanje. Pripeta sta polje skupine in
številka člana vozlišča, ki pošilja potrdilo.
Način naslavljanja #3 podpira naslavljanje po identifikacijski številki Neuron ID. Kot
je že povedano, je namenjen instalaciji in konfiguraciji vozlišča. Nadzornik omrežja lahko
ugotovi vrednost Neuron ID s posebnim ukazom.
2.3 Pregled LonTalk slojev
Naslednja tabela prikazuje sloje protokola LonTalk. Pri vsakem sloju so zapisane tudi
storitve, ki jih ta sloj omogoča oziroma nudi ([1] str. 10).
Sloj Opis sloja
6,7 Sloj uporabe in predstavitve (ang. Application & Presentation Layers)Aplikacija: Upravljanje omrežja: mrežne spremenljivke; storitve upravljanja mreže specifične storitve za aplikacijo diagnosticiranje
5 Sloj pogovora (ang. Session Layer) storitev zahteva/odziv
4
Sloj prenosa (ang. Transport layer) s potrditvijo
brez potrditve posamezno in skupinsko naslavljanje
14
Overovitev (ang. Authentication) strežnik
Podsloj nadzora prenosa (ang. Transaction Control Sublayer) številčenje in zaznavanje podvojenih sporočil
3
Sloj mreže (ang. Network layer) prenos brez vzpostavitve zveze (datagram)
splošno naslavljanje v domeni brez segmentiranja sporočil
prosta topologija adaptivni algoritem usmerjanja
Podatkovni sloj (ang. Link layer) okvirjanje
kodiranje podatkov CRC kontrola napak pri prenosu
2
MAC podsloj (ang. MAC Sublayer) predvidljiv p-perzistenten CSMA (ang. predictive p-persistent CSMA)
zaznavanje in izogibanje trčenj prioritetni prenos
1 Fizični sloj (ang. Physical Layer) podpora več medijem - protokoli za različne medije Tabela 2.5: Sloji LonTalk protokola
Za fizično postavitev omrežja ter njegovo konfiguracijo in kasnejši nadzor ter
upravljanje, so najpomembnejši sledeči sloji: Fizični sloj (ang. Physical Layer)-1; Sloja
uporabe in predstavitve (ang. Application & Presentation Layers) –6,7. Ti sloji bodo
podrobneje predstavljeni v nadaljevanju.
2.4 Fizični sloj
Fizični sloj skrbi za prenos informacijskih signalov po komunikacijskem kanalu.
LonLalk protokol podpira več protokolov za dostop do različnih medijev in različno
kodiranje podatkov glede na izbrani medij. Vsakemu mediju pripada ustrezno kodiranje .
Podprti prenosni mediji so:
• parica, • električno omrežje, • radijski valovi, • koaksialen kabel, • infrardeči valovi, • optični kabel
15
LonMark definira naslednje standardne fizične izvedbe kanalov [3]:
Fizični kanal Medij Hitrost Lastnosti TP/XF-1250 parica 1,25 Mbps vodilo, ločilni transformator (ang. transformer
coupled) TP/XF-78 parica 78 kbps vodilo, ločilni transformator (ang. transformer
coupled) TP-RS485-39 parica 39 kbps EIA RS-485 PL-10 (L-N) n.n.el.vod 10 kbps 100 kHz - 450 kHz, spread spectrum, faza-ničla
povezava PL-10 (L-E) n.n.el.vod 10 kbps 100 kHz - 450 kHz, spread spectrum, faza-zemlja
povezava PL-20 (L-N) n.n.el.vod 5 kbps 125 kHz - 140 kHz, BPSF, faza-ničla povezava,
50/60 Hz frekvenca napetosti PL-20 (L-E) n.n.el.vod 5 kbps 125 kHz - 140 kHz, BPSF, faza-zemlja povezava,
50/60 Hz frekvenca napetosti PL-30 (L-N) n.n.el.vod 2 kbps 9 kHz - 95 kHz, spread spectrum, faza-ničla
povezava TP/FT-10 parica 78 kbps parica, prosta topologija, napajanje po parici (ang.
power link) RF-100 radijski
valovi 4,883 kbps UK MPT1329, FCC del 90, ETS 300220
Tabela 2.6: Standardizirani LonMark fizični kanali
Za vsak fizični kanal so definirane specifikacije in ustrezni parametri oddajnika-
sprejemnika, ki se jih mora proizvajalec držati. Predvsem so na tem sloju definirani
napetostni nivoji, terminatorji, vhodne impedance in največje dolžine odsekov.
16
2.5 Mrežni sloj
2.5.1 Storitve mrežnega sloja
Mrežni sloj skrbi za usmerjanje paketov od vozlišča do vozlišča in naslavljanje vozlišč
([1] str. 32). Osnovna podatkovna enota je paket.
LonTalk protokol podpira različne topologije zaradi različnih zahtev aplikacij.
Slika 2.4: Topologije
V omrežjih, kjer je možnost več poti od vozlišča do vozlišča, je nevarnost, da pride
paket v zanko. Usmerjevalniki morajo biti konfigurirani in instalirani tako, da to
preprečijo. Če se uporabljajo ponavljalniki, mostovi ali usmerjevalniki, mora imeti
topologija domene drevesno strukturo, kot je prikazano na naslednji sliki. Ponavljalniki se
lahko uporabljajo le za povezavo dveh različnih kanalov, ne smejo pa biti instalirani na
istem kanalu.
Slika 2.5: Drevesna struktura
17
2.5.2 Usmerjevalniki
Usmerjevalnik je element mrežnega sloja in izvaja funkcijo usmerjanja v izbrani
domeni. Povezuje dve podomrežji v smeri zgoraj in v smeri spodaj.
Vsaka funkcija ima svojo usmerjevalno tabelo. Tabelo lahko nastavi operater
(konfiguriran usmerjevalnik) ali pa usmerjevalnik gradi tabelo sam (adaptivni
usmerjevalnik).
Vhodni podatek je ciljni naslov. Te funkcije se izvedejo na tisti strani usmerjevalnika,
od koder je prišel (zgornja, spodnja stran), medtem, ko se algoritem usmerjanja izvaja ne
glede na prihajajočo stran. Vsaka stran usmerjevalnika mora imeti različne usmerjevalne
tabele za prepuščanje paketov.
V posebnem primeru, ko je paket oddalo nekonfigurirano vozlišče s splošnim
naslavljanjem, je v polju Subnet vrednost 0 in dolžina domene 0. V tem primeru
usmerjevalnik spremeni ti dve polji in vpiše svoje podatke (polji Subnet in Domain) pred
klicom funkcije ROUTEbc().
Adaptivni usmerjevalniki preglejujejo naslovno polje paketa tretjega sloja in s tem
raziskujejo topologijo. Ob predpostavki, da je topologija brez povratnih zank, preglejujejo
izvorne naslove podatkovne enote NPDU in se tako učijo, kje je locirano podomrežje.
Skupinsko naslavljanje se izvede s preplavljanjem (ang. flooding).
2.6 Sloja predstavitve in uporabe
Za postavitev oziroma konfiguracijo omrežja in njegov kasnejši nadzor, sta od vseh
naštetih slojev najpomembnejša sloja predstavitve in uporabe, zato ju predstavljamo
podrobneje.
18
2.6.1 Storitve slojev predstavitve in uporabe
Storitve, ki jih nudita ta dva sloja so ([1] str. 70):
prenos mrežnih spremenljivk (ang. Network Variable Propagination): ta storitev odda
sporočilo, ki ga prejemnik interpretira kot osvežitev mrežnih spremenljivk. Interpretacija
mrežnih spremenljik je naloga sloja predstavitve.
prenos splošnih sporočil (ang. Generic Message Passing): aplikacija lahko odda
splošno sporočilo, naslovljeno s katerikolim naslovnim načinom opisanim v prejšnjih
poglavjih.
sporočila upravljanja omrežja (ang. Network Management Messages): ta so
uporabljena za instaliranje in konfiguriranje vozlišč in celotnega omrežja.
sporočila za diagnozo mreže (ang. Network Diagnostic Messages).
prenos tujih okvirjev (ang. Foreign Frame Transmission): možno je prenašati
sporočila, ki ne spadajo v LonTalk protokol in so namenjena vozliščem, ki niso LonTalk
kompatibilni. To omogoča povezovanje naprav različnih proizvajalcev preko omrežja
LonWorks.
2.6.2 Vmesnik do uporabniškega programa
Slika 2.6 prikazuje vmesnik med uporabniškim programom in slojem uporabe.
Slika 2.6: Vmesnik
19
Vmesnik uporablja naslednje osnovne storitve vmesnika:
msg_alloc() → (pravilno/napačno) msg_alloc_prority() → (pravilno/napačno) msg_send(msg_out) msg_cancel() msg_free() rest_alloc() → (pravilno/napačno) resp_send(resp_out) resp_cancel() resp_free() resp_receive(resp_in) msg_receive(msg_in) msg_completes() → (neuspešno / uspešno / zaključeno)
2.6.3 Formati APDU
Slika 2.7 prikazuje format APDU. Podatkovna enota protokola sloja uporabe je
sestavljena iz zaglavja in podatkov. Zaglavje ima dolžino enega byta razen v primeru, da
se prenaša mrežna spremenljika, ko je dolžina dva byta.
Slika 2.7: APDU
20
2.6.4 Diagram protokola
Diagram 2.1 prikazuje ne-idempotentno skupinsko transakcijo z izgubo prvega APDU
in prvega ACD TPDU.
Diagram 2.1: Ne-idempotentna skupinska transakcija
Diagram 2.2 prikazuje idempotentno skupinsko zahteva/odziv transakcijo z izgubo
zahtevka in izgubo odziva.
Diagram 2.2: Idempotentna skupinska transakcija
21
2.6.5 Obvestilo o napaki pri prenosu uporabniškemu programu
Uporabniškemu programu je vedno dostopen status zadnje transakcije, ne glede na to
ali je bila transakcija mrežne spremenljivke ali splošnega sporočila.
Status prenosa sporočila ima tri možna stanja: zaključeno, uspešno in neuspešno.
Stanje zaključeno pomeni, da se je transakcija zaključila (uspešno ali neuspešno). Za
sporočila s potrditvijo pomeni stanje uspešno le v primeru, ko je oddajnik prejel vsa
potrdila. Za transakcijo zahteva/odziv je stanje uspešno definirano, ko so prejeti vsi odzivi
naslovnikov. Za sporočila brez potrditve pomeni stanje uspešno, ko je sporočilo oddano;
isto je za ponavljajoče-brez potrditve, ko se je sporočilo oddalo v željenem številu.
Sporočila brez potrditve ne morejo imeti stanja neuspešno. Sporočila s potrditvijo
imajo status neuspešno v primeru, ko niso bila prejeta vsa potrdila naslovnikov.
Transakcija zahteva/odziv dobi status neuspešno v primeru, ko eden ali več odzivov ni
prispelo.
Za mrežne spremenljivke velja isto (možno jih je konfigurirati za poljubno transakcijo),
transakcija zahteva/odziv pa je uporabljena v primeru, ko je mrežna spremenljivka
konfigurirana na zahtevo (ang. pool).
2.6.6 LonMark standardizacija na sloju uporabe
Na sloju uporabe je pretok podatkov med vozlišči LonWorks omrežja omogočen preko
posebnih LonMark objektov, splošnih LonMark objektov in standardnih mrežnih
spremenljivk. Podprt je tudi prenos datotek (file transfer), ki je realiziran preko mrežnih
spremenljivk in eksplicitnih sporočil ([4]).
22
Slika 2.8: Splošen LonMark object
Vmesnik do uporabniškega sloja je prikazan na sliki 2.9.
Slika 2.9: Vmesnik med LonMark objektom in uporabniškim slojem
Elementi vmesnika točno definirajo vmesnik med vozliščem in omrežjem.
Objekt “vozlišče”
23
Ta objekt omogoča mehanizem za povpraševanje po statusu vozlišča in načinu
delovanja ter za poročanje o statusu ostalih objektov v vozlišču. Nadalje objekt “vozlišče”
vsebuje mrežne spremenljivke in konfiguracijske lastnosti, ki se tičejo vozlišča kot celote.
LonMark Objekti
LonMark objekti definirajo standardne formate vhodnih in izhodnih podatkov v in iz
objekta ter deljenje podatkov z drugimi vozlišči v omrežju. LonMark objekti so definirani
kot množica vhodnih in izhodnih mrežnih spremenljivk (standardnih tipov) s semantično
definicijo obnašanja vozlišča glede na vrednosti mrežnih spremenljivk in množico
konfiguracijskih lastnosti.
Poleg osnovnega objekta “vozlišče”, LonMark definira še naslednje splošne objekte:
objekt senzor - odprto in zaprtozančni, objekt aktuator - odprto in zaprtozančni ter objekt
kontroler.
Primer uporabe LonMark objektov je na sliki 2.10.
Slika 2.10: Primer uporabe LonMark objektov
Standardni tipi mrežnih spremenljivk
24
Standardni tipi mrežnih spremenljivk predstavljajo standardiziran način izmenjave
podatkov in omogočajo vozliščem različnih proizvajalcev, da pravilno interpretirajo
njihove vrednosti.
Prenos podatkov
LonMark definira standardiziran način prenosa datotek.
Konfiguracijske lastnosti
Uporabik ima na izbiro več načinov, kako nastavljati konfiguracijske parametre
aplikacije med instalacijo vozlišča. En način je z uporabo mrežnih spremenljivk, ki
definirajo konfiguracijo.
Za aplikacije, ki imajo kompleksnejše nastavitve, je priporočljivo uporabljati
konfiguracijske parametre, ki se naložijo v vozlišče s prenosom datotek ali z direktnim
vpisom v bralno-pisalni pomnilnik.
Konfiguracijske lastnosti so lahko standardnih tipov (Standard Configuration Property
Type - SCPT) ali nestandardnih tipov. SCPT predpisujejo standardne definicije za splošne
konfiguracijske parametre.
Dokumentacija naprave
V LonTalk protokolu je na voljo hierarhična struktura dokumentacije. Za instalacijo
mora vsako LonMark vozlišče vsebovati informacije samo-dokumentacije in samo-
identifikacije: proizvajalec naprave, tip naprave, Neuron ID, splošne LonMark objekte
uporabljene v napravi. Te informacije so na voljo upravitelju preko orodja za upravljanje
mreže.
25
3. LONWORKS® PROIZVODI
V tem poglavju bodo predstavljeni nekateri proizvodi, ki jih nudi podjetje Echelon in
nekatera druga podjetja. Predstavitev je osnovna, zato vsi tehnični podatki niso zajeti.
3.1 Komunikacijski moduli
Echelon nudi dva tipa komunikacijskih modulov: navadni in SMX. SMX je odprt
standard, ki omogoča tudi drugim proizvajalcem, da izdelujejo standarizirane
komunikacijske module po specifikaciji, ki definira razporeditev nogic, fizične velikosti in
električnih lastnosti ([3], [23], [24], [25], [26]).
Model Medij Hitrost prenosa
Razdalja Kodiranje Topologija
FTT-10A parica; ločilni transf.
78 kbps 500 m, 2700 m (z dvojnim zaključkom vodila)
diferincialno Manchester
brez topologije, zvezda, krog, razne kombinacije
LPT-10 parica; napajanje preko parice
78 kbps 500 m, 2200 m (z dvojnim zaključkom vodila)
diferincialno Manchester
brez topologije, zvezda, krog, razne kombinacije
TPT/XF-78 parica, ločilni transf.
78 kbps 1400 m diferincialno Manchester
vodilo
TPT/XF-1250 parica 1,25 Mbps 130 m diferincialno Manchester
vodilo
PLT-10A el.vod 10 kbps odvisno od dušenja in šuma v omrežju
spread spectrum
prosta topologija (obstoječi n.n.el.vodi)
PLT-21 el.vod 5 kbps odvisno od dušenja in šuma v omrežju
spread spectrum
prosta topologija (obstoječi n.n.el.vodi)
PLT-30 el.vod 2 kbps odvisno od dušenja in šuma v omrežju
spread spectrum
prosta topologija (obstoječi n.n.el.vodi)
Tabela 3.1: LonWorks komunikacijski moduli
26
Model Kompatibilen LonMark kanal
TPM/XF-78 TP/XF-78
TPM/XF-1250 TP/XF-1250
FTM-10 TP/FT-10
TPM-RS485 TP-RS485
PLM-10 PL-10 z PLT-10 in/ali PLT-10A
PLM-21 PL-20 z PLT-20 in/ali PLT-21
PLM-30 PL-30 z PLT-30
Tabela 3.2: SMX komunikacijski moduli
3.2 LonWorks® usmerjevalnik
Jedro usmerjevalnika predstavlja modul RTR-10, ki potrebuje še dva komunikacijska
modula na vsaki strani (za vsak kanal). Komunikacijska modula sta lahko različna. S tem
je omogočeno enostavno povezovanje različnih komunikacijskih medijev. Komunikacijski
moduli so lahko: TP/FT-10, TP/XF-78, TP/XF-1250 in TP-RS485. LonWorks instalacijska
orodja avtomatsko konfigurirajo usmerjevalnik iz podatkov v lastni bazi omrežja ([27]).
3.3 LonWorks® vmesniki in prehodi
Katerikoli mikroprocesor je lahko del LonWorks vozlišča. Naslednje komponente so
namenjene za povezavo Neuron integriranega vezja in drugega procesorja ([13], [14], [15],
[16], [17], [18], [19], [20], [21], [22]).
PCC-10 PC kartica
Kartica PCC-10 PC je namenjena povezavi osebnega računalnika z LonWorks
omrežjem preko Type II PC card (PCMCIA). Vgrajen je komunikacijski modul TP/FT-
10A za komunikacijo po TP/FT-10 kanalu, lahko pa se doda zunanji komunikacijski modul
za druge medije. Priložena programska oprema vsebuje instalacijo, nadzorno ploščo in
gonilnike za Windows 95, Windows 3.x in DOS operacijske sisteme.
27
PCC-10 podpira vmesnik mrežnih storitev (NSI) za delo z LNS.
Obstajata dve verziji PCC-10 kartice: standardni vmesnik za LonWorks omrežje in
PCC-10 analizator protokola. Za analizo protokola sta potrebni dve kartici PCC-10 in
ustrezna programska oprema.
PCLTA PC vmesnik
PCLTA PC je vmesnik za LonWorks omrežje, ki ustreza ISA vodilu v osebnih
računalnikih. Ima dva priključka za SMX komunikacijska modula, kar omogoča izdelavo
prehodov. Sloje od 1 do 5 obdeluje Neuron vezje na PCLTA, sloja 6 in 7 (mrežne
spremenljivke, eksplicitna sporočila) pa obdeluje gostitelj - osebni računalnik. Prednost
takšne delitve opravil je neodvisnost aplikacije od komunikacijskega protokola, eno
vozlišče pa ima lahko največ 4096 povezanih mrežnih spremenljivk (vozlišče z Neuron
integriranim vezjem jih ima lahko samo 64).
PCLTA PC ne podira vmesnika mrežnih storitev (NSI) za delo z LNS, namenjen je
delu z LonManager LonMaker instalacijskim orodjem, DDE strežnikom in aplikacijam, ki
temeljijo na LonManager API za DOS ali MS Windows. Za delo z LNS je potrebno imeti
v osebnem računalniku še eno kartico, ki podpira LNS (PCNSI, PCLTA-10).
Na voljo so gonilniki za DOS, MS Windows 3.1, 95 in NT ter novejše različice.
PCLTA-10 PC vmesnik
PCLTA-10 PC vmesnik je standardna ISA kartica za povezavo osebnega računalnika z
omrežjem LonWorks. Na voljo so trije modeli z vgrajenimi različnimi komunikacijskimi
moduli: za TP/FT-10, TP/XF-78 in TP/XF-1250 kanale. Na voljo so gonilniki za MS
Windows 95 in NT. Programska oprema za nadzor se nahaja v paketu Connectivity Starter
Kit, ki vsebuje nadzorno ploščo za konfiguriranje vmesnika.
PCLTA-10 PC podpira LNS, tako da je lahko PC uporabljen kot odjemalec ali strežnik
mrežnih storitev.
Nižji sloji protokola se obdelujejo na sami kartici, sloj uporabe pa v osebnem
računalniku, tako je na voljo vsa procesorska moč gostitelja.
28
SLTA-10 serijski vmesnik
SLTA-10 vmesnik se uporablja za povezavo gostitelja ali modema z omrežjem
LonWorks po EIA-232C (RS-232C) standardu. Hitrost komunikacije je od 1200 do
115200 bps, podpira pa klice po modemu “ven” in “noter”. Modem mora podpirati Hayes
AT nabor ukazov.
SLTA-10 podira LNS, tako da je gostitelj lahko odjemalec ali strežnik.
Nižje sloje LonTalk protokola obdeluje SLTA-10, sloja 6 in 7 pa se obdelujeta v
gostitelju, ki je lahko kakeršenkoli procesorski sistem.
SLTA/2 RS-232 - LonTalk serijski vmesnik
Vmesnik SLTA/2 je namenjen za povezavo gostitelja z LonWorks omrežjem preko RS-
232C (EIA-232C) vmesnika . Povezava je lahko neposredna ali pa preko modema.
SLTA/2 ne podpira LNS, namenjen je za vozlišča z več kot 64 mrežnimi
spremenljivkami in za povečanje procesorske moči posameznega vozlišča.
Nižje sloje LonTalk protokola obdeluje SLTA/2, sloja 6 in 7 pa se obdelujeta v
gostitelju, ki je lahko kakeršenkoli procesorski sistem.
PSG/2 programabilni serijski prehod in PSG-10 serijski prehod - osnovni modul
PSG/2 je naprava za povezovanje LonWorks omrežij z napravami ali sistemi preko RS-
232C vmesnika. Tipična uporaba te naprave so LonWorks prehodi za PLC, servo
krmilnike, instrumente, tipkovnice, prikazovalnike in prehod do drugih omrežij.
V razvojnih orodjih (LonBuilder, NodeBuilder, Connectivity Starter Kit) obstaja
knjižnica s funkcijami za delo z PSG/2, tako da je možno aplikacijo za prehod realizirati v
Neuron C.
LTS-10 serijski vmesnik - osnovni modul
LTS-10 je osnovni modul (vezje) za izgradnjo serijskih LonTalk vmesnikov, ki
povezujejo gostitelja z RS-232C serijskim vmesnikom. Gostitelj je lahko priključen
neposredno ali pa preko telefonske linije z ustreznim modemom.
LTS-10 ne podpira LNS.
29
Modul LTS-10 obdeluje nižje sloje protokola (1-5), višje sloje pa obdeluje gostitelj.
LonWorks® MIP razvojna kompleta
MIP (Microprocessor Interface Program) je knjižnica, ki omogoča gostiteljevemu
procesorju izvajanje LonWorks aplikacije, Neuron integrirano vezje pa spremeni v
komunikacijski koprocesor. Komunikacijski vmesnik za povezavo gostitelja z LonWorks
omrežjem je lahko PCLTA PC ali SLTA ali lastno vezje.
MIP je namenjen za izdelavo lastnih vmesnikov med gostiteljem in omrežjem
LonWorks. Vmesnik obdeluje spodnje nivoje LonTalk protokola (1-5), gostitelj pa zgornja
dva.
MIP/20 je namenjen integriranemu vezju Neuron 3120 in za gostiteljeve procesorje
68HC11, 68HC16 in 8051.
MIP/50 je namenjen integriranemu vezju Neuron 3150 in za gostiteljeve procesorje
68332, 680x0 in 80x86.
MIP/DPS je najzmogljivejša verzija, namenjena gostiteljevim procesorjem PowerPC,
68040, 88000, 80486, 80960.
3.4 LonManager® omrežna orodja
LonManager mrežna orodja so programske komponente za razvoj sistemskih
LonWorks orodij, ki so namenjena za instalacijo, vzdrževanje in nadzor LonWorks omrežij
([5], [6], [7], [8], [9]).
LonManager LonMaker™ instalacijsko orodje
LonMaker orodje podpira vse stopnje instalacije in vzdrževanja LonWorks omrežij:
• namestitev vozlišč; • vzpostavljanje povezav mrežnih spremenljivk in eksplicitnih sporočil; • preverjanje mreže in testiranje vseh komponent; • vzdrževanje mreže
30
LonMaker deluje pod MS-DOS okoljem, za delovanje pa potrebuje ustrezno kartico
PCNSS-10 in PCLTA-10.
LonManager DDE server
LonManager Dynamic Data Exchange (DDE) strežnik omogoča MS Windows
programom nadzirati in spreminjati vrednosti mrežnih spremenljivk in eksplicitnih
sporočil. Edini pogoj je, da aplikacija podpira DDE izmenjavo podatkov.
LonManager DDE strežnik je namenjen razvijalcem in sistemskim operaterjem, ki
kreirajo nadzorne aplikacije za LonWorks omrežja. Te aplikacije lahko služijo za preprost
nadzor, zajem podatkov in shranjevanje le teh v podatkovne baze.
Slika 3.1: DDE strežnik
Za delovanje potrebuje LonManager DDE strežnik naslednje elemente, da lahko
ustrezno interpretira sporočila:
• omrežni vmesnik (kartice PCNSS, PCNSI, PCLTA, SLTA);
• baza omrežja, ki vsebuje informacije o naslavljanju vozlišč (generira se lahko iz naslednjih orodij: LonManager LonMaker Installation Tool, LonManaer NSS-10 modul, LonBuilder Developers WorkBench, NodeBuilder Developement Tool);
31
LonManager® analizator protokola
LonManager analizator protokola je priključen na omrežje in prestreza LonTalk pakete
na kanalu za podrobno analizo. Vsebuje tri orodja za analzo in nadzor:
• orodje za analizo protokola;
• orodje za mrežno statistiko (štetje paketov, spremljanje obremenitve omrežja);
• orodje za diagnozo omrežja.
Namenjen je razvijalcem, instalaterjem in vzdrževalcem za reševanje problemov in za
spremljanje prometa v omrežju. V povezavi z bazo omrežja lahko interpretira vrednosti
mrežnih spremenljivk in naslove vozlišč.
LonManager® NSS-10
LonManager NSS-10 je strežnik mrežnih storitev (Network Services Server-NSS).
Gostitelj te kartice smatra NSS-10 kot pametno periferno napravo, ki omogoča strojne in
programske vire za mrežne storitve za en kanal z največ 62 vozlišči. Z gostiteljem
komunicira preko 8 bitnega podatkovnega registra in 8 bitnega statusnega/nadzornega
registra. Gostitelj je lahko osebni računalnik ali katerikoli mikroprocesorski sistem,
potrebna je le ustrezna povezava in programska oprema.
Slika 3.2: Blok shema NSS-10
32
Za okolja večja od 62 vozlišč se uporablja NSS za okolje Windows. V tem primeru je
potrebno modul NSS-10 zamenjati z NSI-10. Nato se baza mreže restavrira iz samega
omrežja. Tako postane modul NSS-10 oddaljeni odjemalec, NSS za Windows pa strežnik
mrežnih storitev. LNS strežnik NSS-10 podpira le osnovne mrežne storitve, za uporabo
vseh storitev, je treba uporabiti LNS strežnik mrežnih storitev za okolje Windows.
Slika 3.3: Vozlišče z NSS-10
LonManager® PCNSS PC ISA kartica
PCNSS kartica je standardna ISA kartica za osebne računalnike. Deluje lahko v dveh
načinih:
• kot NSS-10 strežnik mrežnih storitev,
• kot standardni vmesnik za priključitev na omrežje LonWorks.
LNS razvojni kit komplet za mikrokontrolerje
LNS kit komplet za mikrokontrolerje vsebuje naslednje komonente ([10]):
• ANSI C izvorna koda za gostiteljev LNS API (za dostop do storitev LNS strežnika - lokalnega na NSS-10 ali oddaljenega MS Windows strežnika mrežnih storitev);
• ANSI C izvorna koda s primerom LNS odjemalca;
33
• NSI-10 modul (vmesnik za dostop do MS Windows strežnika mrežnih storitev);
• NSI gonilnik;
• NSS-10 modul (lokalni LNS strežnik mrežnih storitev);
• vezje s priključki za NSI-10 ali NSS-10 s podnožjem za SMX komunikacijski modul;
LNS razvojni kit koplet za MS Windows
LNS kit komplet za MS Windows okolje vsebuje naslednje komponente ([11]):
• LNS strežnik za MS Windows (podpira do 16384 vozlišč in do 1000 usmerjevalnikov);
• LNS activeX ;
• 32-bitni gonilnik za PCLTA-10, PCC-10 in PCNSI mrežne vmesnike;
• Visual C++, Visual Basic in Delphi izvorno kodo s primeri LNS odjemalca.
LNS FASTART paket
LNS FASTART paket vsebuje naslednje komponente ([12]):
• programska orodja za razvoj LNS aplikacij v okoljih Windows NT in Windows 95 (isto kot LNS razvojni paket za MS Windows);
• programska orodja za razvoj LNS aplikacij na kateremkoli mikroprocesorju, mikrokontrolerju ali drugem računalniku;
• tečaj LNS Developer’s Workshop.
3.4.1 LonWorks® moduli
LonWorks moduli imajo vgrajeno Neuron integrirano vezje, komunikacijski modul in
oscilator. Dodati je potrebno še napajanje, senzorje, aktuatorje in uporabniški program v
Neuron C. Na voljo so naslednji modeli:
34
TP/XF-78 Twisted Pair Control Module kompatibilen z TP/XF-78 kanalom TP/XF-78F Flash Twisted Pair Control Module
kompatibilen z TP/XF-78 kanalom; podnožje za flash spomin
TP/FT-10 Free Topology Twisted Pair Control Module
kompatibilen z TP/FT-10 kanalom; FTT-10A oddajnik
TP/FT-10F Flash Free Topology Twisted Pair Control Module
kompatibilen z TP/FT-10 kanalom; FTT-10A oddajnik; podnožje za flash spomin
TP/XF-1250 Twisted Pair Control Module kompatibilen z TP/XF-1250 kanalom LTM-10 LonTalk Modul 32 KB flash spomina;
32 KB RAM; MIP firmware; nima oddajnika
LPI-10 Link Power Interface Module parico napaja z 42,4 V napetosti za oddajnike z napajanjem preko omrežja (power link)
Tabela 3.3: LonWorks®moduli
3.5 LonBuilder
V paketu LonBuilder so naslednje komponente ([2]):
• LonBuilder Developers Workbench je osrednji del, ki združuje tri komponente: orodje
za razvoj vozlišč, upravljanje omrežja in analizator protokola;
• štiri komunikacijske module brez topologije (FTM-10);
• DDE server za Microsoft Windows;
• PCNSI kartico za PC računalnik;
• razvojno postajo;
• dva Neuron emulatorja;
• LonBuilder Gizmo 3;
• Application Interface Kit;
• LonBuilder usmerjevalnik
35
Programska oprema LonBuilder
Programska oprema LonBuilder vsebuje vse potrebno za razvoj LonWorks omrežij:
• urejevalnik, prevajalnik in razhroščevalnik programskega jezika Neuron C;
• upravljanje omrežja za instalacijo in konfiguracijo vozlišč v omrežje;
• analizator protokola za opazovanje omrežja in interpretacijo aktivnosti v
omrežju
Razvojna postaja
Razvojna postaja je razširljiva platforma, ki vsebuje dve LonWorks vozlišči; enega za
upravljanje omrežja in enega za analizo protokola.
Neuron emulator
K LonBuilder paketu sta priložena dva Neuron emulatorja, ki se uporabljata za
razhroščevanje aplikacij, napisanih v Neuron C, za testiranje prototipne V/I elektronike in
komunikacijskih modulov. Možno je razhroščevanje na dveh vozliščih hkrati, ki
medsebojno komunicirata v omrežju.
36
4. PRIMER INSTALACIJE PREPROSTEGA LON OMREŽJA
V tem poglavju je opisan potek inštalacije enostavnega LON omrežja, ki ga sestavljata
dve vozlišči v obliki regulatorjev temperature, proizvajalca DANFOSS. Takšni krmilniki
oziroma regulatorji se uporabljajo za krmiljenje hladilnih vitrin in hladilnih ter
zamrzovalnih komor v trgovinah s prehrambenimi izdelki.
Uporabili smo naslednje komponente:
• Omrežni vmesnik PCNSI za PC z vgrajenim komunikacijskim modulom FTT-10 • Newron system NL220 instalacijsko orodje • Krmilnik Danfoss EKC 201 230V • Krmilnik Danfoss EKC 201 12V
Newron system NL220 instalacijsko orodje je izdelek francoskega podjetja NEWRON
SYSTEM, in je ekvivalent LonManager LonMaker™ instalacijskemu orodju podjetja
ECHELON. Za njegovo uporabo smo se odločili, ko nam je po naklučju prišel v roke in se
je izkazal z razmeroma enostavno uporabo.
4.1 Omrežni vmesnik PCNSI in njegova namestitev
Vmesnik PCNSI je omrežni vmesnik, ki nam omogoča priključitev osebnega
računalnika na omrežje Lon in njegovo postavljanje, nastavljanje in upravljanje. Vmesnik
PCNSI lahko deluje v dveh režimih, in sicer v:
• NSI mode (režim NSI)
V NSI režimu nam PCNSI zagotavlja vmesnik za omrežne storitve (NSI-Network
Service Interface), za server omrežnih storitev (NSS-Network Service Server) pod okoljem
Windows, ki teče na istem računalniku, ali omogoča dostop na daljavo za NSS, ki teče na
oddaljenem odjemalcu (host) v istem omrežju.
37
• Network interface mode (režim omrežnega vmesnika)
V režimu omrežnega vmesnika deluje kot standardni vmesnik za LonWorks kakršen je
naprimer PCLTA-10. V tem režimu delovanja lahko vmesnik uporabljamo z vsemi
aplikacijami kot so LonMaker™ instalacijsko orodje, Newron NL220 instalacijsko orodje,
LonManager DDE server oziroma NL-OPC server, ki skrbita, da lahko omrežne
spremenljivke uporabljamo v ostalih windows aplikacijah kot so MS Access, MS Excel,
MS Visual Basic in podobno.
4.1.1 Omrežni vmesnik PCNSI in njegova fizična namestitev v računalnik
PCNSI je standardna PC ISA bus kartica, ki jo vstavimo v prosto režo našega
računalnika. Pred tem pa s stikali na njej nastavimo naslov na katerem se nahaja. Uporabili
smo kar tovarniško nastavitev z vrednostjo 0350. Ker kartica ne podpira Plug&Play (vstavi
in poženi) standarda, je lahko njena namestitev v osebni računalnik, precej zapleteno
opravilo. Po vstavitvi kartice v računalnik, tega lahko zaženemo. Če naslov, ki je določen
na vmesniku s stikali, že uporablja katera od ostalih kartic v računalniku, se bodo pri
zagonu pojavile težave, zato bo potrebno izbrati drugačen naslov. V našem primeru je
zagon uspel brez težav.
4.1.1.1 Namestitev gonilnikov za omrežni vmesnik PCNSI
Kot smo že omenili, PCNSI ne podpira standarda P’n’P zato ga okolje Windows ne
zazna, ali pa ga zazna kot neznano strojno opremo. Da zagotovimo delovanje našega
vmesnika, je potrebno instalirati še ustrezne gonilnike. Gonilniki za PCNSI vmesnik so
enaki kot za PCLTA-10 vmesnik (samo v primeru kadar ga ne uporabljamo v režimu NSI).
Ustrezne gonilnike smo dobili na spletni strani podjetja Echelon ( www.echelon.com ).
Najprej je potrebno instalirati gonilnike za okolje DOS, kar najlaže storimo tako, da
stisnjen program, ki smo ga prenesli iz spleta “razpakiramo” na disketo ali drugi trdi disk,
če ga imamo. Namestitve gonilnika ni mogoče zagnati z diska, ki je tudi ciljni disk (npr. iz
C: na C:). Med samo instalacijo se vpišejo datoteke v ciljno mapo, ki jo lahko sami
določimo, mi pa smo uporabili privzeto nastavitev, C:\Lonworks. Gonilnik spremeni tudi
nastavitve v datotekah AUTOEXEC.BAT in CONFIG.SYS, za kar zahteva potrditev. Po
38
končani namestitvi je potrebno računalnik ponovno zagnati, da spremembe, ki so bile
narejene postanejo veljavne. Čeprav je gonilnik za DOS že instaliran, vmesnika PCNSI v
okolju Windows ne moremo uporabljati in je potrebno namestiti še gonilnike za okolje
Windows 95/NT. To opravilo je lažje, saj samo zaženemo program Setup.exe , ki je del
prenesene stisnjene datoteke pclta95nt.zip. Sledimo navodilom, ki se prikazujejo na
ekranu, po končani namestitvi, pa sledi ponovni zagon računalnika.
4.1.1.2 Nastavitev gonilnikov za omrežni vmesnik PCNSI
Sedaj je potrebno nastaviti ustrezne parametre, ki jih potrebuje gonilnik, zato da
vmesnik PCNSI začne pravilno delovati. Za nastavitev teh parametrov (naslov, IRQ),
lahko uporabimo program NODEUTIL.EXE, ki se je namestil med instalacijo gonilnikov v
mapo C:\Lonworks\bin in deluje v okolju DOS. Druga možnost je, da v okolju Windows v
Nadzorni plošči/Control panel zaženemo Lonworks NI.
Slika 4.1: Nadzorna plošča
39
Na zaslonu se pojavi naslednje okno:
Slika 4.2: Okno za nastavitve vmesnika
S klikom na polje Add Device, se odpre okno v katerem izberemo vrsto vmesnika, ki ga
želimo nastaviti. V našem primeru je to PCNSI in kliknemo polje Add. V prikazovalniku
Base Address se pojavi hex naslov, ki je tovarniško nastavljen na vmesniku PCNSI, lahko
pa ga, po potrebi, tudi spremenimo. V našem primeru smo pustili privzeto nastavitev 0350.
Izberemo še frekvenco ure (privzeta nastavitev za PCSNI je 10 MHz) ter številko
prekinitve (IRQ). To smo storili s poskušanjem, nato pa kliknemo na polje Diagnostics. Če
je izbrana prekinitev takšna, da je še ne uporablja nobena naprava v sistemu, potem se v
odprtem oknu izpiše številka verzije gonilnika, ki ga uporabljamo in izvedemo lahko test
vmesnika. V nasprotnem primeru se izpiše sporočilo ERROR. Če se izpiše to sporočilo
moramo izbrati drug IRQ in postopek ponoviti. Ko se test izvrši, je vmesnik nastavljen in
pripravljen za uporabo. Na enak način lahko nastavimo več vmesnikov, če jih
potrebujemo.
40
V našem primeru je bil izbran IRQ 9 in na zaslonu smo videli naslednjo sliko:
Slika 4.3: Okno za diagnozo vmesnika
4.2 Newron system NL220 instalacijsko orodje
Program NL220 podjetja Newron system iz francije, smo po naklučju našli na sejmu
hladilne tehnike IKK. Ta program je ekvivalent programu LonMaker™ proizvajalca
Echelon. Za razliko od LonMaker je NL220 zasnovan kot Windows program in naj bi
deloval na vseh Windows platformah novejših od Windows 3.1. Mi smo ga uporabili pod
okoljem Windows 98, preskusili pa še na Windows NT 4.0 in Windows 2000. Uporabljali
smo demo verzijo programa, ki ima precejšnje omejitve, za instalacijo in preskušanje
enostavne mreže kot je naša pa povsem zadostuje. Glavne prednosti pred LonMaker-jem
so, intuitivni uporabniški vmesnik, ta je zelo podoben raziskovalcu/explorerju v okoljih
Windows, hitro delovanje in pa ugodnejšo ceno namestitve oziroma upravljanja vozlišča,
ki jo moramo plačati proizvajalcu, kar pri stalni uporabi in instalaciji velikega števila
vozlišč ni zanemarljivo.
41
4.2.1 Namestitev programa Newron system NL220
Za instalacijo NL220 moramo imeti v računalniku nameščen vmesnik za LonWorks
omrežja, ki podpira LNS (LonWorks Network Service), ki je nekakšen distribuiran
operacijski sistem. Takšen vmesnik je tudi PCNSI katerega postopek namestitve smo
opisali v prejšnjem poglavju. Sama namestitev je povsem preprosta in jo izvedemo
direktno s CD-roma. Vse kar smo pri tem morali storiti, je določitev ciljne mape na disku.
Ob namestitvi NL220 se na posebno mapo na disku, prenese še kopica programov ki so del
NLS in jih je možno uporabljati tudi posamično.
Slika 4.4: Namestitveno okno
Pozorni moramo biti, da namestitve NL220 ne poskušamo izvesti preden imamo
nameščen pravilno delujoč vmesnik, saj namestitveni program tega ne preverja in
namestitev poteka navidez normalno, tik pred koncem pa se zatakne in program ne deluje.
Pri tem se na disk prenese veliko datotek, ki jih ne moremo pobrisati drugače kot ročno, pri
tem pa obstaja nevarnost, da pobrišemo kakšno datoteko preveč. To se nam je zgodilo ob
prvi namestitvi, posledica pa je bila popolno formatiranje trdega diska in ponovno
vzpostavljanje celotnega sistema.
42
4.2.2 Zagon programa Newron system NL220
Ob zagonu programa NL220 moramo vnesti uporabniško ime, začetnice in način
uporabe, ki je lahko enouporabniški, uporaba preko TCP/IP ali navaden. Mi smo za naš
projekt izbrali slednjega, več o teh načinih, pa je napisanega v pomoči programa.
Uporabniško ime in začetnici sta pomembna, ker program vse projekte razvršča po
ustvarjalcu projekta. Ob prijavi se pokaže zaslon, ki ga vidimo na sliki 4.5, in program je
pripravljen za uporabo.
Slika 4.5: Uporabniško okolje programa NL220
Ker želimo ustvariti nov projekt, v meniju Project izberemo ukaz New in, ker
uporabljamo demo verzijo programa, imamo na razpolago samo en projekt z imenom
DEMO. Vnesemo uporabniško ime, inicialke in način uporabe, ki je v našem primeru
Administration, saj nam samo ta način omogoča postavitev omrežja. Če izberemo način
Maintenance, lahko samo nadziramo že postavljeno omrežje.
43
4.3 Krmilnik Danfoss EKC 201
Krmilniki Danfoss EKC serije 201 so enostavni krmilniki namenjeni za krmiljenje
hladilnih in zamrzovalnih vitrin ter komor v komercialnem hladilstvu (trgovine, mesnice,
klavnice…). Njihova namembnost je zelo ozko usmerjena, saj ne dopuščajo posegov v
svoje delovanje, ki je določeno s programom naloženim v tovarni (firmware), nastavljamo
lahko samo določene parametre kot so želena temperatura v vitrini/komori, čas
odtaljevanja, število odtaljevanj v dnevu, ura, zakasnitve vklopa in izklopa kompresorja,
alarmi in še nekaj dodatnih funkcij. Vse možnosti so razvidne v prilogah ( priloga D ).
Vsi krmilniki te serije imajo enako zgradbo in uporabljajo isti program za svoje delovanje,
razlikujejo se samo v priključkih in s tem v možnostih uporabe. Mi smo uporabili za
postavitev našega omrežja krmilnika EKC 201 230V in EKC 201 12V. Za regulacijo
temperature EKC 201 uporabljajo dvopoložajno regulacijo, tako kot večina regulatorjev
temperature na področju komercialnega hladilstva. Za nas je bila najpomembnejša lastnost
krmilnikov EKC 201, možnost priključitve na Lonworks omrežje, preko posebne
razširitvene kartice, ki omogoča priključitev preko FTT-10 vmesnika na bakreno parico in
dopušča prosto topologijo (free topology) omrežja. EKC 201 krmilniki nimajo certifikata
LonMark, kar lahko pomeni, da ne ustrezjo popolnoma zahtevam tega združenja ali pa
Danfoss sploh ni poskusil dobiti tega certifikata. Pri naši uporabi sta oba krmilnika
delovala odlično in nismo opazili nikakršnih problem z integracijo v omrežje s pomočjo
NL 220, ter kasnejših težav.
4.3.1 Krmilnik Danfoss EKC 201 230V
Je čisto osnovna verzija, ki se uporablja za regulacijo temperature v majhnih komorah
ali prostorih, ki delujejo na “+” temperaturnem režimu in sicer od temperature +2°C
navzgor. Lahko bi rekli, da deluje samo kot elektronski termostat, ki po potrebi odpira in
zapira magnetni ventil, ki zagotavlja dotok freona v uparjalnik. Napajanje je direktno, iz
230V omrežja.
44
4.3.2 Krmilnik Danfoss EKC 201 12V
Poleg lastnosti opisanih za 230V različico, 12V različica deluje na napajanju 12V a.c.
ali d.c. napetosti, dodana pa sta še izhoda za krmiljenje ventilatorjev na uparjalniku in
grelcev za odtaljevanje. S tem se uporabnost krmilnika razširi tudi na “-“ temperaturni
režim, ki v komercialnem hladilstvu predstavlja temperature uparjanja do –37°C. Z
nastavitvami delovanja ventilatorjev na uparjalniku pa lahko precej izboljšamo kvaliteto
delovanja hlajenja v vitrini ali komori.
Slika 4.6: Izgled krmilnika EKC 201 in EKC 301
4.4 Postavitev fizičnega omrežja
Ker naši vozlišči uporabljata vmesnika FTT-10 katerih prenosni medij je bakrena
parica in omogočajo prosto topologijo, smo oba kontrolerja, ki predstavljata vsak svoje
vozlišče, na omrežni vmesnik PCNSI vgrajen v PC-ju, povezali kar vzporedno s pomočjo
dveh bakrenih vodnikov. Ker so razdalje zelo kratke nam ni bilo potrebno uporabiti
ustreznih kablov, s prepletenimi vodniki in oklopom proti motnjam, kakršne priporoča
proizvajalec krmilnikov Danfoss. Princip vezave je viden na sliki 4.7.
Slika 4.7: Vezava
45
Uporabili smo še feritno jedro, ki ga Danfoss prilaga kartici EKA 171 z vmesnikom
FTT-10 in je namenjeno zmanjšanju možnosti pojava napake na vodih. Namestili smo ga
na bakreno parico, tik pred krmilnikom.
Slika 4.8: Feritno jedro
Za priklop parice na PCNSI vmesnik se uporablja poseben Weidmuller-jev 2-pinski
vmesnik, ki ga nismo dobili v nobeni trgovini, zato smo uporabili kabelske čeveljce, ki
smo jih izolirali s termo bužirko, da ne bi prišlo do neželenega stika.
4.5 Konfiguracija omrežja z NL 220
Za konfiguracijo omrežja smo uporabili program NL 220 proizvajalca Newron system,
ki smo ga delno opisali že v poglavju 4.2. Omrežja Lon so lahko zelo enostavna ali pa zelo
razvejana in kompleksna. Vsebujejo lahko veliko elementov – vozlišč, ki so lahko
povezana z enim ali večimi prenosnimi mediji, ki jim pravimo kar kanali. Lepa lastnost
LonWorks sistemov je možnost, da vozlišča vezana na isti prenosni medij oz. kanal, lahko
združujemo v ločene domene oziroma podomrežja, naprimer hladilstvo in klimatizacija,
pri tem pa, z nastavitvami posameznih vozlišč, onemogočimo medsebojno motenje
oziroma neželeno komuniciranje. Na tak način se elegantno izognemo potrebi po
usmerjevalnikih (router), ki postavitev omrežij precej podražijo in otežijo njihovo
vzdrževanje in upravljanje.
46
Želeni cilj
Omrežje ki smo ga želeli postaviti je zelo preprosto, saj sta obe vozlišči vezani na isti
kanal, ki ju povezuje s PC-jem. Da je stvar bolj razvejana, smo se odločili, da bo en
krmilnik namenjen za krmiljenje hladilne komore na “+” režimu hladilne tehnike ( Tu=-
12°C ), drugi pa krmiljenju zamrzovalne vitrine za delikatesne izdelke na “-“ režimu
hladilne tehnike ( Tu=-37°C ). Oba vozla se nahajata v trgovini z delikateso v
nakupovalnem centru XX, ki ima lahko še veliko drugih prostorov in seveda tudi veliko
sistemov, ki so prav tako vezani v LonWorks omrežje, kot so klimatizacija, ogrevanje,
prezračevanje, razsvetljava, dvigala itd., vsa pa so vezana na isti računalnik, ki omogoča
upravljanje in servisiranje omrežja. Če želimo zagotoviti preglednost, moramo zato
vozlišča pametno razdeliti v skupine (groups), domene (domain), podomrežja, in po
kanalih. Ker smo uporabljali samo en kanal, je ta del seveda odpadel.
4.5.1 Postavitev omrežja v NL 220
Zagon programa smo že opisali v enem od prejšnjih poglavij, zato ga tukaj ne bomo
ponavljali.
Da lahko omrežje postavimo, mora NL 220 najprej vedeti katera vozlišča so fizično
povezana na kanal. To lahko storimo na več načinov. Najtežje je ročno nastaviti vozlišča iz
opisnih datotek, ki jih proizvajalci priložijo svojemu izdelku na disketi ali pa na svoji
spletni strani. Ker na Danfoss-ovih spletnih straneh nismo našli teh datotek, ki morajo
ustrezati LonMark normativom, smo izbrali drugo pot. NL220 ima ukaz Scan network, ki
v omrežje pošlje določeno zaporedje ukazov, na katero se odzovejo vozlišča tako, da
vrnejo NLS strežniku svoj Neuron_Id naslov, ki je v obliki številke, katero ima vsak
Neuron chip zapisano že v tovarni in je edinstvena, tako da se ne more zgoditi da bi dve
vezji imeli isto številko. Poleg tega naslova vozlišče pošlje še opisno datoteko, v kateri so
opisane vse omrežne spremenljivke, ki jih vezje uporablja ne glede na to ali so te
spremenljivke tipa SNVT (Standard Network Variable Type) - standardne omrežne
spremenljivke, ali UNVT (User defined Netvork Variable Type), ter kratek opis naprave,
ki je v našem primeru zelo skop, saj sta oba opisa vsebovala samo tip krmilnika. Na ta
način se je odzval samo en krmilnik in sicer 230V izvedba krmilnika EKC 201. Kljub
47
večkratnim poskusom se drugi krmilnik ni odzval, zato smo uporabili drug pristop. Z
ukazom Add Node in izbiro opcije wait for PIN, smo NL220 postavili v stanje poslušanja
omrežja, na 12V izvedbi EKC 201 pa smo ročno, v menujskih nastavitvah sprožili oddajo
PIN sporočila, ki vsebuje želene podatke (Neuron_Id in opisno datoteko). Na zaslonu smo
takoj dobili sporočilo, da je NL220 zaznal novo napravo in jo v obliki simbola za vozlišče-
node videli v levem delu zaslona. Ker sta obe vozlišči priključeni na omrežje je njun
simbol zelene barve. NL220 nam omogoča tudi dodajanje vozlišč, ki niso fizično
priključena na omrežje, vendar to lahko storimo samo ročno, za kar pa potrebujemo opisno
datoteko naprave, ki jo želimo konfigurirati. V primeru, da vozlišče ni priključeno na
omrežje je njegov simbol rdeče barve. S klikom desnega gumba miške na simbolu za
posamezno vozlišče, se nam odprejo možnosti manipulacije z njim. Izbrali smo ukaz Test
node, NL220 izvede teste in v desnem spodnjem delu zaslona poda rezultate. Ker je med
testiranjem enega vozlišča prišlo do napake, se je njegov simbol obarval sivo. Ob
preverjanju smo ugotovili, da je bil za napako kriv slab spoj vodnika na priključku
krmilnika.
Slika 4.9: Pregled vseh vozlišč v NL220
Na ta način smo omrežje konfigurirali in že je pripravljeno za uporabo. Pri postavljanju
omrežij z velikim številom enakih vozlišč, je zelo uporabna funkcija Wink, Z desnim
klikom na simbol vozlišča in njenim izborom, prične prikazovalnik na izbranem vozlišču
48
utripati, kar nam olajša določiti njegovo fizično lokacijo v sistemu. Prikazovalnik utripa
dokler ne pritisnemo katerekoli tipke na krmilniku.
4.5.1.1 Naslavljanje vozlišč
Ko so vozlišča instalirana, lahko uporabimo zanje enega od načinov naslavljanja, ki
smo jih opisali v poglavju 2.2. Zaradi enostavnosti in ker v našem omrežju ni potrebe po
povezavi posameznih omrežnih spremenljivk enega vozlišča z omrežnimi spremenljivkami
drugega, smo kot naslove posameznih vozlišč pustili kar Neuron_Id številko.
4.5.1.2 Kreiranje domene Trgovina
V NL220 se domene (domain) imenujejo podsistem (subsystem), kar je lahko zelo
moteče za uporabnike, ki so navajeni dela z LonMaker orodjem, prav tako se imenujejo
tudi skupine, oziroma skupine, kot jih poznamo v LonMaker-ju, v NL220 ne obstajajo.
Z desnim klikom na simbol Lonworks server dobimo meni v katerem izberemo ukaz
New subsystem in ga poimenujemo Trgovina ter dodamo opis. S tem smo ustvarili domeno
z imenom Trgovina, ki opisuje lokacijo naših krmilnikov. Sedaj na enak način dodamo še
skupino Hladilna tehnika ter njej še podskupini Komore in Vitine. Cela stvar se izvaja zelo
podobno kot v Raziskovalcu, iz operacijskih sistemov Windows, dodajamo mape. Nato s
tehniko povleci in spusti, v vsako od skupin odložimo želeno vozlišče. Rezultat vidimo na
sliki 4.10.
Slika 4.10: Pregled vozlišč v podsistemih
49
4.5.1.3 Kreiranje podomrežij
V pogledu Subnets vidimo podomrežja. Po privzetih nastavitvah imamo v projektu
samo eno podomrežje, zato smo z desnim klikom na simbol Project in izborom ukaza New
Subnet dodali še eno podomrežje in ga poimenovali “-“ režim, obstoječe podomrežje pa
preimenovali v “+” režim, ter obe vozlišči s tehniko povleci in spusti dodelili ustreznemu
podomrežju, kot je razvidno na sliki 4.11.
Slika 4.11: Pregled vozlišč v podomrežjih
4.5.1.4 Kreiranje kanala
Po privzetih nastavitvah je v NL220 že postavljen en kanal z imenom Channel_1, ki
smo ga samo preimenovali v FTT-10. To niti ni bilo potrebno, saj so vsa vozlišča vezana
na ta kanal. V primeru da uporabljamo več vrst prenosnih medijev, lahko definiramo
kanale za vsako vrsto medija tako, da z desnim klikom na simbol Project v pogledu
Channels, izberemo ukaz New Channel, ga poimenujemo in kliknemo na polje Create.
Njegove lastnosti lahko opišemo v oknu lastnosti, ki se pojavi v desnem delu zaslona. Na
sliki 4.12 vidimo pregled kanalov v projektu.
50
Slika 4.12: Pregled kanalov v projektu
4.5.1.5 Pregled lastnosti vozlišč
Ko smo omrežje uredili tako kot smo želeli, smo v pogledu Nodes, še enkrat pregledali
nastavitve vsakega vozlišča. V pogledu Nodes se na zaslonu izrišejo vsa konfigurirana
vozlišča, neglede na to na katerem kanalu, podsistemu ali skupini so nameščena. Če simbol
za posamezno vozlišče povlečemo na desno stran ekrana se nam odprejo pogledi na
njegove lastnosti, ki so zbrane v zavihkih po tematikah. Na naslednjih slikah vidimo
možnosti nastavitev splošnih lastnosti, omrežnih lastnosti ter pregled omrežnih
spremenljivk, ki jih vozlišče uporablja oziroma daje na razpolago. Ostali zavihki za naše
potrebe niso bili pomembni, zato jih tukaj ne bomo opisovali. Uporabna je tudi možnost ki
nam jo NL220 ponuja v zadnjem zavihku NLC/NLOPC, saj v njem lahko določimo katere
omrežne spremenljivke želimo “opazovati” in jih zapisovati v posebno NLC datoteko, kar
nam omogoča, njihovo uporabo preko OPC serverja (OPC je OLE tehnologija na področju
krmilne tehnike), v lastnih aplikacijah, ki jih lahko napišemo praktično v katerem koli
programskem jeziku, ali bazi podatkov. Podobno funkcijo kot OPC server (NLOpc) ima
DDE server podjetja Echelon, le da ta omogoča izvoz /uvoz podatkov samo iz tistih
aplikacij, ki podpirajo DDE (predvsem Microsoftova orodja kot so Excel, Word,
Access…).
51
Slika 4.13: Pregled splošnih lastnosti vozlišča
Slika 4.14: Pregled omrežnih lastnosti vozlišča
52
Slika 4.15: Pregled omrežnih spremenljivk vozlišča
Ker smo s samo konfiguracijo omrežja končali, smo se lahko lotili še nastavitev
parametrov posameznega krmilnika.
4.5.2 Nastavitev parametrov krmilnikov EKC 201 preko LonWorks
V hladilstvu je glavna prednost povezave krmilnikov v omrežje, poleg omogočanja
nadzora nad sistemom in posredovanja alarmnih sporočil serviserjem, možnost
nastavljanja parametrov vseh krmilnikov z enega mesta. To mesto je lahko postavljeno v
samem objektu, Lonworks pa omogoča tudi nastavljanje in nadzor na daljavo, seveda ob
ustrezni nadgraditvi sistema. Z nadzorom na daljavo se nismo ukvarjali, predstavili pa
bomo nastavitev parametrov krmilnika s pomočjo programa NL220, ki teče na PC-ju
povezanim z omrežjem Lon preko PCNSI vmesnika. Ker je 230V različica krmilnika EKC
201 samo elektronski termostat, saj nima nobenega drugega vhoda kot vhod za merjenje
temperature preko NTC sonde, izhod pa je namenjen za krmiljenje magnetnega ventila,
njenega nastavljanja ne bomo posebej opisali. Nekaj več funkcij nam omogoča 12V
različica EKC 201, saj ima ta dva analogna vhoda preko katerih meri temperaturo v
53
prostoru in temperaturo na uparjalniku, ter tri digitalne izhode, ki so uporabljeni za vklop
magnetnega ventila, električnih grelcev za odtaljevanje uparjalnika ter izhod za vklop
ventilatorjev na uparjalniku.
Obe izvedbi nam v NL220 ponujata enak vmesnik, kar nam daje vedeti, da sta v svoji
notranjosti identični in uporabljata celo isti firmware, vendar je 230V različica fizično
okleščena ter nastavitve parametrov za odtaljevanje in ostale funkcije pri njej nimajo
nikakršnega pomena oziroma vpliva.
Slika 4.16: Pregled omrežnih spremenljivk vozlišča EKC 201 12V
4.5.2.1 Nastavitev željene temperature na krmilniku EKC 201 preko LonWorks
Na sliki 4.17 vidimo vse omrežne spremenljivke krmilnika EKC 201 12V, ki jih lahko
urejamo v NL220. Tiste ki so deklarirane kot In, lahko beremo z ukazom Poll, z ukazom
Update pa spreminjamo njihove vrednosti. Izhodne omrežne spremenljivke označene z
Out pa lahko samo beremo. Tu smo naleteli na težave, ki jih prej nismo predvideli. Več o
tem je napisano v poglavju 4.5.2.3. in zaključku.
Za nastavitev želene temperature smo z miško izbrali omrežno spremenljivko nviSet
Temp, tako da smo dvokliknili na to spremenljivko. Odpre se okno v katerega vpišemo
54
želeno vrednost. Ker smo nastavljali temperaturo v vitrini za zamrznjene izdelke, smo
vnesli vrednost –18°C, in kliknili na polje Update. S tem smo vnesli željeno temperaturo v
krmilnik vitrine, ta pa sedaj to vrednost upošteva kot “set-point” vrednost termostata.
Slika 4.17: Nastavitev temperature v vitrini na –18°C
Takoj ko smo nastavili temperaturo, smo njeno nastavitev preverili na samem
krmilniku. “Set point” se je res postavil na želeno vrednost, na krmilniku pa sta se vklopila
tudi relejna izhoda za vklop magnetnega ventila in vklop ventilatorjev na uparjalniku.
4.5.2.2 Odčitavanje dejanske temperature na krmilniku EKC 201 preko
LonWorks
Dejansko temperaturo, ki jo je meril krmilnik v prostoru, smo odčitali na podoben
način. Z dvoklikom na spremenljivko nvoAirTemp, se je odprlo okno z lastnostmi te
spremenljivke. Z izbiro ukaza Poll se obnovi polje v katerem je izpisana vrednost merjene
temperature. Ko smo rahlo segreli tipalo in ponovili ukaz Poll, se je izpisala nova, višja
55
vrednost temperature. Temperaturo ali vrednost katerekoli spremenljivke lahko odčitamo
tudi tako, da z desnim klikom na njen simbol in izbiro ukaza Poll, dobimo njeno vrednost
v okencu v desnem spodnjem delu zaslona, kar je razvidno na sliki 4.18.
Slika 4.18: Odčitavanje dejanske vrednosti temperature
4.5.2.3 Ostale nastavitve
Ostalih nastavitev z orodjem NL220, kljub vloženemu trudu, zaradi “zaprtosti”
proizvajalca Danfoss, nismo mogli razvozlati. Proizvajalec predvideva za upravljanje
omrežja svoj software AKM in uporabo posebnih Gatewayev, direktno pa nastavitve niso
dosegljive. To je neke vrste "vezava" uporabnikov na Danfossove izdelke, zato kljub
dobrim odnosom z njihovo tehnično podporo, nismo mogli dobiti ustrezne dokumentacije,
ponudili pa so nam jo v odkup.
56
5. PROGRAMSKI VMESNIK ZA DELO
V programskem jeziku Microsoft Visual Basic 6.0 (VB6) smo napisali program, ki nam
omogoča komunikacijo med osebnim računalnikom in krmilnikom Danfoss EKC 201 s
pomočjo LonWorks tehnologije. Naš namen je bil preskusiti in pokazati možnosti
nastavljanja parametrov in beleženja posameznih dogodkov, merjenja ter obdelave
podatkov o temperaturi, na uporabniku prijaznejši način kot ga omogoča orodje NL220.
Zaradi enostavnejše izvedbe je program prirejen za nadzor in upravljanje enega samega
krmilnika, v priloženi kodi pa je razviden tudi način razširitve na več nadzorovanih enot.
Tak program bi bil za končnega uporabnika tudi veliko cenejši, saj le ta običajno ne
potrebuje možnosti postavitve, nadzora in spreminjanja sestave omrežja.
5.1 Implementacija grafičnega vmesnika
Program je izveden v obliki grafičnega vmesnika, ki s pomočjo zunanjih komponent,
kot je OPCServer podjetja Newron system, Modico OPCAx (ActiveX Control), ki deluje
kot odjemalec za OPCServer in ostalih ActiveX dodatkov, ki so vključeni v samo orodje
VB6, komunicira s krmilnikom preko LonWorks tehnologije ter podatkovnimi bazami na
osebnem računalniku. V bazah, ki so bile narejene s pomočjo Microsoft Accessa, so v
obliki tabel shranjeni podatki o parametrih krmilnika, ki jih lahko spreminjamo, prav tako
pa se v takšno bazo shranjujejo podatki o temperaturi, ki jih program zajema v izbranih
časovnih intervalih. Za takšen pristop smo se odločili zaradi enostavnosti dodajanja
parametrov ali skupin parametrov, ki jih lahko s tem programom obdelujemo in možnosti
lažje nadgradnje omrežja z dodatnimi krmilniki.
57
5.1.1 Opis osnovne zgradbe programa
Program je zgrajen modularno in sicer sta v njem dva, praktično neodvisna modula od
katerih vsak skrbi za svoj del uporabnosti programa. Vsakega od teh modulov zaženemo iz
skupnega vmesnika, ki je zelo preprost in vsebuje samo dva menuja s katerima določimo
kateri od modulov se naj odpre v lastnem oknu, tretji izbor pa samo izvede izhod iz
programa.
Celotna programska koda in forme se nahajajo v prilogah ( priloga D ).
5.1.1.1 Modul za izris diagramov poteka temperatur
Ta modul ima enostavno zgradbo, saj vsebuje samo tekstovno okno ( TextBox ) v
katerega se vpiše ime baze ( privzeta je nastavitev na Temp Log.mdb ), iz katere se črpajo
podatki za izris diagrama temperatur, kontrolo za izbor datuma v obliki koledarja
(DTPicker ) in dveh tekstovnih oken za določitev začetnega in končnega časa izrisa. Izris
je izveden s kontrolo MSChart, povezavo z bazo kjer so zabeležene temperature
zagotavljamo z Adodc, potek pa krmilimo s spremembo vnosov v tekstovnih poljih in
dvema komandnima gumboma ( CommandButton ). Za prikaz tabele s podatki iz baze
Temp Log. mdb skrbimo s kontrolo DataGrid, ki jo z bazo povezuje Adodc.
Z zagonom modula ali s pritiskom na komandni gumb "Osveži tabelo" se postavi
povezava tabele ( DataGrid ) preko Adodc kontrole z bazo v Temp Log. mdb in se
napolni z vsebino prebrano iz tabele "Temperature" v tej bazi .
Funkcija DTPicker1_Change () ob uporabnikovi spremembi datuma določi novo
vrednost spremenljivke datumStr , ki je, poleg spremenljivk uraOd.Text in uraDo.Text
zadolžena za določitev mej v katerih iz baze beremo podatke za izris.
S Command3_Click, ki se proži ob zagonu modula ali pritiskom na gumb "Izriši
graf", se izvede povezava z bazo podatkov, sortiranje podatkov po datumu in urah, ki
morajo biti v skladu s spremenljivkami omenjenimi v prejšnjem odstavku in polnjenje polj
Values in Casi z vrednostmi ter časovnimi podatki iz baze. Funkcija
MSChart1.ChartData = Values pa izriše diagram.
V prilogi D je razvidna programska koda s komentarji.
58
5.1.1.2 Modul za nadzor krmilnika
Ta modul je kompleksnejši od modula za izris diagramov temperature. Vsebuje
padajoči meni ( ComboBox ) za izbiro krmilnika katerega želimo nastavljati, listo (
ListBox ) z izbiro skupine parametrov izbranega krmilnika, okno s tabelo ( DataGrid )
izbranih parametrov, ki jih lahko spreminjamo ali preverjamo in risbo krmilnika s
prikazom merjene temperature, ki se stalno osvežuje. Poleg tega je izveden še okvir
(Frame) na katerem imamo gumbe ( OptionButton ), ki omogočajo izbiro intervala
zajemanja podatkov o temperaturi in pa tekstovno okno ( TextBox ), v katerem se
prikazujejo dogodki povezani s temperaturnimi alarmi.
Vse enote so povezane s krmilnikom preko OPCserverja. Z njim komuniciramo s
pomočjo OPCAx kontrole, v njej pa imamo natančno določene spremenljivke ( Items ), ki
jih potrebujemo za nadzor dogajanja in so tipa SNVT spremenljivk. Okno z lastnostmi in
določenimi spremenljivkami vidimo na sliki 5.1
Slika 5.1: Okno z lastnostmi OPCAx ActiveX kontrole
Podatki ki se prikazujejo, ali jih ročno spreminjamo, so preko Adodc kontrole
povezani z bazami, ki so tabele v MS Accessovi obliki (.mdb). V njih so na enostaven
način določeni vsi parametri, ki jih na krmilniku lahko spreminjamo. Na ta način je
razširjena možnost uporabe zabeleženih podatkov v drugih aplikacijah, dodajanje dodatnih
59
krmilnikov v naš sistem, ter vnos popravkov, ki so možni s strani proizvajalca krmilnikov
EKC x01, podjetja Danfoss.
Program deluje tako, da ob nastanku določenega dogodka izvede ustrezno funkcijo
oziroma podrutino. Dogodke lahko proži uporabnik ali krmilnik, na podlagi trenutnih
nastavitev in zajetih temperatur.
Dogodki proženi s strani uporabnika:
Uporabnik sproži dogodek, ko spremeni posamezen parameter v tabeli na zaslonu,
izbere funkcijo uskladitve/preverjanja sklopa parametrov, ki so trenutno vidni na zaslonu,
ali pa izbere nov interval beleženja temperature oziroma ročno sproži zajem temperature z
gumbom.
Ob zagonu modula EKC-Nadzor, program preko Adodc1, odpre bazo seznam.mdb, in
v njej tabelo "Krmilniki", v kateri so vpisani vsi inštalirani krmilniki EKC. Kazalec se
postavi v prvo vrstico tabele in prebere ime krmilnika ter ga vpiše v padajoči meni v
programu. Kazalec se premakne v novo vrstico in ponavlja postopek dokler ne pride do
znaka "EOF", ki označuje konec tabele, ko se zapre tudi povezava z bazo. Ker imamo v
našem primeru inštaliran samo en EKC, je v meniju viden prikaz samo za EKC1.
Ko uporabnik izbere želen krmilnik v meniju, se sproži funkcija Combo1_Click (), ki
na enak način, iz iste baze in tabele "Funkcije", prebere seznam sklopov parametrov, ki so
na voljo, in jih vpiše v listo na zaslonu ter zapre povezavo z bazo.
Z izbiro sklopa parametrov z liste, se sproži Funkcije_Click (), ki preko Adodc1 odpre
povezavo z bazo EKC1.mdb, in v njej odpre tabelo z enakim imenom kot je ime na listi.
Ta tabela vsebuje v prvem stolpcu podatek o PNU številki za vsak parameter krmilnika, v
zadnjem pa njegovo vrednost, ki je preračunana v desetiško vrednost s pomočjo vrednosti
resolucije, ki se nahaja v tretjem stolpcu tabele. To tabelo preslikamo na zaslon s pomočjo
uporabe kontrole DataGrid1, opravi se osvežitev baze in tabele ( DataGrida ) ter zapre
povezava (Adodc1 ).
60
S pritiskom na tipko "Uskladitev" sprožimo funkcijo uskladitev (), ki odpre bazo s
parametri in iz prvega stolpca prebere vrednost PNU za prvi parameter v tabeli. Vrednost
PNU z ukazom OPCAX1.Items.Item(1).WriteItem (intPnu) vpišemo v OPCAx kontrolo
kot SNVT_preset.selector, ki poskrbi za prenos v krmilnik. OPCServer nam posledično, po
osvežitvi, vrne vrednost parametra ki ga definira ta PNU. Vrednost je zapisana v dveh
bytih in je kodirana, zato jo program preračuna v desetiško vrednost in vpiše v bazo ter
tabelo na zaslonu. Ta postopek se ponavlja dokler ne dosežemo "EOF", zapre se povezava
z bazo in funkcija se konča.
V tem modulu je možno tudi spreminjanje vrednosti posameznega parametra, v tabeli
prikazanega sklopa parametrov. Ker je tabela vezana z bazo EKC1.mdb se podatki v bazi,
ko pride do spremembe v tabeli, samodejno posodobijo. Poskrbeti smo morali samo še za
funkcijo, ki spremenjeno vrednost parametra v tabeli, s pomočjo OPCAx kontrole vpiše v
OPCServer in posledično v krmilnik. Ko v izbrano polje z vrednostmi v tabeli parametrov
kliknemo z miško in vpišemo novo vrednost, se sproži funkcija
DataGrid1_AfterColUpdate (), ki vpisano vrednost skalira, izvede kodiranje, tako da
dobimo vrednosti za polje ParamCmd v obliki dveh byte-ov ( SNVT_preset.value[2] in
SNVT_preset.value[3] ). Z vpisom PNU parametra, ki ga preberemo iz prvega stolpca v
tabeli, v ParamCmd ( SNVT_preset.selector ) in postavitvijo ParamCmd (
SNVT_preset.learn ) na vrednost 1, se izvede vpis nove vrednosti v krmilnik.
Zajemanje trenutne vrednosti temperature in njen vpis v bazo Temp Log.mdb je
izvedeno v časovnih intervalih, ki jih določimo z izbiro gumba ( OptionButton ). Privzeta
nastavitev je 15 minutni časovni interval, ki ga definira rutina Option15_Click (). Ostali
intervali so določeni v Option1_Click (), Option5_Click () in Option30_Click (). V njih
iz trenutnega časa, s pomočjo celoštevilskega deljenja, določimo čas prvega zajema in
interval v katerem se zajem ponavlja. Ta dva podatka vpišemo v časovno funkcijo
Timer1_Timer (), ki potem proži funkcijo zajemloga () v želenih časovnih presledkih.
Čas prvega zajema, smo določili tako, da se zajem ne izvede takoj, ampak ob prvem
času zaokroženem na "polno" uro želenega intervala. ( npr.: Ob 16.23 smo izbrali interval
zajema na 5 minut, zato se prvi zajem izvede ob 16.25 naslednji ob 16.30 itd. )
61
Sam zajem je izveden s funkcijo zajemloga (), ki odpre bazo Temp Log.mdb, iz
OPCServerja prebere trenutno vrednost temperature na EKC1 in jo, skupaj z datumom in
časom, vpiše na zadnje mesto v bazi. Trenutna vrednost temperature je v OPCAx kontroli
določena kot Item(5), to je polje nvoAirTemp (SNVT_temp ).
Za potrebe ročnega proženja, je v programu izvedena tudi tipka "Zajem loga" (
LogButton ), ki ob pritisku kliče funkcijo zajemloga (), neodvisno od ostalih nastavitev.
Sama procedura je opisana v naslednjem odstavku, le da je prožena s strani uporabnika
Dogodki proženi s strani krmilnika:
Podatke o temperaturnih alarmih in njihovih preklicih vpisujemo v tekstovno datoteko
LOG.TXT, ki se stalno dopolnjuje, tako da imamo ohranjeno zgodovino dogodkov. Za to
skrbi funkcija WriteLog (), ki jo prožita funkciji LtALM_Change () in HtALM_Change
(), povezani s tekstovnim oknom, ki je preko OPCAx kontrole in OPCServer-ja vezan na
krmilnik tako, da stalno, v časovnem intervalu štirih sekund ( ta interval lahko spremenimo
v lastnostih OPCAx kontrole ), preverja stanje bitov 1 in 2 v polju spremenljivke
Alarmword ( SNVT_state.bit0 in SNVT_state.bit0).
5.1.2 Opis uporabe grafičnega vmesnika
Ob zagonu programa se sproži okno kot ga vidimo na sliki 5.2. Na njem so vidni trije
menuji in z njihovo izbiro se odpre okno z želenim opravilom. Z izbiro menuja "Nadzor",
zaženemo modul v katerem upravljamo s krmilnikom, z izbiro menuja "Izris temperatur"
lahko preglejujemo potek temperatur v želenih časovnih obdobjih z izbiro menuja "Izhod"
pa ustavimo program.
62
Slika 5.2: Zagonsko okno programa Freezer 1.0
Uporaba vsakega od modulov, je opisana v svojem podpoglavju, saj sta modula
praktično neodvisna.
63
5.1.2.1 Opis uporabe modula za izris diagramov poteka temperatur
Zagon modula:
Zagon modula za izris diagramov poteka temperature sprožimo z izbiro menuja "Izris" na zagonskem zaslonu. Ob zagonu se odpre okno ( slika 5.3 ), na katerem je možna izbira baze iz katere se berejo podatki o preteklih vrednostih temperature, tabela z dosedaj zabeleženimi vrednostmi in diagram poteka temperature za današnji dan.
Slika 5.3: Okno modula za izris diagrama temperature
Izbira dneva in časovnega intervala za izris:
V spodnjem delu zaslona je okno z datumom, s katerim izberemo dan za katerega bi radi izrisali diagram. S klikom na jeziček se odpre koledar v katerem z miško izberemo želen dan, v okna s časom pa vpišemo želen časovni interval za izbran dan. Izbrali smo 27.2.2008, časovni interval pa pustili nespremenjen, tako se mora ob pritisku tipke "Izriši graf" izrisati diagram za cel dan ( slika 5.4 ). Ker v bazi Temp Log. mdb za izbrano obdobje ni podatkov, nas program obvesti o tem, kar je razvidno na sliki 5.5.
64
Slika 5.4: Izbira datuma in čas. intervala izrisa
Slika 5.5: Ni podatkov za izbiran interval izrisa
65
V tem primeru izberemo nov datum in ponovno pritisnemo tipko "Izriši graf", če so za
izbran datum podatki na voljo, se izriše diagram podoben tistemu na sliki 5.6.
Slika 5.6: Diagram poteka za celoten izbiran dan.
Ker nas obilčajno zanima potek temperature v ožjem časovnem okviru, v polja s časom vnesemo želene vrednosti, pritisnemo tipko "Izriši graf" in dobimo preglednejši izris diagrama, v izbranem časovnem intervalu. ( Slika 5.7 )
Slika 5.7: Diagram poteka za obdobje od 17.45 do 21.00
66
5.1.2.2 Opis uporabe modula za nadzor krmilnika
Zagon in izbira krmilnika ter sklopa parametrov:
Ob zagonu, se za pojavi okno OPCServerja, kot ga vidimo na sliki 5.8. Ta program teče
v ozadju, njegovo okno pa lahko vidimo vedno kadar želimo. Na sliki 5.9 je povečano
okno OPCServerja, na njem pa so vidne spremenljivke, ki jih obdeluje.
Slika 5.8: Zagonsko okno programa
Slika 5.9: Okno OPCServerja
67
Takoj za tem se prikaže okno našega programa, slika 5.10, v katerem moramo s
padajočega menuja izbrati krmilnik, ki ga želimo upravljati oziroma nadzorovati.
Slika 5.10: Začetno okno modula Nadzor
Ko izberemo krmilnik se prikaže lista sklopov parametrov tega krmilnika in tabela, ki
vsebuje sklop parametrov skupine "Thermostat". Ta vsebuje parametre, ki so povezani s
termostatsko funkcijo izbranega krmilnika, kot vidimo na sliki 5.11.
Slika 5.11: Tabela s sklopom parametrov "Thermostat"
68
Z izbiro drugega sklopa parametrov, se vsebina tabele spremeni. To vidimo na sliki 5.12, ki prikazuje izgled po izbiri sklopa "Alarm_setings", ki vsebuje parametre vezane na delovanje alarmnih funkcij krmilnika.
Slika 5.12: Tabela s sklopom parametrov "Alarm_setings"
Izvajanje uskladitve parametrov iz krmilnika v tabelo in bazo:
Ker je možno parametre spreminjati tudi ročno preko tipk na krmilniku, lahko izvedemo uskladitev tabele, s pritiskom gumba USKLADI. Rezultat vidimo na sliki 5.13
Slika 5.13: Tabela s sklopom parametrov "Alarm_setings" po uskladitvi
69
Vidimo, da se je v tabeli spremenil parameter A01 glede na sliko 5.12. To pomeni, da je bil parameter A01 predhodno spremenjen na samem krmilniku. Program prebere s krmilnika vse parametre iz izbranega sklopa in jih vnese v bazo, enak postopek pa lahko izvedemo za katerikoli sklop parametrov, ki ga izberemo iz liste parametrov krmilnika.
Izvajanje vpisa nove vrednosti parametra v krmilnik in bazo:
Ker se najpogosteje spreminja nastavitev želene vrednosti temperature ( Setpoint ), v listi izberemo skupino parametrov "Thermostat" in kazalec miške postavimo na polje v tabeli kjer je vpisana vrednost in jo označimo ( Slika 5.14 ). Ko vpišemo novo vrednost in jo potrdimo, se ta vpiše v bazo in zamenja staro vrednost v krmilniku. Mi smo za primer spremenili "Setpoint" iz 22,5°C na 2°C, izgled okna po spremembi pa vidimo na sliki 5.15. Na enak način vpišemo oziroma spremenimo vrednost kateregakoli parametra iz sklopa katerekoli skupine parametrov.
Slika 5.14: Označena vrednost ki jo želimo spremeniti
70
Slika 5.15: Okno po opravljenem vpisu nove vrednosti
Okno z alarmnimi sporočili:
Okno z alarmnimi sporočili nam služi za pregled temperaturnih alarmov. Ti se prožijo takrat, ko izmerjena temperatura odstopa od nastavljene želene temperature, v pozitivni ali negativni smeri za vrednosti, večje od tistih ki so vpisane v krmilniku s parametri A01, A02 in A03. Najdemo jih v skupini parametrov "Alarm_setings". Glede na vrednosti, ki smo jih vnašali v krmilnik, se je po 1 minuti, od spremembe vrednosti Setpointa, pojavilo alarmno sporočilo kot ga vidimo na sliki 5.16.
Slika 5.16: Okno s prikazom alarmnega sporočila
71
Če simuliramo, da se je temperatura spustila v okvir dovoljenega odstopanja, tako da želeno temperaturo ( setpoint ) spremenimo na vrednost, ki od dejanske odstopa za manj kot to dovoljujejo nastavljeni parametri, alarm izgine. Pojavi se dodatno sporočilo o preklicu alarma, kar vidimo na sliki 5.17, program pa obvestila zapiše v datoteko Log.txt, ki nam služi kot baza podatkov.
Slika 5.17: Okno s prikazom alarmnega sporočila in preklica
Zajem merjenih temperatur in zapis v bazo (log):
V spodnjem levem delu okna so gumbi za izbiro časovnega intervala v katerem se zajemajo in v bazo vpisujejo temperature. Izberemo lahko interval 1, 5, 15 in 30 minut. Zajem se začne, ko čas doseže prvo "okroglo" vrednost nastavljenega intervala ( npr. ob xx.00, xx.15, xx.30 in xx.45 če je izbran 15 minutni interval ) in ponavlja v izbranih časovnih intervalih. Posledica takšnega načina zagona so preglednejši izpisi oziroma izrisi poteka temperature.
Ročno lahko zajem temperature, in njen vpis v bazo, prožimo s tipko "Zajem loga", v poljubnih časovnih presledkih. V tem primeru se vpišejo v bazo vrednosti temperatur s časovno oznako trenutka zajema.
Risba krmilnika EKC 201 s prikazom temperature:
V oknu je, poleg naštetih možnosti, še risba, ki ponazarja krmilnik in na prikazovalniku izpisuje merjeno vrednost temperature, ki se osvežuje vsake 4 sekunde, kot
72
je nastavljeno v lastnostih v ActiveX kontrole OPCAx v samem programu, saj takšen interval zadošča potrebam, krajši pa upočasni delovanje programa.
Žal je program močno omejen v svoji funkcionalnosti zaradi uporabe demonstracijske (demo ) izvedbe OPCServerja NLopc. Ta omogoča samo omejeno število vpisov preko OPCAx kontrole, nato pa ga je potrebno ugasniti in ponovno zagnati. Zaradi tega lahko naš program služi samo v preskusne namene, za polno uporabo pa bi bilo potrebno kupiti polno verzijo OPCServerja.
73
6. ZAKLJUČEK
LonWorks tehnologija je bila v osnovi razvita za nadzorna omrežja v industrijskih
okoljih, sčasoma pa je prerasla ta osnovni namen in se dandanes uveljavila tudi na drugih
področjih, kot npr. v avtomatizaciji in nadzoru stanovanjskih ter poslovnih in komercialnih
stavb, kjer se v primeru trgovin in prehrambeno predelovalne industrije pojavlja tudi
tehnologija hlajenja predelovalnih prostorov, vitrin za prodajo in komor za skladiščenje
živil.
Prednost pred konkurenco predstavlja zmogljiv sedem nivojski komunikacijski
protokol z mnogimi zahtevnejšimi storitvami, porazdeljen omrežni sistem (LNS), odprtost
tehnologije in dobra podpora matičnega podjetja Echelon, medtem ko sta podjetji Cypress
in Toshiba podporo opustili. Na tržišču obstaja množica celovitih rešitev za najrazličnejša
področja uporabe, prav tako obstaja množica dodatnih naprav, dodatkov in posameznih
komponent drugih proizvajalcev.
Na področju komercialnega hladilstva ima LonWorks lepe možnosti, vendar je
dosegljivost, krmilnikov, ki ustrezajo LonMark specifikaciji, zaenkrat praktično nična.
Danfoss in ALCO Controls, sta zaenkrat edina proizvajalca, ki sta naredila prve korake na
tem področju, pri tem pa Danfoss predvideva uporabo svojega nadzornega programa
AKM, in s tem izniči vse prednosti, ki bi jih končnemu uporabniku lahko prinesla
LonWorks tehnologija z integracijo ostalih sistemov kot so prezračevanje, klimatizacija
gretje in razsvetljava. Žal nismo imeli možnosti dobiti krmilnika izdelovalca ALCO
Controls z vmesnikom FTT-10 in ga vključiti v naše delo, saj ponujajo samo izvedbe, ki
kot komunikacijski kanal uporabljajo vodilo z vmesnikom RS485, tega pa naš omrežni
vmesnik na računalniku ne podpira.
V delu smo potrdili možnost uporabe tehnologije izven okvirov, ki jih postavlja
proizvajalec Danfoss, saj nam je uspelo postaviti želeno omrežje s programom
neodvisnega proizvajalca Newron System. Ugotovili smo, da je spreminjanje parametrov
74
krmilnika s takim programom možno, vendar praktično neuporabno zaradi nepreglednosti,
ki je posledica "razpršenosti" raznih parametrov v okviru ene SNVT spremenljivke z
odvisnostjo od PNU števila. Poleg tega je potrebno večino vrednosti parametrov najprej
pretvoriti v ustrezno obliko, ki je opremi "razumljiva". Ta del naloge je od nas zahteval
največ naporov, saj proizvajalec Danfoss teh podatkov ne daje v uporabo zunanjim
uporabnikom.
Za upravljanje krmilnika je veliko uporabnejši program, ki smo ga napisali v
programskem jeziku Visual Basic 6.0 in z njegovo implementacijo potrdili, da lahko, z
zadostnim poznavanjem opreme, poskrbimo za dostop, obdelavo in posredovanje podatkov
drugim aplikacijam ter na ta način poskrbimo za integracijo različnih tehnoloških
procesov, ki se pojavljajo v objektu skupaj s procesom hlajenja. Velik problem za uporabo
našega programa predstavlja uporaba plačljivih komponent (ActiveX kontrole), saj imajo
brezplačne, demonstracijske, verzije veliko omejitev (omejen čas delovanja, omejeno
število vnosov/vpisov spremenljivk ) in s tem uporabo našega programa omejujejo zgolj
na testne namene.
Kot nadgradnja tega dela, bi bila zanimiva razvoj in implementacija programa, ki bi
omogočal postavitev in upravljanje omrežja krmilnikov in njihovo enostavnejše dodajanje
v sistem, razvoj odjemalca za OPCServer, ki bi nadomestil v tem delu uporabljeno
komercialno različico Modico OPCAx, ali pa programa, ki bi ugotavljal obremenjenost
posameznih enot hladilnega sistema, kar bi lahko uporabili za optimizacijo porabe energije
s pomočjo optimizacije temperature oziroma tlaka uparjanja hladiva na posameznih
uparjalnikih. Zagotavljanje ustreznega tlaka, ki ga ustvarja sklop vzporedno vezanih
kompresorjev, bi bila zahtevna naloga s področja regulacij in bi lahko močno zmanjšala
porabo električne energije za potrebe procesa hlajenja.
75
Literatura [1] LonTalk® Protokol Specification; version 3.0, Echelon corporation, Palo Alto, ZDA,
1994
[2] LonBuilder Development’s Kit - Model 20311, Echelon corporation, Palo Alto, ZDA, 1997
[3] LonMark Layers 1-6 Interoperability Guidelines, LonMark Interoperability Association, Palo Alto, ZDA, 1996
[4] LonMark Application Layer Interoperability Guidelines, LonMark Interoperability Association, Palo Alto, ZDA
[5] LonWorks Products Databook; LonManager Network Tools, http://www.echelon.com/Products/datasheets/pnsprod.html
[6] LonManager LonMakerInstallation Tool (model 32200), Echelon corporation, Palo Alto, ZDA, 1997
[7] LonManager DDE Server (model 33000) , Echelon corporation, Palo Alto, ZDA, 1997
[8] LonManager Protocol Analyzer (model 33100), Echelon corporation, Palo Alto, ZDA, 1997
[9] LonManager NSS-10 (model 34000-100) , Echelon corporation, Palo Alto, ZDA, 1997
[10] LNS Developer Kit for Microcontrollers (model 34001) , Echelon corporation, Palo Alto, ZDA, 1997
[11] LNS Developer’s Kit for Windows (model 34303) , Echelon corporation, Palo Alto, ZDA, 1997
[12] LNS Fastart Package (model 34304) , Echelon corporation, Palo Alto, ZDA, 1997
[13] LonWorks Products Databook, LonWorks Network Interfaces & Gateways, http://www.echelon.com/Products/datasheets/pniprod.html
[14] PCC-10 PC Card (model 73200), Echelon corporation, Palo Alto, ZDA, 1997
[15] PCLTA PC LonTalk Adapter (model 73100), Echelon corporation, Palo Alto, ZDA, 1997
[16] PCLTA-10 PC LonTalk Adapters (models 73401, 73402, 73403), Echelon corporation, Palo Alto, ZDA, 1997
[17] SLTA-10 Serial LonTalk Adapter (models 73351, 73352, 73353), Echelon corporation, Palo Alto, ZDA, 1997
[18] SLTA/2 Serial LonTalk Adapter (model 73000), Echelon corporation, Palo Alto, ZDA, 1997
[19] LTS-10 Serial Adapter Core Module (model 65200-100), Echelon corporation, Palo Alto, ZDA, 1997
76
[20] PSG-10 Serial Gateway Core Module (model 65200-200), Echelon corporation, Palo Alto, ZDA, 1997
[21] LonWorks MIP/P20 in MIP/P50 Developer’s kit (model 23200), Echelon corporation, Palo Alto, ZDA, 1997
[22] LonWorks MIP/DPS Developer’s kit (model 23210), Echelon corporation, Palo Alto, ZDA, 1997
[23] LonWorks Transcievers, http:// www.echelon.com/Products/datasheets/ptrans.htm
[24] LPT-10 Link Power Twisted Pair Transceiver, Echelon corporation, Palo Alto, ZDA, 1997
[25] TPT/XF Twisted Pair Transceivers (models 50010-10 in 50020-10) , Echelon corporation, Palo Alto, ZDA, 1997
[26] FTT-10A Free Topology Twisted Pair Transceiver (model 50051) , Echelon corporation, Palo Alto, ZDA, 1997
[27] LonWorks Routers, http:// www.echelon.com/Products/datasheets/proutprot.htm
[28] W. Zeng: FieldBus Forum, http://hallen.ele.kth.se/~willi/
[29] FieldBus comparision, Synergetic Micro Systems Inc., 1997, http://www.synergetic.com/compare.htm
[30] M. Božiček: Tehnologija omrežij Lonworks, Ljubljana, 1998
[31] M. Mondada: Principal characteristics of field busses, http://vigna.cimsi.cim.ch/~mmondada/
77
Echelon, LON, LonWorks, LonBuilder, LonManager, LonTalk, LonUser, Neuron 3120;3150, LonMark so zaščitene blagovne znamke podjetja Echelon Corporation, Palo Alto, ZDA
NL220, NLOpc so zaščitene blagovne znamke podjetja Newron system, Colomiers, FRA
Danfoss EKC 201, Danfoss EKC 301, Danfoss AKM so zaščitene blagovne znamke podjetja Danfoss DENMARK
MS Windows 3.1, MS Windows 95/98, MS Windows NT/2000 in MS-DOS so zaščitene blagovne znamke Microsoft Corporation.
78
Dodatek A: Shematični prikaz protokolovne podatkovne enote (PDU) in principa ovojnic
Slika A.1: Pregled PDU ([1])
79
Dodatek B: Časovne karakteristike omrežja LonWorks
([1] str. 106)
Kapaciteta in prepustnost
Pri definicijah so uporabljene naslednje oznake:
bps hitrost prenosa kanala v bit/s
Beta velikost naključnega predala v bitih
w velikost MAC naključnega okna: 16 predalov
Dmean = w/2 povprečna velikost naključnega okna: 8 predalov
p = (1/2w + pe) verjetnost izgube paketa zaradi trka in drugih napak prenosa
1/2w verjetnost izgube paketa zaradi trka
pe verjetnost izgube paketa zaradi napak pri prenosu
AvgPktSize povprečna velikost paketa vključno s vodilnim presledkom
Ccost izguba zaradi trka (2 paketa)
Pri predpostavki prenosa brez trkov in napak pri prenosu in pri velikosti naključnega okna w = 2 * Dmean je hitrost prenosa LonTalk okvirjev enako:
Okvirjev = bps / (Beta2 * (Dmean + #prioritetnih predalov) + Beta1 + AvgPktSize)
[paketov / s]
Če upoštevamo izgubo paketov zaradi trkov in napak pri prenosu, je hitrost prenosa na sloju 3:
Net_L3 = Okvirjev * (1 - p) [paketov / s]
Zaradi trkov je potrebno pakete prenašati večkrat, kar se odraža kot zmanjšanje prepustnosti kanala; hitrost prenosa na sloju 4 je enaka:
Net_L4 = Net_L3 * (1 - Ccost * p) [TPDU / s]
Vrednost Net_L4 definira največje število možnih transakcij v sekundi, poveča pa z ustreznim izborom parametra w. Izjema so transakcije, ki zahtevajo overovitev znotraj skupine velikosti N, kar pomeni, da mora biti prenešenih N PDU. Pri predpostavki, da imajo vse skupine isto število članov, je hitrost prenosa:
Trans_Rate = Net_L4 * / velikost skupine [transakcij / s]
80
Tabela B-1 prikazuje prepustnost kanala z naslednjimi predpostavkami: ni napak pri prenosu, NPDU dolžine 120 bitov, vsa vozlišča delujejo pri frekvenci 10 MHz in komunikacija poteka brez prioritetnih predalov. Uporabljena je transakcija s potrditvijo.
Hitrost kanala 10 kbit / s 78 kbit / s
Kapaciteta (TPDU / s)
43 36
388 329
L4 ali L5 transakcij / s
(za velikost skupine N)
N = 2 N = 4 N = 8 N = 16
~ 18 ~ 9 ~ 4 ~ 2
~ 164 ~ 82 ~ 41 ~ 20
Tabela B-1: Prepustnost kanala
Časovne razmere v omrežju
Za en kanal s predvidenim BL, je pričakovana povprečna zakasnitev:
Ndelay = (BL/2 + 1) * busy_cycle
busy_cycle = Beta2 * (Dmean + #prioritetnih predalov) + Beta1 + AvgPktSize
V splošnem je zakasnitev za prenos preko k kanalov:
Ndelay = SUM { (BLi/2 + 1) * busy_cycle } i = 1 ... k
Pri predpostavki konstantne verjetnosti napak pri prenosu pe in konstantnem naključnem oknu w preko k kanalov, je verjetnost uspešnega prenosa definirana kot:
P (L3) = (1 - p)k
Graf B-1 prikazuje uspešnost prenosa (P) za en paket preko k kanalov pri pe = 1 % in vrednosti w = 16. Verjetnost napake pri prenosu preko enega kanala je 4,13 %.
Graf B-1: Verjetnost uspešnega prenosa v odvisnosti od števila prepotovanih kanalov
81
Časovne razmere transakcije
Čas potreben za zaključek transakcije na enem kanalu je definiran:
Ttime = velikost skupine * busy_cycle + Tnp
Tnp je čas potreben za obdelavo transakcije v ciljnem vozlišču.
Če upoštevamo trke in napake pri prenosu se ta čas poveča:
Ttime = x * L4_Timer + y * busy_cycle + Tnp
x = 0, 1, ... L4 ponovitev
y ≤ max (velikost skupine, BL)
Pri predpostavki, da je verjetnost napake p (zaradi trkov in napak pri prenosu) je verjetnost transakcije v skupini velikosti n pri k ponovitev:
}{{ }
2,0
)1()1(1
ponovitevk
)1(ponovitev brez
11
0
≥≥
−−
+=≤
−=
−+−
=∑
nk
pppi
kP
pP
nikik
i
n
Verjetnost P {≤ k ponovitev} je izračunana kot produkt dveh verjetnosti:
P {izguba i sporočil v k+1 poskusih}
P {uspešno sprejmi vse n-1 potrdil pri k-i+1 uspešnih sporočil}
Mejni pogoji - zagon
Zagon vozlišča bistveno vpliva na podsloj nadzora prenosa: ni preverjanja podvajanja sporočil za prvo transakcijo, ki sledi resetu. Iz tega razloga mora biti prva operacija idempotentna.
Po zagonu adaptivnega usmerjevalnika ta ne usmerja sporočil ampak jih razpošlje po vseh kanalih (preplavljanje), dokler iz potrdil ne ugotovi lege vozlišč.
Mejni pogoji – visoka obremenitev omrežja
Višja obremenitev od kapacitete kanala se odraža kot povečane zakasnitve nekaterih transakcij. To lahko pripelje do iztekov sprejemnih ali oddajnih časovnikov ter s tem do napak pri prenosu.
Dokler se predvidena in dejanska obremenitev kanala (BL) ujemata, ostane prepustnost na nivoju definiranem v tabeli B-1. Neujamanje predvidene in dejanske obremenitve se vedno odraža v zmanjšani prepustnosti. Podcenjenje obremenitve povzroči povečanje trkov in s tem zmanjšanje prepustnosti. Majhno precenjenje pa bistveno ne vpliva na prepustnost, zato je algoritem zasnovan tako, da se rajši preceni predvidena obremenitev kot pa podceni.
82
Dodatek C: Tabele nastavitev krmilnikov Danfoss EKC 201
83
Dodatek D: Programska koda aplikacije Freezer 1.0
( StartForm.frm )
Private Sub Graf_Click()
Form1.Show
End Sub
Private Sub Izhod_Click()
Unload Me
End Sub
Private Sub Kontrola_Click()
Form2.Show
End Sub
84
( Form1.frm )
Private Values() As Single
Private Casi() As String
Private NumPoints As Integer
Private appPath As String
Private dbPath As String
Private connString As String
Private Sub Command1_Click()
appPath = App.Path 'direktorij kjer se nahaja exe
dbPath = appPath & "\" & dbName.Text 'polno ime accesove datoteke na disku
'sestavim connection string do baze
connString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & dbPath & ";Persist Security Info=False"
Adodc1.ConnectionString = connString 'pot do baze
Adodc1.RecordSource = "Temperatura" 'tabela v bazi od koder črpa podatke
DataGrid1.Refresh
Set DataGrid1.DataSource = Adodc1 'povežem podatke s tabelo na formi
End Sub
Private Sub Command3_Click()
Dim datum As Date
Dim datumStr As String
85
'SPREMEMBA DATUMA V OBLIKO ZA ACCESS
'text spremenimo v datum da lahko uporabimo funkcijo Format
datum = CDate(datumOd)
'Zamenjamo mesec in dan
datumStr = Format(datum, "m.d.yyyy")
'Pike zamenjamo s poševnicami
datumStr = Replace(datumStr, ".", "/")
Dim cnn As ADODB.Connection
Dim rs As ADODB.Recordset
Set cnn = New ADODB.Connection
' Open a connection by referencing the ODBC driver.
cnn.ConnectionString = connString
cnn.Open
'sql = "SELECT EKC1, EKC2, CAS FROM Temperatura WHERE ID>0"
sql = "SELECT EKC1, CAS FROM Temperatura WHERE ID>0"
If datumStr <> "" Then sql = sql & "AND Datum = #" & datumStr & "# "
If uraOd.Text <> "" Then sql = sql & "AND Cas>=#" & uraOd.Text & "# "
If uraDo.Text <> "" Then sql = sql & "AND Cas<=#" & uraDo.Text & "# "
sql = sql & " ORDER BY ID;"
Set rs = cnn.Execute(sql)
86
If Not rs.EOF Then
Dim arr() As Variant
Dim NumPoints As Long
arr() = rs.GetRows()
NumPoints = UBound(arr, 2) + 1
ReDim Values(1 To NumPoints, 1 To 1)
ReDim Casi(1 To NumPoints, 1 To 1)
I = 1
' Load the data.
rs.MoveFirst
Do While Not rs.EOF ' Loop through the recordset
If IsNull(rs("EKC1")) Then
Values(I, 1) = ""
Else
Values(I, 1) = rs("EKC1")
End If
'If IsNull(rs("EKC2")) Then
'Values(i, 2) = 0
'Else
'Values(i, 2) = rs("EKC2")
'End If
Casi(I, 1) = rs("CAS")
rs.MoveNext
I = I + 1
Loop
87
MSChart1.chartType = VtChChartType2dLine
MSChart1.ChartData = Values
'spodaj še izpiše čase
For Row = 1 To I - 1 Step 1
labelIndex = 1
MSChart1.DataGrid.RowLabel(Row, labelIndex) = Casi(Row, 1)
Next Row
Else
MsgBox "Ni podatkov"
End If 'Not rs.EOF
' Close the connection.
rs.Close
End Sub
Private Sub DTPicker1_Change()
datumOd.Text = DTPicker1.Value
End Sub
88
Private Sub Form_Load()
datumOd.Text = Day(Date) & "." & Month(Date) & "." & Year(Date)
DTPicker1.Value = datumOd
Call Command1_Click 'gumb osveži podatke
Call Command3_Click 'gumb prikaži graf
End Sub
89
( Form2.frm ) Public startTime As Date Public trentime As Date Public Alarmtext As String Public modX As Integer Public timeIntervalSec 'v sekundah Private Sub Form_Load() Dim Cas As String Dim Casx As String Dim MyTime As Date OPCAX1.startServers Image2.Visible = False izvajaj = True Call Option15_Click Casx = Hour(Time) & ":" & Minute(Time) Text7.Text = Casx Cas = Date & " " & Hour(Time) & ":" & "00" MyTime = CDate(Cas) 'startTime = MyTime Dim cnn As ADODB.Connection Dim rs As New ADODB.Recordset cnnData.Provider = strAcessDataProvider cnnData.Open App.Path & "\Form_data\seznam.mdb" sql = "krmilniki" rs.Open sql, cnnData Do While Not rs.EOF Combo1.AddItem rs("krmilnik") rs.MoveNext
90
Loop rs.Close cnnData.Close End Sub Private Sub Combo1_Click() Dim cnn As ADODB.Connection Dim rs As New ADODB.Recordset cnnData.Provider = strAcessDataProvider cnnData.Open App.Path & "\Form_data\seznam.mdb" sql = "funkcije" rs.Open sql, cnnData Funkcije.Clear Do While Not rs.EOF Funkcije.AddItem rs("funkcija") rs.MoveNext Loop rs.Close cnnData.Close 'Combo1.Refresh strDanf = Combo1.Text connString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\Baze\" & strDanf & ".mdb;Persist Security Info=False" Adodc1.ConnectionString = connString 'DataGrid1.Refresh
91
If strDanf = "EKC1" Then OPCAX1.PrefixCollection.Item("EkcX").PrefixString = "Trgovina.Hladilna.Komore.EKC1." 'If strDanf = "EKC2" Then OPCAX1.PrefixCollection.Item("EkcX").PrefixString = "Trgovina.Hladilna.Vitrine.EKC2." Funkcije.Selected(0) = True 'V funkcijah izberem prvo vrstico 'DataGrid1.Refresh End Sub Private Sub Funkcije_Click() Dim strtabela As String strtabela = Funkcije.List(Funkcije.ListIndex) DataGrid1.Caption = Combo1.Text + " - " + strtabela DataGrid1.ClearFields Set DataGrid1.DataSource = Adodc1 DataGrid1.Refresh Adodc1.RecordSource = strtabela Adodc1.Refresh DataGrid1.Columns(3).Visible = False 'skrijem vrednost Resolucije DataGrid1.Refresh DataGrid1.Visible = True End Sub
92
Private Sub Text2_Change() ''iz polja Text2 prepiše vrednost v LED prikazovalnik na formi aplikacije ''--------------------------------------------------------------------------------------------- Temperatura = Text2.Text If Temperatura = "" Then 'zapišem v led LED01.Value = 8 'prvi znak levega dela LED02.Value = 8 'drugi znak levega dela LED03.Value = 8 'prvi znak desnega dela Else 'odstranim plus če obstaja If Mid(Temperatura, 1, 1) = "+" Then Temperatura = Replace(Temperatura, "+", "") 'odstranim "+" iz temperature 'obdelam minus znak če obstaja If Mid(Temperatura, 1, 1) = "-" Then MinusZnak.Visible = True Temperatura = Replace(Temperatura, "-", "") 'odstranim "-" iz temperature Else MinusZnak.Visible = False End If leviDel = "" 'do pike desniDel = "" 'od pike naprej pozicija_pike = InStr(Temperatura, ",") - 1 If pozicija_pike < 0 Then pozicija_pike = Len(Temperatura) leviDel = Mid(Temperatura, 1, pozicija_pike) If pozicija_pike >= 0 Then desniDel = Mid(Temperatura, pozicija_pike + 2, Len(Temperatura) - pozicija_pike) If Len(leviDel) = 1 Then leviDel = "0" + leviDel If desniDel = "" Then desniDel = 0
93
'odrežem levi del, če je dalši kot 2 znaka If Len(leviDel) > 2 Then leviDel = Mid(leviDel, Len(leviDel) - 1, 2) 'zapišem v led LED01.Value = Mid(leviDel, 1, 1) 'prvi znak levega dela LED02.Value = Mid(leviDel, 2, 1) 'drugi znak levega dela LED03.Value = Mid(desniDel, 1, 1) 'prvi znak desnega dela End If End Sub Private Sub uskladiButton_Click() uskladitev End Sub Private Sub uskladitev() izvajaj = False Dim strKvaliteta As String Dim VREDNOST As Variant Dim vredn2 As Integer Dim vredn3 As Integer Dim bookmark As Integer Dim rstParametri As New ADODB.Recordset Set rstParametri = New ADODB.Recordset rstParametri.CursorType = adOpenKeyset rstParametri.LockType = adLockOptimistic cnnData.Provider = strAcessDataProvider baza = App.Path & "\Baze\" & Combo1.Text & ".mdb" cnnData.Open baza
94
sql = Funkcije.Text 'Določimo tabelo funkcij rstParametri.Open sql, cnnData RowIdx = 0 Do While Not rstParametri.EOF intPnu = rstParametri!PNU Text1.Text = intPnu '++++++++++++++++++++++++ OPCAX1.Items.Item(1).WriteItem (intPnu) strKvaliteta = OPCAX1.Items.Item(1).Quality If strKvaliteta = "192" Then OPCAX1.UpdateItems vredn: vredn3 = OPCAX1.Items.Item(2).Value 'prebere vrednost iz OPC server vredn2 = OPCAX1.Items.Item(3).Value 'prebere vrednost iz OPC server If vredn2 = 0 Then VREDNOST = vredn3 ElseIf vredn2 = 1 Then VREDNOST = 256 + vredn3 ElseIf vredn2 = 255 Then VREDNOST = -256 + vredn3 ElseIf vredn2 = 254 Then VREDNOST = -512 + vredn3 ElseIf vredn2 = 253 Then VREDNOST = -768 + vredn3 End If
95
Text6.Text = VREDNOST VREDNOST = VREDNOST * rstParametri!Resolucija ' pomnoži z "resolucijo" If Text6.DataChanged = True Then DataGrid1.Row = RowIdx DataGrid1.Columns(5).Value = VREDNOST 'vpiše vrednost v tabelo-bazo RowIdx = RowIdx + 1 Else GoTo vredn: End If End If rstParametri.MoveNext DataGrid1.Refresh Loop rstParametri.MovePrevious rstParametri.Update DataGrid1.Refresh rstParametri.Close cnnData.Close izvajaj = True End Sub
96
'' Ta rutina uskladi vrednosti v kontrolerju z ročno spremenjeno vrednostjo v tabeli '' ------------------------------------------------------------------------------------------------------- Private Sub DataGrid1_AfterColUpdate(ByVal ColIndex As Integer) If izvajaj = True Then Dim VREDNOST As Double Dim VREDNOSTPNU Dim VREDNOST02 Dim VREDNOST03 Dim Resolucija As Double 'PREBEREM VREDNOSTI IZ TABELE VREDNOST = DataGrid1.Columns(5).Value VREDNOSTPNU = DataGrid1.Columns(0).Value Resolucija = DataGrid1.Columns(3).Value 'PRETVORIM ZA VALUE2 in VALUE3 If VREDNOST > 25.5 Then VREDNOST02 = 1 VREDNOST03 = (VREDNOST / Resolucija) - 256 ElseIf VREDNOST >= 0 And VREDNOST <= 25.5 Then VREDNOST02 = 0 VREDNOST03 = VREDNOST / Resolucija ElseIf VREDNOST >= -25.6 And VREDNOST < 0 Then VREDNOST02 = 255 VREDNOST03 = (VREDNOST / Resolucija) + 256 ElseIf VREDNOST >= -51.2 And VREDNOST < -25.6 Then VREDNOST02 = 254 VREDNOST03 = (VREDNOST / Resolucija) + 512 ElseIf VREDNOST >= -76.8 And VREDNOST < -51.2 Then VREDNOST02 = 253 VREDNOST03 = (VREDNOST / Resolucija) + 768 End If
97
'PNU.Text = VREDNOSTPNU 'VALUE2.Text = VREDNOST02 'VALUE3.Text = VREDNOST03 OPCAX1.Items.Item(1).WriteItem (VREDNOSTPNU) OPCAX1.Items.Item(6).WriteItem (VREDNOST02) OPCAX1.Items.Item(7).WriteItem (VREDNOST03) OPCAX1.Items.Item(8).WriteItem (1) OPCAX1.UpdateItems OPCAX1.Items.Item(8).WriteItem (3) End If End Sub Private Sub LogButton_Click() zajemloga End Sub Private Sub Option1_Click() timeIntervalSec = 1 * 60 'na 1 minuto Cas = Date & " " & Hour(Time) & ":" & Minute(Time) Text3.Text = Cas MyTime = CDate(Cas) startTime = MyTime End Sub Private Sub Option5_Click() timeIntervalSec = 5 * 60 'na 5 minuto modX = Minute(Time) Mod 5
98
'minx = Minute(Time) + (5 - modX) *** 5 0dpade zaradi "timeIntervalSec" ki se prišteje v funkciji TIMERja! Cas = Date & " " & Hour(Time) & ":" & Minute(Time) - modX MyTime = CDate(Cas) startTime = MyTime End Sub Private Sub Option15_Click() timeIntervalSec = 15 * 60 'na 15 minuto modX = Minute(Time) Mod 15 Cas = Date & " " & Hour(Time) & ":" & Minute(Time) - modX MyTime = CDate(Cas) startTime = MyTime End Sub Private Sub Option30_Click() timeIntervalSec = 30 * 60 'na 30 minuto modX = Minute(Time) Mod 30 Cas = Date & " " & Hour(Time) & ":" & Minute(Time) - modX MyTime = CDate(Cas) startTime = MyTime End Sub
99
Private Sub Timer1_Timer() 'shranim start time in prištejem interval 'nato primerjam ta sesteti cas s trenutnim 'ce je trenutni cas vecji od sestetega 'se sprozi dogodek Dim plusSeconds As String Dim trentime As String plusSeconds = startTime + TimeSerial(0, 0, timeIntervalSec) Cas = Hour(plusSeconds) & ":" & Minute(plusSeconds) 'Text3.Text = plusSeconds *** Pomožno okno trentime = Hour(Time) & ":" & Minute(Time) If (trentime = Cas) Then zajemloga startTime = CDate(trentime) End If End Sub Private Sub zajemloga() Dim strCas As String Dim VREDNOST As Variant Dim rstTemp As New ADODB.Recordset Dim I As Integer Set rstTemp = New ADODB.Recordset rstTemp.CursorType = adOpenKeyset rstTemp.LockType = adLockOptimistic
100
cnnData.Provider = strAcessDataProvider cnnData.Open App.Path & "\Temp Log.mdb" ' Potrebno narediti pravo pot!!!! sql = "Temperatura" rstTemp.Open sql, cnnData rstTemp.MoveLast 'I = rstTemp!ID *** V Temp Log.mdb uporabljamo AutoNumber! rstTemp.MoveNext rstTemp.AddNew If Minute(Time) >= 10 Then strCas = Hour(Time) & ":" & Minute(Time) Else strCas = Hour(Time) & ":0" & Minute(Time) End If OPCAX1.PrefixCollection.Item("EkcX").PrefixString = "Trgovina.Hladilna.Komore.EKC1." OPCAX1.UpdateItems VREDNOST = OPCAX1.Items.Item(5).Value If (VREDNOST - Int(VREDNOST) = 0) Then rstTemp!EKC1 = VREDNOST & ",0" 'vpiše vrednost temp. na EKC1 v log file Else rstTemp!EKC1 = VREDNOST 'vpiše vrednost temp. na EKC1 v log file End If rstTemp!datum = Date 'vpiše datum v log file rstTemp!Cas = strCas 'vpiše čas v log file 'rstTemp!ID = I + 1 *** V Temp Log.mdb uporabljamo AutoNumber! rstTemp.Update
101
'************************************************************ 'ČE BI IMELI VEČ EKCjev SI POMAGAMO Z PREFIXom! 'OPCAX1.PrefixCollection.Item("EkcX").PrefixString=Trgovina.Hladilna.Vitrine.EKC2." 'OPCAX1.UpdateItems 'VREDNOST = OPCAX1.Items.Item(5).Value 'If VREDNOST = "" Then rstTemp!EKC2 = "*" 'If (VREDNOST - Int(VREDNOST) = 0) Then 'rstTemp!EKC2 = VREDNOST & ",0" 'vpiše vrednost temp. na EKC2 v log file 'Else 'rstTemp!EKC2 = VREDNOST 'vpiše vrednost temp. na EKC2 v log file 'End If 'rstTemp!datum = Date 'vpiše datum v log file 'rstTemp!Cas = strCas 'vpiše čas v log file 'rstTemp!ID = i + 1 'rstTemp.Update '************************************************************ rstTemp.Close cnnData.Close End Sub Private Sub HtALM_Change() If HtALM.Text = "1" Then Alarmtext = "(A_1) - Visoka temperatura !" Image2.Visible = True
102
End If If HtALM.Text = "0" Then Alarmtext = "(A_1) - Visoka temperatura - PREKLICANO !" Image2.Visible = False End If 'Text5.Text = Alarmtext *** pomožno okno... WriteLog End Sub Private Sub LtALM_Change() If LtALM.Text = "1" Then Alarmtext = "(A_2) - Prenizka temperatura !" Image2.Visible = True End If If LtALM.Text = "0" Then Alarmtext = "(A_2) - Prenizka temperatura - PREKLICANO !" Image2.Visible = False End If 'Text5.Text = Alarmtext *** pomožno okno... WriteLog End Sub
103
Private Sub WriteLog() Dim D As Date Dim DStr As String Dim AlertStr As String D = Now 'Cas je zdaj DStr = Format(D, "General Date") AlertStr = DStr & " / ALARM " & Alarmtext LogFile = App.Path & "\LOG.TXT" 'polno ime log datoteke na disku Open LogFile For Append As #1 Print #1, AlertStr 'zapis v text datoteko TextAlerts.Text = AlertStr & NewLine & TextAlerts.Text 'zapis v tekst polje (spodaj navzgor) 'TextAlerts.Text = TextAlerts.Text & NewLine & AlertStr 'zapis v tekst polje (zgoraj-navzdol) Close #1 End Sub
104
Življenjepis:
Osebni podatki:
Ime priimek: Gregor Goršek
Naslov: Griže 124d, 3302 GRIŽE
Rojen: 28.3.1973 v Celju
Šolanje:
Osnovna šola: Osnovna šola Žalec 1979-1987
Srednja šola: Šolski center Celje 1987-1991
Program: Elektrotehnik-elektronik
Univerza: Univerza v Mariboru
Fakulteta: FERI
Program: Elektrotehnika ( UNI )
Smer: Avtomatika
Vpisna številka: 93336373
Leto prvega vpisa: 1991
Zaposlitev:
Prva zaposlitev: Šolski center Celje – učitelj strokovnih predmetov, ( 1996-2000 )
Tren. zaposlitev: KRAČUN d.o.o. , Vodja projektov ( 2000 - )
105
IZJAVA O AVTORSTVU DIPLOMSKE NALOGE
Podpisani Gregor Goršek, rojen 28.3.1973 v Celju, s svojim podpisom potrjujem,
da sem avtor diplomske naloge z naslovom UPORABA TEHNOLOGIJE LONWORKS®
PRI NADZORU KOMERCIALNE HLADILNE TEHNIKE in sem jo naredil sam, brez
tuje pomoči. Uporabljeni viri in literatura so korektno navedeni; teksti niso prepisani brez
navedbe avtorjev.
_______________
(podpis študenta)
Maribor, 7.3.2008