You are on page 1of 98

1

1. ÇEŞİTLİ KAVRAMLAR

Genel Bakış

Bu bölüm, diğer hiçbir bölüme uymayan birkaç önemli LabVIEW konusunu


kapsamaktadır. VI’ların görünüĢ ve davranıĢlarını nasıl düzenleyeceğinizi,
LabVIEW’in nasıl çıktılarının alınacağınızı ve LabVIEW’in ne kadar hafıza
kullanmasını belirlemeyi öğreneceksiniz.

Hedefleriniz

 VI kurma seçeneklerini ve alt VI düğüm kurma seçeneklerini kurmayı ve


bunlar arasındaki farkı anlamak.
 Uygulama yaparken bir alt VI’yı açmak için düzenleyebilmek ve
tamamladığında paneli kapatabilmek.
 VI’yı uygulama paleti butonlarını saklayarak korumayı bilmek.
 Hem program ile hem de elle, LabVIEW’den yazmayı ve yazma tercihleri
kurmayı öğrenmek.

Anahtar Terimler

VI Setup (VI kurma)


SubVI Node Setup (Alt VI Düğüm Kurma)
Reentrant
2

1.1 Kendi VI’larınızı Kurma

Zaman zaman VI’nın devreye sokulmasını veya pencerelerin görüntüsünü


etkileyen seçenekleri kurmak isteyebiliriniz; VI Setup seçenekleri ve SubVI Node
Setup seçenekleri. Bu seçeneklerden bazıları kesiĢirken, VI kurma ve alt VI
düğümlerini kurma arasında çok önemli farklılıklar olduğunu göreceksiniz. VI
kurmanın altında kurulan seçenekler VI’nın tüm örneklerini etkilerken, alt VI
düğümlerini kurma seçenekleri sadece bir tek alt VI çağrımını etkiler.

Alt VI Düğümleri Kurma seçenekleri

Alt VI üzerinde değiĢiklik yapabileceğiniz birkaç kurma vardır. Bu seçenekler alt


VI ikonuna girerek (Çağrım VI’nın blok diyagramında) ve pop – up menüsünden
SubVI Node Setup’ı seçerek ulaĢılabilir. Bunlar sadece o alt VI düğümünü etkiler.
Alt VI’ya gelen diğer çağrımlar etkilenmeyecektir. ġekilde gösterildiği gibi, kurma
seçeneklerini gösteren bir diyalog kutusu belirir.

Bu diyalog kutusundaki seçenekler Ģunları içerir;

 Open Front Panel when loaded. Eğer seçilirse, VI, alt VI ya da ana VI
olarak hafızaya yüklendiğinde VI’nın ön paneli direk açılır.
 Show Front Panel when called. Eğer seçilirse, VI, alt VI ya da ana VI
olarak devreye sokulduğunda VI’nın ön paneli direk açılır.
3

 Close afterwards if originally closed. Eğer Show Front Panel when


called seçilirse, VI, alt VI olarak devreye sokulduğunda VI ön paneli direk
açılır. Afterwards if originally closed’ı seçmek, VI’nın devreye
sokulmasını bir pop – up penceresi etkisi vererek tamamladığında VI ön
panelinin kapanmasına neden olur.
 Suspend when called. Eğer seçilirse, alt VI çağrıldığında VI’nın devreye
sokulması durur. Bu seçenek bir Breakpoints ayarı ile aynı etkiye sahiptir.

Alıştırma 1.1

Pop – up Alt Vı’sı

Her 10 saniye için her 0,5 saniyede bir sıcaklık isteyen bir VI yapacaksınız,
toplama tamamlandığında, VI baĢka bir ön panel açar ve istenen veriyi bir grafikte
belirtir. Bir pop – up paneli sen Boolean düğmesine tıklayana kadar açık kalır.

Öncelikle, kendi ön panelini açan, grafiği gösteren ve Boolean düğmesine


tıklayana kadar bekleyen bir VI yapmalısınız. Sonra bu VI’yı sıcaklığı iĢleyen bir
VI’nın blok diyagramında alt VI olarak kullanacaksınız.

Ön Panel

1. Yeni pencere açın ve arka sayfada gösterilen ön paneli yapınız. Kontrolleri


ve iĢaretleri gösterildiği gibi değiĢtirdiğinize emin olun.
4

Blok Diyagram

1. Blok diyagramı aĢağıda gösterildiği oluĢturun.

Bundle fonksiyonu (Array&Cluster menüsü). Bu alıĢtırmada, VI’nın


çağrımıyla geçen veri itilir, böylece VI veriyi bir XY grafiğinde gösterebilir.

Not fonksiyonu (Arithmetic menüsü). Bu alıĢtırmada, DONE düğmesi


yerleĢtirilir, böylece düğmeye basana kadar While döngüsü devreye sokulur
(Düğmenin varsayılan değeri FALSE’dur (YanlıĢ)).

2. Ġkonu ve VI bağlantıları oluĢturunuz. Eğer nasıl yapıldığını hatırlamıyorsanız


Bölüm 5.5’e geri dönüp okuyunuz.
5

3. VI’yı kaydedip kapatınız. Use pop – up Graph.vi olarak adlandırınız ve


MYWORK.LLB’e yerleĢtirin. VI’yı bir alt VI olarak kısa bir süre
kullanacaksınız.

Diğer Bir Ön Panel

4. Yeni bir ön panel açınız ve ön paneli aĢağıda gösterildiği kurunuz. Tablo


ısıyı elde edildiği gibi göstermektedir.

Diğer Bir Blok Diyagram

5. Blok diyagramı aĢağıda gösterildiği gibi kurunuz.


6

Pop – up Graph VI (VI... menüsü). Pops kendi panelini açar ve sıcaklık


dizisine karĢı zaman dizisinin tekrar planını çizer.

6. Daha yüksek bir seviye tarafından çağrıldığında ön panelini açması için


Pop–up Graph alt VI’yı düzenleyiniz. Ġkonuna tıklayınız ve pop – up
menüsünden SubVI Node Setup’ı seçiniz. Diyalog kutusunu Show Front
Panel when called’e ve Close afterwards if originally closed’a göre
düzenleyiniz.

7. VI’yı MYWORK.LLB’de saklayınız. Pop – up Graph.vi olarak adlandırın.

8. VI’yı çalıĢtırınız. VI sıcaklık verisini aldıktan sonra, pop – up Graph’ın ön


paneli açılır ve sıcaklık verisini çizer. VI’yı çağırmaya dönmek için DONE’u
tıklayınız.

9. Bütün pencereleri kapatınız.

VI Kurma Seçenekleri

VI’ları düzenlemenin diğer bir yolu olan, VI kur seçeneklerine, panel camının
sağ üst köĢesindeki ikon camına tıklayarak ve pop – up menüsünden VI Setup’ı
seçerek ulaĢabilirsiniz. AĢağıda gösterildiği gibi, diyalog kutusu kurma
seçeneklerini gösterir görünmektedir. Herhangi bir seçenek kurmak için, o
seçeneğe yakın kareyi tıklayınız. Seçilen seçenekle birlikte kutuda bir x görünür.
Bir seçeneği silmek için, o seçeneğin yanındaki x’i tıklayınız ve x kaybolacaktır. VI
kur altında yapılan seçenekler VI’ya yapılan bütün çağrıları etkiler.
7

 Show Front Panel When Loaded. Eğer seçilirse, VI’yı hafızaya


yüklediğinizde, VI alt panel bile olsa ön paneli açılır.
 Show Front Panel When Called. Eğer seçilirse, VI bir alt VI olarak iĢlev
görüyorsa VI ön paneli açılır.

Not: VI’nın xyz’sinin VI Setup menüsünden Show Front Panel When Called’u
seçersiniz, ondan sonra xyz alt VI olarak arandığı her zaman xyz’nin ön paneli
açılır. Bu seçenek, alt VI olarak xyz kullanan VI uygulamalarının hepsini etkiler.
Eğer SubVI Node Setup menüsünden Show Front Panel When Called’i
seçerseniz, xyz ön paneli sadece o Ģemadaki o düğüm gerçekleĢtiğinde açılır. Bu
seçenek, alt VI olarak, xyz kullanan diğer VI’ları etkilemez.

 Close Afterwards if Originally Closed. Eğer Show Front Panel When


Called seçilirse, VI ön paneli VI, alt VI olarak iĢlev gördüğünde açılır. Close
Afterwards if Originally Closed’u seçmek VI’nın uygulaması
tamamlandığında, VI ön panelinin kapanmasına neden olur. Bu iki
seçeneği, SubVI Node Setup’da olduğu gibi, alt VI’nın uygulanması
sırasında bir pop up penceresi düzenlemek için kullanabilirsiniz.
 Run When Opened. Eğer seçilirse, VI’yı her açtığınızda otomatik olarak
çalıĢır. ÇalıĢtırma düğmesine gerek kalmaz.
8

 Suspend When Called. Bu seçeneği seçmek, uygulama paletindeki


Breakpoint düğmesine tıklamaya eĢittir. Bir alt VI çağrıldığında uygulamayı
durduracaktır.
 Reentrant Execution. VI’yı bir alt VI olarak kullanmayı ve çoklu aramalara
yapmak istiyorsanız, aramaların aynı verileri paylaĢmayacağına ve bu
yüzden birbirini saptıracağına dikkat ediniz.
 Print Panel When VI Completes Execution. Bu seçenek kontrol edildiği
zaman, bir VI’nın ön paneli çalıĢmayı bitirdiği zaman yazacak. Ayrıca, Print
Header, Scale to fit ve Surround Panel with Border seçeneklerine de
sahipsiniz.

1.2 Yazma

LabVIEW’den hem elle hem de programla yazabilirsiniz. Programla yazma


sadece uygun ön paneli yazarken, elle yazma ya hepsini veya bir VI’nın
belirlenmiĢ kısımlarını yazabilir.

Sadece aktif pencereyi yazmak istiyorsanız, File menüsünden Print Window’u


seçebilirsiniz. Bir VI’nın tüm kısımlarını elle yazmak için, File menüsünden Print
Documentation seçiniz. AĢağıdaki Diyalog kutusuna bakınız.
9

Bu Diyalog kutusundan, VI’nın hangi kısımlarını yazdırmak istediğinizi


belirtebilir ve sayfa Preview seçeneklerini belirleyebilirsiniz. Ayrıca çıktılarının
nasıl göründüğüne bakabilirsiniz. Edit menüsünden Preferences seçerseniz,
Standart printing veya Postscript printing arasında seçim yapabilirsiniz.
Pencereler altında üçüncü olarak Non – bitmap printing seçeneği vardır.
Postscript printing seçerseniz, renk yazımını destekleyecek Level 2 Postscript
seçeneğine sahip olacaksınız.

Programmatic Printing

ÇalıĢtırma modu uygulama paletindeki Print mode düğmesine tıklayarak


veya Print Panel When VI Completes Execution’ı seçerek programlı yazmayı

gerçekleĢtirebilirsiniz. Bu sağlandığında, düğme Ģekline dönüĢür. Eğer


programlı yazmalar açıksa, VI uygulamayı bitirdiğinde, bütün görülebilen veriler
dahil kendi ön paneline yazar. Eğer bir ön panelin sadece belirli bir kısmını
yazmak istiyorsanız, o verileri bir alt VI’nın ön paneline göndermelisiniz ve alt VI’ya
10

programlı yazmayı sağlamalısınız. Bu metot ayrıca, yazımın ona VI hala uygulama


yaparken de gerçekleĢmesini sağlar.

1.3 Paketleme

VI uygulama özelliklerini LabVIEW’in kurma seçenekleri ile değiĢtirebilirsiniz.


