UNIVERZA V LJUBLJANI FAKULTETA ZA RAČUNALNIŠTVO IN INFORMATIKO Tomaž Furlan Programabilni logični krmilnik DIPLOMSKO DELO NA UNIVERZITETNEM ŠTUDIJU Me

Velikost: px
Začni prikazovanje s strani:

Download "UNIVERZA V LJUBLJANI FAKULTETA ZA RAČUNALNIŠTVO IN INFORMATIKO Tomaž Furlan Programabilni logični krmilnik DIPLOMSKO DELO NA UNIVERZITETNEM ŠTUDIJU Me"

Transkripcija

1

2 UNIVERZA V LJUBLJANI FAKULTETA ZA RAČUNALNIŠTVO IN INFORMATIKO Tomaž Furlan Programabilni logični krmilnik DIPLOMSKO DELO NA UNIVERZITETNEM ŠTUDIJU Mentor: prof. dr. Dušan Kodek Ljubljana, 2010

3

4 I Z J A V A O A V T O R S T V U diplomskega dela Spodaj podpisani/-a Tomaž Furlan, z vpisno številko , sem avtor/-ica diplomskega dela z naslovom: Programabilni logični krmilnik S svojim podpisom zagotavljam, da: sem diplomsko delo izdelal/-a samostojno pod mentorstvom (naziv, ime in priimek) prof. dr. Dušan Kodek in somentorstvom (naziv, ime in priimek) / so elektronska oblika diplomskega dela, naslov (slov., angl.), povzetek (slov., angl.) ter ključne besede (slov., angl.) identični s tiskano obliko diplomskega dela soglašam z javno objavo elektronske oblike diplomskega dela v zbirki»dela FRI«. V Ljubljani, dne Podpis avtorja/-ice:

5 Zahvala Zahvaljujem se Sabini za potrpljenje, ki ga je izkazovala ob mojih prebitih nočeh za delovno mizo. Zahvaljujem se Nini, ker si je vzela čas za lovljenje slovničnih napak. In zahvaljujem se mentorju, prof. dr. Kodeku, ker je uspešno krotil moje podivjane ideje.

6 To delo posvečam vsem računalniškim pionirjem in tistim posameznikom, ki skrbijo, da njihov duh ne ugasne.

7 Vsebina Seznam uporabljenih kratic in simbolov... 9 Povzetek... 1 Abstract Uvod Programabilni krmilniki Programabilni logični krmilniki Standard IEC Okolje Arduino Strojna modularnost, programiranje in moţnost izbire Program v okolju Arduino Krmilnik strojni del Razvojno okolje Opis Napajanje Mikrokontroler Vezje PLK Komunikacija Vhodi in izhodi Krmilnik programski del Čas Podatkovni bloki in registri Komunikacija in preprost protokol Krmilni program... 23

8 5. Razvojno okolje Programski jezik podajanje programa Generiranje izvorne kode Realizacija programskih gradnikov Prevajanje in krmilni program Integrirano razvojno okolje Knjiţnica za dostop do podatkov v krmilniku Primer uporabe krmiljenje ogrevanja Vhodno / izhodna konfiguracija Krmilni program Program za oddaljeno spremljanje in nadzor Sklep Dodatek A Analiza kode programskega nadzornika s programom USC CodeCount Dodatek B Primerjava uporabe mikrokontrolerjevih virov pri različnih parametrih Dodatek C Fotografija prototipa krmilnika v osnovni konfiguraciji Shema vezja krmilnika Dodatek D Podatkovni list temperaturnega senzorja Conrad C-Control I Dodatek E Vsebina priloţene zgoščenke Seznam slik in tabel Seznam slik Seznam tabel... 58

9 Viri... 59

10 Seznam uporabljenih kratic in simbolov ARM Druţina 32-bitnih mikrokontrolerjev podjetja ARM AVR Druţina 8-bitnih mikrokontrolerjev proizvajalca Atmel DCE Digital Control Equipment (določa tip priklopa na serijski kabel) FCB Function Block Diagram (funkcijsko-bločni diagram) - grafični programski jezik, ki ga določa standard IEC HIN232 Integrirano vezje za pretvorbo nivojev TTL v RS232 in obratno IEC Tretji del standarda za PLK krmilnike, ki določa programske jezike I 2 C Inter-Integrated Circuit (tudi I2C) - uveljavljen vmesnik za povezovanje mikrokontrolerjev z ostalimi komponentami, prvotno razvit pri podjetju Philips PIC Druţina 8 in 16 bitnih mikrokontrolerjev proizvajalca Microchip Technology PLK Programabilni logični krmilnik (angl. programmable logic controller, PLC) RS232 Razširjen standard za serijsko komunikacijo med dvema napravama RS485 Standard za komunikacijo med več napravami, pogosto uporabljen za povezovanje naprav pri industrijskem krmiljenju SPI Serial Peripheral Interface (serijski periferni vmesnik) - uveljavljen vmesnik za povezovanje mikrokontrolerjev z ostalimi komponentami, prvotno razvit pri podjetju Motorola ST Structured Text - programski jezik, ki ga določa standard IEC UART Universal Asynchronous Receiver/Transmitter (splošni asinhroni oddajnik/sprejemnik) vmesnik za povezovanje, ki pretvarja paralelno podane podatke v serijsko podane in obratno Krmilnik Krmilni diagram Mikrokontroler Modbus Programski nadzornik Terminal Naprava, sestavljena iz elektronskih komponent, ki jo je mogoče programirati in omogoča samostojno krmiljenje zunanjih naprav Krmilni program v grafični obliki Specializirano mikroprocesorsko integrirano vezje, ki vsebuje tudi periferne naprave (angl. microcontroller, MCU) - mikrokrmilnik Serijski protokol za povezovanje industrijskih elektronskih naprav Preprost operacijski sistem predstavljenega krmilnika Grafični programski gradnik, ki nima izhodov

11

12 1 Povzetek Programabilni logični krmilniki (PLK) obvladujejo področje industrijske avtomatike ţe več kot štirideset let. Kot preizkušene rešitve si še naprej utirajo pot v naš vsakdanjik kot del sistemov za krmiljenje procesov, nadzor luči in prezračevanja v zgradbah idr. Hkrati s tem postajajo mikrokontrolerski sistemi in mikrokontrolerska razvojna orodja vedno bolj dostopna ljubiteljem. Zato ne preseneča, da postaja premagovanje vrzeli med tema dvema pristopoma vedno bolj priljubljen izziv med računalniškimi in elektrotehniškimi zanesenjaki. V tej nalogi je opisana zasnova in razvoj preprostega PLK krmilnika na osnovi mikrokontrolerja AVR ter preprostega razvojnega okolja na računalniku PC, ki je bil hkrati razvit za ta krmilnik. Najprej so na kratko predstavljene osnove PLK krmilnikov in poudarjene nekatere podobnosti s priljubljenim mikrokontrolerskim razvojnim okoljem Arduino. Predstavljena je tudi osnovna zamisel realizacije PLK krmilnika znotraj tega okolja. V glavnem delu je predstavljena strojna realizacija krmilnika in implementacija programskega nadzornika ter predstavitev razvojnega okolja in implementacije grafičnega jezika, ki ga podpira. Na koncu je prikazana uporaba krmilnika na poenostavljenem vsakdanjem primeru krmiljenja ogrevanja stavbe in vzdrţevanja ţelene temperature v prostoru. Ključne besede: programabilni logični krmilnik, industrijski krmilnik, odprtokodni krmilnik, arduino

13 2 Abstract Programmable logic controllers (PLC) have been dominating the industrial automation and control area for about fourty years. As a proven concept, they continue to strenghten their silent presence in our everyday lives as parts of machine control, lights and ventilation controlling systems in buildings, etc. At the same time, microcontroller systems and development boards are becoming more and more available to the hobbyists nowadays. It's no suprise that leaping the gap between these concepts is increasingly becoming an appealing challenge for computer and electrical enthusiasts. In this thesis, we describe a design and development of a simple AVR-based PLC and a simple PC-based development environment that has also been developed for it. We start with a brief introduction of PLC basics and expose similarities with the popular computing platform Arduino. We also suggest a possible idea for a PLC realization inside the Arduino concept. In the main part, we discuss the hardware part and firmware implementation, followed by the discussion of the development environment for this controller and the implementation of the graphical language it supports. At the end, we present an application of the controller on a simplified real-life example of controlling the heating of a building and maintaining the desired temperature in a room. Keywords: programmable logic controllers, industrial controllers, opensource controller, arduino

14 3 1. Uvod Programabilni logični krmilniki (PLK) so ţe dobrih štirideset let prisotni pri krmiljenju industrijskih procesov v taki ali drugačni obliki. Zaradi svoje univerzalnosti in prilagodljive zasnove so se uveljavili tudi na področju nadzora in krmiljenja stavb, strojev in poslopij (klimatske naprave, zračenje, osvetlitev), v kmetijstvu (npr. nadzor rastlinjakov) in na podobnih področjih. Ponujajo zanesljivo, preizkušeno ter prilagodljivo rešitev. Ustrezajo strogim zahtevam po varnosti, ki jih predpisujejo standardi za industrijsko uporabo ter s seboj prinašajo ustrezno jamstvo proizvajalca. So končni produkt, ki je na voljo, je preizkušen in ga je z dodajanjem in kombiniranjem zdruţljivih modulov za različne naloge moč uporabiti takoj za večino problemov krmiljenja. Po drugi strani pa postajajo mikrokontrolerska razvojna orodja, ki ponujajo svoj pristop do gradnje rešitev krmiljenja, vedno bolj prisotna in dostopna tudi ljubiteljskim razvijalcem. Nekatera razvojna okolja se po svoje pribliţujejo modularni zasnovi logičnih krmilnikov z uvajanjem koncepta ţe sestavljenih in zaključenih modulskih»blokov«, ki jih je moč sestavljati, kombinirati in dodajati k vezju po potrebi in tako omogočajo enostavno eksperimentiranje in hiter razvoj krmilnih in drugih sistemov. To v nekaterih primerih še vzpodbuja odprtokodna zasnova teh okolij, ki snovalcu-uporabniku pri razvoju in uporabi ne postavlja omejitev. Navkljub podobnostim in določenem prekrivanju ciljnih področij uporabe, pa ostajajo med programabilnimi logičnimi krmilniki in klasičnimi mikrokontrolerskimi (krmilnimi) sistemi ključne razlike, ki se kaţejo tako v načinu delovanja, rokovanja, programiranja kot konfiguracije in izgradnje končne aplikacije. Premoščanje tega prepada je postal izziv za zanesenjake najbrţ ţe prvi dan, ko so mikroprocesorska razvojna okolja postala dostopna navadnim ljudem. Še pred nekaj leti je tipični domači»programabilni logični krmilnik«povečini pomenil zgolj neke vrste mikroprocesorski sistem z dodanim vhodnim vezjem in relejskimi izhodi. Danes postajajo tovrstni hobi projekti, ki jih je moč zaslediti v specializiranih revijah ali na internetu, vedno bolj kompleksni in se skušajo vedno bolj pribliţati pravim krmilnikom. Seveda se poraja vprašanje koliko je smiselno razvijati nekaj, kar je ţe razvito, preizkušeno in (vsaj v niţjem zmogljivostnem razredu) na voljo relativno poceni in je na koncu najbrţ precej cenejša rešitev kot so sami stroški razvoja primerljive, običajno pa celo manj zmogljive rešitve. Vendar komercialni vidik običajno ni glavno vodilo pri hobi projektih. Odprtokodni programabilni logični krmilnik lahko (npr. v povezavi s kakšnim modularnim razvojnim okoljem) predstavlja osnovo za učenje, nove izdelke,»domače«poceni rešitve določenih nekritičnih nalog v hišni avtomatizaciji, avtomatizaciji rastlinjakov ipd. V tem okviru pa tudi ovrţe očitek o odkrivanju vode na novo. Odprtokodne programabilne logične krmilnike danes srečamo predvsem v obliki projektov, ki skušajo realizirati funkcionalnosti krmilnikov v obliki posebne programske opreme, ki se izvaja na računalnikih PC. Zamisli o realizaciji v klasični, strojni obliki so bistveno redkejše. Prave strojne izvedbe, ki bi bila vsaj po osnovnih lastnostih primerljiva s komercialnimi različicami, pa praktično ni. V nasprotju s tem pa nekatere programske odprtokodne izvedbe dosegajo zavidljivo raven in ţe postajajo zrele za praktično uporabo v proizvodnem okolju.

15 4 Programabilni logični krmilnik je pojem, ki zajema in zahteva več kot zgolj nekaj elektronike z vhodi in izhodi, na katere lahko priključimo naprave, in mikrokontrolerski program, ki to krmili. Je pojem, ki opisuje celotno rokovanje s tako»elektroniko«. Programabilni logični krmilnik je naprava, od katere se pričakuje določen način delovanja, programiranja, povezovanja, razširitev in samega upravljanja. To so zahteve, ki zajemajo precej več kot zgolj ustrezno delovanje elektronike. Tipični nekomercialni strojni»plk krmilnik«, ki ga srečamo danes, redko ustreza delovanju komercialnih izvedenk ţe na nivoju elektronike. Popolnoma pa odpove na področju povezovanja, programiranja in programske opreme za rokovanje. Bistveno več napredka so v tem ponovno dosegli odprtokodni programski (t.i.»mehki«) krmilniki. Največ med njimi pa projekt Beremiz [18], ki je razvil in zdruţil v celoto popolno razvojno okolje, ki ustreza obstoječim industrijskim standardom. Zato se ţe takoj poraja ideja o uporabi in prenosu tega okolja na nivo morebitne strojne izvedenke krmilnika. Na koncu se naloga zoţi na implementacijo ustreznega prevajalnika za standardna besedilna jezika IL in ST, ki bi generiral ustrezno kodo, ki bi jo krmilnik lahko izvajal oziroma bi se naprej prevedla v tako obliko z uporabo standardnih prevajalnikov. Projekt Beremiz ţe vsebuje prevajalnik, ki kodo v omenjenih jezikih pretvori v kodo v jeziku C, ta pa se potem izvaja v povezavi s programskim jedrom njihovega krmilnika. Zato projekt predstavlja smiselno iztočnico za raziskovanja v tej smeri. Drugi projekt, ki ga je vredno spremljati, je projekt Proview [20]. Njegovo okolje je zgrajeno okoli grafičnega jezika Grafcet, podpira pa tudi programiranje v nekaterih klasičnih programskih jezikih. Na domači strani projekta navajajo uspešen primer uporabe njihovega projekta v obseţnejšem industrijskem procesu pri predelavi jekla v švedskem podjetju SSAB Oxelösund. Ostali projekti, ki se nanašajo tudi na strojne izvedenke, so npr. LDmicro [19] urejevalnik lestvičnih diagramov in prevajalnik, ki generira strojno kodo za procesorje AVR in nekateri podobni, ki so vredni ogleda, vendar pa nam zaradi izbire programskega jezika, preprostosti ali drugih podrobnosti, pri doseganju zastavljenih ciljev te naloge niso pretirano v pomoč. Zanimiva je zamisel o vtičnem povezovanju več mikrokontrolerskih ploščic Arduino prek vodila I 2 C, pri čimer bi lahko vsaka ploščica opravljala svojo nalogo, podobno kot je to pri razširljivih PLK krmilnikih. Zamisel je opisana v [6]. Iz vidika snovanja strojnega krmilnika je zanimiv starejši članek [2], objavljen v reviji Elektor Electronics, ki opisuje gradnjo preprostega mikrokontrolerskega sistema, ki se skuša po delovanju in načinu izvajanja programa pribliţati pravim programabilnim logičnim krmilnikom. Po tej zasnovi se bomo tudi močno zgledovali v nadaljnjem delu. Potrebna bo prilagoditev sodobnejšemu mikrokontrolerju, dodane moţnosti komunikacije, implementacija nadzornega programa v jeziku Arduino, programska realizacija komunikacije, merjenja in nastavljanja časa ipd. Nastali krmilnik bom poskušal tudi prikazati in predstaviti s preprostim realnim primerom uporabe.

