LabVIEW-kursTid og sted: Fredagene 4.1 og 11.1 2002 kl. 0820 - 1530. Rom B-234, C210 og C226.Referanselitteratur for kurset: Lær LabVIEW. Dette webdokumentet bør leses i Internet Explorer eller de nyligste versjonene av Netscape og Opera. Kursets målDere skal i løpet av dette LabVIEW-kurset bli i stand til å utvikle VI'er (Virtual Instruments, som er betegnelsen på brukerutviklede LabVIEW-programmer) for bl.a. generering av signaler og filtrering, lagring og presentasjon av signaler. (Kopling av VI mot fysisk prosess undervises ifm. senere lab-oppgaver.) UndervisningsoppleggForelesning/demonstrasjon på storskjerm etterfulgt av praktisk arbeid på PC. Dette gjøres for hvert emne. Oppstart av LabVIEW[Kap. 2.1, 2.2] Vi 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 VI[Kap. 2.4] Vi kjører VI'en Search Examples / Demonstrations / Analysis Demonstrations / Temperature System Demo.vi. Hvordan er VI'er laget?[Kap. 2.3] Vi studerer Temperature System Demo.vi. Noen eksempler på hva LabVIEW kan brukes til
LabVIEW TutorialVi tar en kikk (fra oppstartsvinduet: LabVIEW Tutorial, eller fra menylinja: Help / Contents and Index / Tutorial). Brukergrensesnittet i LabVIEWMenylinja og verktøylinjaVi tar en kikk! ProgrammeringsverktøyVi har oppe den siste demonstrasjons-VI'en (se ovenfor). Hver VI har et
Paletter som benyttes under programmeringen:
Vi lager vår første VI[Kap. 3] Vi skal lage en VI som skal implementere følgende funksjonssammenheng mellom inngangssignalet u og utgangssignalet y:
der
(Vi skal lage forsterker.vi.) Vi skal teste VI'en ved å kjøre den kontinuerlig (Run Continuously-knappen i LabVIEWs verktøylinje). Deretter ser vi på følgende emner som er viktige ved all LabVIEW-programmering: Hvordan finne sammenhørende elementer på frontpanel og i diagram? Høyreklikk / Find Terminal. Hvordan manipulere elementer på frontpanelet og i diagrammet (flytte, kopiere, slette, forstørre og forminske, fargelegge). Hvordan finposisjonere elementer på frontpanelet og i diagrammet vha. piltastene? Hvordan distribuere elementer på frontpanelet og i diagrammet f.eks. slik at elementene blir venstrejustert mot en tenkt felles venstre kantlinje. Hvordan skrive vilkårlig tekst på frontpanelet og i diagrammet? Hvordan konfigurere elementene:
FeilsøkingFeil kan være
HjelpHø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. Datatyper i LabVIEW[Kap. 4] LabVIEW har en rekke forskjellige datatyper:
Disse datatypene kan benyttes
Vi ser på datatyper.vi. Arrays[Kap. 4] Elementene i et array kan inneholde nesten hvilken som helst datatype (bare ikke array). Legges inn på frontpanelet slik:
Et array kan ha dimensjon større enn 1. En array-konstant kan legges inn i diagrammet:
Vi ser på array.vi LabVIEW har mange funksjoner som opererer på arrays. Disse funksjonene er tilgjengelige via
Vi blir kjent med disse funksjonene etterhvert. Formel-node[Kap. 5] Formel-noden (Formula Node) er et formelvindu i VI'ens blokkdiagram der vi kan skrive matematiske uttrykk. Meget praktisk alternativ til å legge inn uttrykkene grafisk - spesielt ved innholdsrike eller kompliserte matematiske uttrykk. Formel-noden legges inn slik:
Innganger til og utganger fra formel-noden opprettes ved å høyreklikke på formel-nodens kantlinje. Husk at hver intern utgangsvariabel i uttrykkene i formelnoden må ha en utgangsterminal på formelnoden! Vi lager formelnode.vi. VI'er som skal gå kontinuerlig realisert med while-løkke[Kap. 8] Spesifikasjoner: Vi lager while.vi.
Plotting i diagram[Kap. 9] Diagrammer legges inn på frontpanelet via
Det er en rekke ulike diagramtyper tilgjengelige. De viktigste:
Vi lager plott.vi. Noen spesialiteter:
Skiftregister. Realisering av dynamisk system[Kap. 16.2, 16.3] Et skiftregister benyttes for å huske tidligere sampelverdier av en variabel. Med while-løkke med skiftregister kan du realisere
Du kan legge inn et skiftregister i en while-løkke (og i en for-løkke):
Vi lager lavpassfilter.vi, som realiserer følgende filteralgoritme:
y er filterutgangen og u er filterinngangen. a er filterparameteren. Filteret skal utføre sanntids filtrering, dvs. filtrere det sist tilgjengelige målesignalet, u(i). Krav til innhold i VI'en:
Et annet eksempel på dynamisk system realisert med while-løkke og skiftregister er tanksimulator.vi.
Cluster[Kap. 7] Er en samling av mange (gjerne ulike typer) variable i én ny variabel. Opprettes på frontpanelet:
Vi lager cluster.vi
Sub-VI[Kap. 6] En sub-VI er som en subrutine inne i en VI. Du lager en sub-VI som en vanlig VI, men med terminaler, som editeres ved å høyreklikke på ikonet oppe til høyre i VI'en. Vi lager hoved_vi.vi med forsterker_subvi.vi som subVI. Inkludere en sub-VI i diagrammet:
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:
Ovenfor laget vi subVI'en manuelt. Du kan lage den automatisk også! Vi prøver. Lagre som llb-fil (LabVIEW library)[Kap. 3.7] Du kan lagrer et VI-hierarki (hoved-VI med sub-VI'er) i et "arkiv", som blir én fil. Dette arkivet kalles LabVIEW library.
Egenskapsnode (property node)[Kap. 10] Egenskapsnode lages via
Vi skal lage egenskap.vi. Lokale variable[Kap. 12.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. Lokale variable kan både leses og skrives. Lokale variable legges inn i diagrammet slik:
Vi lager lokal.vi Globale variable[Kap. 12.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. Globale variable opprettes i et diagram slik:
Vi lager skriv_til_global.vi og les_fra_global.vi og global1.vi. For-løkke[Kap. 13] En For-løkke er i prinsippet nokså lik en While-løkke, men en For-løkke gjennomløpes et forhåndsbestemt antall ganger. For-løkka legges inn i diagrammet slik:
Vi laster ned og kjører forlokke.vi. Case-struktur[Kap. 13] Case-strukturen gir mulighet for at bestemte programdeler skal utføres avhengig av verdien av en velgervariabel ("selektor"). For-løkka legges inn i diagrammet slik:
Vi laster ned og kjører case.vi.
Sekvensstruktur[Kap. 13] Med sekvensstrukturen (sequence) kan du spille av programdeler i en bestemt sekvens (rekkefølge). For-løkka legges inn i diagrammet slik:
Vi laster ned og kjører sekvens.vi. Grafikk på frontpaneletDu kan legge inn grafikk(objekter) fra andre tegne- eller bildeprogrammer slik:
Eksempel: http://www.techteach.no/syslab/nivaaregulering_flistank/nivaaregulering_flistank.exe Skrive data til fil[Kap. 19.2] Du kan skrive en dataserie (array) til fil vha. en innebygd VI, som legges inn i diagrammet. VI'en er tilgjengelig slik:
Denne VI'en legges utenfor while-løkka. Du kan også skrive data til fil fortløpende vha.
Denne VI'en legges innenfor while-løkka. Vi lager fil_lagring.vi med utgangspunkt i formelnode.vi. Lese data fra fil[Kap. 19.3] Du kan lese en dataserie fra fil vha. en innebygd VI, som legges inn i diagrammet. VI'en er tilgjengelig slik:
Denne VI'en legges utenfor while-løkka. Du kan også lese data fortløpende fra fil vha.
Denne VI'en legges innenfor while-løkka. Vi lager fil_lesing.vi.
Strukturering av sammensatte VI'er for styring og overvåking[Kap. 17] Vi studerer og prøver pid_regulering.vi i pid_regulering.llb. Dokumentasjon av VI[Kap. 11] Du kan legge inn en beskrivelse av de enkelte elementene (for dokumentasjon): Høyreklikk / Description. For å få vist beskrivelsen (i et lite vindu): Menyvalg Help / Context Help. Du kan lage et Html-dokument (eller Rtf- eller vanlig tekstdokument) som dokumentasjon av VI'en: Menyvalg: Print / Documentation. Det gir bl.a. muligheten til å lage et Html-dokument. Matlab-nodeMatlab-noden er et vindu mot Matlab. (Matlab-noden likner mye på formelnoden.) Du kan skrive Matlab-uttrykk i Matlab-noden, som om du jobbet på Matlabs kommandolinje. Matlab-noden legges inn i diagrammet slik:
Webressurser for LabVIEW og NI
Hva vi skal gjennomgå senere i faget
11.1 2002, Finn Haugen (e-postadresse: finn@techteach.no). |