Institutionen för elektroteknik Inledning LabView är ett system för att med hjälp av en dator t ex 1999-02-16 simulera mät- och reglersystem tillsammans med ett in/ut-kort (AD/DA) i datorn efterlikna instrument för spänningsmätning och signalgenerering i datorn samtidigt köra flera sådana 'instrument' tillsammans i ett mätsystem till systemet koppla in verkliga instrument och signalkällor via någon kommunikationsport som RS232 (serieport) eller GPIB (General Purpose Instrument Bus) efterbearbeta mätsignaler, t ex beräkna max-, min- och medelvärden Ovanstående sammanställning är på inget sätt heltäckande men ger en liten bild av vad som kan åstadkommas. Vi kommer här att se på ett enkelt tillämpningsexempel och gå igenom de viktigaste verktyg som finns i -miljön. Ett inledande exempel För att komma igång så tittar vi på en färdig applikation, en enkel kalkylator för att addera signaler. För att starta applikationen så får vi starta Windows, klicka upp gruppen LabView och i denna grupp starta LabView. Väl inne i programmet så öppnar vi applikationen genom menyvalet File/Open..., varefter vi öppnar det bibliotek där exemplet finns. Biblioteket heter DEMO.LLB och ni hittar det som C:\NATIONAL\LABVIEW\DEMO\DEMO.LLB. När vi öppnat biblioteket så klickar vi igång det virtuella instrumentet summator.vi och får då fram nedanstående bild. CHALMERS LINDHOLMEN Sida 1 Institutionen för elektroteknik Sven Knutsson Box 8873 402 72 Göteborg Besöksadress: Hörselgången 4 Telefon: 031-772 57 27 Telefax: 031-772 57 31 E-post: svenk@ios.chalmers.se Web: www.ios.chalmsers.se/ svenk
Bilden visar skalet (frontpanel), den del av vårt instrument som vi vill att användaren skall se. På frontpanelen har vi i vårt fall tre rutor med rubriker. Två av rutorna (märkta X respektive Y) används för att mata in våra insignaler (som vi vill summera). Applikationen kan köras på två olika sätt. Antingen lägger vi in värden i rutorna för X och Y och klickar på pilknappen i knappraden för att köra applikationen en gång och få utresultatet eller också kör vi applikationen kontinuerligt genom att klicka på den 'cirkulära' pilen i knappraden varvid vår applikation körs hela tiden, gång efter gång och ändringar av invärdena leder omedelbart till att ett nytt värde beräknas och visas i resultatrutan. Inmatning kan ske genom att vi klickar på de små pilarna till vänster om inmatningsrutorna, det inmatade värdet kommer då att öka eller minska med ett (1) vid varje klickning. Vill vi snabbare hoppa till ett nytt värde eller mata in tal som inte stämmer med uppräkningssteget så kan vi klicka i rutan och därefter editera det värde som ligger där. Den ruta där resultatet (summan, Resultat) visas är ett resultatfönster vars värde kommer fårn beräkningenoch vi saknar därför möjligheter att direkt gå in i denna ruta för att ändra innehållet. Utöver denna panel så måste vi ha någon möjlighet att beskriva själva funktionen, dvs hur utsignalen beror av insignalerna, detta gör vi med hjälp av vidstående 'kopplingsschema' (blockdiagram) som visar sig då vi gör menyvalet Windows/Show Diagram (eller Ctrl+E eller klickar i blockschemafönstret om det är synligt). I diagrammet hittar vi tre rutor (terminaler) med tillhörande rubriker som symboliserar våra in- och utmatningsrutor på panelen. Mellan dessa block ligger en operator, i detta fall ett triangulärt block med ett plustecken, dvs ett block som utför en addition. Detta block är sedan kopplat till in- och utblocken med hjälp av 'ledningar'. Sida 2
Hjälpmedel Innan vi övergår till att skapa egna applikationer så måste vi se lite grann på vilka redskap vi har för att skapa dessa. Redskapen når vi med hjälp av ett antal menyer, knappar och så kallade paletter. Editerings- och körmod Applikationens fönster kan befinna sig i två olika lägen (moder). I editeringsmod (edit) kan vi bygga upp och ändra vår applikation medan vi i körmod (run) bara kan köra vår färdiga applikation. I körmod kan vi bara ändra inmatningsfunktioner, dvs skriva in nya värden i inmatningsrutor, 'vrida' på rattar etc, inte editera själva funktionen hos applikationen. Vi växlar mellan de två moderna med hjälp av menyvalet Operate/Change to Run/Edit Mode. Menyer Menyraden ser ut på vidstående sätt Vi skall här bara nämna de menyval som vi hinner gå in på i denna laboration. File-menyn File-menyn behöver vi inte orda mycket om eftersom den i stort sett innehåller de vanliga Windowsfunktionerna för att öppna, lagra och skriva ut filer etc. Det speciella som kan vara värt att notera är att vi här kan skapa så kallade biblioteksfiler för att lagra våra applikationer. Vi återkommer till detta i laboration 1. Edit-menyn Denna meny innehåller förutom de vanliga funktionerna för att klippa och klistra bara en viktig funktion Remove Bad Wires som används då vi i en koppling har gjort någon ändring och inte har lyckats radera alla ledningsstycken eller då vi har försökt göra någon koplling som inte är korrekt (dessa ledningsstycken visas som streckade linjer). Tar vi inte bort dessa skräpledningar så kan vi inte köra applikationen. Funktionen kan också nås via Ctrl+B. Operate-menyn Operate-menyn innehåller bara en viktig funktion för oss, Make Current Values Default som gör att de värden som vi har inställda kommer att bli de värden som är inställda då vi läser in applikationen vid ett senare tillfälle. Här kan vi dessutom växla mellan körnings- och editeringsmod. Project-menyn Projektmenyn innehåller funktioner för att t ex se beroendet mellan olika delar i ett större projekt och är inget som vi behöver nu. Sida 3
Windows-menyn Här finns ett antal viktiga val. Show Diagram gör att om vi befinner oss i panelfönstret så växlar vi till diagramfönstret. Befinner vi oss i diagramfönstret har vi i stället menyvalet Show Panel som gör att vi växlar till panelfönstret. Båda valen kan också utföras via Ctrl+E. Show Controls/Functions Palette gör att vi får fram en palett med tillgängliga frontpanelobjekt (controls) respektive blockschemaobjekt (functions), se nedan. Via Show Tools Palette får vi fram en palett med tillgängliga editeringsverktyg, se nedan. Hjälp-menyn Här är valet Show Help Window (Ctrl+H) viktigt. Det gör att vi får fram ett litet hjälpfönster. I detta fönster kan vi få hjälp runt våra objekt. Klickar vi på en funktion så kommer dess funktion med in- och utgångar (anslutningar) att visas i hjälpfönstret. Från denna meny kan vi också starta en omfattande OnLinemanual där vi kan söka mer detaljerad information om objekt eller metoder. Det finns även möjlighet att gå direkt från hjälpfönstrets information om ett objekt till motsvarande information i OnLinemanualen. Funktionsknappar Knappraden som dessutom innehåller en meny och ett par paletter, antar olika utseende beroende på om vi befinner oss i editerings- eller körmod och beroende på om vi befinner oss i frontpanel- eller blockschemafönstret. I körmod har vi i frontpanelfönstret knappraden och i blockschemafönstret I editeringmod har vi i frontpanelfönstret knappraden och i blockschemafönstret Som synes innehåller knappraden för blockschemafönstret i editeringsmod alla objekt som finns med i de övriga alternativen varför vi beskriver denna knapprad. Beskrivningen behandlar knapparna från vänster till höger. Körknappen Knappen gör att vi kan köra vår applikation även från denna mod. Medan applikationen körs visas knappen med 'fartränder'. Har vår koppling fel, t ex ingångar som inte är anslutna eller brutna ledningsstumpar så visas körknappen som avbruten. Kör kontinuerligt knappen Knappen gör att vi kommer att köra vår applikation gång efter gång utan avbrott. Då vi kör kontinuerligt är knappens pilar svarta medan de annars är de vita. Sida 4
Stoppknappen Denna knapp aktiveras då vi kör en applikation och används för att stoppa denna. Pausknappen Knappen används för att tillfälligt stoppa en programkörning. Spårningsknappen Då knappen har tryckts in (så att den lyser ) så kommer programkörningen att gå långsammare samtidigt som man i blockschemat kommer att se hur en punkt vandrar fram längs ledningarna så att vi kan följa programflödet. Funktionen är bra för att felsöka en applikation. Stegningsknappar Dessa tre knappar används då vi vill felsöka en applikation genom att utföra programkörningen stegvis. Fontval Den första rullgardinsmenyn innehåller funktioner för att styra presentationen av text, t ex typsnitt och fontstorlek. Placeringspalett Via denna palett kan vi ordna objekt snyggt genom att t ex se till att objekten står på samma baslinje. Fördelningspalett Via denna palett kan vi se till att objekt fördelas snyggt, t ex se till att avstånden mellan objekten är lika stora. Överlappningspalett Här kan vi styra i vilken ordning överlappande objekt skall synas. Verktygspalett Via vidstående verktygspalett kan vi välja verktyg för att editera vår applikation. Då vi klickar på en knapp kommer muspekaren att förvandlas till aktuellt verktyg. Sida 5
Fingerknappen Knappen gör att musmarkören ser ut som ett finger och används t ex för att tryckas på knappar och för att markera insättningspunkt i inmatningsrutor. Editeringsknappen Efter tryck på denna knapp så blir musmarkören en pil och vi kan använda den för att flytta och ändra storleken på objekt. Textknappen Valet gör att vi kan skriva in text på den plats på panelen där vi klickar med musen. Trådningsknappen Musmarkören ser nu ut som en trådrulle och vi kan använda musen för att dra ledningar mellan funktionsobjekt. Då vi nu för musmarkören över ett objekt så kommer de delar av funktionen som tillhör respektive in- eller utgång att allt eftersom visas i svart. Den del som visas som svart är alltså den del som kommer att kopplas till ledningen då vi klickar på vänster musknapp. Popupknapp Knappen gör att Controls- respektive Functionspaletten visar sig då vi klickar i aktuellt fönster. Funktionen är inte speciellt användbar. Skrollningsknappen Efter detta val så kan vi ta tag i ett fönster och förflytta dess mittpunkt (skrolla fönstret). Brytpunktsknapp Via denna knapp kan vi sätta brytpunkter i en applikation, dvs stoppa applikationen då vi har nått någon speciell punkt i flödet och här inspektera signalvärden. Funktionen är envändbar för felsökning. Probeknappen Efter detta val kan vi placera så kallade mätprober i vårt blockschema. Dessa prober kopplas till någon signal och visar aktuellt värde hos denna. Även denna funktion är bra för felsökning. Pipetten Denna används då vi vill kopiera färgen på ett objket till ett annat objekt. Sida 6
Penselknappen Verktyget används då vi vill ändra färg på något objekt. Vi ställer oss då över objektet och klickar med höger musknapp för att få fram en färgpalett. Controls-palett Paletten innehåller (via underpaletter) alla de olika objekt som vi kan placera på instrumentpanelen och finns därför bara tillgänglig när vi befinner oss i panelfönstret. Menyn är dessutom bara aktiv i editeringsmod. Paletten har ett antal val som sedan leder till underpaletter där vi grafiskt kan se de olika objekten och med musen kan välja önskat objekt. Flyttar vi oss med piltangenterna i paletten så kommer vi att längst upp på paletten se en rad som kort anger objektets funktion. Det finns ett enklare sätt att nå denna meny än att gå upp till menyraden och klicka där. Om vi ställer oss med musen över en tom del av panelen och trycker ner höger musknapp så kommer Controls-menyn fram direkt. Då vi har valt ett objekt kommer det att sitta fast vid muspekaren och vi kan placera det på önskat ställe. Controlspaletten innehåller bl a Numeric Paletten innehåller olika inmatningsobjekt för siffror som inmatningsrutor och rattar samt utmatningsobjekt som utmatningsrutor och visarinstrument. Boolean Här har vi olika objekt med boolsk funktion, dvs objekt som kan vara sanna och falska som knappar och lampor (lysdioder). String & Table Här har vi objekt för att mata in och visa textsträngar. Graphs I denna palett har vi ett antal varianter av grafer för att visa våra utvärden grafiskt. Sida 7
Functions-palett Denna meny finns bara tillgänglig i diagramfönstret och är där motsvarigheten till panelfönstrets Controls-meny. Den är alltså bara aktiv i editeringsmod och används för att plocka fram objekt till vårt kopplingsschema. Även denna meny kan tas fram med hjälp av höger musknapp. Functions-menyn innehåller bl a Structures Paletten innehåller bl a från datorprogrammering välkända strukturer som IF-, FOR- och CASE-strukturer. Numeric Här har vi de vanliga aritmetiska funktionerna som addition och division. Vi har dessutom trigonometriska och logaritmiska funktioner. Boolean Här finns logiska (boolska) funktioner. String Här har vi funktioner för att hantera textsträngar. Comparison Paletten innehåller funktioner för jämförelser som större än och mindre eller lika med noll. Instrument I/O Paletten innehåller funktioner för att styra instrument, t ex via GPIB- eller serieinterface. Data Acquisition Vi har här funktioner för att kommunicera med in/ut-kort. Analysis Är finns alla funktioner för att analysera insamlade mätdata. Sida 8