16 5 2. Programabilni krmilniki 2.1 Programabilni logični krmilniki Programabilni logični krmilniki (PLK) so posebna zvrst mikroračunalnikov, ki so prilagojeni za krmiljenje strojev v proizvodnih procesih. Njihova osnovna značilnost je večje število vhodov in izhodov, prek katerih je krmilnik priklopljen na senzorje ter naprave, ki jih krmili. So tipični primer realnočasovnih (angl. real-time) sistemov, saj mora biti zakasnitev v odzivu izhodov glede na spremembe vhodov manjša od nekega določenega (majhnega) časa. Krmilna koda (program) se v krmilniku izvaja znotraj krmilnega cikla (angl. scan cycle). V takem ciklu krmilnik najprej prebere stanje na vhodih in to shrani v vhodne registre. Nato izvede krmilni program, ki je v resnici le koda, ki na podlagi vrednosti vhodnih registrov določi stanje izhodnih registrov. Na koncu krmilnik prepiše stanje izhodnih registrov na izhode. Ta postopek se izvaja v neskončni zanki in se ne konča, dokler ne pride do izpada napajanja, napake ali pa programer (v postopku razvoja) tega eksplicitno ne zahteva. Tovrstno izvajanje prinaša tudi nekatere nevarnosti: če pride na vhodu do sprememb v času, ki je manjši od odzivnega časa krmilnika (vsota vseh časov, ki so potrebni za prepisovanje vhodov in izhodov, izvedbo sprotnih rutin, ki jih zahteva delovanje krmilnika ter za izvajanje krmilne kode), se zgodi da krmilnik teh sprememb ne zazna. Zato imajo krmilniki vgrajene dodatne mehanizme, ki spremembe zaznavajo tudi v tem vmesnem času, pogosto pa podpirajo tudi moţnost delovanja s pomočjo prekinitev. Slika 1. Program v programabilnem logičnem krmilniku. Očitna razlika med delovanjem logičnega krmilnika in običajnimi računalniki je v pojmovanju programa. Krmilni program v programabilnem logičnem krmilniku je zgolj krmilna koda v obliki funkcije, ki se kliče na določenem mestu znotraj izvajalnega cikla (slika 1).

17 6 Najbolj tipična oblika podajanja krmilne kode je t.i. lestvični diagram (angl. ladder diagram). Uporablja se predvsem v ZDA. Izhaja neposredno iz postopka vezave relejev, ki so jih za krmiljenje uporabljali v preteklosti. Lestvični diagrami ostajajo priljubljeni, ker je tovrstno grafično podajanje kode blizu elektroinţenirjem, v katerih domeni večinoma ostaja snovanje krmilja strojev (več o tem načinu podajanja programov je moč prebrati v [10]). Proizvajalci ponujajo tudi druge načine podajanja krmilne kode. Pristopi in tako nastala krmilna koda med krmilniki in orodji različnih proizvajalcev običajno niso zdruţljivi. Več o PLK krmilnikih je mogoče prebrati v [14] Standard IEC Potreba uporabnikov po laţjem prehajanju med produkti različnih proizvajalcev, pa tudi uveljavljanje novih trendov, ki vedno bolj vplivajo tudi na trţišče programabilnih krmilnikov (prihajajo predvsem iz sveta PC računalnikov: poceni in vedno večji pomnilniki, uveljavljanje novih načinov komunikacije, močnejši procesorji, cenejši, kompaktnejši in zanesljivejši PC sistemi...) ter zasnova obstoječih krmilnikov, ki postaja vedno bolj zastarela, so botrovali nastanku standarda IEC Ta predvideva in definira pet načinov podajanja krmilne kode, ki so podani v tabeli 1. Več o tem je mogoče najti v [4, 13]. Tabela 1. Pet načinov predstavitve krmilnega programa po standardu IEC V predstavitvi programa in krmilnika stori standard IEC korak naprej: Najširša enota predstavitve je konfiguracija. Ta zdruţuje celotno krmilno kodo in informacijo o tem, kako in kje naj se koda izvaja. Druga enota je vir (resource). Vir je lahko karkoli, kar je zmoţno izvajati krmilni program. Pri današnjih krmilnikih je to dejansko krmilnik sam (oziroma njegova procesorska enota). Lahko pa bi bil tudi npr. eno jedro v večjedrnem procesorju ali pa program na računalniku PC, ki zna izvajati krmilno kodo. Znotraj vira so definirana opravila. Opravilo (task) je enota, ki vsebuje informacijo o tem kako (npr. v kakem časovnem intervalu) ali kdaj (ob kakšnem dogodku) naj se nek program izvede. Program je glavna enota programske kode. Je na nek način kot funkcija v klasičnih programskih jezikih, ki se kliče, ko je v ustreznem opravilu določen pogoj izpolnjen. Konfiguracija lahko vsebuje več virov. Ravno tako se lahko na istem viru izvaja več opravil

18 7 (torej programov). Klasični krmilnik z eno procesorsko enoto si lahko v najosnovnejši obliki predstavljamo kot en vir, eno opravilo in en program (ki se kliče v fiksnem časovnem intervalu). Konfiguracija je torej najširša enota, ki opisuje krmilno aplikacijo. 2.2 Okolje Arduino Arduino [11] je ljubiteljska strojno-razvojna platforma, ki omogoča enostavno raziskovanje in gradnjo mikrokontrolerskih in vgradnih (angl. embedded) aplikacij. Strojno temelji na Atmelovi druţini mikrokontrolerjev AVR, za programiranje pa ponuja svojo izpeljanko jezika C++. Jezik, ki ga ponuja, je razširjen s knjiţnjicami in sintakso, ki programiranje poenostavijo in pribliţajo začetniku. Ob tem pa so sintaktična razhajanja z jezikom C++ (in v večji meri tudi z jezikom C) minimalna, kar omogoča relativno enostaven prenos obstoječe kode v program ali morebiten kasnejši prenos v bolj standardno okolje. Prevajanje programov se izvaja s pomočjo prevajalnika GNU C++ za druţino mikrokontrolerjev AVR v dveh korakih, preko minimalno spremenjene vmesne kode (slika 2). Slika 2. Program v jeziku Arduino po prevajanju v C++. V nadalje bomo uporabljali pojma jezik Arduino in C++ precej enakovredno, čeprav to iz tehničnega vidika mogoče ni vedno ustrezno. Gre namreč za veljavno programiranje v jeziku C++, vendar so pristopi in»konvencije«včasih malo drugačni Strojna modularnost, programiranje in možnost izbire Strojno je platforma zasnovana modularno, pri čemer uporabnik razširja in dopolnjuje sistem z»rezinami«(oziroma»ščiti«- angl. shields), ki jih do neke mere lahko tudi niza in

19 8 kombinira med seboj. Pri različnih proizvajalcih je na voljo mnoţica ţe izdelanih rezin, denimo s komponentami in vezji za brezţično komunikacijo bluetooth ali XBee, ţični ethernet, z vgrajenim LCD zaslonom, relejskimi izhodi, vhodi idr. skupaj s pripadajočimi knjiţnicami, ki močno poenostavijo uporabo in programiranje. Uporabnik lahko rezine snuje tudi sam, bodisi z izdelavo v obliki tiskanih vezij ali pa z uporabo posebnih rezin s prototipnim prostorom, prilagojenim za spajkanje. Mogoče pa je tudi hitro eksperimentiranje in razvoj prototipov v kombinaciji s klasično vtično prototipno ploščo (angl. breadboard) ali neposredno na ploščici. Platforma Arduino presega klasične mikrokontrolerske razvojne plošče tudi v tem, da je po končanem razvoju ustrezno konfiguriran sistem mogoče takoj vgraditi v končni izdelek. Ob uporabi in kombiniranju ţe izdelanih rezin, ki so na voljo, se je tako v nekaterih primerih mogoče povsem izogniti razvoju elektronike in tiskanih vezij, kar je privlačno predvsem pri izdelkih z majhnimi serijami. Programiranje mikrokontrolerja se vrši neposredno na ploščici prek navadnega USB kabla (v starejših izpeljankah prek serijske povezave), ki ga priključimo na ploščico. Prek te povezave je mogoča tudi komunikacija z računalnikom brez dodatnih komponent. Skupaj s»prevajalnikom«za prilagojen jezik in razvojnim okoljem, predstavlja platforma Arduino zaključeno celoto za razvoj mikrokontrolerskih aplikacij, ki omogočajo preprost in eleganten razvoj. To dejstvo pa ne izključuje moţnosti uporabe drugih jezikov, prevajalnikov in orodij, ki podpirajo mikrokontrolerje AVR. Odprtokodna zasnova platforme, ki velja tako za strojni kot programski del, je omogočila nastanek cele mnoţice zdruţljivih in izpeljanih izdelkov drugih proizvajalcev ter številnih zanesenjakov. Skupna točka teh»klonov«je bodisi strojna zdruţljivost z razširitvenimi rezinami, bodisi podpora za Arduino programski jezik in razvojno okolje ali pa celo popolna zdruţljivost na obeh nivojih. Nekatere izpeljanke popeljejo platformo na popolnoma drug nivo z uporabo močnejših mikrokontrolerjev ali mikrokontrolerjev iz drugih druţin (denimo mikrokontrolerji ARM Cortex M3, PIC...), z izbiro drugega formata (npr. pomanjšan format večjega DIL čipa) ali pa s tem, da ţe na sami ploščici podpirajo dodatne moţnosti (npr. realnočasovna ura) in so na ta način prilagojene za namenu, ki ga je imel proizvajalec v mislih.

20 Program v okolju Arduino Potek izvajanja programa v okolju Arduino prikazuje slika 3. Ţe takoj je opazna podobnost z izvajanjem programa v klasičnem programabilnem logičnem krmilniku (slika 1). Funkcija void loop() po namenu in načinu izvajanja ustreza krmilni kodi logičnega krmilnika. Slika 3. Program v okolju Arduino in način izvajanja. Na podlagi te podobnosti se porodi zamisel realizacije funkcionalnosti programabilnih logičnih krmilnikov v okolju Arduino, ki jo prikazuje slika 4. Slika 4. Realizacija koncepta PLK v okolju Arduino.

21 10 3. Krmilnik strojni del 3.1 Razvojno okolje AT90USB646 je 8-bitni RISC mikrokontroler iz druţine AVR, proizvajalca Atmel. Ima integriran vmesnik USB, ki omogoča neposreden priklop na vodilo USB in lahko prevzame vlogo katerekoli USB naprave. Podpira moţnost t.i. zagonskih nalagalnikov (angl. bootloaders), s pomočjo katerih lahko programiramo čip neposredno prek vodila USB. Ta moţnost je tudi uporabljena v tem projektu za programiranje krmilnika. Osnovni podatki o čipu so prikazani v tabeli 2. Več o mikrokontrolerju je mogoče prebrati v [5]. Tabela 2. Specifikacija mikrokontrolerja. Za razvoj projekta je bila izbrana razvojna ploščica Teensy++ [21] (slika 5), ki je po formatu podobna ploščicama Arduino Nano ter Arduino Pro Mini (več v [22]), od njiju se loči po zmogljivejšem mikrokontrolerju, več vhodno/izhodnih noţicah in tem, da je sestavljena zgolj iz čipa in pasivnih komponent, ki so nujne za njegovo delovanje. Je samostojna enota, ki jo lahko ţe takoj pričnemo programirati in povezovati z drugimi elementi. Preprostost ploščice odpravlja zahteve po dodatnih prilagoditvah pri morebitni izdelavi krmilnika v posebnem tiskanem vezju. Slika 5. Razvojna ploščica Teensy++ (slika vzeta iz proizvajalčeve domače strani). V ploščici je tovarniško naloţen zagonski nalagalnik HalfKay, ki (kot ţe ime namiguje) zasede samo polovico bajta v programskem pomnilniku čipa. V povezavi z njim deluje odprtokodni programček za prenos kode teensy_cli, ki je na voljo za operacijski sistem Linux. Sam zagonski nalagalnik v čipu je licenčno lastniške (angl. proprietary) narave, vendar ga je mogoče nadomestiti z odprtokodno različico. Moţna pa je tudi uporaba nalagalnikov, ki podpirajo protokole drugih programov za prenos. Za ploščico je na voljo prilagojeno razvojno okolje Arduino [12], skupaj z večino prilagojenih osnovnih

22 11 programskih knjiţnic tega okolja. Izbira jezika in knjiţnic Arduino odpira vrata ideji morebitne uporabe programske kode in realizacije krmilnika v obliki rezine na klasičnih razvojnih ploščicah Arduino Opis Strojna zasnova krmilnika izhaja iz zasnove programabilnega krmilnika na osnovi mikrokontrolerja Intel 8052, objavljene v reviji Elektor Electronics [2]. Ta je bila prilagojena mikrokontrolerju AT90USB646 in načinu programiranja prek USB vodila, dodano je bilo vezje za serijsko komunikacijo z računalnikom, dodatna signalna dioda in nekatere druge podrobnosti. Programska oprema, ki nadzoruje krmilnik in izvajanje krmilnega programa ter zagotavlja podlago za pisanje in integriranje krmilnih programov, je rezultat dela te naloge in je napisana v programskem okolju Arduino za mikrokontroler AT90USB646. Krmilnik je sestavljen iz treh funkcionalno ločenih vezij ter vezja z vhodi in izhodi (slika 6). Vezje z vhodi in izhodi je po sami funkciji zunanji modul, ki se lahko razlikuje, kombinira in zamenja glede na potrebo in zahteve krmiljenja. Ostala tri vezja skupaj sestavljajo celoto, ki funkcionalno ustreza krmilniku in je osnovni modul fizične konfiguracije, ki ostaja vseskozi enak. Celotna shema vezja krmilnika je podana v dodatku C. Slika 6. Shematski prikaz krmilnika.