Bu değiĢiklikler, yüklendiğinde, VI’yı otomatik olarak çalıĢtırmayı, bir VI
çağrıldığında ön panelin açılmasını, yeni uygulamayı belirlemeyi ve daha birçok
Ģeyi içermektedir. Bu seçenekleri iki Ģekilde değiĢtirebilirsiniz; VI kurma pop – up
diyalog kullanarak veya alt VI düğüm kurma pop – up diyalog kutusunu kullanarak.

VI kurma pop – up kurma diyalog kutusunu kullanarak değiĢtirilmiĢ bir VI


uygulama karakteristiği, VI’nın ana VI veya alt VI olarak uygulamasını etkiler. Alt VI
düğüm kurma pop – up diyalog kutusu kullanılarak değiĢtirilmiĢ bir VI’nın her
uygulama karakteristiği, sadece o düğümü etkiler. Aynı VI’nın diğer düğümleri
etkilenmeyecektir.

VI’nın hepsini ya da belirlenmiĢ kısımlarını elinizle yazabilirsiniz veya yazıcıya


programlı olarak bir ön panel gönderebilirsiniz. Tüm ya da belirli VI kısımlarını
yazmak için, File menüsünden Print Documentation’ı seçin. Eğer sadece bir ön
panel yazmak istiyorsanız, çalıĢma modu uygulama paletindeki Print mode
düğmesini kullanınız. Ondan sonra VI ön panelini uygulamayı bitirdiği her seferde
yazıcıya gönderecektir. Eğer, sadece aktif pencereyi yazmak istiyorsanız, File
menüsünden Print Window bölümünü seçeceksiniz.
11

1.4 Ek Alıştırmalar

Alıştırma 1.2

Programlı Yazma

Graph Sine Array.vi’yi belirleyiniz, böylece otomatik olarak ön panelde


uygulamayı bitirdiği zaman yazacaktır.
12

2. ÖRNEKLER

Bu bölümde LabVIEW Student Edition ile birlikte gönderilen yazılım örnekleri


anlatılmaktadır. Bağlantı hatları, yapı ve programlama teknikleri ile ilgili önemli bilgi
kaynaklarını bulacaksınız. Açın, içine göz atın ve çalıĢtırın.LabVIEW’in nasıl
çalıĢtığı hakkında çok Ģey öğreneceksiniz. Uygulamalı bu örneklerin hepsini
çalıĢtırabilir ve üzerinde de değiĢiklik yapabilirsiniz. Ama yine de kendi
donanımınıza özgü ayarlar yapmalı ve DAQ ve GPIB VI’larını yüklemelisiniz. Bu
örnekler LabVIEW Student Edition klasörü veya dizini içinde örnekler klasörü veya
dizini içinde bulabilirsiniz.

Uygulama Örnekleri

Frequency Response.vi

Yol: EXAMPLES\APPS\FREQRESP.LLB
13

Bu VI bir uygulamayı simüle eder. Bu, GPIB elemanlarını kullanarak, içeriği


bilinmeyen kara kutunun frekans cevabının testini yapar. Bir fonksiyon jeneratörü
kutunun sinüsoidal giriĢini sağlar ve dijital multimetre kutunun çıkıĢ voltajını ölçer.
GiriĢe uygulanan sinüs sinyalinin genlik değerini hesaplayabiliriz. Kademe aralığı
kontrolü ile genlik değerini değiĢtirerek frekans cevabını VI kademe aralığı kontrolü
ile bulur. DüĢük frekans ve yüksek frekans potlarını kullanarak en düĢük ve en
yüksek sınır değerleri tayin edilmek suretiyle frekans kaymasını hesaplayabiliriz.

LabVIEW kavramları For döngüsü formül bağlantı noktaları, grafik ve dizileri bu


örnek içinde gösterilmektedir.

Temperature System Demo.vi

Yol: EXAMPLES\APPS\TEMPSYS.LLB
14

Temperature System Demo.vi sıcaklık analizi uygulamasını göstermektedir.


Bu VI simüle edilmiĢ sıcaklığı okur. Eğer sıcaklık belli bir alan dıĢında ise uyarı
verir. Bir istatistiksel anlamı yerine getiren standart sapma ve sıcaklık geçmiĢinin
grafiğini oluĢturur. Sıcaklık ile birlikte giriĢin düĢük ve yüksek sınır değerleri grafik
üstünde iĢaretlenir. VI’nın elde ettiği yeni sıcaklık okumasının hızını Update Period
kayma kontrolü ile hesaplar.

Dizi Örnekleri

Building Arrays.vi
15

Bu VI’da otomatik indeksleme kullanılarak dizinler yapan iki yöntem gösterilir.


For döngüsü 2D dizi ile 10 satırdan meydana gelmiĢtir. While döngüsü 100 kez
veya kullanıcı stop düğmesine basana kadar sayı üretir. While döngüsü iĢlem
bittiği zaman bu numaralardan oluĢan bir dizin oluĢturur.

A. For döngüsüne varsayılan olarak izin verilmiĢtir. Dizin içindeki değerlerin


sayısı bilindiğinde gösterilen yöntem dizin meydana getirmek için kullanılan
en iyi yöntemdir. Döngü alt diyagramı içinde bulunan değerleri doğrudan
doğruya bir dizinin ucuna bağlar. Döngü içinde döngü 20 dizini oluĢturur.

B. While döngüsüne varsayılan olarak izin verilmiĢtir. Dizin değerlerinin sayısı


bilinmediği zaman örneğin kullanıcı yada bir program değiĢkeni dizinin
büyüklüğünü hesapladığı zaman dizin meydana getirmekte kullanılan en
faydalı yöntemdir. Döngü alt diyagramı içinde bulunan değiĢkeni doğrudan
doğruya bir dizinin ucuna bağlar daha sonra tünel üstünde birden bire
gözükür (Döngü sınırındaki kara kutu). Uygulandığında burada, While
döngüsü belki itila ederken orijinal dizi tamponu hafıza içinde oluĢturulur.
(Ne kadar uygulanacak, dizi ne kadar büyük olacak bilinmediği için) ve
While döngüsü bir veya daha çok yeni hafıza tamponu yapmak zorundadır.
16

Separate Array Value.vi

Yol: EXAMPLE\GENERAL\ARRAYS.LLB

Bu VI, pozitif ve negatif değerlerin karıĢımını içeren bir giriĢ dizisi oluĢturur ve
bu diziyi bir tanesi sadece negatif ve bir tanesi sadece pozitif değerleri içeren iki
küçük diziye ayırır.

Initialize Array ve Build Array fonksiyonları kullanır ve for döngüsü onun


sayısını giriĢ dizisi üzerindeki otomatik indekslemeyi kullanarak ayarlar.

Bu VI daha verimli, bir Ģekilde uygulanabilir. Eğer Input Array (giriĢ dizisi) iki
kaymalı kaydediciyi sıfırlarsa Replace Array Element, Build Array’ın yerini alır
ve fazlalık dizisi boĢluğunu VI’nın sonunda kısaltmıĢtır. Bu geliĢme aslında büyük
dizileri etkiler.
17

Temperature Analysis.vi

Yol: EXAMPLE\GENERAL\ARRAYS.LLB

Bu VI sıcaklık verisi dizisini meydana getirir ve daha sonra maksimum,


minimum ve ortalama sıcaklığı hesaplar. Bir dalga Ģekli diyagramı veri noktalarının
gerçek zamanlı dağılımını ve dalga Ģekli grafiğini tüm noktalar bağlandıktan sonra
sıcaklık verilerini gösterir. Sıcak dizisi for döngüsündeki otomatik indekslemeyi
kullanarak meydana getirilir.
18

Genel Örnek

Veri akıĢ programlamasının karakteristiklerinin biri olan bu yapı ve alt VI’lar


çalıĢmayı bitirene kadar veri çıkıĢı vermezler. Bazen hat ile bağlanmamıĢ VI’lar
arası veri geçiĢi yapıların içerisine ya da dıĢarısına veri geçiĢi yapmak
isteyebilirsiniz. Bunu baĢarmak için genel değiĢkeni kullanabilirsiniz.

LabVIEW içindeki bir genel değiĢken while döngüsünü kullanarak onun kontrol
altına aldığı sıfırlamasız kaymalı kaydedici Global Switch.vi’da gösterildiği gibi
simüle edilebilir. Not : While döngüsünün Ģartlı ucuna bağlı değildir bundan dolayı
bir kez uygulanır.

Eğer mod yazmaya ayarlanmıĢsa giriĢ kontrol değeri kaymalı kaydediciye


yazdırılır. Eğer mod okumaya ayarlanmıĢ ise kaydedicinin içeriği yeniden
dolaĢtırılır. Her iki durumda da kaydedicinin içeriği çıkıĢ göstergesine yazdırılır.
Kaydedicinin içeriği baĢa dönmediğinden bu yana, VI’nın uygulandığı her zaman,
kaymalı kaydedici VI’nın uyguladığı son seferden kalan değeri içerir. Eğer bu VI alt
VI gibi kullanılırsa global bir değiĢken gibi davranacaktır.

Global değiĢkenleri kullanmak için 3 anahtar noktayı anlamalısınız.

1. Global değiĢkenden okumadan önce ona bir değer yazmalısınız. Eğer


genel değiĢkene bir değer yazmadan ondan bir değer okumaya
çalıĢırsanız çıkıĢ o veri tipi için sizin ve VI’nızın beklediği yada istediği
olmayan varsayılan değer olur.

2. Genel değiĢkenler okuduğumuz bölgeden farklı bir bölgeye yazılmalıdır.


BaĢka bir deyiĢle çağrılan VI’lar benzer kapsamlı VI’ya yazılamaz ve
okunamazlar.
19

3. Kopyalamak istediğimiz her bir değiĢken için, genel kopyası için ayrı bir VI
yaratmalısınız (Global Switch.vi için benzer). Bunu yapmanın en kolay
yolu genel değiĢkenin kopyalarını yapmak ve onlara farklı isimler
vermektir.

Global Switch.vi

Yol: EXAMPLE\GENERAL\GLOBAL.LLB

Bu VI genel boolean değiĢkeni olarak iĢ görür. Eğer giriĢ modu TRUE (yaz) ise
VI yeni giriĢ değerini bir sıfırlamalı kaymalı kaydediciye kaydeder. Eğer mod
FALSE (oku) ise VI okunanları ve çıktıları değer olarak kaymalı kaydediciye
kaydeder.
20

Using Global.vi

Yol: EXAMPLE\GENERAL\GLOBAL.LLB

Bu VI iki tablonun uygulaması kontrolü için bir boolean genel değiĢkeninin


kullanımını göstermektedir. Global Switch.vi alt VI’sı Run anahtarını kontrol eder
ve her iki while döngüsünün uygulamasını durdurmak için kullanılır. Anahtara
TRUE değeri yazılamasıyla genel değiĢken baĢa dönmek için iki while
döngüsünün dıĢında konumlandırılmıĢtır. Global Switch.vi’nın çıkıĢı Global
Switch.vi’yı kuvvetlendirmek için, döngülerden önce uygulamak için döngülerin
kenarına bağlanmıĢtır. Bu teknik suni veri bağımlılığının klasik bir örneğini gösterir.
Alt VI’nın çıkıĢına döngüler tarafından ihtiyaç duyulmazken, LabVIEW’e ilk önce alt
VI’yı çalıĢtırması gerektiğini düĢündürmek için döngülerin kenarına bağlanmıĢtır.
Genel değiĢkenin baĢa dönmesi, eğer soldaki while döngüsünden önce çalıĢması
21

gerçekleĢirse sağdaki while döngüsünün baĢa döndürülmemiĢ genel içerikli


hükümsüz data okumasını engeller.

Grafik Örnekleri

Array to Bar Graph Demo.vi

Yol: EXAMPLE\GENERAL\GRAPH.LLB

Bu VI kullanılan Array to Bar Graph alt VI’dan Bar grafik içindeki değerlerin bir
dizisinin nasıl gösterildiğini gösterir. Bu alt VI bir grafik çıkıĢı için XY grafiğini veren
değerler dizisi, baĢlangıç noktası, noktalar arası uzaklık ve yüzde geniĢlik
22

