Endüstriyel Otomatik Kontrol Sistemleri LabVIEW Yazılımı ve Kontrol Uygulamaları Mustafa Türker GÜLTEPE www.mturkergultepe.com 1
1. GİRİŞ LabView, 1976 yılında ABD nin Texas eyaletinde Austin şehrinde kurulan National Instruments firması tarafında tasarlanmış ve geliştirilmekte olan ölçme amaçlı geleştirilmiş C tabalı bir programdır. Labview, milyonlarca mühendisin ve bilim adamının kullandığı grafiksel programlama dili arabirimidir. Grafiksel programlama dili; küçük grafiksel ikonlar ve kablolar ile akış diyagramları hazırlamaya ve yapacağınız programları nesne tabanlı kullanarak birçok küçük programları birleştirmeye yaramaktadır. Metin tabanlı dillerden ziyade kullanımı daha kolay ve algoritma geliştirmek için daha görsel bir platform sunmaktadır. 1986 yılından bugüne kadar her türlü platformda kullanılabilir hale gelen Labview kendi içerisinde çok büyük bir içerik içermektedir ve endüstride çok büyük alanlara hükmektedir. Mühendislik, İstatistik, Kimya, Fizik vb alanlarda verinin kullanılabileceği her alanda çok büyük kolaylıklar sağlamaktadır. Gerçek zamanlı, FPGA, Mobile, Embedded, Datalogging and Supervisory Control, Vision Development, Motion Control, Sound and Vibration, Statechart, Simulation gibi ek modülleri bulunmaktadır. Test ölçme ve kontrol sistemlerinin vazgeçilmezi olmayı hedefleyen Labview, National Instrument bünyesinde geliştirilen veri toplama kartları, modüler enstrümantasyon sistemleri, kompakt kartlar ile dünya piyasasında önemli yer edinmiştir. 2011 yılında Multisim Programını da bünyesine katan National Instruments sanal enstrümantasyon uygulamalarını devre simülasyon programlarında da kullanılabilir hale getirmektedir. LabVIEW in kullanıldığı işlemlerden 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 2
2. LABVIEW ORTAMI LabView ortamı yani virtual enviroment temel olarak iki birimden oluşur. Bunlar; kısımlarıdır. i) Front Panel ii) Block Diagram i) Front Panel Front Panel numerik kontrollerin yapıldığı kısımdır. Bu panelde kullanılan cihazların fiziksel görüntüleri görülür. Bunların renkleri ve boyutları kullanıcının isteğine göre şekillendirilebilir. Front Panel'e eklediğimiz cihazlar, textbox'lar vs. Block Diagram'da otomatik olarak görünür hale gelir. Bu görüntü Front Panel'e nazaran görselliği daha düşük ama adından da anlaşılacağı üzere blok şeklinde yerleştirilir. Front Panel'de üst kısımda bulunan Run butonu ile tasarlanan sistem simüle edilebilir. Front Panel incelendiğinde şu iki temel özellik işlevini açıklamaktadır; 1. Controls = Inputs 2. Indicators = Outputs Kontrol araçları ile sistemimizin girişlerini tanımlarız. Çıkıştan okuduğumuz değerler de Indıcator'lar ile bize yansıtılır. Tüm kullanıcı ile iletişim Front Panel ile yapılmaktadır. 3
Controls = Inputs from the user = Source Terminals Indicators = Outputs to the user = Destinations Tools Palette Front Panel içinde eklenene eleman boyutlarını, renklerini, yazılacak yazıları, konumları ayarlamak için kullanılır. 4
Controls Palette Front Panel içinde cihaz, buton, liste, yol, termometre gibi kontrol araçları, osiloskop gibi ölçüm araçları eklemek için kullanılır. ii) Block Diagram Front Panle'de yapılan değişiklikler sonucu blokların oluştuğu yerdir. LabView'in sunmuş olduğu bir özellik olan görsel programlama (graphical programming) burada uygulanır. Bloklar arası bağlantılar burada kurulur. Functions isimli panel aracılığı ile bloklar arası ilişkiler belirlenir (toplama, çıkarma, integral alma gibi matematiksel işlemler). Yaptığımız tasarımlarda gerekli olacak döngü yapıları da burada belirlenir. Tasarımını yaptığımız sistemin kaç döngü yapacağı veya sürekli döngüde tutulacağını Block Diagram'da belirtiriz. Tasarlanan sistemde Front Panel'de Run butonu aracılığı ile simulasyon başlatıldığında sistemden alınan değerler Front Panel'deki textbox veya ayarlanan cihazlarda gözlemlenir hale gelir ve ayrıca Block Diagram'da da Highlight Execution butonu yardımı ile (üst panelde ampül işaretli buton) yapı bakımından incelenebilir. 5
LabView ortamında üzerinde çalışılan projeler alışkın olduğumuz biçimde, File-Save yolunu izleyerek kaydedilir. LabView dosyalarının uzantısı.vi 'dir. Bu uzantı ismine sahip dosyaları LabView aracılığı ile açabiliriz. LabView'in sunduğu üstün bir özellik te önceden çalışılan projeleri yeni bir proje içine dahil edebilme özelliğidir. Yeni açtığımız bir proje sayfasında veya o an üzerinde çalıştığımız projemizde, Block Diagram içine gelip, Functions panelinde Select a VI butonuna basarak daha önceden yaptığımız bir.vi uzantılı projeyi seçip Ok butonuna bastığımız takdirde, bu tasarımımız bir blok halinde görülecektir. Biz de önceden tasarladığımız sistemi tekrar oluşturma zahmetinden kurtulacak ve onu bloklar arasında ilişkilendirebileceğiz. Böylelikle çalışma hızımız artacak ve bizi uğraştıracak detaylardan sıyrılmış olacağız. 6
Functions Palette Block Diagram içinde matematiksel işlemler, analizler, I/O birimleri vs. eklemek için kullanılır. 2.1 KABLOLAR Block Diagram'da kablolar çok önemli bir yere sahiptir. Kablolar olmadan iletişimin gerçekleşmesi mümkün değildir. 7
Block Diagram üzerinde tasarımı yaparken kablo bağlantılarında hata olması durumunda LabView kullanıcıyı uyarır ve hangi bağlantının sorunlu olduğunu gösterir. Kablo Çeşitleri 8
2.2 GRAPHICAL PROGRAMING Burada biraz graphical programing kavramından bahsetmemiz gerekir. Graphical programing yani görsel programlama, adından da anlaşılacağı üzere programlama tekniğinin görsellik ile uygulanmasıdır. LabView G olarak bilinen grafiksel programlama dilini kullanarak programları oluşturur. Bu grafiksel sayfaya block diagram denilmektedir. Klasik programlama mantığında string ve numerik ifadeler yer alır. Siz bir terminalde ya da bir IDE'de klavyenizin başında metin öbekleri yazar ve bunu bilgisayarda işletirsiniz. Görsel programlamada ise bu işlemler tamamen arka planda yapılır ve sistemde grafiklerle normal programlama dillerinin yaptığı işlemler tanımlanır. Örneğin bir toplayıcının LabView'deki tanımlaması; bu şekildedir. Biz mühendis olarak bu toplayıcıyı alıp kablolarla bağlantılarını yapıp kullanırız. LabView arka planında ise bu grafik, toplama işlemine tabi olduğu yazılımcılar tarafından kodlanıp tanıtılmıştır. Yani siz bir mühendis olarak derin kodlama işlemlerine girmeden, üsteli görselliğin vermiş olduğu kolay anlaşılabilirlikten faydalanarak tasarlayacağınız elektronik sisteme odaklanırsınız. Görsel programlama bize bunu sağlar. LabVIEW terimleri ve onların geleneksel eşdeğerleri 9
2.3 RUN BUTONLARININ ANLAMLARI Bu butona tıklayınca VI ortamında tasarlanan devre çalıştırılır. Bu butonun işlevi VI çalışıyorken görüntüyü değiştirmeye olanak sağlar. Buton bu durumda iken VI compile olmayacaktır. 2.4 STATUS TOOLBAR 10
3. LABVIEW İLE BAZI UYGULAMALAR 3.1 SİNYAL ANALİZİ 11
3.2 ARDUINO İLE LABVIEW HABERLEŞMESİ 12
3.3 FREQUENCY RESPONSE 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. 13
3.4 SICAKLIK KONTROL 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. 14
3.5 DİZİ OLUŞTURMA 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. 15
3.6 SICAKLIK ANALİZİ 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. 16
3.7 ARRAY to BAR GRAPH 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 oluşturur. Bu VI yı veya alt VI yı kendi uygulamalarımızda bir bar grafik oluşturmak için kopyalayabiliriz. 17
3.8 CHARTS Bu VI, tablo ve veri tiplerinin kabul edebilecekleri farklı kullanımlarını göstermektedir. Birkaç farklı tablo konfigürasyonlarını kullanarak sinüs dalga(bazen de kosinüs) grafiği çizer. Onlar çoklu kaplanmış grafik çizimlerinde gösterilir. 18
3.9 DALGA ŞEKLİ GRAFİKLERİ 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. 19
3.10 SERİ HABERLEŞME 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. 20
3.11 PULSE 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. 21
3.12 AMPLITUDE SPECTRUM 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. 22
3.13 INTEGRAL VE TÜREV 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. 23
3.14 IIR FİLTRE DİZAYN 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. 24
3.15 EXTRACT THE SINE WAVE 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. 25
4. SONUÇ Uygulama alanlarını sıralamak zor olsa da yapılan uygulamaların örneklerini inceleyerek bu programın işinizi ne kadar kolaylaştıracağını görebilirsiniz. Hızlı programlama, programın adım adım çıkışlarını görebilme, paralel program sürdürebilme, işletim sistemi konusunda hiçbir sıkıntı yaşamama Mac OS, Windows7, Linux ortamlarının hepsine kurulabilme gibi özellikleriyle öne çıkan Labview pratik çözümün diğer adıdır. Medikal uygulamalar, Otomasyon, Gıda uygulamaları,otomotiv, Scada Uygulamaları, İşaret İşleme, Jeolojik veri analizleri, İstatistik, Matematik, Enerji analizi, Robotik gibi çok geniş bir alana hitap ettiğinden dolayı günden güne kullanım oranı artmaktadır. Matlab, mathscript gibi dillerin kodlarını kendi içerisinde çalıştırabilme özelliğine de sahip olmasıyla hem akademik hem endüstriyel çalışmalarda mukayese imkanı sunmaktadır. 26
5. YARARLANILAN KAYNAKLAR 1. Introduction to LabVIEW, http://www.youtube.com/watch?v=pesbz0gjyxq 2. http://www.ni.com/academic/students/learnlabview/ 3. LabView nedir?, http://lab-view.com/labviewnedir/ 4. Herkes İçin LabVIEW, Eylül 2012, ISBN 978-605-364-301-2 5. Introduction to LabVIEW, Sonoma State University, www.sonoma.edu 6. LabView üzerinden Arduino Uygulamaları, http://www.roboloji.com/2011/11/labview-uzerinden-arduino-uygulamalari/ 7. LabView-4, http://www.scribd.com/doc/40149209/labview-4 27