23 Napajanje Vezje za napajanje (slika 7) skrbi za pretvorbo izmeničnega napajanja 220V v stabilno enosmerno napajanje 5V. Poleg tega priskrbi še dodaten signal (PSSig), preko katerega v mikrokontrolerju zaznavamo motnje v napajanju in nam omogoča da predvidimo izpad napajanja in izvedemo poljubno (kratko) programsko rutino, še preden krmilnik preneha delovati. Slika 7. Vezje za napajanje (shema povzeta po [2]). 3.4 Mikrokontroler Pet noţic (od C3 do C7) mikrokontrolerja AT90USB646 je porabljenih za povezavo z vezjem PLK. Od tega so tri konfigurirane kot vhodi, dve pa kot izhoda (tabela 3). Tabela 3. Uporaba nožic mikrokontrolerja in opis funkcij, ki jo jim določene. Ena dodatna noţica (E6) je uporabljena za realizacijo funkcije RESET, ki resetira mikrokontroler. Noţica je konfigurirana kot vhod, ki ob spremembi v visoko stanje sproţi prekinitev, pripadajoč prekinitveni servisni program pa resetira čip z aktiviranjem čuvaja (angl. watchdog) in nastavitvijo minimalnega moţnega časa odštevanja. Ta pristop je bil izbran zaradi specifik Teensy++ razvojne ploščice in zagonskega nalagalnika, ki ga

24 13 uporablja čip. Signal na vhodu RESET, ki je dostopen na ploščici, namreč po resetiranju čipa zaţene zagonski nalagalnik in ga postavi v stanje pripravljenosti. To pa za nadaljevanje zahteva sodelovanje razvojne programske opreme na PC računalniku, kar ne ustreza ţelenemu vedenju funkcije RESET krmilnika. Slika 8. Uporaba nožic mikrokontrolerja. Slika 8 prikazuje celotno vezavo noţic mikrokontrolerja. Noţica C6, prek katere se vrši nastavljanje pomnilne celice RS, ki hrani podatek o vrsti zagona krmilnika, ter vklop/izklop izhodnih modulov, je na pomnilno celico vezana prek inverterja. Na ta način stanje LOW na noţicah mikrokontrolerja AT90USB646, ki se privzeto pojavi ob zagonu ali resetu, ne pokvari vsebine pomnilne celice. Dve noţici (D2 kot RX in D3 kot TX) sta porabljeni za serijsko komunikacijo in ju krmili strojni UART vmesnik, ki ga vsebuje čip. Tri noţice (F0, F1 in F2) so uporabljene za priklop dveh vhodnih in enega izhodnega modula. Noţici D0 (SCL) in D1 (SDA) sta prosti in na voljo za povezovanje prek vmesnika TWI (I 2 C). Noţice B1 (SCLK), B2 (MOSI) in B3 (MISO) so proste in na voljo za povezovanje prek vmesnika SPI. Povezava na USB povezovalni kabel do računalnika za programiranje in komunikacijo prek navideznega COM vmesnika poteka prek v čip vgrajenega vmesnika USB in nanj priklopljenega konektorja USB MINI-B.

25 Vezje PLK To vezje (slika 9) omogoča mikrokontrolerju da se navzven vede kot klasični programabilni logični krmilnik. Osrednja značilnost je pomnilna celica RS (flip-flop), ki hrani stanje krmilnika pred resetiranjem. Preprosta»operacijska«programska oprema krmilnika (programski nadzornik) na podlagi stanja te pomnilne celice ob zagonu ugotovi ali je šlo za»trdi«ali»mehki«reset in temu ustrezno nadaljuje. Slika 9. Vezje PLK (shema povzeta po [2]). Vezje skrbi tudi za to, da med stanjema RESET in STOP vsi izhodi preidejo v izključeno stanje (signal OE v nizko stanje). Zunanji nadzor izvajanja se vrši prek stikala STOP-RUN- RESET in treh LED diod, ki prikazujejo stanje, v katerem se nahaja krmilnik. Dve diodi (STOP, RUN) krmili samo vezje, tretjo (ERR/RESET) pa programski nadzornik neposredno prek izhodne noţice ERRout (C3). 3.6 Komunikacija Pretvorbo TTL nivojev, ki jih generira vmesnik UART mikrokontrolerja, v RS232 nivoje in obratno vrši specializirano integrirano vezje MAX232, ki je kot naprava DCE (Digital Control Equipment) priključeno na standardni RS232 konektor, kot kaţe slika 10.

26 15 Slika 10. Vezje za serijsko komunikacijo RS232.. Alternativno je na voljo tudi navidezni COM vmesnik prek povezave USB, ki ga ob ustrezni konfiguraciji vzpostavi programska oprema v mikrokontrolerju. 3.7 Vhodi in izhodi Za povezovanje z vhodno/izhodnimi moduli sta na voljo vodili SPI in I 2 C ter preostale vhodno/izhodne noţice krmilnika (osem noţic je v krmilniku uporabljenih za povezavo s PLK vezjem ter vmesnik RS232). Ob uporabi vmesnikov SPI in I 2 C se število noţic, ki so na voljo za neposredno povezovanje, ustrezno zmanjša. Krmilnik v konfiguraciji, ki jo opisuje ta projekt, ima dodani dve digitalni vhodni in eno digitalno izhodno vezje. Vhodi in izhodi so galvansko ločeni, zaščiteni pred prenapetostjo, napetostnimi špicami in zamenjavo polaritete. Proţeni so z enosmerno napetostjo 24V. Vhod sporoča stanje preko signala, ki je vezan neposredno na vhodno noţico mikrokontrolerja. Ko je na vhodni strani vezja visoko stanje, je tudi TTL signal v visokem stanju. Vezje prikazuje slika 11.

27 16 Slika 11. Krmilnikov vhod (slika povzeta po [2]). Izhodno vezje (slika 12) je prek signala OE (omogoči izhode) povezano z vezjem PLK. Krmiljenje poteka prek signala, ki je priključen na ustrezno izhodno noţico mikrokontrolerja. Izhod modula se postavi v visoko stanje, ko je signal OE v visokem stanju in krmilni TTL signal (vezan na noţico mikrokontrolerja) v nizkem stanju. Slika 12. Izhod krmilnika (slika povzeta po [2]). Na krmilnik je na ta način mogoče priključiti skupno do 38 vhodnih oziroma izhodnih vezij (mikrokontrolerjeva vrata A, B, F, pet prostih noţic vrat D, šest prostih noţic vrat E ter tri proste noţice vrat C).

28 17 4. Krmilnik programski del Slika 13. Prikaz delovanja krmilnika. Z rdečimi puščicami je ponazorjen krmilnikov izvajalni cikel. Diagram na sliki 13 prikazuje delovanje krmilnika. Ob izvajanju prvega cikla nadzorna programska oprema (programski nadzornik) najprej preveri stanje pomnilne celice na vhodu

29 18 FFIN. V primeru, da je ta v nizkem stanju, torej je predhodno prišlo do t.i.»trdega reseta«(normalni zagon), takoj začne prvi cikel. V nasprotnem primeru je prišlo do»mehkega reseta«, ki ga je sproţil čuvaj (angl. watchdog) po preteku dovoljenega časa za izvajanje krmilnega programa. To je stanje napake, ki ga signalizira priţgana rumena LED dioda, iz njega pa je mogoče izstopiti zgolj s premikom stikala STOP-RUN-RESET v pozicijo STOP. Izvajanje se vrši v neskončni zanki. Sleherni cikel se začne zgolj, ko je stikalo STOP-RUN- RESET v poziciji RUN in je signal stabilnosti napajanja, ki ga zagotavlja napajalnik, v visokem stanju (torej signal na vhodu VOLTAGEIN v nizkem). V nasprotnem primeru krmilnik»stoji«in čaka, da so pogoji izpolnjeni. 4.1 Čas Merjenje časa je realizirano (datoteka mplk_time.pde) z uporabo knjiţnice MsTimer2 [8]. Gre za časovnik, ki ga nastavimo prek knjiţnice, prekinitveni servisni program pa vsakih 100 ms kliče funkcijo, ki aţurira krmilnikove časovne spremeljivke (slika 14). Slika 14. Nastavitev časovnika. Funkcija void mplk_100mspassed() aţurira globalne spremenljivke, ki hranijo vrednosti trenutnega časa na način, ki ga prikazuje slika 15. Slika 15. Izračunavanje časa po preteku 100ms. Dostop do časa poteka z uporabo funkcij na sliki 16.

30 19 Slika 16. Funkcije za ravnanje s časom. Čas teče samo, ko so v krmilniku izpolnjeni vsi pogoji za izvajanje programskega cikla (t.i.»scan«cikla), sicer čas miruje. 4.2 Podatkovni bloki in registri Izmenjava podatkov med zunanjim svetom in krmilnim programom je realizirana s pomočjo podatkovnih blokov - posebne tabele spremenljivk, ki jih je mogoče brati in spreminjati iz računalnika PC prek serijske povezave. Ti podatkovni bloki so implementirani v datoteki mplk_datablocks.pde na način kot je razvidno iz kode na sliki 17. Slika 17. Implementacija podatkovnih blokov. Konstanta MAX_DATA_BLOCKS določa število blokov. Biti mora ustrezno prilagojena številu blokov, ki jih uporablja krmilni program. Zaradi enostavnosti predstavitve so v nadzorniku implementirani samo podatkovni bloki tipa int (podobno bi implementirali tudi hranjenje vrednosti ostalih podatkovnih tipov).

31 20 Na podoben način so v krmilniku realizirani tudi posebni»registri«dolţine enega bajta. V opisani izvedbi je realiziran samo en register, t.i. sistemski register, ki v svojih bitih hrani podatke o trenutnem stanju krmilnika. Te podatke lahko prek tega registra beremo iz krmilnega programa na podoben način kot beremo podatkovne bloke. V realiziranem sistemskem registru je bistven samo najniţji bit, ki je postavljen samo, ko krmilnik izvaja cikel prvič (z detekcijo tega bita v krmilnem programu realiziramo npr. inicializacijo spremenljivk). 4.3 Komunikacija in preprost protokol Protokol temelji na abecedi ASCII. Je sinhrone narave (vsakemu zahtevku sledi pripadajoč odgovor) in predpostavlja povezavo točka-v-točko, pri kateri je zunanja naprava (npr. PC) gospodar, krmilnik pa suţenj. Ima zelo preprost in poenostavljen mehanizem za ugotavljanje napak in sporov (ko prejeti podatki ne ustrezajo nobeni izmed predpisanih oblik zahtev, jih krmilnik zavrţe, kot odgovor pa pošlje sporočilo o neznani zahtevi). Protokol pozna tri vrste zahtev ter en poseben odgovor, ki so opisani v tabeli 4. Parametri (naslov podatkovnega bloka, nova vsebina, vsebina bloka) so podani kot niz sledečih si znakov v abecedi ASCII, ki jim na koncu sledi poseben znak LOČILO. Za LOČILO je rezerviran znak ' ' (presledek). Tabela 4. Protokol za komunikacijo. Zaradi enostavnosti so v krmilniku implementirani samo celoštevilski podatkovni bloki in streţba tovrstnih zahtev prek serijske povezave. Števila se iz krmilnika prenašajo kot nizi znakov. Komunikacija je mogoča bodisi prek povezave RS232, bodisi prek USB kabla in navideznega COM vmesnika, ki ga vzpostavi programska oprema v mikrokontrolerju.

32 21 Sistemske nastavitve komunikacije se nahajajo v datoteki SETUP.pde. Konstanta SERIAL_COMMUNICATION_CYCLE določa, v katerem zaporednem ciklu naj se izvede streţba trenutnega fragmenta prispele komunikacijske zahteve. S spreminjanjem te konstante spreminjamo razmerje odzivnost komunikacije / odzivnost krmiljenja, s čimer posledično vplivamo na delovanje krmilnika. Vrednost konstante npr. 100 bi pomenila streţbo fragmenta obravnavane komunikacijske zahteve le v vsakem stotem ciklu. Do serijskih vmesnikov dostopamo prek Arduino razredov Serial (prek USB) in Uart (prek RS232). Izbiramo jih prek konstant SerialComm in SerialDebug (s prvo izberemo serijski vmesnik, ki se bo uporabljal za komunikacijo, z drugo pa vmesnik za izpis sporočil za spremljanje delovanja in razhroščevanje). Podajanje komunikacijskih parametrov je prikazano na sliki 18. Slika 18. Nastavitev komunikacijskih parametrov. Uporabo vmesnikov (npr. ko ne potrebujemo razhroščevanja) onemogočimo (in sprostimo mikrokontrolerjev ukazni pomnilnik) tako, da ustrezno definicijo konstante za izbiro vmesnika zakomentiramo. Serijska komunikacija je implementirana v datoteki mplk_serial.pde. Trenutna zahteva se hrani v treh spremenljivkah, ki jih glavna funkcija void communication_serveserial() posodablja sproti ob vsakem klicu glede na prispeli podatek na vmesniku (slika 19). Slika 19. Spremenljivke, v katerih se hrani trenutno obravnavana zahteva. Glavna komunikacijska funkcija void communication_serveserial(), ki jo kliče sistemska programska oprema (nadzornik), v vsakem N-tem zaporednem ciklu, kot je določeno v nastavitvah, preveri če je na vmesniku na voljo podatek. Če je, ga zapiše v ustrezno spremenljivko (kot ukaz ali parameter). Ta del kode je prikazan na sliki 20.

33 22 Slika 20. Prepoznavanje prispele komunikacijske zahteve. Dolţina ukazov je vedno fiksna 1 bajt, zato z njimi ni teţav. Parametri pa prek serijskega vmesnika prihajajo v obliki niza zaporednih ASCII znakov, zaključenih z bajtom SERIAL_SEPARATOR. Pretvorba v celoštevilsko vrednost, primerno za zapis v spremenljivki serial_param1 oziroma serial_param2, se zato vrši prek funkcij void communication_addparam( int ) in int communication_computeparameter(). Prva prispele znake po vrsti shranjuje v polje int serial_nbuffer[ SERIAL_NBUFFER_MAXSIZE ], druga pa iz niza shranjenih znakov izračuna in vrne celoštevilsko vrednost, ki jo ti predstavljajo. Funkcija communication_serveserial() hkrati tudi implementira prepoznavanje in izvrševanje prispelih serijskih zahtev. Ta del kode prikazuje slika 21.

