Çeviri edt. doç. dr. ahmet mavi - pegem.net baski.pdf · Çeviri edt. doç. dr. ahmet mavi herkes...
TRANSCRIPT
Çeviri Edt. Doç. Dr. Ahmet Mavi
Herkes İçin LabVIEW
ISBN 978-605-364-301-2
Kitapta yer alan bölümlerin tüm sorumluluğu yazarlarına aittir.
© 2012, Pegem AkademiBu kitabın basım, yayın ve satış hakları
Pegem Akademi Yay. Eğt. Dan. Hizm. Tic. Ltd. Şti’ye aittir.Anılan kuruluşun izni alınmadan kitabın tümü ya da bölümleri,kapak tasarımı, mekanik, elektronik, fotokopi, manyetik, kayıtya da başka yöntemlerle çoğaltılamaz, basılamaz, dağıtılamaz.
Bu kitap T.C. Kültür Bakanlığı bandrolü ile satılmaktadır.Okuyucularımızın bandrolü olmayan kitaplar hakkında
yayınevimize bilgi vermesini ve bandrolsüz yayınlarısatın almamasını diliyoruz.
1. Baskı: Eylül 2012
Dizgi-Grafik Tasarım: Doç.Dr. Ahmet MaviArif Daş
Kapak Tasarımı: Gürsel AvcıBaskı: Ayrıntı Matbaası
(Ankara-0312-394 55 90)
Yayıncı Sertifika No: 14749Matbaa Sertifika No: 13987
İletişim
Karanfil 2 Sokak No: 45 Kızılay / ANKARAYayınevi: 0312 430 67 50 - 430 67 51
Yayınevi Belgeç: 0312 435 44 60Dağıtım: 0312 434 54 24 - 434 54 08
Dağıtım Belgeç: 0312 431 37 38Hazırlık Kursları: 0312 419 05 60
E-ileti: [email protected]
ÇEVİRİ EDİTÖRÜ
Doç.Dr. Ahmet MAVİ
ÇEVİRİ KURULU
Ünvan, Ad Soyad Üniversite Çevirdiği Bölüm
Prof.Dr. Yaşar DEMİR Muğla 1-2
Prof.Dr. Mehmet ERTUĞRUL Atatürk 3
Doç.Dr. Ahmet MAVİ Atatürk 4-6, 10-12
Fatih AŞKIN Pamukkale 7
Yrd.Doç.Dr. M. Tolga YURTCAN Atatürk 8
Doç.Dr. Songül DUMAN Atatürk 9
Doç.Dr. M. Akif CEVİZ Atatürk 13 ve 17
Arş.Grv. Serdar AYDIN Atatürk 14
Yrd.Doç.Dr. Mutlu KUNDAKÇI Atatürk 15-16
Arif DAŞ Atatürk Sözlük ve Ekler
Çeviri Editörünün MesajıKendimi hiçbir zaman bilgisayar kitabı tercüme ederken bulacağımı
düşünmemiştim. Çünkü ben bir biyokimyacıyım. Bilgisayarla ilk tanışmam Ahmet Saray ve Ercan İstek isimli arkadaşlarıma dayanır. Ahmet’in her seferinde sistem disketiyle açmak zorunda olduğu hurda bilgisayarlardan toplama garip bir bilgisayarı vardı (1990’ların başı). Şu an ise bilgisayar programlama üzerine “devasa reklam bütçesi olan” bir şirketi var. Ercan’ın ise orijinal bir bilgisayarı vardı. Uzay Yolu’ndaki bilgisayarlar gibi konuşmuyordu ama bizim için mükemmel bir şeydi. Bilgisayarlarını ve yemeklerini benimle paylaştıkları için Ahmet’e ve Ercan’a teşekkür ederim. Üniversite öğrenciliğim sırasında ise bilgisayar hocam ve bu kitabın mütercimlerinden Prof. Dr. Yaşar Demir; herkes Word, Excel vb. anlatırken nedendir bilinmez, O bize Quick Basic programlama dilini anlatarak benim programlama dünyasına ilk adımımı atmamı sağladı. 2005 yılında ise Prof. Dr. Mehmet Ertuğrul hocamızın organize ettiği bir kurs vesilesi ile kurs hocamız Serdar Bölükbaşıoğlu ve LabVIEW ile tanıştım. Serdar Bey, laboratuvarda cihazların başında kod yazarken her tıkandığımda bana bir telefon kadar yakın olmuştur. “Ludre Yazılım” şirketinin de sahibi olan Serdar Bey, bu kitabın basımında maddi ve manevi desteğini hiç esirgememiş yegâne yazılım şirketi yöneticisidir. Bu destek bana şirketlerinin büyüklüğünün değil onları yönetenlerin gönüllerinin büyüklüğünün daha önemli olduğunu öğretti. Kendilerine teşekkürü bir borç bilirim. Bu sebeple, geriye dönüp baktığımda bu tercümenin esasında arkadaşlarımın ve hocalarımın bir eseri olduğunu söyleyebilirim. Bu süreçte desteklerinden dolayı eşime ve çocuklarıma teşekkür ederim. Kitaptaki bölümleri çevirme konusundaki teklifimi hiçbir karşılık beklemeksizin kabul eden arkadaşlarıma minnettarım. Ayrıca, nakdi desteğinden dolayı Atatürk Üniversitesi yönetimine müteşekkirim.
Uzun süre beklememize rağmen yeterli bir kaynağın ortaya çıkmamasından dolayı haddimiz olmayarak bu kitabı tercüme etmeye karar verdik. Bazı İngilizce terimlerin yerine Türkçe karşılığını, bazılarının yerine ise LabVIEW’de ifade edildiği şeklini kullandık. Bu sebeple orta seviye İngilizce bilmenin, kitaptaki bazı terimleri anlamada işinizi kolaylaştıracağı kanaatindeyim. Bu kaynağın LabVIEW’e yeni başlayanlar için bir başucu kitabı olacağını düşünüyorum. LabVIEW’i hiç bilmeyen bir kişinin bu kitap sayesinde önemli bir seviyeye geleceğinden şüphem yok. Umarım kitabımız geniş araştırmacı ve mühendis kitlelerine ulaşır ve kullanılır. En büyük hayalim 2023’de kitabın etkilerini görmek. LabVIEW’i öğrendikçe ne demek istediğimi daha iyi anlayacaksınız.
Şu an elinizdeki birinci cildin gelirleri ile ikinci cildi de mümkün olan en yakın zamanda basıma hazırlayacağız. İkinci bölüm, ileri LabVIEW konularını içermektedir.
Kitabımızda hatalar olabilir. Hatalı olduğunu düşündüğünüz yerleri lütfen bize yazınız. Bu, kitabın diğer baskılarının daha iyi olmasına yardımcı olacaktır. Orjinal kitap, LabVIEW 8.0’a göre yazılmıştır. Bu sebeple, daha yeni bir sürüm kullanıyorsanız bazı farklılıklarla karşılaşabilirsiniz. Hatasız kul da olmaz kod da ama hatasız kodlar dileklerimle…
Doç.Dr. Ahmet Mavi Eylül 2012
İçindekilerÇeviri Editörünün Mesajı ...................................................................................... v
Önsöz ..................................................................................................................xix
Laboratuvardan Ötesi .........................................................................................xix
Sanal Enstrümentasyonun Büyüyen Dünyası........................................ xix
Uygulamalar .......................................................................................... xx
Kitabın Amacı .......................................................................................................xx
Temel Konular ....................................................................................... xxi
İleri Konular ......................................................................................... xxii
Dosya Adreslerinin (Path) Yazılım Şekilleri .........................................................xxv
1. LabVIEW Nedir? ........................................................... 1LabVIEW Tam Olarak Nedir ve Benim İçin Ne Yapabilir? ....................................... 2
Veri Akışı ve Grafiksel Programlama Dili ................................................. 3
LabVIEW Nasıl Çalışır? ............................................................................ 5
Gösteri Örnekleri .................................................................................................. 7
NI Example Finder .................................................................................. 7
CD’deki Örnekler..................................................................................... 9
Alıştırma 1.1. Sistem Sıcaklığı Demo VI ................................................... 9
Alıştırma 1.2. Frekans ........................................................................... 14
Özet ..................................................................................................................... 15
Ek Alıştırmalar ..................................................................................................... 16
Alıştırma 1-3: Daha Güzel Örnekler ...................................................... 16
2. Bilgisayarınızı Gerçek Dünyaya Bağlama ......................17Gerçek Dünyada LabVIEW’in Kullanımı ............................................................... 18
LabVIEW’in Gelişimi ............................................................................................ 18
Veri Toplama (Data Acquisition) Nedir? .............................................................. 20
GPIB Nedir? ......................................................................................................... 22
Seri Portu Kullanarak İletişim .............................................................................. 24
VIII Herkes İçin LabVIEW
Gerçek Dünya Uygulamaları: Niçin Analiz Yaparız? ............................................. 25
PXI ve VXI Hakkında Kısa Bilgi ............................................................................. 27
Bağlantı ............................................................................................................... 29
İnternet Bağlantısı ................................................................................ 29
Ağ Oluşturma........................................................................................ 30
ActiveX ve .NET ..................................................................................... 30
Müşterek Kütüphaneler (Shared Libraries), DLL’ler ve CIN’ler ............. 30
Diğer İletişim Mekanizmaları ................................................................ 31
LabVIEW’e Sonradan Eklenebilen Araçlar ........................................................... 32
LabVIEW Real-Time, FPGA, PDA ve Gömülü Sistemler ....................................... 32
Özet ..................................................................................................................... 33
3. LabVIEW Ortamı .........................................................35Front Panel .......................................................................................................... 36
Kontroller ve İndikatörler ..................................................................... 36
Block Diyagram ................................................................................................... 37
Nod (Node) ........................................................................................... 40
Hatlar (Kablolar) ................................................................................... 40
Veri-akış Programlama: Kendini Akışa Bırak ......................................... 41
LabVIEW Proje .................................................................................................... 41
Project Explorer Penceresi .................................................................... 41
Project Explorer Araç Çubuğu ............................................................... 42
Projenize Ekleme Yapma ...................................................................... 42
Proje Dosyaları ...................................................................................... 43
Bir Projeden Madde Silme .................................................................... 44
Building Application, Installer, DLL, Source Distributions ve Zip Dosya 45
Proje Hakkında Daha Fazlası ................................................................. 46
SubVI, İkon ve Konnektör .................................................................................... 46
Alıştırma 3-1: Getting Started ............................................................................. 47
Hizalama Izgarası................................................................................................. 56
Pull-Down Menüler ............................................................................................. 58
IXİçindekiler
Yüzer Paletler ...................................................................................................... 64
Controls ve Functions Paletler .............................................................. 64
Paletleri İsteğinize Göre Düzenleme ..................................................... 74
Tools Palet ............................................................................................ 74
Otomatik Araç Seçimi ........................................................................... 77
Araç Çubuğu (Toolbar) ........................................................................................ 78
Pop-Up Menüler ................................................................................................. 81
Unutulmaması Gereken Pop-Up Menü Özellikleri ................................ 83
Pop-Up Özellikleri ................................................................................. 84
Help! (Yardım) ..................................................................................................... 86
Context Help Penceresi ........................................................................ 86
Online Yardım ....................................................................................... 88
Express VI’lar ...................................................................................................... 88
SubVI’ların Genişletilebilir Nodlar Olarak Gösterimi ........................................... 91
SubVI ................................................................................................................... 93
Alıştırma 3-2: Front Panel ve Block Diyagramda Temel Uygulamalar ................. 94
Özet ..................................................................................................................... 99
4. LabVIEW’in Temelleri ................................................101VI Oluşturma ..................................................................................................... 102
Front Panele Nesneler Yerleştirme ..................................................... 102
Etiketler (Labels) ................................................................................. 102
Yazının Font, Stil, Büyüklük ve Renk Değerlerini Değiştirme............... 106
Block Diyagram Üzerinde Nesneleri Yerleştirme ................................ 106
Düzenleme (Edit) Teknikleri ................................................................ 106
Alıştırma 4-1: Düzenleme (Edit) Alıştırmaları .................................................... 113
Temel Kontroller ve İndikatörler ....................................................................... 117
Nümerik (Sayısal) Kontroller ve İndikatörler ....................................... 117
Boolean .............................................................................................. 125
String .................................................................................................. 129
Path .................................................................................................... 131
X Herkes İçin LabVIEW
Dekorasyon ......................................................................................... 132
Kullanıcı Kontrol ve İndikatörleri ........................................................ 132
Temel Kontrol ve İndikatörlerin Özeti ................................................. 132
Hat Çekme ........................................................................................................ 132
Otomatik Kablo Rotası ........................................................................ 133
Otomatik Hat Çekme .......................................................................... 134
Karmaşık Nesnelerde Hat Çekme ....................................................... 135
Kötü Şekilde Hat Çekme ..................................................................... 135
Hat Çekme İçin İpuçları ....................................................................... 136
Hattı Uzatma ....................................................................................... 137
Kabloları Seçme ve Silme .................................................................... 137
Kabloların Taşınması ........................................................................... 137
Ekranda Görünmeyen Alana Hat Çekme ............................................ 138
Sabit Değerleri, Kontrolleri ve İndikatörleri Otomatik Olarak Ekleme 138
Yazdığınız VI’ı Çalıştırma .................................................................................... 138
Alıştırma 4-2: Bir Termometre Yapımı ................................................ 139
Faydalı İpuçları .................................................................................................. 142
Klavye Kısa Yol Tuşları ......................................................................... 142
LabVIEW’de Yapılmış Örnek Programlar ............................................. 142
Geçiş Araçları ...................................................................................... 142
Kablonun Yönünü Değiştirme ............................................................. 142
Hat Çekme İşlemini İptal Etme ........................................................... 142
En Son Raptiyeleme Noktasını Silme .................................................. 143
Mevcut Bir Hat Üzerine Bir Nesne Yerleştirme ................................... 143
Bir Nesneyi Hassas Şekilde Taşıma ..................................................... 143
Dijital Kontrollerde Daha Hızlı Artış Sağlama ...................................... 143
Ring Kontrole Item’lerin Girilmesi ...................................................... 143
Bir Nesneyi Klonlama.......................................................................... 143
Bir Nesneyi Sadece Bir Doğrultuda Taşıma ......................................... 143
Renk Alma .......................................................................................... 143
XIİçindekiler
Nesnelerin Yerine Yenilerini Yerleştirme ............................................. 144
Boş Alan Oluşturma ............................................................................ 144
Tercihlerinizi Değiştirme ..................................................................... 144
Özet ................................................................................................................... 145
Ek Alıştırmalar ................................................................................................... 146
Alıştırma 4-3: Sayıları Karşılaştır ......................................................... 146
Alıştırma 4-4: Çok Basit Bir Hesap Makinesi ....................................... 146
5. Biraz Daha Altyapı ....................................................147VI’ları Yükleme ve Kaydetme ............................................................................ 148
Kaydet Seçenekleri ............................................................................. 148
Revert ................................................................................................. 150
LLB’ler ................................................................................................. 150
Kaydet ve Yükle Diyalog Kutuları ........................................................ 153
Filter Rings .......................................................................................... 154
Hata Ayıklama Teknikleri ................................................................................... 154
Bozuk Bir VI’ı Onarma ......................................................................... 154
Uyarılar ............................................................................................... 155
En Çok Yapılan Hatalar ........................................................................ 156
Bir VI İçinde Adım Adım İlerleme........................................................ 157
Highlighting (Vurgulama) .................................................................... 158
Mola Noktası Ayarları ......................................................................... 159
Programın İşleyişini Geçici Olarak Askıya Alma .................................. 160
Prob Kullanma .................................................................................... 161
Alıştırma 5-1: Hata Ayıklama ............................................................................. 162
SubVI Oluşturma ............................................................................................... 164
Bir VI’dan Bir SubVI Oluşturma ........................................................... 166
Block Diyagram Üzerindeki Bir Bölgeyi SubVI’a Dönüştürme ............. 172
SubVI Yardım: Tavsiye edilen, Elzem ve Seçmeli Inputlar ................... 172
Relink: SubVI’ların Bağlantı Uçlarını Değiştirme ................................. 173
Çalışmanıza Açıklama Ekleme ........................................................................... 174
XII Herkes İçin LabVIEW
Nesnelere Tanım (Description) ve Tavsiye (Tip) Metni Ekleme ........... 174
VI Properties ile VI’ların Açıklamalarını Girme ................................... 176
Biraz da Yazıcıdan Çıktı Alma Hakkında Konuşalım ........................................... 177
Alıştırma 5-2: SubVI Oluşturma ........................................................................ 178
Özet ................................................................................................................... 181
Ek Alıştırmalar ................................................................................................... 182
Alıştırma 5-3: Ortalama Hesaplama ................................................... 182
Alıştırma 5-4: Bir Sayının Sıfıra Bölümü (Kim demiş olmaz diye?) ...... 183
6. Yapılarla Programın İşleyişini Kontrol Etme ...............185For Döngüsü ve While Döngüsü ........................................................................ 187
For Döngüsü ....................................................................................... 187
While Döngüsü ................................................................................... 187
Döngülerin İçindeki Terminaller ......................................................... 190
Alıştırma 6-1: Döngünün Tur Sayısını Bulma ....................................... 192
Shift Registers ................................................................................................... 196
Alıştırma 6-2: Shift Register Alıştırması .............................................. 198
Shift Register Niçin Gerekli? ............................................................... 200
Shift Registers Başlangıç Değeri .......................................................... 200
Feedback Node ................................................................................... 202
Tünellerin (Tunnels) Shift Register’a Dönüştürülmesi ......................... 203
Case Yapısı ........................................................................................................ 204
Input ve Output’ları Bağlama ............................................................. 206
İlave Durum Pencereleri Oluşturma ................................................... 207
Diyaloglar .......................................................................................................... 208
Alıştırma 6-3: Karekök ........................................................................ 212
Select Fonksiyonu ............................................................................... 215
Sequence Yapısı: Flat veya Stacked ................................................................... 216
Stacked Sequence Pencereleri ve Sequence Locallerin İstenmemesi . 217
Zamanlama (Timing) ......................................................................................... 219
Alıştırma 6-4: Sayı Yakalama ............................................................... 221
XIIIİçindekiler
Express Timing Fonksiyonları .............................................................. 224
Timed Yapıları ................................................................................................... 225
Timed Döngüsü .................................................................................. 226
Timed Sequence ................................................................................. 226
Timed Yapısı VI’ları ............................................................................. 227
Formula Node ................................................................................................... 228
Alıştırma 6-5: Formula Keyfi ............................................................... 230
Expression Node ............................................................................................... 232
While Döngüsü + Case Yapısı ............................................................................ 232
Ana Döngü .......................................................................................... 233
Bir While Döngüsünde Birden Fazla İşi Gerçekleştirme ...................... 234
Wait For Front Panel Activity Fonksiyonu ........................................... 237
Özet ................................................................................................................... 238
Ek Alıştırmalar ................................................................................................... 239
Alıştırma 6-6: Eşitlikler ........................................................................ 239
Alıştırma 6-7: Hesap Makinesi ............................................................ 239
Alıştırma 6-8: For/While Döngüsü Bileşimi ......................................... 240
Alıştırma 6-9: Diyalog Göster .............................................................. 240
7. Array (Dizi) ve Cluster (Küme) ...................................241Array (Dizi) Nedir? ............................................................................................. 242
Array Kontrol ve İndikatör Oluşturma ............................................................... 242
Array Kaydırma Çubuğu ...................................................................... 245
Auto-Indexing’i Kullanma ................................................................................. 245
Döngü Tur Sayısını Ayarlamak İçin Otomatik İndekslemeyi Kullanma 247
İki Boyutlu Arrayler ........................................................................................... 248
İki Boyutlu Arrayler Oluşturma ........................................................... 249
Alıştırma 7-1: Auto-Indexing’i Kullanarak Array Oluşturma .............................. 249
Array Fonksiyonları ........................................................................................... 251
Alıştırma 7-2: Array Cambazlığı ......................................................................... 256
Polimorfizm ....................................................................................................... 259
XIV Herkes İçin LabVIEW
Alıştırma 7-3: Polimorfizm .................................................................. 260
Bileşik Aritmetik ................................................................................................ 262
Boolean Aritmetiğinin Hakkında Biraz Bilgi ........................................ 265
Kümeler (Cluster) Hakkında Her şey ................................................................. 265
Küme Kontrollerini ve İndikatörlerini Oluşturma ................................ 267
Küme Düzeni ...................................................................................... 268
Kümeleri Kullanarak SubVI’lardan Veri Alma ve
SubVI’lara Veri Aktarma...................................................................... 269
Bir Küme Elemanını Değiştirme .......................................................... 270
Kümeden Eleman Ayırma ................................................................... 271
Alıştırma 7-4: Küme Alıştırması .......................................................... 271
İsimli Bundle ve Unbundle .................................................................. 274
Alıştırma 7-5: Kümeler ile Daha Fazla Eğlence .................................... 276
Array↔Küme Dönüşümü ................................................................................. 279
Array ve Kümeler için Comparison (Karşılaştırma) Fonksiyonu
Modları ............................................................................................... 280
Hata Kümeleri ve Hata-İşleme (Error Handling) Fonksiyonları .......................... 281
Hata Kümesi Veri Türü (Error Cluster Datatype) ................................. 282
Hata Üretme: Hata Veri Akışı .............................................................. 282
SubVI’larda Hata Üretme ve Hataya Tepki Gösterme ......................... 284
SubVI’larda Hata İşleme ..................................................................... 287
SubVI’larda Hata Oluşturma ............................................................... 287
Kullanıcıya Hata Mesajları Gösterme .................................................. 288
Hata Giderme İçin Ekstra İpuçları ....................................................... 289
Özet ................................................................................................................... 292
Ek Alıştırmalar ................................................................................................... 293
Alıştırma 7-6: Sırayı Ters Çevir ............................................................ 293
Alıştırma 7-7: Alt Kümesini Alma ........................................................ 293
Alıştırma 7-8: Zar Mücadelesi ............................................................. 293
Alıştırma 7-9: Array Elemanlarını Çarpma .......................................... 293
XVİçindekiler
8. LabVIEW’de Çizelgeler ve Grafikler ............................295Dalga-form Çizelgeler (Waveform Charts)......................................................... 297
Çizelge Güncelleme Modları (Chart Update Modes) .......................... 298
Tek Çizgi Çizelgeler .............................................................................. 298
Çoklu Çizim Çizelgesini Kablolama ...................................................... 299
Tekli ve Çoklu Çizim Mod Çeşitleri: Hatırlatma Amaçlı Hile ................ 300
Dijital Ekranı Görme ........................................................................... 301
X Kaydırma Çubuğu (Scrollbar) ........................................................... 301
Çizelgenin Temizlenmesi ..................................................................... 301
Grafikleri Ayrı Bölümlerde Gösterme veya
Aynı Yerde Üst Üste Bindirme ............................................................. 302
Birden Fazla Y Eksenine İhtiyacınız Varsa ............................................ 303
Çizelge Geçmişinin Uzunluğu .............................................................. 303
Alıştırma 8-1: Bir Sıcaklık Monitörü .................................................................. 304
Grafikler ............................................................................................................ 309
Tek-Çizim Dalga-form Grafikler (Single-Plot Waveform Graphs) ......... 309
Çoklu-Çizim Dalga-form Grafikler ....................................................... 311
Alıştırma 8-2: Dalga-form Grafiğinde Sinüs Grafiği Çizme ................................. 312
XY Grafikleri ...................................................................................................... 317
XY Grafiklerinde Opsiyonel Düzlemlerin Gösterilmesi ........................ 319
Çizelge ve Grafiklerin Bileşenleri ....................................................................... 321
Ölçekleri Değiştirme ........................................................................... 322
Grafik Çizgi Biçimi ............................................................................... 325
Alıştırma 8-3: Daire Çizmek İçin XY Grafiği Kullanma ........................................ 328
Graph Paletini Kullanma ..................................................................... 330
Grafik İmleçleri ................................................................................... 331
Grafik Bilgi Notu ................................................................................. 333
Alıştırma 8-4: Sıcaklık Analizi ............................................................................ 335
Yoğunluk Çizelgeleri-Üçüncü Boyut Olarak Grafik Rengini Kullanma ................ 339
Alıştırma 8-5: Yoğunluk Grafiği ........................................................... 341
XVI Herkes İçin LabVIEW
3D Grafikler ........................................................................................ 343
Zaman Etiketleri, Dalga-formlar ve Dinamik Veri .............................................. 346
Zaman Etiketi (Time Stamp) ............................................................... 346
Dalga-form (Waveforms) .................................................................... 350
Dalga-form Fonksiyonları .................................................................... 353
Alıştırma 8-6: Dalga-form Oluşturma ve Çizme .................................. 358
Dijital Veri ........................................................................................... 360
Dijital Dalga-form Grafikler ................................................................. 361
Dinamik Veri ....................................................................................... 362
Karışık Sinyal Grafikleri ...................................................................................... 365
Çizelge ve Grafik Resimlerinin Dışa Aktarılması ................................................ 368
Özet ................................................................................................................... 369
Ek Alıştırmalar ................................................................................................... 370
Alıştırma 8-7: Sıcaklık Sınırı ................................................................. 370
Alıştırma 8-8: En büyük ve En Düşük Sıcaklık Değerleri ...................... 371
Alıştırma 8-9: Elemanları Rastgele Sayılar Olan Arrayleri Çizdirme .... 371
9. Stringler ve Dosya I/O .............................................373Stringler Hakkında Daha Fazla Bilgi ................................................................... 374
Kendi Gösterim Tipini Seç ................................................................... 374
Tek Satır Stringleri ............................................................................... 377
Siz Yazarken Güncelleme .................................................................... 377
Kaydırma Çubuğu ............................................................................... 377
Tablolar ............................................................................................... 377
Liste Kutucukları (Listboxes) ............................................................... 378
String Fonksiyonları Kullanma ........................................................................... 380
Alıştırma 9-1: String Oluşturma ........................................................................ 384
Ayrıştırma Fonksiyonları ................................................................................... 386
Desen Eşleştirme (Match Pattern) ve
Kurallı İfadeler (Regular Expressions) ................................................. 389
Alıştırma 9-2: String Ayrıştırma Hakkında Daha Fazlası .................................... 393
XVIIİçindekiler
Dosya Input/Output .......................................................................................... 395
Kullanım Şekli ..................................................................................... 395
Hızlı Veri Yazma ve Ölçüm Dosyalarını Okuma.................................... 397
Spreadsheet Dosyalarını Okuma ve Yazma ......................................... 398
Alıştırma 9-3: Bir Spreadsheet Dosyaya Veri Yazma ........................... 400
Alıştırma 9-4: Spreadsheet Dosyadan Veri Okuma ............................. 402
Dosyadan Veri Okuma ve Dosyaya Veri Yazma Konusunda
Daha Fazlası ........................................................................................ 402
Alıştırma 9-5: Bir Text Dosyasını Okuma ............................................. 405
Alıştırma 9-6: Binary Dosyalarına Veri Kaydetme ve
Onlardan Veri Okuma ......................................................................... 406
Özet ................................................................................................................... 410
Ek Alıştırmalar ................................................................................................... 410
Alıştırma 9-7: Zamanla Sıcaklık Değişimi ............................................ 410
Alıştırma 9-8: Spreadsheet Alıştırması................................................ 411
ÖnsözLabVIEW; veri toplama ve cihaz kontrolü açısından sanayide, akademik çalışmalarda,
araştırma laboratuvarlarında kullanılmaya yönelik geliştirilmiş bir programlama dilidir. LabVIEW; Windows, Mac OSX veya Linux işletim sistemleri altında çalışabilen güçlü, esnek veri analiz ve cihaz kontrol sistemidir. LabVIEW’i, PDA’lar (Palm OS, Pocket PC veya Windows CE cihazlar), real-time platformlar üzerinde çalıştırabilirsiniz. Hatta FPGA yongalar ve 32 bit mikroişlemciler içerisine gömülü LabVIEW programları da çalıştırılabilir. Kendi LabVIEW programınızı yani sanal cihazınızı (VI, virtual instrument) oluşturmak oldukça basit bir işlemdir. LabVIEW’in sezgisel arayüzü, program yazmayı ve kullanmayı ilginç ve eğlenceli hale getirmektedir.
LabVIEW, geleneksel programlama dillerindeki gibi satır satır yazılan bir dil değildir. Kolayca kullanılabilen grafiksel programlama ortamıdır; veri toplama (DAQ), veri analiz etme ve sonuçların sunulması konularında gerekli olan tüm araçlara sahiptir. “G” olarak ifade edilen bu grafiksel programlama dili ile programlarınızı bir grafiksel block diyagram kullanarak hazırlayabilirsiniz. LabVIEW ile birçok probleminizi kısa sürede çözebilir, normal dillerle yazmaya kalktığınızda başınıza bela olacak işleri kolayca halledebilirsiniz.
Laboratuvardan ÖtesiAdının da ima ettiği gibi LabVIEW, dünyanın önde gelen araştırma ve geliştirme
laboratuvarlarında (örneğin Lawrence Livermore, Argonne, Batelle, Sandia, Jet Propulsion Laboratory, White Sands ve Amerika’da Oak Ridge ve Avrupa’da CERN), sanayinin araştırma-geliştirme laboratuvarlarında, dünyanın değişik üniversitelerinde özellikle elektrik ve makina mühendisliği ve fizik laboratuvarlarında oldukça popüler olan bir programlama dilidir.
LabVIEW, laboratuvar dışına da taşmış ve bugün uzay mekiklerinden denizaltılara, Kuzey Denizi’ndeki petrol kuyularından Yeni Zelanda’daki fabrikalara kadar geniş bir coğrafyaya yayılmıştır. Yeni internet özellikleri sayesinde artık bir yere gitmeden laboratuvarınızı LabVIEW ile uzaktan kontrol edebilirsiniz. LabVIEW ile yapılan sanal cihazlar size maliyet, zaman ve esneklik açısından önemli avantajlar sağlayacaktır.
Sanal Enstrümentasyonun Büyüyen DünyasıÇoğu üretim yerinde muhakkak bir şeyler ölçülür. Örneğin sıcaklık. Fırınlarda,
buzdolaplarında, seralarda, temiz odalarda, sabun tanklarında sıcaklık ölçümü yapılması gerekir. Sıcaklıktan öte basınç, kuvvet, konum, gerilim vb. büyüklükleri de ölçmek gerekmektedir. LabVIEW, bu büyüklükleri ölçecek şeylerle bilgisayarları buluşturmaktadır. LabVIEW sadece bununla da kalmayıp verileri görüntüler ve analiz eder.
Bir şeyi ölçüp analiz ettikten sonraki adım, genellikle elde ettiğiniz verilere göre bir şeyleri değiştirmektir. Örneğin ölçtüğünüz sıcaklık değerine göre fırını veya klimayı açma veya kapatma komutu göndermek gibi. LabVIEW bu işleri kolaylıkla yapabilir. Bu LabVIEW’in güçlü yanıdır. LabVIEW bu işleri doğrudan yapabildiği gibi programlanabilir mantıksal kontrolörler (PLC) ile haberleşerek de yapabilmektedir.
UygulamalarLabVIEW’i kullanabileceğiniz işlerden bazıları:• Kap atışını simüle etme• Dondurma yapım sürecini kontrol etme• Uzay mekiğinde hidrojen gazı sızıntısını belirleme• Bebek deve kuşlarının beslenme alışkanlıklarının izleme• Güç kalitesini analiz etmek için güç sistemlerini modelleme• Laboratuvar farelerinde deneyin fiziksel etkilerini ölçme• Servo ve step motor hareketini kontrol etme• Bilgisayarlardaki ve diğer elektronik cihazlardaki devre kartlarını test etme• Sanal gerçeklik sistemlerinde hareketi simüle etme• Helyum doldurulmuş bir zeplini web üzerinden uzaktan kontrol etme• TPS raporunuz için otomatik olarak kapak sayfası oluşturma
Kitabın AmacıHerkes İçin LabVIEW kitabı hızlı ve kolay bir şekilde LabVIEW’i öğrenmenizi ve
bu konuda uzmanlaşmaya başlamanızı sağlayacaktır. Bu kitap, değişik teknikleri size göstermek için ilave örnekler ve alıştırmalar sunmakla beraber LabVIEW hakkında başka bilgi kaynakları sunmakta ve LabVIEW uygulamalarının açıklamalarını bulundurmaktadır. Lütfen kitabın ekindeki CD’de bulunan programları açın, inceleyin, kullanın ve üzerinde değişiklik yapın. http://labviewforeveryone.com adresli siteden örnekleri, alıştırmaları güncelleyebilir ve düzeltme cetveline ulaşabilirsiniz (Çeviri editörünün notu: orijinal kitap için geçerlidir). LabVIEW’in 30 günlük kullanımı olan en yeni deneme sürümünü http://ni.com/labview adresinden indirebilirsiniz.
Bu kitap, bilgisayarınızda bulunan işletim sisteminin temel bilgisine sahip olduğunuz düşünülerek yazılmıştır. Bilgisayar konusunda çok fazla deneyiminiz yoksa işletim sistemi kullanım kılavuzunu okumanızı, bilgisayarınız ile alıştırma yapmanızı tavsiye ederiz. Örneğin menülere nasıl gireceğinizi, dosyaları açmayı ve kaydetmeyi, yedekleme diski oluşturmayı ve fareyi kullanmayı bilmeniz gerekmektedir. Diğer programlama dilleri (C, Java, FORTRAN, vb.) ile temel programlama becerileri edinmişseniz bu size bir avantaj sağlayacaktır ancak LabVIEW’i kullanmak için diğer programlama dillerini bilmek gerekmemektedir.
Bu kitabı okuyup, alıştırmalarını yaptıktan sonra aşağıdaki işlemleri rahatlıkla yapabilirsiniz.• LabVIEW’de programlar (VI’lar) yazmak• Değişik hata ayıklama tekniklerini kullanmak• Dâhili LabVIEW fonksiyon ve VI’ları üzerinde oynamak• VI’larınızı subVI olarak kaydetmek• Grafiksel kullanıcı arayüzler (GUI, graphical user interfaces) tasarlamak• Verilerinizi bir dosyaya kaydetmek ve verileri bir grafik ya da çizelgede göstermek• General Purpose Interface Bus (GPIB) veya seri veri yolu içeren cihazları kullanan
uygulamalar yapmak• Takılabilir DAQ kartlar kullanan uygulamalar oluşturmak• Verilerinizi işlemek için dâhili analiz fonksiyonlarını kullanmak
• LabVIEW programlarınızın hız ve performansını iyileştirmek• Event structure gibi ileri teknikleri kullanmak• VI’larınızı kontrol etmek ve internet veya Web üzerinden verilerinizi yayınlamak• Kendi cihazınızı kontrol etmek için LabVIEW’i kullanmak
Bu kitap cihaz kontrol ve veri analiz uygulamaları konusunda hızlı bir ilerleme kaydetmenizi sağlayacaktır. Kitap iki ana bölümden oluşmaktadır: Temel konular ve İleri konular.
Temel konular dokuz bölümler oluşmaktadır ve size LabVIEW’de programlamanın temellerini öğretecektir. İleri konular, becerilerinizi daha da geliştiren ve işinize yarayacak teknikler içeren sekiz bölümden oluşmaktadır. Size kitabın en başından itibaren okumanızı ve ondan sonra ileri konulara geçmenizi tavsiye ederiz ancak zamanınız fazla yoksa istediğiniz konuları okuyunuz.
On yedi bölümün her birinde, öğrenmeyi kolaylaştırmak için bölümdeki konular belirli bir sıraya göre verilmiştir. Bu sıra aşağıdaki gibidir.• Genel Bakış, Amaçlar ve Anahtar Kelimeler o bölümde bahsedilecek ana
düşünceyi tanımlamaktadır.• Ana bölümde konuyla ilgili açıklamalar yer almaktadır• Alıştırma konuyu pekiştirmektedir• Özet kısmında bölüm kısaca özetlenmektedir• Ek Alıştırmalar daha fazla uygulama yapmanızı sağlamaktadır.
Temel Konular1. bölüm (LabVIEW nedir?) LabVIEW’i anlatmaktadır ve LabVIEW’in kullanımı ve
özelliklerinden bahsetmektedir.2. bölümde (Bilgisayarınızı Gerçek Dünyaya Bağlama) sanal enstrümentasyonu ve
LabVIEW ile veri analizi, GPIB ve seri iletişimin nasıl gerçekleştirildiğini göreceksiniz.3. bölümde (LabVIEW Ortamı) LabVIEW Project Explorer’ı ve virtual instrument
(veya VI), Help penceresi, menüler, araçlar, paletler ve subVI’lar gibi önemli bileşenlerden bahsedilecektir.
4. ve 5. bölümlerde (LabVIEW’in Temelleri ve Daha Fazla Altyapı) kontrol ve indikatörleri (numeric, Boolean ve string gibi); VI’ları kablolama, oluşturma, düzenleme, hatadan arındırma ve kaydetme işlemlerini; subVI’lar oluşturma ve çalışmalarınıza açıklama ekleme konularını kullanarak LabVIEW’de programlamanın temellerini göreceksiniz.
6. bölümde (Yapılarla Programının İşleyişini Kontrol Etme) While ve For döngüleri, shift registers, Case yapısı, Sequence yapısı ve Formula Node’lardan oluşan LabVIEW’in temel programlama yapılarını anlatılacaktır. Burada While döngüsü ve Case yapısını birleştireceksiniz.
7. bölümde (Array (Dizi) ve Cluster (Küme)), dizi ve kümeleri nasıl kullanacağınızdan bahsedeceğiz. Bu bölümde ayrıca dizi ve kümeleri düzenlemek için gerekli fonksiyonları göreceksiniz. Ayrıca LabVIEW’de hata kümelerini ve doğru hata işlemeyi nasıl yapacağınızı öğreneceksiniz.
8. bölüm (LabVIEW’de Çizelgeler ve Grafikler) LabVIEW’deki çeşitli çizelge (chart) ve grafikleri anlatacak ve onları, verileri sunmak için nasıl kullanacağınızı öğretecek.
9. bölüm (Stringler ve Dosya I/O) string veri tipi, string fonksiyonları ve tablolar üzerinde duracak. Burada düzenli ifade kodlarını kullanarak bir stringi nasıl çözümleyeceğinizi öğreneceksiniz. Ayrıca LabVIEW’in basit File I/O VI’ları kullanarak verilerinizi nasıl kaydedeceğinizi ve verileri bir dosyadan nasıl okuyacağınızı göreceğiz.
İleri Konular10. bölüm (Sinyal Ölçümü ve Sinyal Üretimi: Veri Toplama) size sinyal, veri
toplama (data acquisition), analog ve dijital I/O konularının arkasındaki bazı teorileri öğretecektir. Burada donanım konusundaki düşünceleri öğreneceksiniz ve cihaz kontrolde yaygın olarak kullanılan önemli kısaltmaların bazılarını bulacaksınız. Ayrıca Measurement & Automation Explorer’ı (MAX) kullanarak ve NI-DAQmx cihazları yapılandırarak veri toplama konusunda yazılım ayarlarını konuşacağız.
11. bölüm (LabVIEW’de Veri Toplama), 10. bölümde öğrendiğiniz temel veri toplama konularından sonra DAQmx VI’larını kullanarak onları LabVIEW’de nasıl kullanacağımızı öğretecektir. Kullanımı kolay ve güçlü bir yapı olan DAQmx task konusunu göreceksiniz. Ayrıca bazı alıştırmalar yaparak analog ve dijital veri alma ve gönderme konusu üzerinde uğraşacaksınız. Bölüm, veri toplama uygulamaları konusunda bazı ileri konulardan bahsedip bitecektir.
12. bölüm (LabVIEW’de Cihaz Kontrolü), harici bir cihazı LabVIEW ile nasıl kullanacağımızı anlatacak. GPIB, seri, Ethernet ve diğer bazı cihaz ara yüzleri hakkında konuşacağız ve bu arayüzler üzerinden güçlü bir yapı olan VISA yardımıyla nasıl haberleşebileceğimizi göreceğiz.
13. bölüm (İleri Düzey Yapı ve Fonksiyonlar) local ve global değişkenler, property node, invoke node ve Event Structure gibi çok değerli konuları içermektedir. Bu bölümde State Machine ve Queued Message Handler uygulamalarını, mesaj üretme ve eş zamanlı hale getirme fonksiyonlarını (Queues, Notifiers, Semaphores, Rendezvous, ve Occurrences) göreceksiniz. Ayrıca burada size LabVIEW’in GUI araçlarından (alt panel, grafik, ses vb.) bahsedilecek.
14. bölüm (İleri Düzey LabVIEW Veri Kavramları), binary ve konfigürasyon dosyaları ile nasıl çalışacağınızı, dosya I/O ve metin dosyaları konusunda daha ileri fonksiyonları öğretmektedir. LabVIEW’in DLLs ve Shared Libraries gibi harici kod modüllerini nasıl oluşturup okuyabileceğinizi göreceksiniz.
15. bölüm (LabVIEW’in İleri Düzey Özellikleri), VI Setup seçeneklerini kullanarak VI davranışını ve görünüşünü nasıl yapılandıracağınızı gösterecektir. Referanslarla LabVIEW, VI’lar ve kontrolleri dinamik bir şekilde nasıl kontrol edeceğinizi ve VI Server konusunu göreceksiniz. Burada Find fonksiyonundan ve VI Hierarchy penceresinden bahsedilecek.
16. bölüm (LabVIEW’de Bağlanabilirlik), web üzerinden VI’a bağlanma, Shared Variables ile veri paylaşma, ağ iletişimi ve rapor oluşturma gibi konulardan bahsedecektir.
17. bölümde (LabVIEW Programlamada Görsellik) Control Editor’ü kullanarak ve resimler ekleyerek uygulamanızı istediğiniz gibi nasıl şekillendirebileceğiniz konusunda bazı püf noktalardan ve sitillerden bahsedilecek. Burada ayrıca programınızın daha az yer kaplayan ve daha hızlı çalışan, başka platformlara taşınabilen bir program olması için bazı programlama tekniklerini öğreneceksiniz.
Ek A’da (CD İçeriği), CD’deki dosyaların özet ve açıklamalarını bulabilirsiniz. Burada LabVIEW’in deneme sürümünü kurmak ve kitaptaki örnek ve alıştırmaları bulmak için açıklamalar bulunmaktadır.
Ek B’de (LabVIEW İçin İlave Araçlar), LabVIEW’in fonksiyonelliğini arttırmak için National Instrument ve diğer şirketler tarafından geliştirilen ek araçları göreceksiniz.
Ek C (Ücretsiz LabVIEW Araçları: OpenG), işbirliği içinde LabVIEW için ek araçlar geliştiren OpenG.org topluluğundan ve ücretsiz yazılımlardan bahsetmektedir.
Ek D’de (LabVIEW’de Nesneye Yönelik Programlama) LabVIEW nesne tabanlı programlamanın öyküsü de dâhil olmak üzere, LabVIEW nesne tabanlı programlama teknikleri tanıtılacaktır.
Ek E (LabVIEW İçin Çözümler); kullanıcı grupları, tartışma forumları ve diğer değişik kaynaklara linkler içermektedir.
Ek F’de, (LabVIEW Sertifika Sınavları) LabVIEW sertifika sınavlarından, onlara nasıl hazırlanacağınızdan, ne olacağından ve sertifikanın faydalarından bahsedilecektir.
Kitabın sonunda sözlük ve indeks bölümünü bulacaksınız.Bu kitapta uygulanan kurallar aşağıdaki tabloda verilmiştir.
Bold VI isimleri, fonksiyon isimleri, menüler, menü içerikleri ve paletler kalın karakterle yazılmıştır. Örneğin “TCP Functions paletinden TCP Read’i seç” gibi.
İtalic Vurgular, çapraz-başvurular, bir anahtar kelime veya kavramı belirtmek için italic metin kullanılmıştır. Örneğin, “Kontrol referans LabVIEW kontrol ya da indikatörlerini işaret eden bir nesnedir ve onların özelliklerini kontrol edebilmektedir”
Courier Klavye kullanarak girilen karakterler Courier yazı tipinde verilmiştir. Bu yazı tipi dosyalar ve dosya adresleri için de kullanılmıştır. Kodlar, programlama örnekleri, kod örnekleri, bilgisayar ekranında otomatikman görünen mesajlar Courier yazı tipinde verilmiştir. Örneğin “ Bu kitapta dosya ismi olarak c:\data\datafile.txt giriniz”.Not. Bu ikon, sizin dikkatinizi çekebilecek bilgiler olduğunu belirtmektedir.
Dikkatli ol! Bu ikon yaygın görülen bazı tehlikelerden ya da zor duruma düşmemeniz için gerekli bilgilerden bahsedileceği anlamı taşımaktadır.
İp Ucu. Bu ikon bazı şeyleri daha etkili bir şekilde nasıl yapabileceğinizin ipuçlarını vermektedir.
Bu ikonu gördüğünüzde bunun anlamı sözü edilen konu Certified LabVIEW Developer (CLD) sınav konusudur. Bir CLD olmaya hazırlanmak istiyorsanız bu ikona dikkat edin. Sertifika programı hakkında detaylı bilgi için Ek F’ye bakın.6. bölümde, sıklıkla yapılan işler için otomatik programlama imkânı sağlayan LabVIEW’in Express teknolojilerini göreceksiniz.
Dosya Adreslerinin (Path) Yazılım Şekilleri Farklı platformlar dosya adresi (path) belirtmek için farklı kurallar kullanmaktadır.
Örneğin, Windows’da adres X:\LABVIEW\MINE.LLB\BINGO.VI şeklindedir. Aynı adres bir MacOS klasik sistemde Hard Drive Name:LabVIEW:Mine.jib:Bingo.vi şeklindedir. Linux ve OS X makinalarda ise /usr/labview/mine.llb/bingo.vi şeklinde olacaktır. Kitap size bir örnek VI’ın nerede olduğunu söyleyeceği zaman tüm adres yerine LabVIEW dosya ve klasörlerden varsayılan adresi listeleyecektir. Gösterimi basitleştirmek amacıyla biz adres yazım standardı olarak Windows standardını kullanacağız. Mac OS veya UNIX makina kullanıyorsanız gerekli yerlere uygun olan işaretleri (iki nokta işaretini veya bölü işaretini) yerleştiriniz.
1. LabVIEW Nedir?Genel Bakış
LabVIEW dünyasına hoş geldiniz. Bu bölüm size LabVIEW hakkında temel açıklamalarda bulunacak, onun yeteneklerini ve hayatınızı nasıl kolaylaştırdığını anlatacaktır.
Amaçlar• LabVIEW’in geliştirdiği fikrin gerçekte ne olduğunu öğrenmek,• “grafik programlama dili” ve “veri akışı programlama” terimlerinin
anlamlarını öğrenmek,• NI Örnek Arayıcıyı kullanarak LabVIEW’le birlikte gelen tanıtıcı örnekleri
incelemek (NI: National Instrument),• LabVIEW ortamını hissetmek.
Anahtar Kelimeler• LabVIEW• NI Örnek Arayıcı• G• Virtual Instrument (VI) (Sanal Cihaz)• Veri Akışı• Grafiksel Dil• Front Panel• Block Diyagram• İkon• Konnektör• Toolbar• Palet• Hiyerarşi
Herkes İçin LabVIEW2
LabVIEW Tam Olarak Nedir ve Benim İçin Ne Yapabilir?LabVIEW, Laboratory Virtual Instrument Engineering Workbench kelimelerinin
kısaltılmasından elde edilen bir isimdir ve bir programlama ortamını tanımlar. Bu programda, içinden veri akan hatlar yardımıyla fonksiyonel noktaları birbirine bağlayarak bir grafik gösterim üzerinden program yapacaksınız. LabVIEW; C, C++ veya Java gibi geleneksel dillerden farklıdır (bu dillerde programı metin yazarak yaparsınız). Ancak LabVIEW bir programlama dilinden daha fazlasını vadetmektedir. LabVIEW, işlerinin bir parçası olarak bir programa ihtiyaç duyan bilim insanları ve mühendisler gibi kişiler için tasarlanmış, interaktif bir program geliştirme ve uygulama sistemidir. LabVIEW uygulamaları Windows, Mac OSX veya Linux işletim sistemleri altında çalışır. LabVIEW ile Microsoft Pocket PC, Microsoft Windows CE, Palm OS gibi platformlarda ve Field Programmable Gate Arrays (FPGAs), Digital Signal Processors (DSPs) ve mikro işlemciler gibi değişik gömülü platformları içeren sistemlerde çalışabilen programlar yapılabilir.
LabVIEW çok güçlü bir programlama dili kullanır ve birçok LabVIEW kullanıcısı onu “G” (Graphical’dan gelmektedir) olarak isimlendirir. LabVIEW, üretkenliğinizi de arttırır. Geleneksel programlama dilleri ile haftalar veya aylar içerisinde yazılabilecek olan programlar, LabVIEW kullanılarak saatler içerisinde tamamlanır. Çünkü LabVIEW, verileri analiz etmek, ölçümlerini almak ve sonuçlarını kullanıcıya sunmak için özel olarak geliştirilmiştir. LabVIEW ayrıca gelişmiş bir grafiksel kullanıcı ara yüzeyine sahiptir ve böylece işiniz oldukça kolaylaşır. LabVIEW; simülasyonlar, fikirlerin sunumu, genel programlama ve hatta temel programlama özelliklerini öğretmek için kullanılabilir.
LabVIEW size standart laboratuvar cihazlarından daha fazla esneklik sağlar çünkü o yazılım temellidir. Cihazın nasıl bir şey olacağını, cihazın üreticisi yerine siz belirlersiniz. LabVIEW’i kullanarak ihtiyacınız olan aleti, geleneksel aletlerin maliyetinin küçük bir bölümüne tamamen yeniden oluşturabilirsiniz. İhtiyaçlarınız değiştiği zaman sisteminizde anında değişikliğe gidebilirsiniz.
LabVIEW hayatınızı mümkün olduğunca kolaylaştırmanıza yardım eder. LabVIEW, programlama işleriniz esnasında size yardımcı olabilecek ve hafıza işgal etmeden kullanabileceğiniz çok geniş bir fonksiyon ve alt program kütüphanelerine sahiptir. Geleneksel programlama dillerinde karşılaşabileceğiniz gizli programlama problemleri ile LabVIEW’de daha az karşılaşırsınız. LabVIEW, Data Acquisition (DAQ) ve General Purpose Interface Bus (GPIB) için kod kütüphaneleri gibi spesifik kütüphane uygulamalarını ve seri aygıt kontrolü, veri analizi, veri sunumu, veri depolama ve internet üzerinden haberleşme gibi farklı uygulamaları da içerir. Analiz kütüphanesi; sinyal üretme, sinyal işleme filtreleri, Windows istatistikleri ve regresyonları, lineer cebir ve array aritmetiği gibi çok yönlü ve kullanılışlı fonksiyonları bünyesinde barındırmaktadır.
LabVIEW’in grafiksel tabiatından dolayı doğuştan bir veri sunum paketidir. Verileri istediğiniz herhangi bir formda görüntüleyebilirsiniz. Çizelge (Chart), grafik ve kullanıcı tanımlı grafik, kullanılabilecek çıkış seçenekleri arasındadır. Bu kitap size bu formların tümünde veri sunumunun nasıl yapılacağını gösterecektir.
3LabVIEW Nedir?
LabVIEW’in programları platformlar arasında taşınabilir. Çoğu zaman Macintosh’ta yazdığınız bir programı herhangi bir değişiklik yapmadan bir Windows makinaya yükleyip çalıştırabilirsiniz. Mühendislik ve proses kontrolünün her türü, biyoloji, tarım, fizyoloji, kimya, fizik, eğitim ve daha birçok endüstriyel alanda işlem geliştirmeye uygun LabVIEW uygulamaları bulacaksınız.
Şekil 1.1 Space Industries Sheet Float Zone Furnace, NASA KC135 parabolik hava taşıtlarının içerisinde mikro-yerçekimli ortamda yüksek sıcaklıkta süperiletken olan bir materyal geliştirme araştırmaları için kullanıldı. LabVIEW, bu sistemi kontrol etmektedir.
Veri Akışı ve Grafiksel Programlama DiliLabVIEW program geliştirme ortamı standart C veya Java geliştirme sistemlerinden
farklıdır. Diğer programlama sistemleri kod satırı oluşturmak için metin tabanlı dilleri kullanarak program yazarken, LabVIEW genellikle “G” olarak bilinen grafiksel programlama dilini kullanarak programları oluşturur. Bu grafiksel sayfaya “block diagram” denilmektedir.
Grafiksel programlama söz dizimi ve yazım kuralları gibi birçok detayı elimine eder (Eğer metin tabanlı programları kullanmayı bilmiyorsanız bu çok sıkıcıdır. LabVIEW’de bunları bilmeye ihtiyacınız yoktur).
Grafiksel programlama, program yaparken pek bilinmeyen yazım kurallarına takılmadan sadece uygulamanızın içerisindeki verini akışına yoğunlaşmanızı sağlamaktadır. Şekil 1.2 ve 1.3 basit bir LabVIEW kullanıcı ara yüzünü ve onun arkasındaki kodları göstermektedir.
Herkes İçin LabVIEW4
LabVIEW, bilim insanlarının ve mühendislerin kullandığı terminolojiyi, ikonları ve fikirleri kullanır. LabVIEW, programın yapacağı işlemleri tanımlamak için metin tabanlı bir dilden ziyade grafik sembollere dayanmaktadır. LabVIEW uygulamaları veri akış (dataflow) prensibine dayanır. Bu prensibe göre fonksiyonlar sadece gerekli veri alındığı zaman çalıştırılır. Bu özellikleri sebebiyle, çok az programlama bilginiz olsa bile (hatta hiç olmasa da) LabVIEW’i öğrenebilirsiniz. Bununla birlikte temel programlama bilgisine sahip olmanız sizin için tabiki faydalı olacaktır.
Şekil 1.2 Kullanıcı arayüzü
Şekil 1.3 Grafiksel kod
5LabVIEW Nedir?
LabVIEW Nasıl Çalışır?Bir LabVIEW programı bir veya daha çok sanal cihazdan (virtual instrument’den
(VI)) oluşur. Sanal cihazların görünüşleri ve çalışma şekilleri gerçek aletlere benzediği için böyle isimlendirilir. Yine de görüntünün arka tarafındaki ana program fonksiyonları ve yardımcı fonksiyonlar, C veya Basic gibi popüler programlama dilleri ile benzerdir. Bundan sonra biz “VI” dediğimizde bir LabVIEW programını kastedeceğiz (VI, “viay” diye okunur ve bazı kişilerin sandığı gibi Roma rakamı olan 6 demek değildir). Anlaşıldığı üzere bir LabVIEW programı daima VI olarak isimlendirilir. Programın görüntüsü ve fonksiyonu gerçek bir cihaz gibi olsa da olmasa da bu böyledir.
Bir VI üç ana parçaya sahiptir. Bunlar: Front panel, Block diyagram ve ikondur. • Front panel, bir VI’ın interaktif kullanıcı ara yüzüdür ve fiziksel bir aletin ön
görünüşüne benzediği için böyle isimlendirilmiştir (Şekil 1.4). Front panel basılabilir düğmeleri, grafikleri, diğer birçok kontrolü (kullanıcı girişleri gibi) ve indikatörü (program çıkışlarını) içerir. Burada, fare veya klavyeyi kullanarak veri girebilir ve daha sonra da program tarafından üretilen sonuçları ekranda görebilirsiniz.
Şekil 1.4 Bir VI’ın front paneli
Herkes İçin LabVIEW6
• Block diyagram, grafiksel programlama dili olan G ile LabVIEW’de oluştu-rulan VI’ın kaynak kodudur. Block diyagram çalıştırılabilir gerçek bir prog-ramdır. Bir block diyagramın bileşenleri; alt-programlar, fonksiyonlar, sabit değerler (constants) ve yapılardır (döngüler vb.). Siz sadece nesneler ara-larındaki veri akışını göstermek için uygun bağlantı hatları çizersiniz. Front panel nesneleri block diyagramdaki terminallere karşılık gelir. Bu panel ara-cılığıyla veri, kullanıcıdan programa veya programdan kullanıcıya gidebilir.
Şekil 1.5 Bir VI’ın block diyagramı
• Bir VI’ı başka bir VI’ın block diyagramında çalışan bir alt program olarak kullanmak için, alt VI’ın bir konnektör ve bir ikona sahip olması gerekir (Şekil 1.6). Başka bir VI’ın içinde kullanılan VI subVI olarak isimlendirilir, alt program da denilmektedir. İkon bir VI’ın sembolik gösterimidir ve başka bir VI’ın block diyagramı içerisinde bir nesne olarak kullanılır. Bir VI’ın konnektörü, VI subVI olarak kullanıldığında, diğer bir block diyagramdan VI’ın içine veriyi atmak için kullanılan bir mekanizmadır. Konnektör, VI’ın giriş ve çıkış kapılarını belirtir.
Şekil 1.6 VI’ın ikonu (solda) ve konnektörü (sağda)
7LabVIEW Nedir?
VI’lar hiyerarşik ve modülerdir. Onları isterseniz üst seviye bir program olarak, isterseniz bir alt program olarak kullanabilirsiniz. Bu mimariyle LabVIEW modüler programlama kavramını geliştirmiştir. Bir uygulamayı önce basit alt görevlere bölersiniz, daha sonra her bir alt görevi gerçekleştiren bir VI oluşturursunuz ve daha sonra da bu VI’ları birleştirdiğinizde işin tümünü yapabilecek üst seviyeden bir block diyagram elde edersiniz.
Modüler programlama, her bir subVI’ı bağımsız olarak çalıştırabileceğiniz ve hataları daha kolay bulmanızı sağlayan artı bir özelliktir. Ayrıca birçok alt seviye subVI sık sık değişik uygulamalarda ortak görevler gerçekleştirir ve her uygulamada birbirlerinden bağımsız olarak kullanılabilir.
Bazı LabVIEW terimlerini ve onların geleneksel programlama eşdeğerlerini Tablo 1.1’de görebilirsiniz.
Tablo 1.1 LabVIEW terimleri ve onların geleneksel eşdeğerleri
LabVIEW Programlama DilleriVI ProgramFonksiyon Fonksiyon veya metotsubVI Alt yordam, alt program, nesneFront panel Kullanıcı ara yüzüBlock diyagram Program koduG C, C++, Java, Pascal, BASIC vd.
Eğer önceden C++ veya Java gibi nesneye yönelik dillerle çalışmışsanız, LabVIEW ve ondaki G’nin nesneye yönelik dillerin basitleştirilmiş hali olmadığını bilmenizde fayda var. Nesneye yönelik programlama birçok faydalar sağlar. Bu nedenle G’nin içerisinde GOOP (G Object Oriented Programming) olarak bilinen ve nesneye yönelik olarak kod yazmamıza imkân veren bir kaç tane yardımcı program da mevcuttur. GOOP hakkında daha fazla bilgi için Ek D’ye bakınız (Ek D: “LabVIEW’de Nesneye Yönelik Programlama”).
Gösteri ÖrnekleriEvet, şimdiye kadar yeterince okudunuz. Artık LabVIEW’in nasıl çalıştığı hakkında
bir fikir edinmek için bir kaç tane LabVIEW programını açabilir ve çalıştırabilirsiniz.
NI Example FinderLabVIEW çok sayıda hazır örnek VI içermektedir. Bu örnekler; yaygın programlama
tekniklerini öğrenmenizi, bilgisayara genel veri giriş ve çıkış uygulamalarını ve veri işleme uygulamalarını görmenizi sağlar. NI Example Finder, bu örnekleri araştırmaya yardım eden çok kullanışlı bir araçtır.
LabVIEW’i başlattıktan sonra Şekil 1.7’de görüldüğü gibi NI Example Finder’ı açmak için Help menüsüne gidip Find Example’ı seçmeniz yeterlidir.