oluĢturur. Bu VI’yı veya alt VI’yı kendi uygulamalarımızda bir bar grafik oluĢturmak
için kopyalayabiliriz.

Chart.vi

Yol: EXAMPLE\GENERAL\GRAPH.LLB

Bu VI, tablo ve veri tiplerinin kabul edebilecekleri farklı kullanımlarını


göstermektedir. Birkaç farklı tablo konfigürasyonlarını kullanarak sinüs dalga
23

(bazen de kosinüs) grafiği çizer. Onlar çoklu kaplanmıĢ grafik çizimlerinde


gösterilir. ġerit kablosunun Ģerit modunda basit olarak bir dalga Ģekli grafiği
olduğunu hatırlayın.

Waveform Graph.vi

Yol: EXAMPLE\GENERAL\GRAPH.LLB
24

Bu VI dalga formu olarak kabul edilen çeĢitli tek çizgili ve çok çizgili veri tiplerini
örneklerle gösterir. Sinüs ve kosinüs dalga meydana getirmek için izin verilen
otomatik indeksleme ile birlikte For döngüsünü kullanır. Daha sonra birkaç farklı
metot kullanarak grafik üzerindeki bu dalgaların grafiği çizilir.

X eksenine eĢit olarak dağıtılmıĢ veri tiplerini göstermek için dalga formu
grafiğini kullanabilirsiniz. Örneğin, bir eĢit oranla örneklenmiĢ veri tiplerini
gösteriyorken XY grafiğinin nasıl kullanılacağının örnekleri için X ve S ve Y
Graph.vi’ye bakın.

X vs. Y Graph.vi

Yol: EXAMPLE\GENERAL\GRAPH.LLB
25

Bu VI, XY grafiğinin kabul ettiği çeĢitli veri tiplerini gösterir. XY grafiğini X


ekseni boyunca hep aynı Ģekilde sıralanmamıĢ olan verileri göstermek yada
karıĢık matematik fonksiyonlarının grafiğini çizmek için kullanın. Bu grafik noktaları
onların (X,Y) koordinatlarını kullanarak çizer ve özellikle değiĢken oranda
örneklenmiĢ verileri göstermeye ihtiyaç duyduğunuzda kullanıĢlıdır. Dalga Ģekli
grafiğinin nasıl kullanıldığı örneği için Waveform Graph.vi’ye bakın.

String Örnekleri

Build String.vi

Yol: EXAMPLE\GENERAL\STRINGS.LLB
26

Build String VI, string birleĢtirme baĢlık bilgisi, bir nümerik değer ve fragman
bilgisi toplamak için LabVIEW içindeki çeĢitli string fonksiyonlarının nasıl
kullanılacağını gösterir. Sayıyı string biçimine dönüĢtürmek için Format&Append
fonksiyonunu kullanmalısınız. DönüĢtürme kodları Fonksiyon Referansı
bölümünde ayrıntılandırılan Format&Append fonksiyonu sayı giriĢini kabul eder
ve ondan sonra string giriĢinden karĢılık gelen hattı seçer. Ondan sonra
Concatenate Strings fonksiyonunu bütün parça stringlerini beraber koyar. String
Length fonksiyonu tarafından verilen birleĢtirilmiĢ stringlerin toplam uzunluğu
zaten gösterilmiĢtir.

Extract Numbers.vi

Yol: EXAMPLE\GENERAL\STRINGS.LLB
27

Bu VI verilen string içindeki bütün sayıları arar ve onları sayıların bir dizisi içine
yerleĢtirir. AĢağıda biçimlerin tamamı tanımlanmıĢtır.

123 1.23 1.23e2 1.23E2

Sayılar arasında boĢluk olmamalıdır ve diğer karakterler sayıların içinde


görünebilir. Bu VI stringi sayıların bir dizisine çevirmede ihtiyaç duyulan adı faydalı
bir alt VI gibidir.

Parse String.vi

Yol: EXAMPLE\GENERAL\STRINGS.LLB
28

Parse String VI LabVIEW içindeki string fonksiyonları için bir giriĢ stringi içinde
string alt kümesine bölünür ve nümerik ASCII stringlerini gerçek sayı değerlerine
değiĢtirilmesinin nasıl kullanılacağını gösterir. GiriĢ stringine etki etmek için String
Subset String Length ve Format&Append fonksiyonları bu VI içinde kullanılır.

Character to ASCII.vi

Yol: EXAMPLE\GENERAL\STRINGS.LLB

Bir dizi verildiğinde, bu VI dizi içerisindeki ilk karakterin ASCII iĢaretine karĢılık
gelen sayısal değeri geri döndürür. Bu VI, bir arama tablosu kullanır ve giriĢ
karakterlerini tablodaki karakterler ile eĢleĢtirir, ondan sonra doğru bir iĢaret geri
döndürür. Bu VI, bir dizi içerisindeki karakterin ASCII iĢaretini bulmaya ihtiyacınız
olduğunda bir alt VI kadar kullanıĢlıdır.
29

ASCII to Character.vi

Yol: EXAMPLE\GENERAL\STRINGS.LLB

Bu VI, bir giriĢ sayısal ASCII değerini alır ve o iĢarete karĢılık gelen ASCII
karakterini geri döndürür. Bu VI, ASCII iĢaretine karĢılık gelen ASCII karakterini
bulmak için bir arama tablosu kullanır. Bu VI, özel bir sayısal değere karĢılıklı
gelen ASCII karakterlerini bulmaya ihtiyacınız olduğunda bir alt VI kadar
kullanıĢlıdır.
30

Seri Örnekler

Serial Communication.vi

Yol: EXAMPLE\SERIAL\SMPLSERL.LLB

Serial Communication VI, bilgisayar üzerindeki onunla beraber imal edilmiĢ


olan portu kullanarak iki yönlü seri iletiĢim yapar. Port ile bağlantı kurar, porta
string yazar, zaman aĢımı okuma yapar, zaman aĢımı seri okuma VI’sı istenilen
baytlar kullanılabilir olana kadar yada zaman sınırı asılana kadar bekler.
31

Bu VI, seri veri transfer etmek ya da Ģablon olarak kendi alıĢkanlıklarınıza göre
düzenlenmiĢ seri uygulama yaratmak için kendi içerisinde bir uygulama olarak
kullanılabilir. Basit olarak ona uzunluğu ile birlikte çıkıĢa göndermek istediğiniz
stringi, okunacak bayt sayısını ve okumada zaman aĢımından önce bekleyeceği
saniye sayısını söylersiniz.

GPIB Örnekleri

LabVIEW < -- > GPIB.vi

Yol: EXAMPLE\GPIB\SMPLGPIB.LLB
32

Bu VI’yı kullanarak GPIB veri yoluna bağlanan bir cihazdan okuyabilir ya da


yazabilirsiniz. VI’nın doğru çalıĢması için uygun sürücü ve donanımı yüklemek
zorundasınız. Doğru çalıĢması için, VI için yüklenmiĢ doğru sürücü ve donanıma
sahip olmalısınız. Cihazın GPIB adresini seçin. Read, write ya da her ikisini seçin,
yazılması için karakterlerin içindekileri yazın ve VI’yı çalıĢtırın. Eğer read ve
write’ın her ikisini de seçerseniz, VI ilk önce cihaza yazar, ondan sonra cihazdan
okur. Bu VI’yı kullanmadan önce cihazın özelliklerine göre GPIB adresini GPIB
Initialization fonksiyonu ile baĢa döndürmeye ihtiyaç duyabilirsiniz, bununla
birlikte her zaman gerekli değildir. LabVIEW < -- > GPIB.vi sizin için hata
raporlarını ele alır ve her GĞIB uygulamasından sonra geri dönen durum bitlerini
gösterir.

Bu örneği yalnız baĢına bir GPIB uygulaması olarak kullanabilir ya da sizin


gereksinimlerinizi uygun hale getirmek için değiĢtirebilirsiniz.

Fluke 8840A.vi

Yol: EXAMPLE\GPIB\FL8840.LLB
33

Bu VI, GPIB veri yolu üzerindeki FLUKE 8840A multimetresi ile iletiĢim kurar.
VI altı olası fonksiyondan kullanıcının seçimine bağlı olarak voltaj, amper yada
ohm ölçer. Kademeyi seçmeli yada otomatik kademeyi kullanmalı ve kullanmak
istediğiniz tetikleme modunu seçmelisiniz.

Bu VI, uzaktaki bir enstrümanı kontrol eden bir LabVIEW VI’sı enstrüman
sürücüsüne bir örnektir. FLUKE8840A.vi, dijital multimetrenin beklenilen komut
kümesi kullanılarak FLUKE8840A ile iletiĢim kurmak için özel olarak yazılmıĢtır.

DAQ Örnekleri

Örneklerin uygun bir biçimde çalıĢması için National Instruments Data


Acquisition donanımını doğru bir Ģekilde bilgisayarınıza kurmalısınız. DAQ ve nasıl
kurulacağı hakkında daha fazla bilgi için Ek A, DAQ ve GPIB konfigürasyonuna
baĢvurunuz.
34

AI Single Point.vi

Yol: EXAMPLE\DAQ.LLB

Bu VI belirtilen analog giriĢ kanalından tek bir okuma yapmak için AI Samples
Channel’ı kullanır. Bordunuzda cihaz numarasının doğru olduğundan emin olun.
Ölçülen gerilim, gerilime otomatik olarak uygulanan kazancın hesaplanmasında
kullanılan yüksek sınır ve düĢük sınır giriĢleri arasına denk gelmektedir.
35

AI Multi Point.vi

Yol: EXAMPLE\DAQ:LLB

Bu VI belirtilen analog giriĢ kanalında birçok noktadan okuma yapmak için AI


Acquire Waveform’u kullanır ve grafik üzerine dalga Ģekli çizer.Kartınıza doğru
cihaz numarasının, kullanmak istediğiniz her bir kanal için toplanan örneklerin
sayısının ve her bir kanal için tarama oranının girildiğinden emin olun. Ölçülen
gerilim, gerilime otomatik olarak uygulanan kazancın hesaplanmasında kullanılan
yüksek sınır ve düĢük sınır giriĢleri arasına denk gelmektedir.
36

AO Single Point.vi

Yol: EXAMPLES\DAQ.LLB

Bu VI belirtilen analog çıkıĢ kanalına bir çıkıĢ voltajı göndermek için AO


Update Channel VI’sını kullanır. Kartınıza doğru cihaz numarasını girdiğinize
emin olun.

AO Multi Point.vi

Yol: EXAMPLES\DAQ.LLB

Bu VI belirtilen analog çıkıĢ kanallarına çıkıĢ voltajının dizilerini göndermek için


AO Generate Waveforms’u kullanır.
37

Digital Example.vi

Yol: EXAMPLES\DAQ.LLB

Bu VI DAQ kartınız üzerindeki dijital yollardan alır ve yazar. ÇıkıĢı göndermek


istediğiniz uygun 4 bitlik binary örnekleri meydana getirecek belirtilen Pattern Input
(örnek giriĢi)’a bir değer yaz ve function (fonksiyon)’u write (yaz)’a ayarla. Örnek
Binary Pattern (binary örnek) kontrolü içinde gösterilmektedir. Bir değer okumak
için sadece function’ı read (oku)’e ayarlayın, portun örneğini Pattern output (örnek
çıkıĢı)’da göreceksiniz.

Bir porttan okuma yapabilmeden önce baĢa döndürme meydana gelmelidir


ama o da porttaki bütün değerleri siler. Döngü uygulanmadan bu örnek Read from
Digital Port VI ile birlikte onun baĢlangıç varsayılan ayarlarını çağırır. Döngünün
38

içinde Read from Digital Port baĢa dönmez ve bundan dolayı port arkada
okunan onun değerlerini tutar.