34 23 Slika 21. Strežba prispelih zahtev. 4.4 Krmilni program Krmilni program se nahaja v obliki dela kode na posebnem mestu v datoteki mplk_mainloop.pde (sem se med prevajanjem prepiše iz datoteke CONTROL.pde). Čas izvajanja tega dela kode je omejen s konstanto v datoteki CONFIGURATION.pde: #define WATCHDOG_TIME_PARAMETER WDTO_15MS Ključna za pravilno delovanje krmilnika je hitra odzivnost na spremembe na vhodih in ustrezno hitra reakcija s spremembami na izhodih. Zato čas izvajanja krmilnega cikla (in s tem krmilnega programa) ne sme biti poljubno dolg. Z omejitvijo časa izvajanja se izognemo tudi nepredvidljivostim v primeru, da se krmilni program zaradi napake ujame v neskončno zanko. Po preteku maksimalnega časa mikrokontroler resetira krmilnik, izvajanje pa nato prevzame programski nadzornik.

35 24 5. Razvojno okolje Ena izmed zamisli pri snovanju razvojnega okolja je bila uporaba urejevalnika PLCOpenEditor iz projekta Beremiz ter prilagoditev njihovega prevajalnika MatIEC, ki tekstovno programsko kodo, ki jo na podlagi grafičnih gradnikov generira urejevalnik, prevede v prilagojen program v jeziku C. Kot alternativa temu se je kazala moţnost uporabe orodij, kot sta TXL ali platforma Coco/R (več o teh dveh orodij je moč najti v [1] in [3]), za neposreden razvoj prevajalnika za pretvorbo generirane kode v jeziku ST v kodo v jeziku Arduino. Na koncu sem se odločil za razvoj samostojnega programskega okolja, ki se zgleduje po standardih, vendar je dovolj preprost, da ga je mogoče realizirati v časovnih okvirih te naloge, hkrati pa tudi dovolj daljnoseţno zasnovan, da ga je mogoče kasneje nadgrajevati. Slika 22. Shematski prikaz zgradbe razvojnega okolja. Razviden je tok krmilnega programa od grafičnega urejanja do prenosa v krmilnik.

36 25 Zgradbo okolja za razvoj krmilnih aplikacij prikazuje slika 22. Osnovni del, v katerem uporabnik izrisuje krmilni algoritem in določa parametre (»razvojno okolje«v oţjem smislu) je napisano v jeziku Java. Je orodje, s katerim programer upravlja celoten postopek risanja, gradnje in prenosa programa v krmilnik. Najpomembnejša naloga tega dela je generiranje ciljne kode programa v jeziku C++ na podlagi sheme gradnikov, ki jo sestavi programer krmilnika. Prevajanje te kode, zdruţene s kodo programskega nadzornika, v ozadju vrši prevajalnik GNU C++ za mikrokontrolerje AVR. Prenos programa v krmilnik prek povezave USB se izvede s pomočjo odprtokodnega programa teensy_cli [16]. Postopek prevajanja in prenosa programa v krmilnik povezujejo skripte v lupini Bash. Razvojno okolje deluje v operacijskem sistemu Linux. V sklop razvojnega okolja sodi tudi preprosta knjiţnica v jeziku Java za dostop do podatkovnih blokov krmilnika preko serijske povezave iz računalnika PC. 5.1 Programski jezik podajanje programa Programski jezik FBD (Function Block Diagram) je eden izmed petih programskih jezikov, ki jih za programiranje PLK krmilnikov predvideva standard IEC Je grafični jezik, v katerem pri programiranju sestavljamo programske gradnike v celoto. Predstavljeno razvojno okolje se v grobem zgleduje po tem programskem jeziku in načinu programiranja, ki ga ta prinaša. Osredotočil sem se na dve osnovni programski enoti iz standarda IEC: funkcije in funkcijske bloke. Funkcije ustrezajo funkcijam v klasičnih programskih jezikih. Funkcijski bloki pa so neke vrste ekvivalenti razredom in objektom. Instance funkcijskih blokov (ter vrednosti, ki jih hranijo) se ohranjajo skozi ves čas izvajanja programa. Tretji tip gradnikov v predstavljenem okolju so spremenljivke. Te v obliki grafičnih gradnikov nastopajo bodisi kot izvor ali ponor. Poseben razred gradnikov, ki vključuje tudi ponorni tip spremenljivk, so terminali. To so končni elementi, ki nimajo izhodov. Gradnike, ki jih podpira razvojno okolje, prikazuje tabela 5.

37 26 Tabela 5. Gradniki, ki jih podpira razvojno okolje. Pri realizaciji spremenljivk sem se omejil na tri podatkovne tipe iz širšega nabora, ki ga določa standard. To so najenostavnejši tipi, ki jih je mogoče neposredno preslikati v tipe jezika Arduino. Predstavljeni so v tabeli 6, skupaj s podrobnostmi same implementacije. Tabela 6. Realizacija podatkovnih tipov programskega jezika. Spremenljivke se ločijo tudi po vrsti (tabela 7). Ta določa kako bo posamezna spremenljivka deklarirana oziroma kakšen pomen bo v programu imela.

38 27 Tabela 7. Vrste spremenljivk in način njihove realizacije. Direktne spremenljivke so posebna vrsta spremenljivk. To so spremenljivke prek katerih dostopamo do vhodov, izhodov ali posebnih lokacij (npr. t.i. podatkovni bloki, ki jih podpira predstavljeni krmilnik). Direktna spremenljivka v krmilnem programu je predstavljena kot navadna spremenljivka vrste direct, ki ima določeno lokacijo. Z dostopom do take spremenljivke dejansko dostopamo do lokacije. Primer poimenovanja lokacij podaja tabela 8. Uporabniku so imena lokacij predstavljena z začetnim znakom % (odstotek), npr. %I0.0. Tabela 8. Primer poimenovanja lokacij krmilnika z razlago. Standard pri poimenovanjih spremenljivk, funkcij, funkcijskih blokov ter ostalih programskih elementov, predpisuje obliko, ki ne loči velikih in malih črk. Vsa imena se zato pri prevajanju v C++ pretvorijo v obliko z majhnimi črkami, imena funkcijskih blokov (razredov) pa v obliko z velikimi črkami. 5.2 Generiranje izvorne kode Predstavitev in generiranje ciljne kode je implementirano z razredom FormattedCode v jeziku Java. Ta razred omogoča sestavljanje formatirane izvorne kode, ki jo na koncu lahko izvozimo kot niz. Metode razreda so opisane na sliki 23.

39 28 Slika 23. Programski vmesnik razreda za generiranje in predstavitev ciljne kode. Gradnja celotne aplikacije je implementirana v razredu CodeGenerator s statično metodo void generatecode(). Ta metoda ločeno generira deklaracije globalnih in lokalnih spremenljivk, kodo za inicializacijo direktnih spremenljivk, kodo za preslikovanje vhodov/izhodov in krmilno kodo ter vsako zapiše v ustrezno datoteko. Generiranje kode iz grafične predstavitve krmilnega programa se vrši na način, da ima vsak logični gradnik tipa LogicalPort oziroma LogicalTerminalBlock implementirano metodo public FormattedCode getformattedcode(), ki vrne ustrezno izvorno kodo, ki ustreza temu bloku in podanim parametrom. Metoda pridobi vhodne podatke pozameznih vhodnih vrat tako, da kliče metodo getformattedcode() tistih izhodnih logičnih vrat, ki so na ta vhodna vrata povezana. Logični bloki so na podlagi diagrama povezani med seboj prek logičnih vrat (angl. port) tako, da so vsaka vhodno orientirana vrata povezana z natanko enimi logičnimi vrati, ki so orientirana izhodno. Logična vrata predstavljajo vhodne parametre in izhodne rezultate posameznega bloka. Vsak logični končni gradnik (terminal) predstavlja nek končni rezultat in generira svoj segment kode. Generiranje kode sproţimo s klicem njegove funkcije generateformattedcode(). Imena spremenljivk, ki nastopajo v programu, se med prevajanjem pretvorijo v»nadzorniku prijazna«imena. Konflikti, ki bi utegnili nastopiti ob ujemanju z rezerviranimi besedami jezika C++ in spremenljivkami ter imeni, ki jih uporablja nadzornik, se preprečijo z dodajanjem dvojnega podčrtaja (» «) na začetku imena spremenljivk. Podobno se rešijo moţni konflikti pri imenih funkcij in instanc funkcijskih blokov. Imena instanc funkcijskih blokov se generirajo po pravilu: dvojni podčrtaj + ime funkcijskega bloka + podčrtaj + ID logičnega bloka (oznaka, ki je v zapisu programa lastna tej instanci).

40 Realizacija programskih gradnikov Primer realizacije funkcije je gradnik EQ (slika 24), ki primerja dve vrednosti na vhodih in vrne rezultat tipa BOOL. Slika 24. Grafična predstavitev gradnika za primerjanje. Generiranje kode gradnika se vrši s kodo na sliki 25. Slika 25. Koda za generiranje ciljne kode gradnika EQ. Postavitev z dvema vhodnima in eno izhodno spremenljivko (slika 24) nam tako generira kodo na sliki 26. Slika 26. Generirana koda za funkcijo EQ.

41 30 Primer funkcijskega bloka je gradnik za detekcijo pozitivne fronte R_TRIG, prikazan na sliki 27. Slika 27. Grafična predstavitev gradnika za detekcijo pozitivne fronte. Funkcijski blok je na nivoju jezika C++ realiziran kot razred. Implementacijo funkcijskega bloka za detekcijo pozitivne fronte prikazuje slika 28. Slika 28. Realizacija funkcijskega bloka za detekcijo pozitivne fronte v C++. Generiranje kode je v tem primeru malenkost bolj zapleteno. Ta del kode je prikazan na sliki 29.

42 31 Slika 29. Koda za generiranje ciljne kode za klic instance funkcijskega bloka. Ob predpostavki, da je ID gradnika v diagramu enak»3«, nam postavitev iz slike 27 generira ciljno kodo, ki je predstavljena na sliki 30. Hkrati s tem na mesto globalnih deklaracij (datoteka GLOBALS.pde) vstavimo deklaracijo instance razreda (instanca r_trig_3). Vsak v krmilni diagram vstavljen gradnik funkcijskega bloka je lastna instanca svojega razreda. Slika 30. Generirana koda za klic instance funkcijskega bloka R_TRIG. Realizacija in generiranje kode običajnih spremenljivk sta trivialna in razvidna ţe na podlagi zgornjih primerov. Končni gradnik (ponor) preprosto generira stavek za prirejanje z ustrezno prilagojenim imenom spremenljivke na levi strani in kodo, ki jo generira element povezan z vhodom, na desni strani. Gradnik izvorne spremenljivke pa ob klicu metode za generiranje kode zgolj vrne prilagojeno ime spremenljivke. Obravnava direktnih spremenljivk je bolj zapletena. To so spremenljivke, ki imajo pripisano lokacijo. Njihovo vključevanje v končno kodo opisuje slika 31. Lokacije so specifične za vsako fizično konfiguracijo krmilnika posebej (priključeni V/I moduli ipd.) in so definirane v posebni datoteki (npr. locations.xml) na način, ki ga podaja slika 32. Zgradbo datoteke pa podaja slika 33.

43 32 Slika 31. Direktna spremenljivka. Slika prikazuje deklaracijo direktne spremenljivke v krmilnem programu (levo zgoraj) ter njeno vključitev v kodo programskega nadzornika (desno). Slika 32. Definicija lokacije in opis lastnosti.

44 Slika 33. Zgradba datoteke z definicijami lokacij. 33

45 Prevajanje in krmilni program Programska koda končne krmilne aplikacije je zdruţena na enem mestu in razporejena v hierarhijo, ki jo opisuje tabela 9. Del teh datotek posredno spreminja programer, ko riše krmilni program v razvojnem okolju. Ostale datoteke so nespremenljive in so bodisi del kode nadzornika bodisi skripte, knjiţnice ali orodja potrebna za prevajanje in prenos kode v krmilnik. Tabela 9. Hierarhija datotek, ki so potrebne za prevajanje. Uporabniško kodo in nastavitve, ki jih generira razvojno okolje, vključimo med gradnjo v program prek #include direktiv v kodi nadzornika (definicije globalnih spremenljivk, konfiguracija) ter z zdruţevanjem segmentov kode nadzornika ter uporabniške kode. Zdruţevanje je realizirano s preprostim prepisovanjem v datoteki Firmware/Core/Makefile.

46 35 Gradnjo izvršne kode krmilne aplikacije v treh korakih in prenos kode v krmilnik ponazarja slika 34. Slika 34. Postopek prevajanja.

47 Integrirano razvojno okolje Pri oblikovanju okolja so bili upoštevani zgledi ostalih razvojnih okolij za programiranje krmilnikov ter uveljavljenih okoljih splošnih programskih jezikov. Zaslon je tako razdeljen na pet pomembnejših enot: - paleto s programskimi gradniki, - okno s prikazom definiranih spremenljivk, ki jih uporabljamo v programu, - okno s prikazom lastnosti trenutno izbranega gradnika, - krmilni diagram, ki je grafična predstavitev krmilnega programa in nastavitve parametrov krmilnika, - okno z izpisom rezultata prevajanja. Slika 35. Glavni pogled razvojnega okolja. Slika 35 prikazuje glavni pogled v razvojnem okolju. V spodnjem delu zaslona se nahaja zavihek»variables«s seznamom spremenljivk, ki so deklarirane v trenutno odprtem krmilnem programu. Spremenljivke lahko brišemo iz seznama ali jih dodajamo s klikom na ustrezen gumb. Pri dodajanju nove deklaracije spremenljivke se odpre okno, v katerem vpišemo ime spremenljivke, izberemo podatkovni tip in vrsto (lokalna, globalna, direktna),

48 37 pri direktnih pa tudi njihovo lokacijo (slika 36). Spremenljivko dodamo kot gradnik v krmilni diagram tako, da jo izberemo na seznamu in kliknemo ukazni gumb»insert as a source«(kot izvor) ali gumb»insert as a sink«(kot ponor). Slika 36. Dodajanje deklaracije nove spremenljivke. Na desnem delu zaslona se nahaja zavihek»blocks«s programskimi gradniki, ki jih v krmilni diagram dodajamo s klikom na ustrezen gumb. Pod njim je zavihek»properties«(slika 37), v katerem se izpisujejo lastnosti gradnika, ki je trenutno izbran v diagramu. Slika 37. Zavihek "PROPERTIES", v katerem se prikazujejo lastnosti trenutno izbranega gradnika. Nastavitve parametrov, ki jih uporabljamo v krmilni aplikaciji, podamo kot kodo XML v zavihku»configuration«(slika 38). Te nastavitve so del krmilnega programa. Moţnosti in razširjen primer nastavitve krmilnika prikazuje slika 39.

49 38 Slika 38. Določanje parametrov krmilnika. Slika 39. Primer nastavljanja parametrov krmilnika.

