Çeviri edt. doç. dr. ahmet mavi - pegem.net baski.pdf · Çeviri edt. doç. dr. ahmet mavi herkes...

29
Ç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 Akademi Bu 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ıt ya 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 Mavi Arif Daş Kapak Tasarımı: Gürsel Avcı Baskı: Ayrıntı Matbaası (Ankara-0312-394 55 90) Yayıncı Sertifika No: 14749 Matbaa Sertifika No: 13987 İletişim Karanfil 2 Sokak No: 45 Kızılay / ANKARA Yayınevi: 0312 430 67 50 - 430 67 51 Yayınevi Belgeç: 0312 435 44 60 Dağıtım: 0312 434 54 24 - 434 54 08 Dağıtım Belgeç: 0312 431 37 38 Hazırlık Kursları: 0312 419 05 60 E-ileti: [email protected]

Upload: vudung

Post on 30-Jan-2018

237 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: Çeviri Edt. Doç. Dr. Ahmet Mavi - pegem.net baski.pdf · Ç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

Ç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]

Page 2: Çeviri Edt. Doç. Dr. Ahmet Mavi - pegem.net baski.pdf · Ç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
Page 3: Çeviri Edt. Doç. Dr. Ahmet Mavi - pegem.net baski.pdf · Ç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

ÇEVİRİ EDİTÖRÜ

Doç.Dr. Ahmet MAVİ

[email protected]

Ç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

Page 4: Çeviri Edt. Doç. Dr. Ahmet Mavi - pegem.net baski.pdf · Ç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

Ç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

Page 5: Çeviri Edt. Doç. Dr. Ahmet Mavi - pegem.net baski.pdf · Ç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

İç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

Page 6: Çeviri Edt. Doç. Dr. Ahmet Mavi - pegem.net baski.pdf · Ç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

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

Page 7: Çeviri Edt. Doç. Dr. Ahmet Mavi - pegem.net baski.pdf · Ç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

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

Page 8: Çeviri Edt. Doç. Dr. Ahmet Mavi - pegem.net baski.pdf · Ç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

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

Page 9: Çeviri Edt. Doç. Dr. Ahmet Mavi - pegem.net baski.pdf · Ç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

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

Page 10: Çeviri Edt. Doç. Dr. Ahmet Mavi - pegem.net baski.pdf · Ç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

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

Page 11: Çeviri Edt. Doç. Dr. Ahmet Mavi - pegem.net baski.pdf · Ç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

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

Page 12: Çeviri Edt. Doç. Dr. Ahmet Mavi - pegem.net baski.pdf · Ç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

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

Page 13: Çeviri Edt. Doç. Dr. Ahmet Mavi - pegem.net baski.pdf · Ç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

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

Page 14: Çeviri Edt. Doç. Dr. Ahmet Mavi - pegem.net baski.pdf · Ç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

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

Page 15: Çeviri Edt. Doç. Dr. Ahmet Mavi - pegem.net baski.pdf · Ç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

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

Page 16: Çeviri Edt. Doç. Dr. Ahmet Mavi - pegem.net baski.pdf · Ç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

Ö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.

Page 17: Çeviri Edt. Doç. Dr. Ahmet Mavi - pegem.net baski.pdf · Ç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

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

Page 18: Çeviri Edt. Doç. Dr. Ahmet Mavi - pegem.net baski.pdf · Ç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

• 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.

Page 19: Çeviri Edt. Doç. Dr. Ahmet Mavi - pegem.net baski.pdf · Ç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

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.

Page 20: Çeviri Edt. Doç. Dr. Ahmet Mavi - pegem.net baski.pdf · Ç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

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.

Page 21: Çeviri Edt. Doç. Dr. Ahmet Mavi - pegem.net baski.pdf · Ç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

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.

Page 22: Çeviri Edt. Doç. Dr. Ahmet Mavi - pegem.net baski.pdf · Ç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

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.

Page 23: Çeviri Edt. Doç. Dr. Ahmet Mavi - pegem.net baski.pdf · Ç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

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

Page 24: Çeviri Edt. Doç. Dr. Ahmet Mavi - pegem.net baski.pdf · Ç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

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.

Page 25: Çeviri Edt. Doç. Dr. Ahmet Mavi - pegem.net baski.pdf · Ç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

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.

Page 26: Çeviri Edt. Doç. Dr. Ahmet Mavi - pegem.net baski.pdf · Ç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

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

Page 27: Çeviri Edt. Doç. Dr. Ahmet Mavi - pegem.net baski.pdf · Ç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

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

Page 28: Çeviri Edt. Doç. Dr. Ahmet Mavi - pegem.net baski.pdf · Ç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

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)

Page 29: Çeviri Edt. Doç. Dr. Ahmet Mavi - pegem.net baski.pdf · Ç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

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.