Not: Digital Example.vi DAQ kart 700’de çalıĢmaz çünkü kartın dijital portları iki
yönlü değildir.

CTR Count Time or Events.vi

Yol: EXAMPLES\DAQ.LLB

Bu örnek DAQ kartınız üzerindeki sayıcı/zamanlayıcıları kullanarak siz stop


butonu ile programı durdurana kadar sürekli sayı üretir. Eğer anahtar count
events’e ayarlanırsa, VI sayıcınızın kaynak pinindeki düĢer kenar sayısını sayar.
Eğer anahtar count time’a ayarlanırsa, VI seçilen zaman tabanını kullanarak geçen
39

zamanı hesaplar. Sayıcı ve zamanlayıcılarınızı uygun bir Ģekilde bağlamak için bu


VI’nın ön panelinde gösterilen uç bağlantılarını kullanın.

Bu VI yalnızca Am9513 veya DAQ-STC sayıcı çiplerini içeren kartlarla birlikte


çalıĢır.

CTR Generate Pulses.vi

Yol: EXAMPLES\DAQ.LLB
40

Bu VI, bir durum yapısının bir ayrılmıĢ durumunda yerine getirmek için her bir
DAQ kartınızdaki sayıcı/zamanlayıcıları kullanarak palsleri ve pals dizilerini
meydana getirmek için 4 yol içerir. Ring kontrolünü kullanarak göstermek
istediğiniz bir tanesini seçin, daha sonra ön paneldeki direktifleri takip eder.
Sayıcı/zamanlayıcılarınızı uygun bir Ģekilde bağlamak için bu VI’nın ön panelinde
gösterilen uç bağlantılarını kullanın.

Ġster tek veya sınırlı uzunlukta veya sürekli pals dizileri olsun, bütün palsler,
belirtilen polaritenin pals fazı tarafından istenen gecikme fazından oluĢur. Bu
fazların uzunluğunu pals gecikmesi ve pals geniĢliği kontrolleri veya frekans ve
görev saykılı, gecikme ile iliĢkili olan uzun pals fazını gösterir. Uç bağlantı
diyagramında gösterilen opsiyonel kapı bağlantılarından birini kullanmak için
programı değiĢtirmeye ihtiyacınız vardır.

Bu VI yalnızca Am9513 veya DAQ-STC sayıcı çiplerini içeren kartlarla birlikte


çalıĢır.

CTR Measure Frequency and Period.vi

Yol: EXAMPLES\DAQ.LLB
41

Bu VI, bordunuz üzerindeki sayıcı ve zamanlayıcıları kullanarak frekans ve


periyot ölçümü için iki yol içerir. Ring kontrollerini kullanarak göstermek istediğiniz
birini seçin, daha sonra ön paneldeki uygun direktifleri takip eder. Sayıcı ve
zamanlayıcılarınızı birleĢtirmek için bu VI’nın ön panelinde gösterilen hat
bağlantılarını kullanın.

Bu VI sadece Am9513 veya DAQ-STC sayıcı ciplerini içeren boardlarla birlikte


çalıĢır.diğer boardlar için ICTR Control.vi’yı kullanmak zorundasınız.

Analiz Örnekleri

Pulse Demo.vi

Yol: EXAMPLES\ANALYSIS.LLB
42

Bu örnek bir pals gönderme ve alma sistemlerini simüle eder. Palse uygulamak
istediğimiz IIR filtresinin tipini pals içindeki örnekleme sayısını ve eklemek için
gürültünün miktarını düzeltebilirsiniz. Orijinal pals ile meydana çıkan palsin her
ikisini de aynı grafik üzerinde görebilirsiniz.

Amplitude Spectrum Example.vi

Yol: EXAMPLES\ANALYSIS.LLB
43

Bu VI tek bir Spektrum analizörü örneğinin nasıl kurulacağını görür. Örnek


dalga Ģeklini simüle eder ve tepe frekans bileĢenlerinin frekansını ve gücünü
otomatik güç spektrumunu hesaplar. güç spektrumu arzu edilen birimlerin içini
grafiklendirir.

Curve Fit Example.vi

Yol: EXAMPLES\ANALYSIS.LLB
44

Bu örnek, rasgele katsayılar ile veri grupları üzerinde doğrusal, üssel yada
polinomal yerleĢtirme yapmak için Curve Fit VI’sının kullanımını gösterir. Dizin
kullanımını özelleĢtirebilir ve rasgele verilere ses eklemek için de seçebilirsiniz.
Noise Generator VI’sı, eğim uygunlaĢtırması yapılmadan önce rasgele verilere
eklenmiĢ olan gürültü değerlerinin dizisini üretir.

Integral&Derivative.vi

Yol: EXAMPLES\ANALYSIS.LLB
45

Bu örnek türev x(t) ve integral x(t) analiz VI’larının nasıl kullanıldığını


göstermektedir. Bir dizi Ġntegral x(t) ve türev x(t)’nin her ikisi için sinyal jeneratör
VI’dan geçer. Bu VI’ların her ikisi x (0)’dan x(n -1)’e kadar olan veri noktalarının
dizisine ihtiyaç duyar.

IIR Filter Design.vi

Yol: EXAMPLES\ANALYSIS.LLB
46

Bu örnek seçtiğimiz ön panel kontrollerinden filtrenin frekans cevabını gösterir.


Kullanıcı 4 IIR filtresinin dizayn modlarından birini (bessel, buterworth, chebyshev
I, II) ve bant geçiren tipini, alçak geçiren, yüksek geçiren ve bant durduran tipini
seçer, çeĢitli diğer parametreler gibi. Genlik pals ve impulse cevapları grafik
üzerinde gösterilir.

Extract the Sine Wave.vi

Yol: EXAMPLES\ANALYSIS.LLB
47

Bu örnek filtre VI’lar kullanarak bant limit gürültülerinde bir sinyalin nasıl
ayrılabildiğini göstermektedir. Bir sinüs dalgaya yüksek frekanslı bir gürültü eklenir
daha sonra alçak geçiren filtre kullanarak gürültü sinüs dalgadan ayrılır. Gürültü
sinyalini ve ayrılmıĢ sinüs dalgayı grafik üstünde ikisini birden gösterir.

Alıştırmalar ve Çözümler

EXAMPLES\GENERAL klasör yada dizininde bulunan EXERCISE.LLB ve


SOLUTĠON.LLB, burada tanımlanmıĢ olan alıĢtırma ve çözümleri içerir.
EXERCISE.LLB içersinde bulunan VI’ların çoğu kısmen yapılmıĢtır, alıĢtırmanın
bir parçası olarak onları nasıl bitireceğinizi siz belirlersiniz. SOLUTION.LLB,
alıĢtırmaların içersinde bulunan VI’ların çoğunun çözümlerini içerir. Diğer
alıĢtırmaların küçük bir kısmı EXAMPLES klasör yada dizininin diğer kısımlarında
bulunabilir, bu yüzden aradığınızı SOLUTION.LLB içerisinde bulamazsanız, onu
bulmak için biraz tarama yapabilirisiniz. Bu çözüm ve örnekleri LabVIEW
programlama stilini öğrenmek, cevaplarınızı karĢılaĢtırmak ve ĢaĢırdığınızda size
yardım etmesi için kullanabilirsiniz. Gösterilen VI’lar verilen programı yazmanın bir
yoludur. Diğer yolları da sık sık bulabilirsiniz, bunlardan bazıları verilen görevleri
yerine getirmek için daha verimlidir.
48

3. ARİTMETİK PALETİ FONKSİYONLARI

Bu bölüm aritmetik ve mantıksal iĢlemleri yapan fonksiyonları tanımlar.


Aritmetik fonksiyon paletini almak için, Functions menüsünden Arithmetic
maddesini seçin. Bu palet bir ve iki giriĢli aritmetik mantıksal fonksiyonlar ve
rasgele sayı üretecinin farklı çeĢitlerini içerir.

Polymorphism

Polimorfizm, bir fonksiyonun farklı tiplerinin yada gösterimlerinin verilerini


girmek için ayarlama yapabilme yeteneğidir. Çoğu fonksiyon polimorfiktir. VI’lar
polimorfik değildir.

Fonksiyonlar dereceleri ayarlamak için polimorfiktir; giriĢlerin hiçbiri, bazıları ya


da tümü polimorfik olabilir. Bazı fonksiyon giriĢleri sayıları yada Boolean değerleri
alırlar. Bazıları sayıları veya stringleri alırlar. Bazıları sadece skaler sayıları kabul
etmezler ama sayı dizilerini, sayı kümelerini, sayı kümelerinin dizilerini ve bunun
gibileri de alırlar. Bazıları sadece tek boyutlu dizileri kabul eder, bununla birlikte
dizi elemanları herhangi bir tip olabilir. Bazı fonksiyonlar bütün veri çeĢitlerini kabul
eder.

Aritmetik fonksiyonlar, sayılar, sayı dizileri, sayı kümeleri, sayı kümleri dizileri
ve bunun gibileri üzerinde çalıĢır. Ġzin verilen giriĢ tiplerinin biçimsel ve tekrarlanan
tanımlamaları aĢağıda verildiği gibidir.

Solda gösterilen ikon parametrenin polimorfik olduğunu gösterir.


49

Nümerik tip: Sayısal skaler II dizi[sayısal tip], II küme [sayısal tip]. Sayısal
skalerlerin kayan nokta, tamsayı, küme dizileri olabilecekleri yerlerdir. Dizi
dizilerine izin verilmez.

Diziler herhangi boyut sayısına ve ebada sahip olabilirler. Kümeler her eleman
sayısına sahip olabilirler. ÇıkıĢ tipi, giriĢ tipinde olduğu gibi aynı bileĢendedir ve bir
giriĢli fonksiyonlar için fonksiyonlar yapının her elemanı üzerinde iĢler.

Ġki giriĢli fonksiyonlar için, LabVIEW aĢağıdaki giriĢ kombinasyonlarına izin


verir.

 Similar: Her iki giriĢte aynı yapıya sahiptir ve çıkıĢta giriĢ gibi aynı
yapıdadır.
 One scalar: Bir giriĢ sayısal skalerdir, diğeri ise dizi yada kümedir ve çıkıĢ
dizi yada kümedir.
 Array of: Bir bazı sayısal tiplerin dizisi, diğeri ise kendisi sayısal tiptir, çıkıĢ
bir dizidir.

Benzer giriĢler için, LabVIEW fonksiyonu yapıların ayrı ayrı elemanları üzerinde
gerçekleĢtirir. Örnek olarak LabVIEW iki diziyi eleman toplayabilir. Bir grafik
noktalar dizisi ve noktada sayısal tipler kümesidir. X ve Y grafiği x yönünde 5 birim
ve y yönünde 8 birime denkleĢtirmek için, grafiğe (5,8) noktasını ekleyebilirsiniz.

AĢağıdaki Ģekil, Add fonksiyonunun bazı olası polimorfik kombinasyonlarını


göstermektedir.
50

Mantıksal Fonksiyonlar

Mantıksal fonksiyonlar booleande, boolean değerlerinin dizisinde, boolean


kümelerinde, boolean değerlerinin kümelerinin dizisinde vs. çalıĢır. Bir formal ve
geri kazandırma tanımlamaları izin verilebilir giriĢ tiplerini olduğu gibi izler.

Mantıksal tip: Boolean scalar II Array [ Lojik tip ] II Küme [ Lojik tip ]

Boolean değerlerinin bazı kombinasyonları And fonksiyonu için aĢağıdaki


tabloda gösterilmiĢtir.

Aritmetik Fonksiyon Tanımlama

Add

GiriĢlerin toplamını hesaplar.


51

x ve y skaler sayılar, sayıların kümeleri veya dizileri, sayıların kümelerinin


dizileri vs. olabilir.

x+y

Subtract

