NI Ürünleri İle İlgili Tartışmalar

cancel
Showing results for 
Search instead for 
Did you mean: 

file oluşturma!!

Solved!
Go to solution

blokdiyagrm.jpgdosya verileri.png

 

iyi akşamlar benim dosya oluşturmayla ilgili bir sorum olucaktı..yukarıda görülen blok diyagramdan alınan sonuçlar ile elde ettiğim veriler alttaki dosyaya yazılıyor yalnız ben bu verilerin düzgün biçimde kaydedilmesi için bir dosya sistemi oluşturmak istiyorum mesela şöyle bir sistem 

tarih_batarya#_cycle#_data.lvm bu kaydetme işlemi her bir cycle için bir artacak şekilde devam etsin ve kullanıcı müdahale etmese bile cycle bittiğinde kendiliğinden otomatik olarak kaydetsin..burda blok dıyagramda kullanılan write to measurement fonksiyonuyla gerekli ölçümleri yazdırabılıyorum ama sanırım bu benım dediğim olayı gerçekleştirmek için dosya açıp kapama okuma yazma işlemleriyle ilgili bişeyler bilmem gerekiyor bununla ilgili bakabileceğim bi örnek var mıdır acaba?ayrıca burada belirttiğim cycle için bir çıkış alabiliyorum yani cycleın cıkısını ne gibi bir dosya fonksiyonuyla birleştirmem gerekir ki bu şekilde ototmatik olarak kaydetsin

0 Kudos
Message 1 of 25
(6,861 Views)

Merhaba,

Dosya işlemleri ile ilgili örneklere "NI Example Finder" yazılımında "Fundamentals/File Input and Output" bölümünden ulaşabilirsiniz.

"NI Example Finder"ı açmak için Help menüsü altında "Find Examples"a tıklamanız yeterli.

 

İyi çalışmalar

 

Mehmet SARIKOÇ

www.peksmuhendislik.com

 

0 Kudos
Message 2 of 25
(6,856 Views)
Solution
Accepted by topic author hasan8861

Dosya Kayıt Örnek.png

 

Otomatik dosya adı oluşturmanın mantığı ile ilgili örnek bir resim ekledim. LV sürüm sorunları olmaması için kodun kendisini eklemedim. Resimde hangi işlevler kullanılmışsa adları üzerlerinde yazılıdır.

 

Current VIs Path -> Üzerinde çalıştığınız VI'ı kaydettiğiniz tam yolu verir

Strip Path -> Current VIs Path ile aldığımız yol VI'ın kendi adını da içeriyor onu silmek için kullandım

Get Date/Time String -> Şu anki bilgisayar saatini metin olarak almak için kullanılır. Ben saniyeleri de kullandım

Search and Replace String -> Aldığımız saniyelerde ":" karakterleri bulunacaktır ve dosya yolu oluştururken bu karater kullanılamaz. Tümünü değiştirip "_" yaptım

Number To Decimal String -> Döngünün indisini kullanarak tur sayısınım metin karşılığını aldım

Concatenate Strings -> Dosya adını oluşturmak için gerekli metinleri birleştirdim

Build Path -> VI'ın vuluduğu klasör ile dosya adını birleştirerek tam yolu elde ettim

 

İyi çalışmalar.

Message 3 of 25
(6,842 Views)

Zafer Bey tebrik ederim.

 

Cevabın bundan daha güzel bir şekilde dökümante edilebileceğini düşünmüyorum 🙂

 

 

Candan

(Bay) Candan CANER
National Instruments Türkiye
Message 4 of 25
(6,838 Views)

Candan çok teşekkürler 🙂 Sen de forumları canlı tutmak için insanları iyi motive ediyorsun 🙂

 

Niyetim Türkiye'de LV konusunda yetişmiş insan sayısının artması için üzerime düşen görevi yerine getirmeye çalışmak. Daha önceleri başka yazılım dilleriyle de ilgilendim ama LV üzerine tanımam 🙂 Şimdilik fazlaca etkin olan kişi gibi görünüyorum ama umuyorum yetişen kişi sayısı arttıkça farklı kişilerden sorunlar için farklı çözümler ortaya konulacak ve olası en iyi çözümler üzerine görüş alış verişi yapılacak.

 