50 39 Prevajanje programa sproţimo z izbiro v meniju Build > Build program (ali bliţnjico CTRL+B). Podobno sproţimo prenos prevedenega programa v krmilnik z izbiro Build > Upload to controller (ali izbiro CTRL+U). Opis uspešnosti teh postopkov se izpiše v zavihku»build OUTPUT«, ki ga najdemo na spodnjem robu okna (slika 40). Slika 40. Okno z izpisom rezultatov prevajanja. 5.6 Knjižnica za dostop do podatkov v krmilniku V sklopu razvojnega okolja je bila razvita tudi preprosta knjiţnica v jeziku Java za dostop do krmilnikovih podatkovnih blokov iz računalnika PC. Serijska komunikacija je implementirana z uporabo knjiţnice Giovynet [9]. Knjiţnica za dostop je zgolj zrcalna slika implementacije protokola v krmilnikovem programskem nadzorniku. Omogoča vzpostavitev povezave s krmilnikom, oddaljeno branje vrednosti podatkovnih blokov in spreminjanje njihove vsebine (slika 41).

51 40 Slika 41. Metode razreda za dostop do podatkov v krmilniku in primer uporabe (celoštevilski konstanti DB_TEMPERATURE in DB_SWITCH hranita naslova ustreznih blokov v krmilniku, spremenljivka newvalue pa novo celoštevilsko vrednost bloka).

52 41 6. Primer uporabe krmiljenje ogrevanja Uporaba je predstavljena s preprostim krmiljenjem ogrevanja. Krmilnik prek relejskega izhoda neposredno krmili napajanje grelca. Trenutno temperaturo v prostoru pa spremlja s pomočjo senzorja, ki je priključen na krmilnik prek vodila I 2 C. Delovanje krmilnika spremljamo na oddaljenem PC računalniku s preprostim programom, ki je s krmilnikom povezan serijsko prek povezave RS232. S programom krmilimo grelec ter nastavljamo ţeleno tempeaturo sobe. 6.1 Vhodno / izhodna konfiguracija Na vhodno izhodnem modulu je rele, ki se krmili preko namenskega čipa ULN2803. Izhod je krmiljen neposredno z nastavljanjem vrednosti izhodne noţice mikrokontrolerja, na način, da nizko stanje na noţici pomeni visoko stanje na izhodu krmilnika. Do izhoda dostopamo prek lokacije %Q0.0. Za merjenje temperature je uporabljen senzorski modul proizvajalca Conrad (slika 42), ki je s krmilnikom povezan prek povezave I 2 C (več o senzorskem modulu v dodatku D in [7]). Do senzorja dostopamo prek lokacije %IA1.0. Slika 42. Temperaturni senzor Conrad C-CONTROL (slika vzeta iz proizvajalčeve domače strani). Definicijo lokacij (datoteka locations.xml) za to vhodno/izhodno postavitev podajajo slike od 43 do 45. Branje senzorja prek vodila I 2 C je relativno zahtevna operacija, temu primerno je kompleksna tudi definicija lokacije. Za branje potrebujemo knjiţnico Wire.h, ki je standardni del okolja Arduino. Branje in pretvorba podatkov v temperaturo poteka v štirih korakih, ki jih opisuje koda na sliki 45. V nasprotju s tem je pisanje na izhod zelo preprosto. Definicijo lokacije izhoda podaja slika 43.

53 42 Slika 43. Definicija lokacije izhoda. Slika 44. Lastnosti definicije lokacije senzorja - prvi del.

54 Slika 45. Lastnosti definicije lokacije senzorja - drugi del (branje podatka in zapis temperature v spremenljivko). 43

55 Krmilni program Krmilni program (slika 46) primerja izmerjeno temperaturo z nastavljeno vrednostjo in glede na to izhod, ki krmili grelec, postavi v visoko ali nizko stanje. Komunikacija z računalnikom PC poteka prek povezave RS232 z uporabo štirih podatkovnih blokov, preko katerih se prenašajo parametri med računalnikom in krmilnikom (nastavitve na sliki 47). Uporabljene spremenljivke in njihove deklaracije so predstavljene na sliki 48. Slika 46. Krmilni program za vzdrževanje temperature v prostoru.

56 45 Slika 47. Nastavitve parametrov krmilnika. Slika 48. Deklaracija uporabljenih spremenljivk v programu. 6.3 Program za oddaljeno spremljanje in nadzor Program na računalniku PC je napisan v jeziku Java z uporabo razreda ProgrammableLogicController, opisanega v poglavju 5.6. Omogoča spremljanje stanja krmilnika (grelec vklopljen ali izklopljen, temperatura sobe), izklop in vklop grelca ter nastavljanje temperaturnega praga. Takoj po zagonu programa se prikaţe okno na sliki 47. V spodnjem desnem kotu je slika, ki ponazarja trenutno stanje grelca. Povezava s krmilnikom se vzpostavi po kliku na gumb v zgornjem levem kotu.

57 46 Slika 49. Osnovni zaslon nadzornega programa (grelec ugasnjen). Po vzpostavitvi povezave se v ustreznem okencu prične izpisovati temperatura prostora. Z vpisom ţelene temperature in klikom na gumb desno od vnosnega polja, se podatki prenesejo v krmilnik. Zaslon s ponazoritvijo stanja delujočega grelca je prikazan na sliki 48. Slika 50. Zaslon s ponazoritvijo delujočega stanja grelca. S ponovnim klikom na gumb v zgornjem levem kotu grelec ugasnemo in prekinemo povezavo s krmilnikom. Branje podatkov iz krmilnika je realizirano v samostojni niti, ki v časovnem intervalu ene sekunde prebere vrednosti podatkovnih blokov iz krmilnika, posodobi izpise v uporabniškem vmesniku ter, če se parametri, ki jih je vnesel uporabnik, razlikujejo od tistih v krmilniku, te zapiše v krmilnik.

58 47 7. Sklep V pričujoči nalogi je bil realiziran preprost krmilnik, ki se po osnovnih značilnostih in načinu delovanja pribliţuje klasičnim programabilnim logičnim krmilnikom. Strojni del zajema krmilnikovo vezje z vezjem za komunikacijo in ločeno vezje za preprost vhodno/izhodni modul. Vezje je bilo zasnovano modularno in razširljivo. Na podlagi tega je bil razvit nadzorni program v jeziku Arduino, ki nadzoruje delovanje krmilnika in izvajanje krmilne kode, omogoča povezovanje drugih naprav s krmilnikom ter skupaj z uporabniško krmilno kodo predstavlja končni krmilni program, ki ga izvaja mikrokontroler. V jeziku Java je bilo implementirano grafično razvojno okolje s preprostim jezikom, ki se zgleduje po standardnem jeziku FBD. Za namene predstavitve delovanja je bil implementiran tudi preprost program za oddaljeno spremljanje in nadzor na računalniku PC ter konfiguracija in program za krmiljenje ogrevanja prostora v jeziku krmilnika. Razvojno okolje v osnovi deluje v operacijskem sistemu Linux, vendar bi bil prenos v druge operacijske sisteme, ki jih podpira prevajalnik GNU C++ za mikrokontrolerje AVR, razmeroma enostaven. Ţe med samim razvojem so se odpirale številne moţnosti za izboljšave in razširitve, vendar sem skušal ostati znotraj okvirov te naloge in se odločil za implementacijo zgolj tistih lastnosti krmilnika, ki so za osnovno ponazoritev nujne. Predstavljeni krmilnik po zmogljivosti in moţnostih, ki jih ponuja, najbrţ ne more konkurirati komercialnim izvedenkam, ki so trenutno na trgu. Je pa toliko dognan, da ga je mogoče uporabiti za številne enostavnejše naloge krmiljenja v okoljih, kjer zanesljivost in kritičnost nista na prvem mestu. Mogoče ga je uporabiti tudi kot izhodišče za nadaljnji razvoj in raziskovanje. Pri uporabi PLK krmilnikov je pomembno, da se uporabniku ni treba spuščati na nivo delovanja elektronskih komponent. V smislu ideje o modularnosti to pomeni, da za uporabo vhodno/izhodnih modulov uporabniku ni potrebno poznati delovanja komponent in le-teh programirati na niţjem nivoju. V primeru predstavljenega krmilnika je bilo to realizirano s pomočjo definicij lokacij. To pomeni, da pri uporabi dodatnih modulov zadostuje, da ima uporabnik na voljo tekstovne definicije lokacij teh modulov. Te vključi v svoj krmilni program, razvojno okolje pa med prevajanjem samo na podlagi teh definicij vključi vso potrebno kodo v končni program. Programski jezik razvojnega okolja podpira zgolj omejeno število vnaprej definiranih funkcij in funkcijskih blokov ter en glavni program, ki jih uporablja. Smiselno bi bilo dodati moţnost definiranja novih funkcij in podatkovnih blokov ter razširiti nabor podatkovnih tipov spremenljivk. Ravno tako bi bilo smiselno dodati podporo obvladovanja izpadov in ponovne vzpostavitve napajanja tudi na nivoju razvojnega okolja. Na strojnem nivoju in nivoju programskega nadzornika bi bilo smiselno prenesti komunikacijo na pomoţni mikrokontrolerski modul in dodati podporo industrijsko bolj uveljavljenim načinom povezovanja (npr. RS485 ter protokol Modbus). Marsikateri del v kodi programskega nadzornika bi bilo mogoče napisati lepše, optimizirati ali drugače izboljšati. Na celotnem nivoju mogoče celo v smeri uporabe katerega izmed odprtokodnih realnočasovnih operacijskih sistemov. Pojav različic programskih knjiţnic in okolja Arduino za močnejše mikrokontrolerje ter razvojnih ploščic, kot je Maple [23], dodatno odpira vrata številnim novim moţnostim.

59 48 Dodatek A Analiza kode programskega nadzornika s programom USC CodeCount Tabela 10. Analiza vrstic kode nadzornika s programom USC CodeCount [17]. USC Unified CodeCount (UCC) (c) Copyright University of Southern California SLOC COUNT RESULTS Generated by UCC v on RESULTS FOR C_CPP FILES Total Blank Comments Compiler Data Exec. Logical File Module Lines Lines Whole Embedded Direct. Decl. Instr. SLOC Type Name CODE../../mPLK/Firmware/Core/firmware.pde CODE../../mPLK/Firmware/Core/mPLK_utils.pde CODE../../mPLK/Firmware/Core/Prototypes.h CODE../../mPLK/Firmware/Core/mPLK_reset.pde CODE../../mPLK/Firmware/Core/mPLK_settings.pde CODE../../mPLK/Firmware/Core/mPLK_mainloop.pde CODE../../mPLK/Firmware/Core/mPLK_datablocks.pde CODE../../mPLK/Firmware/Core/mPLK_serial.pde CODE../../mPLK/Firmware/Core/mPLK_time.pde RESULTS SUMMARY Total Blank Comments Compiler Data Exec. Number File SLOC Lines Lines Whole Embedded Direct. Decl. Instr. of Files SLOC Type Definition CODE Physical CODE Logical Number of files successfully accessed... 9 out of 9 Ratio of Physical to Logical SLOC TOTAL OCCURRENCES OF C_CPP KEYWORDS Compiler Directives Data Keywords Executable Keywords #define FILE... 0 goto... 0 #undef... 0 const... 0 if #if... 1 bool... 0 else #ifdef int for... 2 #ifndef... 0 long... 4 do... 2 #else... 0 unsigned... 2 while... 5 #elif... 0 short... 2 continue... 0 #endif char... 2 switch... 3 #include wchar_t... 0 case... 9 #line... 0 float... 3 break #pragma... 0 double... 0 default... 1 #error... 0 enum... 0 return #dictionary... 0 class... 0 entry... 0 #module... 0 struct... 2 sizeof... 0 #import... 0 union... 0 new... 0 #using... 0 void delete... 0 typedef... 2 try... 0 auto... 0 throw... 0 register... 0 catch... 0 static... 1 typeid... 0 extern... 0 const_cast... 0 namespace... 0 static_cast... 0 asm... 0 dynamic_cast... 0 template... 0 reinterpret_cast... 0 operator... 0 stdin... 0 mutable... 0 stdout... 0 friend... 0 stderr... 0 volatile... 5 cin... 0 using... 0 cout... 0 explicit... 0 cerr... 0 inline... 0 clog... 0 virtual... 0 string... 0

60 49 Dodatek B Primerjava uporabe mikrokontrolerjevih virov pri različnih parametrih A) Samo programski nadzornik, brez funkcionalnosti serijske komunikacije (podano z izpisom skripte avr-mem.sh [15]): AVR Memory Usage: Device: at90usb646 Program: Data: 8532 bytes (13.0% Full) (.text +.data +.bootloader) 119 bytes (2.9% Full) (.data +.bss +.noinit) B) Samo programski nadzornik, omogočena funkcionalnost serijske komunikacije prek RS232: AVR Memory Usage: Device: at90usb646 Program: Data: bytes (18.7% Full) (.text +.data +.bootloader) 235 bytes (5.7% Full) (.data +.bss +.noinit) C) Samo programski nadzornik, omogočena funkcionalnost serijskega povezovanja prek povezave USB (vzpostavitev navideznega serijskega vmesnika programsko v mikrokontrolerju): AVR Memory Usage: Device: at90usb646 Program: Data: bytes (18.8% Full) (.text +.data +.bootloader) 243 bytes (5.9% Full) (.data +.bss +.noinit)

61 50 D) Programski nadzornik, serijska komunikacija prek RS232, štirje podatkovni bloki, krmilni program in vhodno/izhodna konfiguracija iz poglavja 5.2: AVR Memory Usage: Device: at90usb646 Program: Data: bytes (19.0% Full) (.text +.data +.bootloader) 243 bytes (5.9% Full) (.data +.bss +.noinit)

62 51 Dodatek C Fotografija prototipa krmilnika v osnovni konfiguraciji Slika 51. Prototip realizacije krmilnika na luknjičastih ploščicah. Na sliki je dodan digitalni V/I modul z dvema vhodoma in enim tranzistorskim izhodom (krmilna napetost 24V DC). Spodaj desno na sliki je temperaturni senzor Conrad C-Control.

Microsoft Word - CNC obdelava kazalo vsebine.doc

Microsoft Word - CNC obdelava kazalo vsebine.doc ŠOLSKI CENTER NOVO MESTO VIŠJA STROKOVNA ŠOLA STROJNIŠTVO DIPLOMSKA NALOGA Novo mesto, april 2008 Ime in priimek študenta ŠOLSKI CENTER NOVO MESTO VIŠJA STROKOVNA ŠOLA STROJNIŠTVO DIPLOMSKA NALOGA Novo

Prikaži več

DES

DES Laboratorij za načrtovanje integriranih vezij Univerza v Ljubljani Fakulteta za elektrotehniko Digitalni Elektronski Sistemi Digitalni sistemi Vgrajeni digitalni sistemi Digitalni sistem: osebni računalnik

Prikaži več

Delavnica Načrtovanje digitalnih vezij