GiriĢlerin farkını hesaplar.

x ve y skaler sayılar, sayıların kümeleri veya dizileri, sayıların kümelerinin


dizileri vs. olabilir.

x-y

Multiply

GiriĢlerin çarpımını hesaplar.

x ve y skaler sayılar, sayıların kümeleri veya dizileri, sayıların kümelerinin


dizileri vs. olabilir.
52

x*y

Divide

GiriĢlerin bölümünü hesaplar.

x ve y skaler sayılar, sayıların kümeleri veya dizileri, sayıların kümelerinin


dizileri vs. olabilir.

x/y

Absolute Value

GiriĢlerin mutlak değerlerini alır.

x skaler sayılar, sayıların kümeleri veya dizileri, sayıların kümelerinin


dizileri vs. olabilir.

abs (x)
53

Round to Nearest

GiriĢi en yakın tam sayıya yuvarlar. Eğer giriĢ değeri iki tam sayının tam
ortasındaysa fonksiyon en yakın çift sayıya yuvarlar.

Sayı skaler sayılar, sayıların kümeleri veya dizileri, sayıların kümelerinin


dizileri vs. olabilir.

nearest integer value

Square Root

GiriĢ değerinin karekökünü alır.

x bir skaler sayı, sayıların kümeleri veya dizileri, sayıların kümelerinin


dizileri vs. olabilir.

sqrt (x) x  0 olmalıdır. Sqrt (x), eğer x 0’dan daha küçük ise bir sayı
değildir(NaN).

Negate

GiriĢ değerini tersler.


54

x bir skaler sayı, sayıların kümeleri veya dizileri, sayıların kümelerinin


dizileri vs. olabilir.

-x, x’in negatif değeridir.

Random Number (0 - 1)

Yalnız 0 ile 1 arasında sayı üretir. Dağıtım düzenlidir.

Number 0 to 1, 0 ile 1 arasında bir sayıdır.

And

GiriĢin mantıksal ve hesabını yapar.

x ve y bir skaler sayı, sayıların kümeleri veya dizileri, sayıların


kümelerinin dizileri vs. olabilir.

x.and.y?
55

Or

GiriĢin mantıksal veya hesabını yapar.

x ve y bir skaler sayı, sayıların kümeleri veya dizileri, sayıların


kümelerinin dizileri vs. olabilir.

x.or.y?

Exclusive Or

GiriĢin mantıksal özel veya hesabını yapar.

x ve y bir skaler sayı, sayıların kümeleri veya dizileri, sayıların


kümelerinin dizileri vs. olabilir.

x.xor.y?

Not

GiriĢin mantıksal tersini alır.


56

x bir skaler sayı, sayıların kümeleri veya dizileri, sayıların kümelerinin


dizileri vs. olabilir.

not.x?

Sine&Cosine

Raydan değerindeki x’in sinüsünün ve kosinüsünün her ikisini hesaplar.

x bir skaler sayı, sayıların kümeleri veya dizileri, sayıların kümelerinin


dizileri vs. olabilir.

sin (x) ve cos (x)

Ters Tanjant

Raydan değerler için y / x’in (- ile  arasında olmalıdır) arctanjantını hesaplar.
Bu Ģekilde, bu fonksiyon xy düzleminin dört dilimin birinde açılar için arctanjantını
hesaplayabilir.
57

x ve y bir skaler sayı, sayıların kümeleri veya dizileri, sayıların


kümelerinin dizileri vs. olabilir.

atan2 (xy)

Doğal Logaritma

Logaritma e tabanındaki x’in doğal logaritmasını hesaplar. X eğer 0 ise ln(x)


sonsuzdur. X kompleks değilse x sayı değildir(NaN).

x bir skaler sayı, sayıların kümeleri veya dizileri, sayıların kümelerinin


dizileri vs. olabilir.

ln (x)

Exponential

e’nin x üssünü hesaplar.

x bir skaler sayı, sayıların kümeleri veya dizileri, sayıların kümelerinin


dizileri vs. olabilir.
58

exp (x)

x üssü

x’in y.’inci kuvvetini hesaplar. x 0’dan çok büyük olmalıdır ve y 0’dan büyük
oldukça x bir tamsayıdır. Aksi taktirde sonuç sayı değildir (NaN). Eğer y sıfırsa x^y
değeri bütün x değerleri için her zaman 1’e eĢittir.

x ve y bir skaler sayı, sayıların kümeleri veya dizileri, sayıların


kümelerinin dizileri vs. olabilir.

x^y

x tabanında logaritma

x tabanına göre y’nin logaritmasını hesaplar ( x>0 ve y>0 ). Eğer y sıfırsa çıkıĢ
‘dur. x sıfırdan küçük veya eĢit, yada y sıfırdan küçük olduğu zaman çıkıĢ sayı
değildir (NaN).

y bir skaler sayı, sayıların bir dizisi veya kümesi, sayıların kümelerinin
dizisi vs. olabilir. Y 0’dan çok büyük olmalıdır.
59

x 0’dan çok büyük olmalıdır. x bir skaler sayı, sayıların bir dizisi veya
kümesi, sayıların kümelerinin dizisi vs. olabilir.

log x(y)
60

4. KARŞILAŞTIRMA FONKSİYONLARI

Bu bölüm, performans testi veya karĢılaĢtırmaların uygulandığı fonksiyonları


tanımlar. Functions menüsünden Comparison’ı seçmek vasıtasıyla Comparison
paletine ulaĢabilirsiniz.

Karşılaştırma Kuralları

KarĢılaĢtırma fonksiyonlarının çoğu bir giriĢi test eder yada iki giriĢi karĢılaĢtırır
ve bir Boolean değerini çevirir, sayı olmayan bir değer ile bir sayıyı veya baĢka bir
sayı olmayan değerle karĢılaĢtırmayı denerseniz, önceden bilinemeyen sonuçlar
alırsınız.

Boolean’in TRUE (Doğru) değeri, FALSE (YanlıĢ) değerinden büyüktür.

Bu fonksiyon ASCII karakterlerin nümerik karĢılıklarına göre stringleri


karĢılaĢtırır. Böylece, a değeri(desimal değeri 97), A(65) değerinden büyüktür, a
değeri hem 0(48) hem de boĢluk karakterinden(32) büyüktür. Bu fonksiyonlar,
karĢılaĢtırma bitiminde bir eĢitsizlik oluĢana kadar, stringin baĢlangıcından teker
teker karakterleri karĢılaĢtırır. Örneğin, LabVIEW abcd ve abef stringleri eden
büyük olan c değerini bulana kadar değerlendirir. abcd stringi abc stringinden
büyüktür, çünkü birinci string uzundur.

KarĢılaĢtırma fonksiyonları, kümeleri stringleri karĢılaĢtırma yoluna benzer


olarak, eĢitsizlik oluĢana kadar her defada bir eleman olmak üzere sıfırıncı eleman
ile baĢlayarak karĢılaĢtırır. KarĢılaĢtırılabilmeleri için kümelerin eleman sayıları
aynı olmalıdır.
61

KarĢılaĢtırma fonksiyonlarının bazıları dizi yada kümeleri karĢılaĢtırmak için iki


moda sahiptirler. Compare Aggregates modunda, iki diziyi karĢılaĢtırırsanız,
fonksiyon tek bir değeri geri döndürür. Compare Elements modunda, elemanları
ayrı olarak karĢılaĢtırabilirsiniz ve fonksiyon bir dizi yada Boolean değerleri kümesi
döndürür. AĢağıda Ģekilde iki mod örnekle gösterilmiĢtir.

AĢağıdaki örnekte gösterildiği gibi, düğümdeki pop-up menüsünün içerisindeki


Compare Aggregates ya da Compare Elements’i seçerek karĢılaĢtırma modunu
değiĢtirirsiniz.

Compare Elements modunda, eĢit olmayan uzunluktaki iki diziyi


karĢılaĢtırdığınızda, LabVIEW daha küçük dizi içindeki son elemanının
indeksinden büyük olan daha uzun dizi içindeki her elemanı kabul eder. Daha
fazla elemana sahip olan hariç aynı olan iki diziyi karĢılaĢtırdığınızda, LabVIEW
kısa olan diziden daha büyük olması için uzun diziyi göz önünde tutar. Compare
Aggregates modunda LabVIEW, [1,2] dizisinden daha büyük olması için [1,2,3]
dizisini göz önünde tutar ve her bir Boolean değeri geri döndürür.
62

Polymorphism

Equal?, Not Equal?, Greater or Equal?, Less or Equal?, Less?, Greater?,


Max&Min, ve Select fonksiyonlarında giriĢler her hangi bir tip türü için aynı tipte
olmalıdır.

Sayıları, stringleri, booleanlar, string dizileri, sayı kümeleri, string kümeleri için
karĢılaĢtırma iĢlemi yapabilirsiniz. Bir string il bir sayıyı veya bir boolean ile bir
stringi vs. karĢılaĢtıramazsınız.

KarĢılaĢtırma değerini sıfır kabul eden nümerik skaler, küme ve nümerik dizi
fonksiyonlardır. Bu fonksiyonlar aynı tipteki giriĢler için boolean çıkıĢ verir.

Not A Number/Path/Refnum fonksiyonları aynı tip giriĢlerde sıfırı kabul eden


fonksiyonlardır. Bu fonksiyonlar path ve refnumları da kabul eder. Not A
Number/Path/RefNum uygun yapılarda Boolean çıkıĢ verir.

Equal?, Not Equal?, Not A Number/Path/RefNum? Ve Select fonksiyonları ile


birlikte yol ve refnumları kullanabilirsiniz ama diğer karĢılaĢtırma fonksiyonları
yolları ve refnum gibi giriĢleri kabul etmezler.

Equal?

Eğer x ve y giriĢleri birbirine eĢit ise çıkıĢ (x=y?) TRUE değerini verir.

x ve y aynı tipte olmalıdır.


63

x=y? Compare Aggregates modunda diziler karĢılaĢtırıldığında x=y? bir


skalerdir ve compare elements mode (varsayılan) kullanıldığı zaman x=y? bir
boolean dizisidir.

Greater Or Equal?

Eğer x y’den büyük yada eĢit ise TRUE değerini döndürür. Diğer durumlarda
bu fonksiyon FALSE değerini döndürür.

x ve y aynı tipte olmalıdır.

x>=y? Compare Aggregates modunda diziler karĢılaĢtırıldığında x>=y?


bir skalerdir ve compare elements mode (varsayılan) kullanıldığı zaman x>=y? bir
boolean dizisidir.

Less Or Equal?

Eğer x y’den küçük yada eĢit ise TRUE değerini döndürür. Diğer durumlarda bu
fonksiyon FALSE değerini döndürür.

x ve y aynı tipte olmalıdır.


64

x<=y? Compare Aggregates modunda diziler karĢılaĢtırıldığında x<=y?


bir skalerdir ve compare elements mode (varsayılan) kullanıldığı zaman x<=y? bir
boolean dizisidir.

Not Equal?

Eğer x y’e eĢit değil ise TRUE değerini döndürür. Diğer durumlarda bu
fonksiyon FALSE değerini döndürür.

x ve y aynı tipte olmalıdır.

x!=y? Compare Aggregates modunda diziler karĢılaĢtırıldığında x!=y? bir


skalerdir ve compare elements mode (varsayılan) kullanıldığı zaman x!=y? bir
boolean dizisidir.

Greater?

Eğer x y’den büyük ise TRUE değerini döndürür. Diğer durumlarda bu


fonksiyon FALSE değerini döndürür.

x ve y aynı tipte olmalıdır.

x>y? Compare Aggregates modunda diziler karĢılaĢtırıldığında x>y? bir


skalerdir ve compare elements mode (varsayılan) kullanıldığı zaman x>y? bir
boolean dizisidir.
65

Less?

Eğer x y’den küçük ise TRUE değerini döndürür. Diğer durumlarda bu