Sadece ben değil, sen özellikle donanım konusunda sonra Mehmet Bey'de hem donanım hem yazılım konusunda en fazla katkıları verecek kişilersiniz. Ayrıca siz de tanıyorsunuz Serdar Abimiz var onu da forumlara getireceğim zorla da olsa 🙂

 

motivasyon için +1 de sana 🙂

0 Kudos
Message 5 of 25
(6,835 Views)

zafer bey teşekkürler..yalnız burda gördüğüm bişeye dairde bi soru sorabilirmiyim bu 'current VIs path' dediğiniz fonksiyon tam olarak neyi yapıyor.eğer benim düşündüğüm fonksiyonsa çok işime yarıyacakta!!benim anladığım bizim block diyagramda oluşturduğumuz bütün fonksiyonları tek bi yapı olarak mı gösteriyor!! 

0 Kudos
Message 6 of 25
(6,829 Views)

Current VI's path için boş bir VI açın ve istediğiniz bir yere kaydedin. Mesela masaüstüne kaydettiğimizi varsayalım, VI'ın adı da "örnek.vi" olsun. Current VI's path ekler ve çıkışına bir gösterge (indicator) oluşturup çağırırsanız, göstergenin içinde "...\Desktop\örnek.vi" olarak kaydettiğiniz VI'ın tam yolunu elde etmiş olursunuz.

 

Nerede kullanılır sorusuna ise, dinamik olarak dosyalarınızı kaydetmek ve uygulamanız içindeki dosyalara erişmek için kullanılır. Mesela VI'ın olduğu klasöre test dosyalarınızı kaydedeceksiniz ama VI'ı istediğiniz yere de taşımak istiyorsunuz. Her seferinde VI'ın bulunduğu yeri yazılıma eklemek yerine bu işlevi kullanarak dinamik olarak o an VI nerde kayıtlıysa olduğu yeri size verecektir. Bu referansı aldıktan sonra alt klasörler oluşturup dinamik olarak onlara da erişim sağlayabilirsiniz.

 

Dikkat edilecek husus VI'ın kayıtlı olması gerektiğidir. Kayıtlı olmadan Current VI's Path çalıştırısanız "<Not A Path>" cevabını alırsınız.

 

VI'ınızı uygulamaya çevirdiğinizde ise "Application Directory" komutu ile uygulamanızın o anda bulunduğu klasörün yoluna erişebilirsiniz.

 

Current VIs Path.png

0 Kudos
Message 7 of 25
(6,825 Views)

Merhaba;

 


.........benim anladığım bizim block diyagramda oluşturduğumuz bütün fonksiyonları tek bi yapı olarak mı gösteriyor!


 

acaba kastettiğiniz, mevcut VI'ınızı subVI olarak kaydederek, diğer VI'lardan çağırmakla olabilir mi ? 

Öte yandan, mevcut VI'ınızın path'ini (ya da herhangi başka bir VI'ın da path'ini) Invoke Node'lardan programatik olarak VI çağırmada da kullanabilirsiniz.

Mevcut VI için uygulanması durumunda biraz recursive yapı tadı katacaktır uygulamaya 🙂

 

İyi programlamalar dilerim.

 

Candan

 

(Bay) Candan CANER
National Instruments Türkiye
0 Kudos
Message 8 of 25
(6,816 Views)

iyi akşamlar 

 

zafer bey sağolun ama galiba benim istediğim fonksiyon değil bu..benim istediğim canan hanımın anlatmak istediği şeye yakın ama tam olarak o da değil :)..şöyle anlatiyim benim blok diyagramımda 4 tane while döngüsü var hepsinin içerisinde bir çok değişken bir çok indicator var benim istediğim sadece diyelim 1. while döngüsünün içerisini göstermesin sadece bu döngüye dışardan gelen kablo baglantılarını değişkenleri ve bu döngüden çıkan outputları gostersin...bunu daha net açıklamak istersem mesela herhangi bir indicator için local variable oluşturabılıyorsak bi while dongusunun tamamı için boyle bir variable oluşturma imkanı var mı sadece kullanıcı içinde oynama yapmak istediğinde açma imkanı olsun diye 

0 Kudos
Message 9 of 25
(6,806 Views)

Candan Beyin bahsettiği SubVI aslında bu dediğinizin karşılığı olabilir. Kodunuzu paylaşırsanız nasıl yapabileceğinizle ilgili kesin birşeyler söyleyebiliriz.

0 Kudos
Message 10 of 25
(6,802 Views)