Delavnica Načrtovanje digitalnih vezij Laboratorij za načrtovanje integriranih vezij Univerza v Ljubljani Fakulteta za elektrotehniko Programirljivi Digitalni Sistemi Digitalni sistem Digitalni sistemi na integriranem vezju Digitalni sistem

Prikaži več

Slide 1

Slide 1 Tehnike programiranja PREDAVANJE 10 Uvod v binarni svet in računalništvo (nadaljevanje) Logične operacije Ponovitev in ilustracija Logične operacije Negacija (eniški komplement) Negiramo vse bite v besedi

Prikaži več

Univerza v Ljubljani FAKULTETA ZA RAČUNALNIŠTVO IN INFORMATIKO Tržaška c. 25, 1000 Ljubljana Realizacija n-bitnega polnega seštevalnika z uporabo kvan

Univerza v Ljubljani FAKULTETA ZA RAČUNALNIŠTVO IN INFORMATIKO Tržaška c. 25, 1000 Ljubljana Realizacija n-bitnega polnega seštevalnika z uporabo kvan Univerza v Ljubljani FAKULTETA ZA RAČUNALNIŠTVO IN INFORMATIKO Tržaška c. 25, 1000 Ljubljana Realizacija n-bitnega polnega seštevalnika z uporabo kvantnih celičnih avtomatov SEMINARSKA NALOGA Univerzitetna

Prikaži več

DES11_realno

DES11_realno Laboratorij za načrtovanje integriranih vezij Univerza v Ljubljani Fakulteta za elektrotehniko Digitalni Elektronski Sistemi Delovanje realnega vezja Omejitve modela vezja 1 Model v VHDLu je poenostavljeno

Prikaži več

Delavnica Načrtovanje digitalnih vezij

Delavnica Načrtovanje digitalnih vezij Laboratorij za načrtovanje integriranih vezij Univerza v Ljubljani Fakulteta za elektrotehniko Digitalni Elektronski Sistemi Osnove jezika VHDL Strukturno načrtovanje in testiranje Struktura vezja s komponentami

Prikaži več

DES

DES Laboratorij za načrtovanje integriranih vezij Univerza v Ljubljani Fakulteta za elektrotehniko Digitalni Elektronski Sistemi Model vezja Računalniški model in realno vezje Model logičnega negatorja Načini

Prikaži več

Delavnica Načrtovanje digitalnih vezij

Delavnica Načrtovanje digitalnih vezij Laboratorij za načrtovanje integriranih vezij Univerza v Ljubljani Fakulteta za elektrotehniko Digitalni Elektronski Sistemi Vmesniki Vodila, vzporedni (paralelni) vmesniki Vmesniki in vodila naprava 1

Prikaži več

Diapozitiv 1

Diapozitiv 1 Vhodno izhodne naprave Laboratorijska vaja 4 - AV 4 Linije LTSpice, simulacija elektronskih vezij VIN - LV 1 Rozman,Škraba, FRI LTSpice LTSpice: http://www.linear.com/designtools/software/ https://www.analog.com/en/design-center/design-tools-andcalculators/ltspice-simulator.html

Prikaži več