fonksiyon FALSE değerini döndürür.

x ve y aynı tipte olmalıdır.

x<y? Compare Aggregates modunda diziler karĢılaĢtırıldığında x<y? bir


skalerdir ve compare elements mode (varsayılan) kullanıldığı zaman x<y? bir
boolean dizisidir.

Not A Number / Path / Refnum

Numara/yol/referans numarası sayısal değer veya referans numarası değilse


TRUE döndürür. Diğer türlü bu fonksiyon FALSE döndürür. NaN sıfırla bölümünün
negatif sayısının kare kökü sıfırla bölümünün cevabı vs. olabilir.

Number/path/refnum. Skaler bir sayı, yol veya dosya referans noktası


veya o sayıların yolları veya referans numaralarının dizisi veya bir kümesi olabilir.

Nan/path/refnum? Number/ path/refnum gibi benzer veri yapısının bir


boolean değeridir.
66

Max&Min

Maksimum ve minimum x ve y’i kıyaslar ve üst çıkıĢ terminalinde daha büyük


değeri verir.

x ve y aynı tip olmalıdır.

max(x,y) daha büyük değerdir.

min(x,y) daha küçük değerdir.

Select

s değerine bağlı olarak f giriĢi veya t giriĢine bağlanan değeri verir. Eğer s
TRUE değerine sahip ise bu fonksiyon t giriĢine bağlanan değerini verir. Eğer s
FALSE değerine sahip ise bu fonksiyon f giriĢine bağlanan değeri verir.

t ve f aynı tipte olmalıdır.

s, s? t:1 fonksiyonunda f veya t’nin hangisinin değerinin çıkacağını


belirler.

s? t:f fonksiyonun değeri s TRUE ise t’ye çevrimlenir.


67

Boolean To (0,1)

Boolean değerini sayıya çevirir. GiriĢ değeri FALSE ise (0) TRUE ise (1)’dir.

Boolean, bir skaler, bir matris veya boolean değerler kümesi, dizisi vs
olabilir.

0,1 boolean TRUE ise çıktı 1’dir. Boolean FALSE ise çıktı 0’dır. 0,1 veri
yapısı boolean ile benzerdir.
68

5. STRING FONKSİYONLARI

Bu bölüm dizileri sayılara, sayıları dizilere çeviren fonksiyonları içeren dizi


fonksiyonlarını tanımlamaktadır. Functions menüsünden String seçilerek string
fonksiyon paletine ulaĢılabilir.

String Fonksiyon Tanımlamaları

String Length

String içindeki karakterlerin (bytes) sayısı lenght’e dönüĢtürülür.

String, ölçek Ģeklinde, n – boyutlu sıra veya küme Ģeklinde olabilir.

Lenght String’le aynı yapıya sahiptir. Fakat Lenght’in tipi sayısaldır.

Concatenate String’ler

Bütün giriĢ stringlerini tek bir çıkıĢ stringi biçimine çevirir.


69

String 0 ve String1 yanlıĢ giriĢ terminalleridir. Pozisyon aracı ile düğümü


tekrar, yeniden boyutlandırma, ölçeklendirerek veya düğümün pop-up
menüsünden Add Element’i seçerek ihtiyaç duyduğunuz kadar giriĢ terminali ilave
edebilirsiniz.

Concatenation String1,… BirleĢtirilmiĢ giriĢ stringleri bir düzende


yukarıdan aĢağıya doğru düğüme bağladığınız telleri kapsar.

String Subset

GiriĢteki string, karakter sayısı, lenght, offset‘teki giriĢleri alt stringe çevirir.

Lenght skaler olmalıdır. Eğer lenght bir kayan nokta sayısı ise fonksiyon
ardıĢık bir tamsayı değerine dönüĢür.

Offset skaler olmalıdır. String içindeki ilk karakteri Offset değeri 0’dır.
Eğer Offset’ i bağlamazsanız veya 0’dan daha az ise, 0’a dönüĢür. Eğer Offset bir
kayan nokta sayısı ise fonksiyon bir tamsayıya dönüĢür.

String

Eğer lenght 0’dan küçük veya eĢit ise veya string uzunluğu offset‘ten
büyük ise Substring boĢtur. Eğer lenght, string minus offset’in uzunluğundan
büyük ise, string minus offset uzunluğu, substring’in uzunluğudur.
70

Split String

BaĢlangıçtaki Offset değerinde, String içindeki Search Char’ın ilk oluĢumu için
tarar.

Search Char. Eğer fonksiyon string içinde search char bulamazsa,


fonksiyon -1 için offset of char değerini, bütün stringler için before char string’ini
ve bir boĢluk stringi için char substring’i ayarlar. Eğer search char’ı
bağlamazsanız veya o bir boĢluk stringi ise fonksiyon ofset değerine stringi böler.
Ya search char yada offset olarak bağlamak zorundasınız.

String giriĢ stringini sonuna kadar tarayan yada bölen fonksiyonu


gerçekleĢtiren bir stringdir.

offset tarama için baĢlangıç fonksiyonudur.offset skaler olmak


zorundadır. String içindeki offset’in ilk karakteri 0’dır. Eğer offset’i veya 0’dan az
ise 0’a dönüĢür. Ya search char yada offset olarak bağlamak zorundasınız. Eğer
offset taĢma noktası sayısı ise fonksiyon bir tam sayı değere dönüĢür.

substring before char, search char’dan önce string içinde bütün


karakterleri döndürür.

char substring search char ve string içindeki bütün ardıĢık karakterleri


döndürür.

offset of char string içindeki search char pozisyonunu değiĢtirir.


71

Match Pattern

offset’te baĢlangıç stringi içindeki regular expression için tarar ve sizin


çıkıĢınıza çevirir.

Regular Expression string içindeki eĢlenmesi gereken bir örnektir. Eğer


fonksiyon Regular Expression’ı bulamıyorsa, o zaman match substring boĢtur.
Before substring bütün stringdir, after substring boĢtur ve Offset past match –
1’dir. Bu fonksiyonun giriĢ ve çıkıĢ tanımlamalarını takip eden tablolar regular
expressions için özel karakterleri tanımlar.

String, fonksiyonun taradığı giriĢ stringidir.

Offset scalar olmak zorundadır. String içinde Offset’in ilk karakteri 0’dır.
Eğer Offset bağlanmadan bırakılırsa veya 0’dan az ise, o varsayılan olarak 0’a
döner. Eğer Offset bir kayan nokta sayısı ise, fonksiyon bir tamsayı değere döner.

Before substring bütün karakterleri kapsayan bir stringi before the


match’e çevirir.

Match substring eĢlenmiĢ stringe dönüĢür.

After substring matched, örneği takip eden bütün karakterleri çevirir.

Offset past match , eĢli örneği takip eden string içindeki karakterin
indeksine dönüĢür.
72

AĢağıdaki tablo düzenli tanımlamalar için kullanabileceğiniz özel karakterleri


tanımlar.
Özel Karakterler Denk Örnek Fonksiyonu Olarak Yorumlanır
. Herhangi bir karakteri eĢler.
? Önce tanımlanan bir örneği veya 0'ı eĢler.
Özel karakterler için bir kod iĢaretidir. AĢağıda iĢaretleri boĢluk veya
gösterilmeyen karakterler için kullanabilirsiniz.

\b backspace
\ \f from feed
\n newline
\s space
\r carriage return
\t tab
Alternatifleri kapsar, örnek [abc] a,b veya c ile eĢleĢir. AĢağıda karakter,
aĢağıdaki biçimde parantez içinde kullanıldığı zaman öneme sahiptir.
-(dash) karakter arasında kullanıldığı zaman bir mesafe gösterir veya alt üst
durum harfleridir.
(örnek : 0-5, a-g veya L-Q)
[] AĢağıdaki karakterler sadece parantez içinde ilk karakter oldukları zaman
öneme sahiptirler.
~ negates, 0'dan 9'a kadar hariç [~0-9] gibi gösterilmeyen karakterleri
kapsayan, bütün karakterlere oranla herhangi bir çıkıĢ verir.
^ 0'dan 9'a kadar hariç bütün gösterilebilen karakter ve boĢluk karakterlerini
verir.
Eğer ^ regular expression'nın ilk karakteri ise dizindeki eĢlemeyi offsete
bağlar. EĢleme dizinin offset karakteri ile baĢlayan bir bölümü regular
^
expression ile eĢleĢmediği takdirde baĢarısız olacaktır. Eğer ^ ilk karakter
değilse düzenli bir karakter gibi davranır.
En uzun numaralı durumlarda +'dan önceki tanımlamaları eĢler. Orada
+
eĢlemeyi yapabilmek için en az bir durum olmak zorundadır.
Bu iĢaretten önceki en uzun sayı durumunu eĢler. Regular expression içinde
*
0 durumlarını kapsar.
Eğer $ regular expression'nın son karakteri ise dizindeki eĢlemeyi dizinin
son elemanına bağlar. EĢleme dizinin son karakteri ile kapsayacak bir
$
Ģekilde eĢleĢmediği takdirde baĢarısız olacaktır. Eğer $ son karakter değilse
düzenli bir karakter gibi davranır.
73

AĢağıdaki tablo stringlerin örneklerini verir.

EĢlenecek Karakterler Regular Expression


Voltlar Voltlar
Voltların bütün alt ve üst durum versiyonları [Vv][Oo][Ll][Tt][Ss]
(VOLTS, Volts, volts vs.)
Bir boĢluk, artı veya eksi iĢareti [+-]
Bir veya daha çok karakter sınırlanıĢı [0-9]+
Sıfır veya daha çok boĢluklar \s* veya *
Bir veya daha fazla boĢluklar, tablolar, yeni [\t\r\n\s]+
satırlar, dönüĢler
Sayılardan farklı bir veya daha fazla karakter ^Level
Eğer sadece string’in sonunda görünüyorsa, Volts$
Volt kelimesi
Parantez içindeki en uzun dizin (.*)
Ġçinde herhangi bir parantez kapsamayan ([~()]*)
parantez içinde en uzun dizin

Select&Append

Bir boolean selector‘a göre bir string seçer ve stringi stringe bağlar.

FALSE String

TRUE String

String. Eğer onu bağlamazsanız varsayılan boĢa dönüĢür.


74

Selector. Selector TRUE (Doğru) ise, fonksiyon true string’i string’e


bağlar. Eğer Selector FALSE (YanlıĢ) ise, fonksiyon false string’i string’e bağlar.

Output string

Format&Append

Format string’ini uygun bir LabVIEW stringine dönüĢtürür. Format string


içinde nümerik alanı sayıya çevirir. Ve sonra çevrilmiĢ stringi stringe bağlar. Bu
çalıĢma C programlama dili fonksiyonu printf’in benzeridir ve ASCII eĢiti sayıları bir
string’e yerleĢtirilmesi için kullanıĢlıdır.

Format string. Format string içinde kullanabileceğiniz değerler için,


Format&Append bölümünün sonundaki tabloya baĢvurunuz.

String. Eğer onu bağlamazsanız varsayılan boĢ bir stringe dönüĢür.

Number scaler olmak zorundadır.

Output String.

Format string aĢağıdaki gibi bir söz dizimine sahiptir.

[String] % [-][0] [WidthString] [.PrecisionString]


ConversionCharacter[String]
75

AĢağıdaki tabloda önceki söz dizim elemanlarını açıklamaktadır.

Sentask Elemanı Tanımlama


AĢağıda tanımlandığı gibi belli karakterleri içine
String (isteğe bağlı)
yerleĢtirebileceğiniz düzenli string.
% Format belirleyicisini baĢlatan karakter.
Karakter bu Ģekilde bırakılırsa sağa yanaĢtıktan sonra
-(dash) (isteğe bağlı) çevrilen numarayı da geniĢliği içinde sola yanaĢtırır.
Numaraların solundaki herhangi bir aĢırı boĢluğu,
0 (sıfır) boĢluklardan ziyade 0’lar ile birlikte dolduran karakterlerdir.

