Norges landbrukshøgskole, institutt for tekniske fagTEL220 Måling og styring med datamaskin LabVIEW-kursFredag 30.1.04 ca. kl. 1315-1600, rom TF01 Om kursetOm LabVIEWLabVIEW utgis av firmaet National Instruments. LabVIEW er en forkortelse for "Laboratory Virtual Instrument Engineering Workbench". I LabVIEW benytter brukerne grafisk programmering for å lage sine programmer (men det er også muligheter til å inkludere tekstbaserte programmer i et LabVIEW-program). LabVIEW er ett av de mest benyttede programutviklingsverktøy anvendt i laboratorier, eksperimentoppstillinger og testeapplikasjoner. LabVIEW brukes også for implementering av funksjoner og brukergrensesnitt i andre utviklingsomgivelser. LabVIEW har et rikt funksjonsbibliotek for nær sagt alt en trenger for å bygge opp et system for behandling, visualisering og analyse av innsamlede data fra fysiske prosesser (loggdata) og for styring av prosesser. Mål med kursetDere skal i løpet av dette LabVIEW-kurset bli i stand til å utvikle VI'er for bl.a. generering av signaler, presentasjon, analyse og lagring av signaler, samt kopling av VI mot fysisk prosess vha. et I/O-kort. (VI = Virtual Instruments, som er betegnelsen på brukerutviklede LabVIEW-programmer.) LitteraturLærebok for dette LabVIEW-kurset er Lær LabVIEW trinn for trinn. KursoppleggKurset baseres på forelesninger/demonstrasjoner via storskjerm, etterfulgt av selvstendig arbeid med oppgaver med tilgang til veileder. KurslærerSiv.ing. Finn Haugen, TechTeach. (E-post: finn@techteach.no) Oppstart av LabVIEWVi starter LabVIEW via Start-knappen på PC'ens skriverbord og gjør oss litt kjent med knappene på LabVIEWs oppstartsvindu. Åpne og kjøre en VIVi kjører VI'en Examples / Analysis Demonstrations / Temperature System Demo.vi, som er tilgjengelig via pila til høyre på Open-knappen i LabVIEWs oppstartsvindu. Hvordan er VI'er laget?Hver VI har et
Vi studerer Temperature System Demo.vi. Vi lager vår første VI[Kap. 3.1-3.6 i læreboka] Vi skal lage en VI, sigtrans.vi, som er beskrevet i kap. 3 i læreboken. Paletter som benyttes under programmeringen:
Du kan sette diverse opsjoner for redigeringen, f.eks.
Feilsøking[Kap. 3.7] Vi legger inn noen feil i sigtrans.vi. Hjelp[Kap. 3.8] Høyreklikk på et element på frontpanelet eller i blokkdiagrammet og velg Help. Eller søk i dokumentasjonen som følger med LabVIEW via menyvalget Help osv.
Fredag 13.2.04 kl. 1015-1600, rom TF01 Dokumentasjon av VI[Kap. 4.1] Vi lager HTML-dokumentasjon av sigtrans.vi. Datatyper i LabVIEW[Kap. 5] Vi ser på datatyper.vi. Spesielle datatyper:
Tekstbaserte programmeringsvinduer[Kap. 6]
Egenskapsnode (property node)[Kap. 7] En egenskapsnode brukes for å sette diverse egenskaper for frontpanelelementer programmatisk. Vi prøver: egenskap.vi. Plotting i diagrammer[Kap. 8] Vi lager plott.vi, som demonstrerer 3 forskjellige diagramtyper, på basis av sigtrans.vi. Grafikk på frontpanelet[Kap. 9.1 og 9.2] Vi legger inn et bilde. Obs: Det kan være nødvendig å skyve bildet til bakgrunnen på frontpanelet, slik at andre elementer ikke blir inaktive. Sub-VI[Kap. 10] En sub-VI er som en subrutine eller en funksjon inne i en (hoved-)VI. Vi skal lage en hoved-VI og en sub-VI på basis av sigtrans.vi. Viktig: Dersom du skal benytte flere kopier av sub-VI'en i en og samme (hoved)VI, må du angi sub-VI'en som reentrant. Dette gjøres slik:
LLB-filerVI'er som inneholder sub-VI'er kan lagres som LLB-filer (LabVIEW Library). Demo: hovedvi.llb. Du kan redigere LLB'er via menyvalget Tools / Edit VI Labrary, bl.a. definere hvilken av VI'ene i LLB'en som skal være på "top level" (en slik VI vil da automatisk bli vist når LLB-filen åpnes). Opsjoner ved fillagring[Kap. 3.8] File / Save with Options...
Leksjon 4: Tirsdag 27.2.04 kl.
1015- Lokale variable[Kap. 11.1] En lokal variabel er en "kopi" av en variabel (terminal). Den lokale variabelen kan benyttes hvor som helst internt i den aktuelle VI'en. Vi lager lokal.vi Globale variable[Kap. 11.2] En global variabel er funksjonelt sett lik en lokal variabel, men den globale variabelen er tilgjengelig for alle andre VI'er. En global variabel inkluderes i en VI på samme måte som en vanlig sub-VI inkluderes. Flere enn én globale variablel kan lagres i én global VI. Her er en global VI: global1.vi, som brukes i skriv_til_global.vi og les_fra_global.vi. Programstrukturer[Kap. 12]
Strukturering av VI'er som utfører parallelle operasjoner[Kap. 13] Parallelle operasjoner kan realiseres vha. parallelle while-løkker. Eksempel: parallell.llb (hoved-VI'en er parallell.vi). Skiftregister[Kap. 14] Et skiftregister benyttes for å huske tidligere sampelverdier av en variabel. Eksempel: skiftregister.vi. Feedback-node kan brukes som erstatning for skiftregister-terminalene på programløkken der skiftregisteret inngår. Denne er tilgjengelig på Functions Palette / Structures. Et eksisterende skiftregister kan erstattes med en feedback-node ved å høyreklikke på en skiftregister-terminal. Skrive data til fil[Kap. 15.1, 15.2] Følgende VI lagrer arrays (serier) av data på fil etter at while-løkken har stoppet, som en batchoperasjon: fillagring.vi. Følgende VI lagrer data til fil kontinuerlig med start/stopp initiert fra frontpanelet: fillagring_kont.vi. Lese data fra fil[Kap. 15.3] Eksempel: fil_lesing.vi leser data fra filen logg1.txt. Sette VI'ens egenskaper[Kap. 16] Menyvalg: File / VI Properties. Vi tar utgangspunkt i sigtrans.vi. PID-regulator i LabVIEW[Står ikke i LabVIEW-boka] Se Functions Palette / Control / PID Advanced. De inngangene som du i det minste må bruke, er
I/O mot fysisk prosess med FieldPointInnledningFieldPoint er ett av National Instruments' systemer for distribuert modulær I/O. Figuren nedenfor viser FieldPoint-utstyret som skal brukes her. Racket inneholder til venstre kommunikasjonsmodulen FP1000, som sørger for seriekommunikasjon med PC'en og til høyre diverse I/O-moduler som hver har 2 kanaler (Dual Channel-moduler). Vi skal se hvordan FieldPoint kan benyttes for analog I/O mot et fysisk system, som er RC-kretsen vist nedenfor. Vi skal se hvordan LabVIEW og FieldPoint kan brukes til å sette ut et spenningssignal, v1, og lese inn et spenningssignal. Som fysisk prosess skal vi bruke en likestrømsmotor: Konfigurering og testing vha. FieldPoint ExplorerFør LabVIEW-programmeringen starter, må FieldPoint-utstyret konfigureres (bl.a. kan I/O-kanaler gis mer brukervennlige navn enn standardnavnene Channel 0, Channel 1 osv.) og testes. Dette gjøres via programmet FieldPoint Explorer, hvis installeringsfil er gratis tilgjengelig fra National Instruments' FTP-server: ftp://ftp.ni.com/support/fieldpoint/server/nifp30.exe Når FieldPoint Explorer er installert, er programmet tilgjengelig via
FieldPoint-konfigureringen lagres i en *.iak-fil. Vi ser på bruk av FieldPoint Explorer. Hvordan benytte FieldPoint-I/O-kanaler i LabVIEWDet er to måter å ta i bruk FieldPoint-I/O-kanaler på i LabVIEW:
Av de to metodene som er demonstrert ovenfor er OPC-metoden enklest å bruke, dvs. krever minst programmering. Metoden med FieldPoint-funksjonene har imidlertid den fordel at FPWrite- og FPRead-funksjonene kan skrive/lese til/fra mange kanaler på én gang, dvs. at funksjonene håndterer arrays av data. Vi skal prøve OPC-metoden. Bruk av FieldPoints OPC-server og DataSocketDet forutsettes at en FieldPoint-konfigureringsfil, her: iak130102.iak, har vært åpnet i FieldPoint Explorer. Tilknytningen til OPC-serveren (vha. DataSocket) kan foretas på forskjellige måter:
Til informasjon: Funksjonen DataSocket Read bruker ca. 0,01 ms for å lese data fra FieldPoints OPC-server. DataSocket Write bruker ca. 8 ms for å skrive data til OPC-serveren. Webressurser for LabVIEW og NI
Avslutning
Oppdatert 27.2.04 av Finn Haugen (finn@techteach.no) |