5 Programirljiva vezja 5.1 Kompleksna programirljiva vezja - CPLD Sodobna programirljiva vezja delimo v dve veliki skupini: CPLD in FPGA. Vezja CPLD (

5 Programirljiva vezja 5.1 Kompleksna programirljiva vezja - CPLD Sodobna programirljiva vezja delimo v dve veliki skupini: CPLD in FPGA. Vezja CPLD ( 5 Programirljiva vezja 5.1 Kompleksna programirljiva vezja - CPLD Sodobna programirljiva vezja delimo v dve veliki skupini: CPLD in FPGA. Vezja CPLD (angl. Complex Programmable Logic Device) so manjša

Prikaži več

Diapozitiv 1

Diapozitiv 1 9. Funkcije 1 9. 1. F U N K C I J A m a i n () 9.2. D E F I N I C I J A F U N K C I J E 9.3. S T A V E K r e t u r n 9.4. K L I C F U N K C I J E I N P R E N O S P A R A M E T R O V 9.5. P R E K R I V

Prikaži več

Microsoft Word - M docx

Microsoft Word - M docx Š i f r a k a n d i d a t a : ržavni izpitni center *M15178112* SPOMLNSKI IZPITNI ROK Izpitna pola 2 Četrtek, 4. junij 2015 / 90 minut ovoljeno gradivo in pripomočki: Kandidat prinese nalivno pero ali

Prikaži več

Microsoft Word - ELEKTROTEHNIKA2_ junij 2013_pola1 in 2

Microsoft Word - ELEKTROTEHNIKA2_ junij 2013_pola1 in 2 Šifra kandidata: Srednja elektro šola in tehniška gimnazija ELEKTROTEHNIKA PISNA IZPITNA POLA 1 12. junij 2013 Čas pisanja 40 minut Dovoljeno dodatno gradivo in pripomočki: Kandidat prinese nalivno pero

Prikaži več

Področje uporabe

Področje uporabe Regulator Področja uporabe Regulator DIALOG EQ je namenjen predvsem vodenju in nadziranju sistemov ogrevanja in hlajenja, lahko pa se uporabi tudi na različnih področjih avtomatizacije in inteligentnih

Prikaži več

CelotniPraktikum_2011_verZaTisk.pdf

CelotniPraktikum_2011_verZaTisk.pdf Elektrotehniški praktikum Osnove digitalnih vezij Namen vaje Videti, kako delujejo osnovna dvovhodna logi na vezja v obliki integriranih vezij oziroma, kako opravljajo logi ne funkcije Boolove algebre.

Prikaži več

Analiza vpliva materiala, maziva in aktuatorja na dinamiko pnevmatičnega ventila

Analiza vpliva materiala, maziva in aktuatorja na dinamiko pnevmatičnega ventila Programsko orodje LabVIEW za kreiranje, zajem in obdelavo signalov (statične in dinamične karakteristike hidravličnih proporcionalnih ventilov) Marko Šimic Telefon: +386 1 4771 727 e-mail: marko.simic@fs.uni-lj.si

Prikaži več

Prekinitveni način delovanja PLK Glavni program (OB1; MAIN) se izvaja ciklično Prekinitev začasno ustavi izvajanje glavnega programa in zažene izvajan

Prekinitveni način delovanja PLK Glavni program (OB1; MAIN) se izvaja ciklično Prekinitev začasno ustavi izvajanje glavnega programa in zažene izvajan Prekinitveni način delovanja PLK Glavni program (OB1; MAIN) se izvaja ciklično Prekinitev začasno ustavi izvajanje glavnega programa in zažene izvajanje prekinitvene rutine Dogodek GLAVNI PROGRAM (MAIN-OB1)

Prikaži več

Delavnica Načrtovanje digitalnih vezij

Delavnica Načrtovanje digitalnih vezij Laboratorij za načrtovanje integriranih vezij Univerza v Ljubljani Fakulteta za elektrotehniko Digitalni Elektronski Sistemi Zaporedni vmesniki Zaporedni (serijski) vmesniki Zaporedni (serijski) vmesniki

Prikaži več

Base NET.cdr

Base NET.cdr Rešitev fiksnega radijskega odčitavanja Delovanje BaseNet je način odčitavanja porabe vode, toplote, elektrike, plina in delilnikov toplote v fiksnem radijskem omrežju. Merilnike v Sensus Base sistemu

Prikaži več

UPS naprave Socomec Netys PL (Plug in) UPS naprava Socomec Netys PL moč: 600VA/360W; tehnologija: off-line delovanje; vhod: 1-fazni šuko 230VAC; izhod

UPS naprave Socomec Netys PL (Plug in) UPS naprava Socomec Netys PL moč: 600VA/360W; tehnologija: off-line delovanje; vhod: 1-fazni šuko 230VAC; izhod UPS naprave Socomec Netys PL (Plug in) UPS naprava Socomec Netys PL moč: 600VA/360W; tehnologija: off-line delovanje; vhod: 1-fazni šuko 230VAC; izhod: 1-fazni 230VAC; 4 šuko vtičnica preko UPS-a; 2 šuko

Prikaži več

Sistemi Daljinskega Vodenja Vaja 3 Matej Kristan Laboratorij za Strojni Vid Fakulteta za elektrotehniko, Univerza v Ljubl

Sistemi Daljinskega Vodenja Vaja 3 Matej Kristan Laboratorij za Strojni Vid Fakulteta za elektrotehniko, Univerza v Ljubl Sistemi Daljinskega Vodenja Vaja 3 Matej Kristan Laboratorij za Strojni Vid Fakulteta za elektrotehniko, Univerza v Ljubljani matej.kristan@fe.uni-lj.si Česa smo se naučili

Prikaži več

NEVTRIN d.o.o. Podjetje za razvoj elektronike, Podgorje 42a, 1241 Kamnik, Slovenia Telefon: Faks.: in

NEVTRIN d.o.o. Podjetje za razvoj elektronike, Podgorje 42a, 1241 Kamnik, Slovenia Telefon: Faks.: in NEVTRIN d.o.o. Podjetje za razvoj elektronike, Podgorje 42a, 1241 Kamnik, Slovenia Telefon: +386 1 729 6 460 Faks.: +386 1 729 6 466 www.nevtrin.si info@elektrina.si USB RFID READER Navodila za uporabo?

Prikaži več

Slide 1

Slide 1 Projektno vodenje PREDAVANJE 7 doc. dr. M. Zajc matej.zajc@fe.uni-lj.si Projektno vodenje z orodjem Excel Predstavitev Najbolj razširjeno orodje za delo s preglednicami Dva sklopa funkcij: Obdelava številk

Prikaži več

innbox_f60_navodila.indd

innbox_f60_navodila.indd Osnovna navodila Komunikacijski prehod Innbox F60 SFP AC Varnostna opozorila Pri uporabi opreme upoštevajte naslednja opozorila in varnostne ukrepe. Da bi v največji meri izkoristili najnovejšo tehnologijo

Prikaži več

Delavnica Načrtovanje digitalnih vezij

Delavnica Načrtovanje digitalnih vezij Laboratorij za načrtovanje integriranih vezij Univerza v Ljubljani Fakulteta za elektrotehniko Digitalni Elektronski Sistemi Procesorji Model računalnika, mikrokrmilnik CPE = mikrosekvenčnik + podatkovna

Prikaži več

DES11_vmesniki

DES11_vmesniki Laboratorij za načrtovanje integriranih vezij Univerza v Ljubljani Fakulteta za elektrotehniko Digitalni Elektronski Sistemi Vmesniki in sekvenčna vezja Zaporedna in vzporedna vodila 1 Vmesniki in vodila

Prikaži več

MATLAB programiranje MATLAB... programski jezik in programersko okolje Zakaj Matlab? tipičen proceduralni jezik enostaven za uporabo hitro učenje prir

MATLAB programiranje MATLAB... programski jezik in programersko okolje Zakaj Matlab? tipičen proceduralni jezik enostaven za uporabo hitro učenje prir MATLAB programiranje MATLAB... programski jezik in programersko okolje Zakaj Matlab? tipičen proceduralni jezik enostaven za uporabo hitro učenje priročno programsko okolje tolmač interpreter (ne prevajalnik)

Prikaži več

RAM stroj Nataša Naglič 4. junij RAM RAM - random access machine Bralno pisalni, eno akumulatorski računalnik. Sestavljajo ga bralni in pisalni

RAM stroj Nataša Naglič 4. junij RAM RAM - random access machine Bralno pisalni, eno akumulatorski računalnik. Sestavljajo ga bralni in pisalni RAM stroj Nataša Naglič 4. junij 2009 1 RAM RAM - random access machine Bralno pisalni, eno akumulatorski računalnik. Sestavljajo ga bralni in pisalni trak, pomnilnik ter program. Bralni trak- zaporedje

Prikaži več

Šolski center celje

Šolski center celje ŠOLSKI CENTER CELJE Gimnazija Lava DVORIŠČNA VRATA NA DALJINSKO UPRAVLJANJE MENTOR: Matjaž Cizej, univ. dipl. inž. AVTOR: Roman Leban, L-4.F Celje, marec 2010 KAZALO VSEBINE 1 POVZETEK /SUMMARY... 1 2

Prikaži več

seminarska_naloga_za_ev

seminarska_naloga_za_ev Univerza v Ljubljani Fakulteta za elektrotehniko Matevž Seliger 8-kanalni Lightshow Seminarska naloga pri predmetu: V Horjulu, junij 2008 Kazalo: 1 Uvod... 3 1.1 Namen in uporaba izdelka... 3 2 Delovanje...

Prikaži več

No Slide Title

No Slide Title Glavne napake-pomoč KRONOS 1 Diagnostika in dostop do sistema PEČICA NAPAKA NAPAKA PRIKAZANA Z KODO NAPAKE NAPAKA BREZ INDIKACIJE KODE NAPAKE 2 Diagnostika in dostop do sistema Prikaz kode napake Informacije

Prikaži več

Navodila za uporabo Mini snemalnik

Navodila za uporabo Mini snemalnik Navodila za uporabo Mini snemalnik www.spyshop.eu Pred vami so navodila za pravilno uporabo mini snemalnika in opis funkcionalnosti. Lastnosti snemalnika: Naziv Mere Teža Kapaciteta spomina Snemanje Format

Prikaži več

NAVODILA ZA UPORABO K01-WIFI Hvala, ker ste se odločili za nakup našega izdelka. Pred uporabo enote skrbno preberite ta Navodila za uporabo in jih shr

NAVODILA ZA UPORABO K01-WIFI Hvala, ker ste se odločili za nakup našega izdelka. Pred uporabo enote skrbno preberite ta Navodila za uporabo in jih shr NAVODILA ZA UPORABO Hvala, ker ste se odločili za nakup našega izdelka. Pred uporabo enote skrbno preberite ta in jih shranite za prihodnjo rabo Vsebina 1. Pregled 2. Sistem 3. Prednosti 4. Upravljanje

Prikaži več

Poročilo za 1. del seminarske naloge- igrica Kača Opis igrice Kača (Snake) je klasična igrica, pogosto prednaložena na malce starejših mobilnih telefo

Poročilo za 1. del seminarske naloge- igrica Kača Opis igrice Kača (Snake) je klasična igrica, pogosto prednaložena na malce starejših mobilnih telefo Poročilo za 1. del seminarske naloge- igrica Kača Opis igrice Kača (Snake) je klasična igrica, pogosto prednaložena na malce starejših mobilnih telefonih. Obstaja precej različic, sam pa sem sestavil meni

Prikaži več

Microsoft Word - NAVODILA ZA UPORABO.docx

Microsoft Word - NAVODILA ZA UPORABO.docx NAVODILA ZA UPORABO VODILO CCM-18A/N-E (K02-MODBUS) Hvala ker ste se odločili za nakup našega izdelka. Pred uporabo enote skrbno preberite ta Navodila za uporabo in jih shranite za prihodnjo rabo. Vsebina

Prikaži več

Turingov stroj in programiranje Barbara Strniša Opis in definicija Definirajmo nekaj oznak: Σ abeceda... končna neprazna množica simbolo

Turingov stroj in programiranje Barbara Strniša Opis in definicija Definirajmo nekaj oznak: Σ abeceda... končna neprazna množica simbolo Turingov stroj in programiranje Barbara Strniša 12. 4. 2010 1 Opis in definicija Definirajmo nekaj oznak: Σ abeceda... končna neprazna množica simbolov (običajno Σ 2) Σ n = {s 1 s 2... s n ; s i Σ, i =

Prikaži več

DKMPT

DKMPT Tračnice, na katere so moduli fizično nameščeni. Napajalniki (PS), ki zagotavljajo ustrezno enosmerno napajalno napetost za module. Centralne procesne enote (CPU Central Processing Unit). Signalni moduli

Prikaži več

Vedno pod nadzorom, kjerkoli že ste

Vedno pod nadzorom, kjerkoli že ste Vedno pod nadzorom, kjerkoli že ste 02 Vedno pod nadzorom, kjerkoli že ste Daikin zagotavlja novo rešitev za nadzorovanje in krmiljenje glavnih funkcij stanovanjskih notranjih enot. Sistem deluje na uporabniku

Prikaži več

Microsoft Word - ELEKTROTEHNIKA2_11. junij 2104

Microsoft Word - ELEKTROTEHNIKA2_11. junij 2104 Šifra kandidata: Srednja elektro šola in tehniška gimnazija ELEKTROTEHNIKA PISNA IZPITNA POLA 1 11. junij 2014 Čas pisanja 40 minut Dovoljeno dodatno gradivo in pripomočki: Kandidat prinese nalivno pero

Prikaži več

Microsoft PowerPoint - IPPU-V2.ppt

Microsoft PowerPoint - IPPU-V2.ppt Informatizacija poslovnih procesov v upravi VAJA 2 Procesni pogled Diagram aktivnosti IPPU vaja 2; stran: 1 Fakulteta za upravo, 2006/07 Procesni pogled Je osnova za razvoj programov Prikazuje algoritme

Prikaži več

Vostro 430 Informacijski tehnični list o namestitvi in funkcijah

Vostro 430 Informacijski tehnični list o namestitvi in funkcijah O opozorilih OPOZORILO: OPOZORILO označuje možnost poškodb lastnine, telesnih poškodb ali smrti. Dell Vostro 430 List s tehničnimi informacijami o nastavitvi in funkcijah Pogled s sprednje in zadnje strani

Prikaži več

Document ID / Revision : 0519/1.3 ID Issuer System (sistem izdajatelja identifikacijskih oznak) Navodila za registracijo gospodarskih subjektov

Document ID / Revision : 0519/1.3 ID Issuer System (sistem izdajatelja identifikacijskih oznak) Navodila za registracijo gospodarskih subjektov ID Issuer System (sistem izdajatelja identifikacijskih oznak) Navodila za registracijo gospodarskih subjektov Gospodarski subjekti Definicija: V skladu z 2. členom Izvedbene uredbe Komisije (EU) 2018/574

Prikaži več

Logični modul LOGO!

Logični modul LOGO! Logični modul LOGO! LOGO! Siemensov univerzalni logični modul LOGO! vsebuje: Krmilno enoto Enoto za prikaz in tipkovnico Napajalno vezje Vmesnik za spominski modul in PC kabel Funkcije, pripravljene za

Prikaži več

SLO NAVODILA ZA UPORABO IN MONTAŽO Kat. št.: NAVODILA ZA UPORABO WLAN usmerjevalnik TP LINK Archer C5 Kataloška št.:

SLO NAVODILA ZA UPORABO IN MONTAŽO Kat. št.: NAVODILA ZA UPORABO WLAN usmerjevalnik TP LINK Archer C5 Kataloška št.: SLO NAVODILA ZA UPORABO IN MONTAŽO Kat. št.: 75 31 33 www.conrad.si NAVODILA ZA UPORABO WLAN usmerjevalnik TP LINK Archer C5 Kataloška št.: 75 31 33 KAZALO 1. PRIKLOP STROJNE OPREME...3 2. KONFIGURACIJA

Prikaži več

ELEKTRONIKA ŠTUDIJ ELEKTRONIKE

ELEKTRONIKA ŠTUDIJ ELEKTRONIKE ELEKTRONIKA ŠTUDIJ ELEKTRONIKE Umetni nos, Laboratorij za mikroelektroniko, FE Odprtokodni instrument, Red Pitaya, Ljubljana Senzorji krvnega tlaka, Hyb, Šentjernej Elaphe, elektronika omogoča električno

Prikaži več

Microsoft Word - avd_vaje_ars1_1.doc

Microsoft Word - avd_vaje_ars1_1.doc ARS I Avditorne vaje Pri nekem programu je potrebno izvršiti N=1620 ukazov. Pogostost in trajanje posameznih vrst ukazov računalnika sta naslednja: Vrsta ukaza Štev. urinih period Pogostost Prenosi podatkov

Prikaži več

STAVKI _5_

STAVKI _5_ 5. Stavki (Teoremi) Vsebina: Stavek superpozicije, stavek Thévenina in Nortona, maksimalna moč na bremenu (drugič), stavek Tellegena. 1. Stavek superpozicije Ta stavek določa, da lahko poljubno vezje sestavljeno

Prikaži več

DIGITALNE STRUKTURE Zapiski predavanj Branko Šter, Ljubo Pipan 2 Razdeljevalniki Razdeljevalnik (demultipleksor) opravlja funkcijo, ki je obratna funk

DIGITALNE STRUKTURE Zapiski predavanj Branko Šter, Ljubo Pipan 2 Razdeljevalniki Razdeljevalnik (demultipleksor) opravlja funkcijo, ki je obratna funk DIGITALNE STRUKTURE Zapiski predavanj Branko Šter, Ljubo Pipan 2 Razdeljevalniki Razdeljevalnik (demultipleksor) opravlja funkcijo, ki je obratna funkciji izbiralnika. Tisti od 2 n izhodov y 0,.., y 2

Prikaži več

Navodila za programsko opremo FeriX Namestitev na trdi disk Avtor navodil: Martin Terbuc Datum: December 2007 Center odprte kode Slovenije Spletna str

Navodila za programsko opremo FeriX Namestitev na trdi disk Avtor navodil: Martin Terbuc Datum: December 2007 Center odprte kode Slovenije Spletna str Navodila za programsko opremo FeriX Namestitev na trdi disk Avtor navodil: Martin Terbuc Datum: December 2007 Center odprte kode Slovenije Spletna stran: http://www.coks.si/ Elektronski naslov: podpora@coks.si

Prikaži več

Upravljanje sistema COBISS Navodila za uporabo tiskalnika CITIZEN S310II V1.0 VIF-NA-27-SI

Upravljanje sistema COBISS Navodila za uporabo tiskalnika CITIZEN S310II V1.0 VIF-NA-27-SI Navodila za uporabo tiskalnika CITIZEN S310II V1.0 VIF-NA-27-SI IZUM, 2015 COBISS, COMARC, COBIB, COLIB, IZUM so zaščitene znamke v lasti javnega zavoda IZUM. KAZALO VSEBINE 1 Uvod... 1 2 Uporaba tiskalnika...

Prikaži več

Poročilo projekta : Učinkovita raba energije Primerjava klasične sončne elektrarne z sončno elektrarno ki sledi soncu. Cilj projekta: Cilj našega proj

Poročilo projekta : Učinkovita raba energije Primerjava klasične sončne elektrarne z sončno elektrarno ki sledi soncu. Cilj projekta: Cilj našega proj Poročilo projekta : Učinkovita raba energije Primerjava klasične sončne elektrarne z sončno elektrarno ki sledi soncu. Cilj projekta: Cilj našega projekta je bil izdelati učilo napravo za prikaz delovanja

Prikaži več

MJK je specializiran proizvajalec merilne in nadzorne opreme za vodovode in čistilne naprave. Z izkušnjami, ki jih jamči 35 letna tradicija in z osred

MJK je specializiran proizvajalec merilne in nadzorne opreme za vodovode in čistilne naprave. Z izkušnjami, ki jih jamči 35 letna tradicija in z osred MJK je specializiran proizvajalec merilne in nadzorne opreme za vodovode in čistilne naprave. Z izkušnjami, ki jih jamči 35 letna tradicija in z osredotočenostjo na eno prodajno področje, je prisoten v

Prikaži več

DCS-2330L_A1_QIG_v1.00(EU).indd

DCS-2330L_A1_QIG_v1.00(EU).indd HD WIRELESS N OUTDOOR CLOUD CAMERA DCS-2330L KRATKA NAVODILA ZA UPORABO VSEBINA PAKETA HD WIRELESS N OUTDOOR CLOUD CAMERA DCS-2330L NAPAJALNI ADAPTER ADAPTER ETHERNET KABEL (CAT5 UTP) MED POSTAVITVIJO,

Prikaži več

Microsoft Word - M docx

Microsoft Word - M docx Š i f r a k a n d i d a t a : Državni izpitni center *M17178111* SPOMLADANSKI IZPITNI ROK Izpitna pola 1 Četrtek, 1. junij 2017 / 90 minut Dovoljeno gradivo in pripomočki: Kandidat prinese nalivno pero

Prikaži več

Procesorski sistemi v telekomunikacijah

Procesorski sistemi v telekomunikacijah Procesorski sistemi v telekomunikacijah Komunikacija v procesorskih sistemih (c) Arpad Bűrmen, 2010-2012 Sinhrona komunikacija Podatkovne linije + sinhronizacijski signal Sihnronizacijski signal določa

Prikaži več

Microsoft PowerPoint - NDES_8_USB_LIN.ppt

Microsoft PowerPoint - NDES_8_USB_LIN.ppt Laboratorij za na rtovanje integriranih vezij Fakulteta za elektrotehniko Univerza v Ljubljani ndrej Trost artovanje digitalnih el. sistemov Komunikacijski vmesniki UB in LI http://lniv.fe.uni-lj.si/ndes.html

Prikaži več

GHOSTBUSTERS navodila za učitelje O PROJEKTU S tem projektom se učenci sami naučijo izdelati igro. Ustvariti morajo več ikon (duhcov ali kaj drugega)

GHOSTBUSTERS navodila za učitelje O PROJEKTU S tem projektom se učenci sami naučijo izdelati igro. Ustvariti morajo več ikon (duhcov ali kaj drugega) GHOSTBUSTERS navodila za učitelje O PROJEKTU S tem projektom se učenci sami naučijo izdelati igro. Ustvariti morajo več ikon (duhcov ali kaj drugega) in za vsako napisati svojo kodo. Dve ikoni imata isto

Prikaži več

Zbornica zdravstvene in babiške nege Slovenije Zveza strokovnih društev medicinskih sester, babic in zdravstvenih tehnikov Slovenije Stanje:

Zbornica zdravstvene in babiške nege Slovenije Zveza strokovnih društev medicinskih sester, babic in zdravstvenih tehnikov Slovenije Stanje: Zbornica zdravstvene in babiške nege Slovenije Zveza strokovnih društev medicinskih sester, babic in zdravstvenih tehnikov Slovenije Stanje: 17.07.2013 Ver. 2.9.1.2 Spletni portal članov uporabniška navodila

Prikaži več

10. Meritev šumnega števila ojačevalnika Vsako radijsko zvezo načrtujemo za zahtevano razmerje signal/šum. Šum ima vsaj dva izvora: naravni šum T A, k

10. Meritev šumnega števila ojačevalnika Vsako radijsko zvezo načrtujemo za zahtevano razmerje signal/šum. Šum ima vsaj dva izvora: naravni šum T A, k 10. Meritev šumnega števila ojačevalnika Vsako radijsko zvezo načrtujemo za zahtevano razmerje signal/šum. Šum ima vsaj dva izvora: naravni šum T A, ki ga sprejme antena in dodatni šum T S radijskega sprejemnika.

Prikaži več

6.1 Uvod 6 Igra Chomp Marko Repše, Chomp je nepristranska igra dveh igralcev s popolno informacijo na dvo (ali vec) dimenzionalnem prostoru

6.1 Uvod 6 Igra Chomp Marko Repše, Chomp je nepristranska igra dveh igralcev s popolno informacijo na dvo (ali vec) dimenzionalnem prostoru 6.1 Uvod 6 Igra Chomp Marko Repše, 30.03.2009 Chomp je nepristranska igra dveh igralcev s popolno informacijo na dvo (ali vec) dimenzionalnem prostoru in na končni ali neskončni čokoladi. Igralca si izmenjujeta

Prikaži več

Sistemi Daljinskega Vodenja Vaja 1 Matej Kristan Laboratorij za Strojni Vid Fakulteta za elektrotehniko, Univerza v Ljubljani

Sistemi Daljinskega Vodenja Vaja 1 Matej Kristan Laboratorij za Strojni Vid Fakulteta za elektrotehniko, Univerza v Ljubljani Sistemi Daljinskega Vodenja Vaja 1 Matej Kristan Laboratorij za Strojni Vid Fakulteta za elektrotehniko, Univerza v Ljubljani matej.kristan@fe.uni-lj.si Sistemi Daljinskega Vodenja Ime: Matej Kristan Docent

Prikaži več

Modem in krajevno omrežje Uporabniški priročnik

Modem in krajevno omrežje Uporabniški priročnik Modem in krajevno omrežje Uporabniški priročnik Copyright 2008 Hewlett-Packard Development Company, L.P. Informacije v tem priročniku se lahko spremenijo brez prejšnjega obvestila. Edine garancije za HP-jeve

Prikaži več

COBISS3/Medknjižnična izposoja

COBISS3/Medknjižnična izposoja 3/Medknjižnična izposoja 2.2 KATALOG Katalog nam omogoča: iskanje gradiva prikaz izbranih bibliografskih zapisov ali pripadajočih podatkov o zalogi iz lokalne baze podatkov v formatu COMARC vpogled v stanje

Prikaži več

Strojna oprema

Strojna oprema Asistenta: Mira Trebar, Miha Moškon UIKTNT 2 Uvod v programiranje Začeti moramo razmišljati algoritmično sestaviti recept = napisati algoritem Algoritem za uporabo poljubnega okenskega programa. UIKTNT

Prikaži več

Microsoft Word - CNR-BTU3_Bluetooth_vmesnik

Microsoft Word - CNR-BTU3_Bluetooth_vmesnik CNR-BTU3 Bluetooth vmesnik A. Vsebina pakiranja Bluetooth USB Adapter Bluetooth programska oprema in CD z gonilniki Navodila za uporabo in CD 1. Namestitev Bluetooth programske opreme za Windowse 1. Vstavite

Prikaži več

Vprašanja za 2. izpitno enoto poklicne mature Strokovni predmet NPA Vprašanja Visual C# (4. letnik) 1. Uporabniški vmesnik razvojnega okolja Visual C#

Vprašanja za 2. izpitno enoto poklicne mature Strokovni predmet NPA Vprašanja Visual C# (4. letnik) 1. Uporabniški vmesnik razvojnega okolja Visual C# Vprašanja za 2. izpitno enoto poklicne mature Strokovni predmet NPA Vprašanja Visual C# (4. letnik) 1. Uporabniški vmesnik razvojnega okolja Visual C# Pomen posameznih oken uporabniškega vmesnika, urejevalnik

Prikaži več

Microsoft PowerPoint - Sirikt-SK-FV.ppt

Microsoft PowerPoint - Sirikt-SK-FV.ppt E-učbeniki za izbrane naravoslovno-tehniške predmete E-books for selected science and technical subjects Slavko KOCIJANČIČ Univerza v Ljubljani, Pedagoška fakulteta slavko.kocijancic@pef.uni-lj.si Franc

Prikaži več

KRMILNA OMARICA KO-0

KRMILNA OMARICA KO-0 KOTLOVSKA REGULACIJA Z ENIM OGREVALNIM KROGOM Siop Elektronika d.o.o., Dobro Polje 11b, 4243 Brezje, tel.: +386 4 53 09 150, fax: +386 4 53 09 151, gsm:+386 41 630 089 e-mail: info@siopelektronika.si,

Prikaži več

SLO NAVODILA ZA UPORABO IN MONTAŽO Kat. št.: NAVODILA ZA UPORABO DVB T, DVB C TV ključek PCTV Systems Quatro Kataloška št.: 67

SLO NAVODILA ZA UPORABO IN MONTAŽO Kat. št.: NAVODILA ZA UPORABO DVB T, DVB C TV ključek PCTV Systems Quatro Kataloška št.: 67 SLO NAVODILA ZA UPORABO IN MONTAŽO Kat. št.: 67 80 13 www.conrad.si NAVODILA ZA UPORABO DVB T, DVB C TV ključek PCTV Systems Quatro Kataloška št.: 67 80 13 KAZALO VSEBINA PAKETA...3 NAMESTITEV IN UPORABA...3

Prikaži več

Microsoft Word - UP_Lekcija04_2014.docx

Microsoft Word - UP_Lekcija04_2014.docx 4. Zanka while Zanke pri programiranju uporabljamo, kadar moramo stavek ali skupino stavkov izvršiti večkrat zaporedoma. Namesto, da iste (ali podobne) stavke pišemo n-krat, jih napišemo samo enkrat in

Prikaži več

an-01-Stikalo_za_luc_za_na_stopnisce_Zamel_ASP-01.docx

an-01-Stikalo_za_luc_za_na_stopnisce_Zamel_ASP-01.docx SLO - NAVODILA ZA UPORABO IN MONTAŽO Kat. št.: 146 29 41 www.conrad.si NAVODILA ZA UPORABO Časovno stikalo za luč za na stopnišče Zamel ASP-01 Kataloška št.: 146 29 41 KAZALO OPIS NAPRAVE... 3 LASTNOSTI...

Prikaži več

Microsoft Word - Navodila_NSB2_SLO.doc

Microsoft Word - Navodila_NSB2_SLO.doc Borovniško naselje 7 1412 Kisovec Slovenija Tel.: +386(0) 356 72 050 Fax.: +368(0)356 71 119 www.tevel.si Lastno varni napajalnik Tip NSB2/xx (NAVODILA ZA UPORABO) Navodila_NSB2_SLO.doc2/xx Stran 1 od

Prikaži več

CODEKS IP KAMERA

CODEKS IP KAMERA CODEKS IP KAMERA uporabniška navodila Vse pravice pridržane. Noben del uporabniških navodil se ne sme reproducirati v kakršnikoli obliki ali na kakršen koli način - grafični, elektronski ali mehanski,

Prikaži več

Optimizacija z roji delcev - Seminarska naloga pri predmetu Izbrana poglavja iz optimizacije

Optimizacija z roji delcev - Seminarska naloga pri predmetu Izbrana poglavja iz optimizacije Univerza v Ljubljani Fakulteta za matematiko in fiziko Seminarska naloga pri predmetu Izbrana poglavja iz optimizacije 2. junij 2011 Koncept PSO Motivacija: vedenje organizmov v naravi Ideja: koordinirano

Prikaži več

Navodila za uporabo Mini prenosna HD kamera s snemalnikom

Navodila za uporabo Mini prenosna HD kamera s snemalnikom Navodila za uporabo Mini prenosna HD kamera s snemalnikom www.spyshop.eu Izdelku so priložena navodila v angleščini, ki poleg teksta prikazujejo tudi slikovni prikaz sestave in delovanja izdelka. Lastnosti

Prikaži več

Univerza v Ljubljani

Univerza v Ljubljani Univerza v Ljubljani Fakulteta za elektrotehniko Mario Trifković Programljivi 6 Timer Seminarska naloga pri predmetu Elektronska vezja V Ljubljani, junij 2009 Mario Trifković Programljivi 6 Timer 2 1.

Prikaži več

Nove različice programske opreme GE Podjetje GE Digital, vodilni svetovni proizvajalec programske opreme za področje avtomatike, je izdalo kar nekaj n

Nove različice programske opreme GE Podjetje GE Digital, vodilni svetovni proizvajalec programske opreme za področje avtomatike, je izdalo kar nekaj n Nove različice programske opreme GE Podjetje GE Digital, vodilni svetovni proizvajalec programske opreme za področje avtomatike, je izdalo kar nekaj novosti na področju SCADA sistemov (ifix Productivity

Prikaži več

1 MMK - Spletne tehnologije Vaja 5: Spletni obrazci Vaja 5 : Spletni obrazci 1. Element form Spletni obrazci so namenjeni zbiranju uporabniških podatk

1 MMK - Spletne tehnologije Vaja 5: Spletni obrazci Vaja 5 : Spletni obrazci 1. Element form Spletni obrazci so namenjeni zbiranju uporabniških podatk 1 MMK - Spletne tehnologije Vaja 5: Spletni obrazci Vaja 5 : Spletni obrazci 1. Element form Spletni obrazci so namenjeni zbiranju uporabniških podatkov in njihov prenos med spletnimi mesti. Obrazec v

Prikaži več

SLO NAVODILA ZA UPORABO IN MONTAŽO Kat. št.: NAVODILA ZA UPORABO Laserliner tester napetosti AC tive Finder Kataloška št.: 12 3

SLO NAVODILA ZA UPORABO IN MONTAŽO Kat. št.: NAVODILA ZA UPORABO Laserliner tester napetosti AC tive Finder Kataloška št.: 12 3 SLO NAVODILA ZA UPORABO IN MONTAŽO Kat. št.: 12 33 32 www.conrad.si NAVODILA ZA UPORABO Laserliner tester napetosti AC tive Finder Kataloška št.: 12 33 32 KAZALO 1. FUNKCIJE / UPORABA... 3 2. VARNOSTNI

Prikaži več

Linksys PLEK500 User Guide

Linksys PLEK500 User Guide Uporabniški priročnik Linksys PLEK500 Omrežni vmesnik Powerline Vsebina Pregled............... 2 Funkcije..................... 2 Kako deluje omrežje Powerline 3 Primer namestitve 3 Namestitev omrežja Powerline.....

Prikaži več

Mestna občina Celje Komisija Mladi za Celje POLICA ZA HLADILNIK Z VGRAJENO TEHTNICO RAZISKOVALNA NALOGA (Fizika, Elektronika) Avtorja: Martin Malinger

Mestna občina Celje Komisija Mladi za Celje POLICA ZA HLADILNIK Z VGRAJENO TEHTNICO RAZISKOVALNA NALOGA (Fizika, Elektronika) Avtorja: Martin Malinger Mestna občina Celje Komisija Mladi za Celje POLICA ZA HLADILNIK Z VGRAJENO TEHTNICO RAZISKOVALNA NALOGA (Fizika, Elektronika) Avtorja: Martin Malinger (9.a), Luka Segečić (9.a) Mentorica: Nina Miklavžina,

Prikaži več

ACAD-BAU-Analiza-prostorov

ACAD-BAU-Analiza-prostorov ANALIZA PROSTOROV Ko obdelujemo večje projekte, je analiza prostorov zelo pomembna v vseh fazah projektiranja. Pri idejnem snovanju moramo npr. za določeno površino trgovske namembnosti zagotoviti primerno

Prikaži več

an-01-USB_digitalni_zvocniki_Logitech_S-150.docx

an-01-USB_digitalni_zvocniki_Logitech_S-150.docx SLO - NAVODILA ZA UPORABO IN MONTAŽO Kat. št.: 91 60 80 www.conrad.si NAVODILA ZA UPORABO USB digitalni zvočniki Logitech S-150 Kataloška št.: 91 60 80 KAZALO 1. VARNOSTNI NAPOTKI... 3 2. NASTAVITEV VAŠIH

Prikaži več

Poročilo o praktičnem usposabljanju z delom - PUD DIJAK: Ime in priimek: Naslov: Elektronski naslov: Telefon: Izobraževalni program (obkroži): - tehni

Poročilo o praktičnem usposabljanju z delom - PUD DIJAK: Ime in priimek: Naslov: Elektronski naslov: Telefon: Izobraževalni program (obkroži): - tehni Poročilo o praktičnem usposabljanju z delom - PUD DIJAK: Ime in priimek: Naslov: Elektronski naslov: Telefon: Izobraževalni program (obkroži): - tehnik računalništva - elektrotehnik Razred: Šolsko leto:

Prikaži več

Macoma katalog copy

Macoma katalog copy POSLOVNE APLIKACIJE PO ŽELJAH NAROČNIKA Poročilni sistem Finance in kontroling Poprodaja Podatkovna skladišča Prodaja Proizvodnja Obstoječi ERP Partnerji Implementacija rešitev prilagojena po željah naročnika

Prikaži več

Microsoft Word doc

Microsoft Word doc SLO - NAVODILO ZA MONTAŽO IN UPORABO : št. art. : 90 79 14 www.conrad.si Zvočniki Hercules XPS 2,1 20 Gloss Št. izdelka: 90 79 14 Navodila za uporabo so sestavni del izdelka. Vsebujejo pomembne napotke

Prikaži več

Chapter 1

Chapter 1 - 1 - Poglavje 1 Uvod v podatkovne baze - 2 - Poglavje 1 Cilji (Teme).. Nekatere domene, kjer se uporabljajo podatkovne baze Značilnosti datotečnih sistemov Problemi vezani na datotečne sisteme Pomen izraza

Prikaži več

ISOFT , računalniški inženiring

ISOFT , računalniški inženiring ISOFT, računalniški inženiring Marko Kastelic s.p. Sad 2, 1296 Šentvid pri stični Spletna stran podjetja:http://www.isoft.si podjetja ISOFT Spletna stran sistema sledenja vozil track.si: http://www.track.si

Prikaži več

Laboratorij za strojni vid, Fakulteta za elektrotehniko, Univerza v Ljubljani Komunikacije v Avtomatiki Vaje, Ura 8 Matej Kristan

Laboratorij za strojni vid, Fakulteta za elektrotehniko, Univerza v Ljubljani Komunikacije v Avtomatiki Vaje, Ura 8 Matej Kristan Laboratorij za strojni vid, Fakulteta za elektrotehniko, Univerza v Ljubljani Komunikacije v Avtomatiki Vaje, Ura 8 Matej Kristan Vsebina današnjih vaj: ARP, NAT, ICMP 1. ARP

Prikaži več

Kazalo 1 DVOMESTNE RELACIJE Operacije z dvomestnimi relacijami Predstavitev relacij

Kazalo 1 DVOMESTNE RELACIJE Operacije z dvomestnimi relacijami Predstavitev relacij Kazalo 1 DVOMESTNE RELACIJE 1 1.1 Operacije z dvomestnimi relacijami...................... 2 1.2 Predstavitev relacij............................... 3 1.3 Lastnosti relacij na dani množici (R X X)................

Prikaži več

Microsoft PowerPoint - Objekti_gradnja.ppt

Microsoft PowerPoint - Objekti_gradnja.ppt Naredimo razred Katera so stanja/lastnosti Kaj hočemo o objektih te vrste vedeti Kakšne lastnosti imajo Katere so metode Kakšno je znanje objektov Na katere ukaze se odzovejo Način predstavitve lastnosti

Prikaži več

SLO - NAVODILO ZA UPORABO IN MONTAŽO Št

SLO - NAVODILO ZA UPORABO IN MONTAŽO Št SLO - NAVODILA ZA UPORABO IN MONTAŽO Kat. št.: 19 14 56 www.conrad.si NAVODILA ZA UPORABO Univerzalni širokopasovni predojačevalnik Kemo B073, komplet za sestavljanje Kataloška št.: 19 14 56 Kazalo Slike...

Prikaži več

Microsoft Word - CN-BTU4 Quick Guide_SI

Microsoft Word - CN-BTU4 Quick Guide_SI Bluetooth Dongle Artikel: CN-BTU4 NAVODILA v1.0 Sistemske zahteve Zahteve za PC: - Proc.: Intel Pentium III 500MHz or above. - Ram: 256MB ali več. - Disk: vsaj 50MB. - OS: Windows 98SE/Me/2000/XP - Prost

Prikaži več

Gradbeništvo kot Industrija 4.0

Gradbeništvo kot Industrija 4.0 Povzetek: Kot vse druge panoge se mora gradbeništvo modernizirati Industrija 4.0 koncept, ki daje modernizaciji okvir, motivacijo, zagon Industrija 4.0 je stapljanje fizičnega in digitalnega sveta Gradbeništvo

Prikaži več

NETGEAR R6100 WiFi Router Installation Guide

NETGEAR R6100 WiFi Router Installation Guide Blagovne znamke NETGEAR, logotip NETGEAR in Connect with Innovation so blagovne znamke in/ali registrirane blagovne znamke družbe NETGEAR, Inc. in/ali njenih povezanih družb v ZDA in/ali drugih državah.

Prikaži več

Microsoft PowerPoint - Java_spremenljivke

Microsoft PowerPoint - Java_spremenljivke Java Spremenljivke, prireditveni stavek Spremenljivke Prostor, kjer hranimo vrednosti Ime Znak, števka, _ Presledkov v imenu ne sme biti! Tip spremenljivke int (cela števila) Vse spremenljivke napovemo

Prikaži več

Datum in kraj

Datum in kraj Ljubljana, 5. 4. 2017 Katalog znanj in vzorci nalog za izbirni izpit za vpis na magistrski študij Pedagoško računalništvo in informatika 2017/2018 0 KATALOG ZNANJ ZA IZBIRNI IZPIT ZA VPIS NA MAGISTRSKI

Prikaži več