Sentask Elemanı Tanımlama


ÇevrilmiĢ numarayı kapsayan nümerik alanın minimum karakter
geniĢliğini belirleyen sayı düzeltilir. Eğer gerekirse daha küçük sayı
kullanıla bilinir. LabVIEW sınırlandırmaya bağlı olarak sayının
String GeniĢliği
sağındaki veya solundaki fazlalık boĢlukları ile bağlar.
Eğer geniĢlik string’i kayıp ise veya geniĢlik 0 ise, çevrilmiĢ sayı
dizini, ihtiyaç duyulduğu kadar çevrilmiĢ sayıyı kapsar.
Periyot GeniĢlik string’i tamlık string’inden ayıran karakterdir.
Sayı , taĢma noktası sayısı olduğu zaman sayısal alan içindeki
ondalık sayının sağındaki karakter sayısını belirleyen saydır.
Tamlık Stringi
Eğer geniĢlik string’i bir periyot tarafından takip edilirse ve tamlık
string’i kayıp veya sıfır ise, parçanın hiçbir bölümü yerleĢtirilmez.
Sayının nasıl çevrileceğini belirleyen tek karakter aĢağıdaki gibidir.
d ondalık sayı
x hekze decimal
DeğiĢtirme Karakteri
o oktal
f kesirli format taĢama noktası sayısı ile
e,g bilimsel iĢaretleme ile taĢma noktası sayısı

Görüntülenmeyen karakterler ve backslash ve yüzde karakterleri yerleĢtirmek


için arka sayfadaki tabloda gösterilen kodları kullanınız.
76

AĢağıdaki tablo Format & Append fonksiyonu için aĢağıdaki örnekleri verir. Bu
örneklerde alt çizgi (_) karakteri bir sonlandırıcı boĢluk karakterini temsil eder.

Pick Line & Append

Multi–line string’den bir hat seçer ve o hattı string’e ekler.

Multi–line string. TaĢıyıcı dönüĢler tarafından ayrılan bir veya daha fazla
substring içerir.
77

String. Eğer onu bağlamazsanız varsayılan boĢ bir stringe dönüĢür.

Line index. Multi-line string’den eklenen fonksiyona hattını seçer. Bir


line index scaler olmak zorundadır. 0’ın line index’i ilk hattı seçer. Eğer line
index negatif veya multi-line string içindeki hatların sayısına eĢit veya daha fazla
ise, fonksiyon output string’ini string’e ayarlar. Eğer line index bir kayan nokta
sayısı ise, fonksiyon tamsayı değere dönüĢür.

Output String.

Index&Strip

EĢlenip eĢlenmediğini görmek için string’in baĢlangıcı ile string array içindeki
her bir string’i kıyaslar. Eğer eĢlenmiĢ ise bu fonksiyon eĢlenmiĢ string array
içindeki stringin index’ini ve output string’i içindeki eĢlenmiĢ karakterleri string’i
eksiye çevirir. Eğer eĢleĢme yoksa, output string, string’tir ve index – 1’dir.

String.

String’e uyan potansiyel String array’i.

EĢitlik bulunan string array’deki stringin index’i. Denklik yoksa index –


1’dir.

EĢitlik bulunursa output string, string eksi denk karakterlerdir. EĢitlik


yoksa string output string’dir.
78

Format&Strip

Format string eĢitini bulana kadar string’i arar. Format string’deki çevrim
kodlarına göre stringin parçalardaki bir sayıyı biçimlendirir, output string’indeki
denklikten sonra stringin kalanını ve çevrilen sayıyı sayısal olarak verir. Bu
fonksiyon C dilindeki scanf fonksiyonu gibi davranır.

AĢağıdaki tablo format string’inin sayıyı ve output string’ini nasıl etkilediğini


göstermektedir.

String.

Format string aĢağıdaki söz dizimine sahiptir.

[ String ] % [ - ] [ 0 ] [ WidthString ] [ .PrecisionString ]


ConversionCharacter[ String ]
79

Ortak çevrim karakterleri

d ondalık tamsayıya
x hex tamsayıya
o oktal tamsayıya
f kesir formatıyla kayan nokta sayısına
e,g bilimsel ifadeli kayan nokta sayısına

Format string’de kullanabileceğiniz değerlerin tam listesi hakkında daha fazla


bilgi için Format & Append bölümü fonksiyon tanımlamalarına bakın.

Yalnız bu fonksiyon için, LabVIEW yol gösterici boĢlukları ihmal eder. …abc
def… gibi format stringindeki bir boĢ karakter, 0 veya daha fazla boĢluk, tablar,
taĢıyıcı dönüĢler, hat beslemeleri veya form beslemeleri içeren keyfi miktarda
beyaz boĢluğa denktir. Bir boĢluğu tam olarak eĢlemek için backslash – boĢluk ( / )
yapısını kullanın. Hem e hem de f çevrim karakterlerini üslü sayılara eĢitler. Örnek
için bir önceki tabloya bakın.

Default. ÇıkıĢ sayılarının varsayılan değeri herhangi bir nesnenin uygun


tanımlamasını default olarak alır. Eğer siz default’a bağlantı yapmazsanız,
parametre default’a 0 sayısını alır.

Number. Eğer bir denklik yoksa, number değer olarak default’ı alır.

Output String. Eğer denklik yoksa, output string, string’tir.

Spreadsheet String To Array

Array type’ın tanıtımına ve boyutunun nümerik array’e çevirir. Bu fonksiyon


sayıların dizilerinde olduğu gibi stringlerin dizilerinde de çalıĢır.
80

Format. Geçerli format değiĢim karakterlerinin bir tanıtımı için, bu ünitede


daha önce geçen Format&Append fonksiyonunun bölümüne bakın. Spreadsheet
String to Array fonksiyonu için (%s) karakterini kullanabilirsiniz.

Spreadsheet String. Tablar Spreadsheet String’de sütunları ayırır. End-


of-Line (EOL) karakteri satırları ayırır. Fonksiyon Spreadsheet String dizisinde
her elemanı formata göre dönüĢtürür ve onları dizide depolar.

Array type. Eğer array type bağlanmamıĢsa, sayıların iki yönlü dizisi
varsayılır.

Array.

Array To Spreadsheet String

Herhangi bir boyutlu sayı dizisini Spreadsheet String’e çevirir. Bu


Spreadsheet String dizi formunda bir tablodur. Tablar sütunu elemanlarına ayırır.
EOL karakteri satırları ayırır ve 3 veya daha fazla boyutlu diziler için, sayfalar
aĢağıda tanımlandığı gibi ayrılmıĢtır.

Format String Geçerli format string dönüĢüm karakterlerinin geçerli


tanımı için bu bölümde daha önce geçen Format & Append fonksiyonunun
81

tanımına bakın. Array to Spreadsheet String fonksiyonu için ( %s )karakterini


kullanabilirsiniz.

Array. Fonksiyon dizisindeki her elemanı format string dizisine göre


dönüĢtürür ve spreatsheet string’e ekler.

Spreadsheet string.

Build Path

Varolan bir Path’e bir isim eklemesi ve yeni bir path yapılır.

Path. Bu fonksiyonun isim eklediği temel path belirtilir. Eğer bağlanmamıĢ


ise boĢ path değerini alır. Path geçersiz ise bu fonksiyon path olmayan için
appended path’i kurar.

Name. Belirlenen path’e eklenen yeni path bileĢenidir. Eğer isim boĢ
string ise bu fonksiyon path olmayan için appended path’i kurar. Appended path
sonuç path’idir.

Appended path sonuçlanan yol.

Strip Path

Bir path’e son bileĢenin ismini verir.


82

Path. ÇalıĢmak istediğiniz path’i belirtir. Eğer bu parametreler boĢ bir


path ise veya geçersiz ise isim olarak boĢ bir string verir. Strip path’te bir yol
olmayanı verir.

Name. Belirlenen yolun son bileĢenidir.

Strip path. Path’in sonunda name’i uzaklaĢtırarak elde edilen sonuç


path’idir.

String To Path

Mevcut platform için standart formattaki bir path’i tanımlayan bir stringi bir
path’e çevirir.

String. Bir dizi stringlerin bir kümesi, stringlerin bir dizisi, path’lerin bir
kümesinin bir dizisi ve vs. olabilir.

Path. String ile tanımlanan path’in platformundan bağımsız tanımıdır.


Eğer ki string mevcut platformda geçerli bir path tanımlı değilse fonksiyon path’i
path olmayana kurar.

Path To String

Mevcut platform için standart formattaki path’i tanımlanan bir stringe çevirir.
83

Path. Bir dizi stringlerin bir kümesi, stringlerin bir dizisi, path’lerin bir
kümesinin bir dizisi ve vs. olabilir.

String. Yolun mevcut platformu için standart formattaki path tanımıdır.


Eğer path, path değildir ise fonksiyon stringi boĢ stringe kurar. String yol gibi aynı
veri yapısındadır.
84

6. DİZİ VE KÜME FONKSİYONLARI

Bu bölüm dizi ve küme çalıĢmaları için fonksiyonları açıklar. Functions


menüsünden Array&Cluster seçeneklerini seçerek dizi ve küme fonksiyonlarına
girersiniz.

Eğer terminal veya tel veri tipi dizi veya küme ise, bazı dizi ve küme
fonksiyonları, çoğu terminal veya tel pop-up menülerinin Array Tools ve Cluster
Tools paletlerinden de elde edilebilir. Eğer bu paletlerdeki fonksiyonları
seçerseniz, fonksiyonlar doğru terminal numarası ile görünür.

Dizi ve Küme Fonksiyonlarının Genel Davranışları

Dizi ve küme fonksiyonlarının bazıları değiĢken bir uç numarasına sahiptir. Bu


tür yeni bir fonksiyonu ekrana getirdiğinizde, o blok diyagram üzerinde sadece bir
veya iki uçlu olarak görünür. Pop-up menüsündeki Add ve Remove komutlarını
kullanarak terminalleri ekleyebilir ve atabilirsiniz (gerçek isimler fonksiyonda
bağlıdır) veya herhangi bir köĢesinden dikey olarak düğümü tekrar
geniĢletebilirsiniz. Eğer bağlanmıĢ uçları silmek isterseniz düğümü çekmezsiniz.
Add komutu seçiminizin üzerine hemen bir uç koyar. Remove komutu seçiminizin
üzerinden bir ucu kaldırır. Uç bağlanmıĢ olsa bile aĢağıdaki resim Build Array
fonksiyonuna daha fazla uç eklemek için iki yol göstermektedir.
85

Polymorphism

Çoğu dizi fonksiyonları herhangi bir tipten n–boyutlu dizileri kabullenir,


fonksiyon tanımlamalarındaki bağlantı, varsayılan veri tipleri gibi sayısal dizileri
gösterse bile bunu kabullenir.

Bundle ve Unbundle fonksiyonlar özel giriĢ veya çıkıĢ uçları için veri tiplerinin
nesnelerini bu uçlara bağlayıncaya kadar göstermez. Onları koyduğunuzda
(tellerini) bu uçlar, gösterge terminallerinin veya ön panel kontrol karĢılığının veri
tiplerine benzer gözükür.

Aralık İndeks Değerinin Sınırı

Sınırındaki bir diziyi indeksleme giriĢiminde bulunan dizi eleman tipleriyle


belirlenmiĢ seçili bir sonuçlandırır.

Array Fonksiyonları

Array Max&Min

Nümerik dizide maksimum ve minimum değerleri arar. Fonksiyon maksimum


ve minimum değerlerin bulunduğu yeri indekslere çevirir.

Numeric Array. Herhangi bir boyutun sayısına sahip olabilirsiniz.

Max Value ve Min Value. Nümerik dizideki elemanlar aynı veri tipindedir.
86

Max Index ve Min Index. Eğer Numeric Array çok boyutluysa, sonra
max index ve min index dizidir, numeric array’de uygun boyut için index olan
elementlerin her biri.

Fonksiyon Comparison Functions bölümündeki kurallara göre her bir veri


tipini sorgular.

Array Size

Dizinin her bir boyutu için elementlerin sayısına döndürür.

Array. Herhangi bir tipteki n - boyutlu bir dizi olabilir.

Size(s). Eğer dizi tek boyutlu ise, büyüklük skaler numaradır. Eğer dizi
çok boyutlu ise, geri dönen değer dizinin aynı boyutundaki elemanın numarasını
temsil eden elemandaki tek boyutlu dizidir.

Array Subset

Index’te ve length elemanlarda baĢlayan Array’ın bir bölümüne döndürür.


87

Array. Herhangi bir tipteki boyutlu bir dizi olabilir. Eğer array çok boyutlu
ise bir boyutu tekrar geniĢletme veya ekleme ile her bir boyutun index ve length
uçlarının bir çiftini eklemelisiniz.

Index. Bir skaler sayı olmalıdır. Eğer index 0’dan küçük ise fonksiyon
onu sıfıra ayarlar. Eğer index, array geniĢliğine eĢit yada daha büyükse fonksiyon
boĢ bir diziyi geri getirir.

Length. Bir skaler sayı olmalıdır. Eğer index ve de length dizinin


geniĢliğinden daha geniĢ ise , fonksiyon elde edilebildiği kadar detayı geri getirir.

Subarray. Array’in elemanları ile aynı veri tipleridir.

Build Array

Array with appended element dizi yapmak için en üstten en alta sıralı olarak
bütün giriĢleri ekler.

Array. Array’ın elemanları herhangi bir veri tipinde olabilir.

Element. Array’ın elemanlarıyla aynı veri tipinde olmalıdır.


88

Array with appended element

BaĢlangıçta bütün giriĢler bu fonksiyonun elemanlarıdır. Bir array giriĢini bir


eleman giriĢine çevirmek için, pop-up menüsünden Change to Array seçeneğini
seçin. Tek boyutlu bir dizi eklemek için, element giriĢine skaler değerler bağlayın
ve dizi giriĢine tek boyutlu diziyi bağlayın. Ġki boyutlu bir dizi oluĢturmak için,
element giriĢine tek boyutlu diziyi bağlayın ve dizi giriĢine iki boyutlu diziyi
bağlayın. Genellikle, n-boyutlu bir dizi oluĢturmak için, her array giriĢi aynı boyutlu
olmalıdır, n ve her bir element n-1 boyutlu olmalıdır. Bu Ģekilde, element giriĢinin
bir serisine iki boyutlu diziler bağlayarak üç boyutlu bir dizi oluĢturulur.

Index Array

Array ve index’i element’e dönüĢtürür. Eğer array çok boyutlu ise, element
ekleme ve poppin-up veya tekrar boyutlandırma ile array’in her boyutu için biraz
daha index ucu eklemelisiniz.

Array. Dizinin her tipi için bir n – boyutu olabilir.

Index. Skaler bir sayı olmalıdır.

Element. Array elemanları ile aynı tipe sahip olmalıdır.

Dizinin bir elemanını çıkarmak için ilave olarak, bir veya daha fazla index
ucunun saf dıĢı bırakılmasıyla daha yüksek boyutlu bileĢeni dilimlendirebilirsiniz.
89

Initialize Array

BelirlenmiĢ değerlere sıfırlanmıĢ olan her bir elemente n – boyutlu bir diziyi
getirir.

Element. Her bir array elemanının baĢlangıç değerini ve dizinin tipini


belirtir.

Dimension size. Siz sıfırlanmıĢ dizinin her boyutu için bir boyut
geniĢliğini eklemelisiniz.

Initialized array. SıfırlanmıĢ array elemanını bağlarsanız tipin aynı


tipinde bir dizidir.

Replace Array Element

Yeni elemanı array ve index elemanlarıyla birlikte yer değiĢtirir.

Array. Dizinin her tipi için bir n – boyutu olabilir.

New element. Array’deki diğer elemanlarla aynı tipte olmalıdır.


90

Index. Skaler sayı olmalıdır. Eğer array çok boyutlu ise, her bir boyut için
bir index ucunu bağlamalısınız.

Array with new element. Dizi gibi aynı niteliktedir.

Reshape Array

Bir giriĢ dizisinin boyutunun değerine göre değiĢtirir.

n-dim array. Boolean hariç herhangi bir tipi n – boyutlu dizi olabilir.

dimension size. m boyutu için m dimension size uçları eklemelisiniz.


dimension size skaler sayı olmalıdır.

m dim array. Eğer boyut geniĢliğinin ürünü giriĢ dizisindeki eleman


sayısından büyükse, fonksiyonların varsayılan değerli yeni bir diziyi besler.eğer
boyut geniĢliğinin ürünü giriĢ dizisindeki eleman sayısından daha az ise fonksiyon
yeni fazlalığını keser.

Sort 1D Array

Array elemanlarının artan sırada düzenlenmiĢ versiyonunu verir. Her hata tipi
kıyaslama kuralları fonksiyonları kıyaslama bölümünde izah edilmiĢtir.
91

1D array boolean hariç herhangi bir tip bir boyutlu bir dizi olabilir.

sorted array

Split 1D Array

Index’te array’a böler ve iki parça hailine çevirir.

array herhangi bir tip bir boyutlu dizi olabilir.

index skaler olmalıdır. Eğer indeks negatif veya 0 ise ilk altdizi
boĢtur.Eğer indeks dizisi geniĢliğinden daha büyük ise ikinci altdizi boĢtur.

first subarray ve second subarray dizinin elemanları gibi aynı veri


tipinde elemanlar içerir. Ġlk alt dizi ve ikinci (indeks 1) aracılıyla dizi(0) içerir ve alt
dizi diziden geri kalanı içerir.

Transpose array

2 boyutlu dizi elemanlarını yeniden düzenler, Ģöyle ki 2D array [i,j] transposed


array [j,i] olur.

2 boyutlu array herhangi bir tip iki boyutlu dizi olabilir.


92

Transposed array

Küme Fonksiyonları

Ġleriki konularda tanımlanan küme fonksiyonları tanımlanabilirdir. Siz onların


giriĢ ve çıkıĢ uçları sayısı içermesi için pozisyon aracını uzatarak kullanabilirsiniz.

Bundle

Tek bir küme içinde bütün giriĢ bileĢenlerini toplar veya bir kümedeki
elemanları yer değiĢtirir.

companent, companent ve cluster. Bu fonksiyonunun giriĢ


parametreleri polimorfiktir. Yani onlara herhangi bir veri tipinde olabilir. Eğer küme
bağlı ise yalnız bağlamak istediğiniz bileĢenlere bağlanmalıdır. Bağlanmayan
bileĢenler olduğu gibi kalır.kümeyi bağlamazsanız, bütün bileĢenleri bağlamak
zorundasınız.

cluster

Unbundle

Kümeyi bileĢenlerine böler.


93

cluster

companent ve companent. Bu fonksiyonun çıkıĢ parametreleri


polimorfiktir. Fonksiyon sizin onları ilk eklediğiniz sıradaki küme sırasında üsten
aĢağıya doğru bileĢenleri düzenler.
94

7. ZAMAN&DİYALOG FONKSİYONLARI

Bu bölüm, bir veya iki butonlu diyalog kutusu fonksiyonları ve geçen zamanı
ölçmek veya bir uygulamayı zamanın özelleĢmiĢ bir periyodunda geçici olarak
durdurmak için kullanabileceğiniz zaman fonksiyonlarını tanımlar.

Diyalog ve zamanlama fonksiyon paletine, Function menüsünden


Time&Dialog’u seçerek girebilirsiniz.

Kullanıcı Diyalog Fonksiyonu Tanımlamaları

One Button Dialog

Mesaj ve tek bir buton içeren diyalog kutusunu gösterir. Butonun ismi diyalog
kutusunda gösterilen isimdir.

message

button name. Eğer bu giriĢi bağlamazsanız, butonun ismi varsayılan


olarak OK’ye ayarlanır.

true. Butona tıkladığımızda, true TRUE’nun değerini içerir.


95

Two Button Dialog

Mesaj ve iki butonu içeren bir diyalog kutusunu gösterir.T buton ismi ve F buton
ismi diyalogun butonla gösterilen isimleridir.

message

T buton name. Eğer giriĢi bağlamazsanız, isim varsayılan olarak iptale


ayarlanır.

F buton name. Eğer giriĢi bağlamazsanız, isim varsayılan olarak iptale


ayarlanır.

T buton?. Eğer kullanıcı ucunu T buton ismine bağladıysanız ön panel


kontrolüne tıklanırsa T buton? TRUE değerini geri döndürür. Eğer kullanıcı ucunu
F buton ismine bağladığınız ön panel kontrolüne tıklanırsa, T buton? FALSE
değerine geri döndürür.

Zamanlama Fonksiyonu Tanımları

Get Date/Time String

String Ģeklindeki çıkıĢlar, 12:00 A.M, Cuma, Ocak 1, 1904 GMT’den beri
geçmiĢ olan seconds sayıları tarafından belirtilen tarih ve zaman ya da onun yerel
zaman bölgesine eĢitidir.
96

date format. Date Stringinin görünümünü seçer aĢağıdaki tarih biçimleri


kullanılabilirdir.

0: 1/1/04
1: Friday, January 1, 1904
2: Fri Jan 1 04

Bu biçimlerin sizin sistem kaynak dosyanıza bağlı olduğuna dikkat ediniz. Eğer,
U.S. sistem kaynak dosyasına sahip değilseniz, bu biçimler farklıdır.

Seconds. Eğer seconds’ı bağlamadan bırakırsanız, LabVIEW varsayılan


olarak Ģu ayarlar ve geçerli tarih ve zamanı çıkıĢ olarak kullanır. Aksi halde
fonksiyon tarih ve zamanı 12:00 A.M, Cuma, Ocak 1, 1904’ten bu yana uygun
gelen seconds’ın numaraları ile geri döndürür.

wants seconds? Time stringi içerisindeki dakikaların gösterimini kontrol


eder.

date string

time string, 15:24 biçimindedir.

Tick Count (ms)

Mili saniye sayacını değerini geri döndürür. Esas referans zamanı (sıfır
milisaniye) tanımlanmamıĢtır, bu yüzden milisaniye zaman değerini gerçek dünya
97

zaman veya tarihine çeviremezsiniz. Bu fonksiyonu karĢılaĢtırmalarda kullanırken


dikkatli olunuz, çünkü milisaniye sayacının değeri 232-1’den 0’a kadar yayılır. Sizin
bilginiz olmadan tekrar yayılma meydana gelmesinden korumak için, geçerli
okuma ile bir önceki okumayı karĢılaĢtırabilirsiniz. Eğer iĢlenen değer bir önceki
değerden daha düĢükse, milisaniye sayacı değeri etrafında yayılmıĢtır.

milisecond timer value.

Not: Zamanlama çözünürlüğü platformdan platforma farklıdır ve dahili saat


tarafından sınırlandırılmıĢtır. Mac’lerde dahili saatin bir tiki yaklaĢık olarak 17 ms,
Windows altında ise bir tik genellikle 55 ms’dir.

Wait (ms)

Belirtilen milisaniye sayısını bekler. Bekleme sona erdiğinde milisaniyenin


değerini geri döndürür.

miliseconds to wait.

milisecond timer value.

milisecond timer value.


98

Not: Zamanlama çözünürlüğü platformdan platforma farklıdır ve dahili saat


tarafından sınırlandırılmıĢtır. Mac’lerde dahili saatin bir tiki yaklaĢık olarak 17 ms,
Windows altında ise bir tik genellikle 55 ms’dir.

You might also like