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

cancel
Showing results for 
Search instead for 
Did you mean: 

Sensörlerden Gelen verileri Sırasıyla Alıp Ekrana Yazdırma

Pic18F4550 ve Pic18F877A kullanarak sıcaklık ve nem sensöründen , titreşim sensöründen ve iki farklı akım sensöründen bilgi alıp ekrana yazdırmamız gerekiyor. Fakat sıcaklık ve nem bilgisindeki sürekli değişimi yine ekranda görmek istiyoruz. Diğer sensörler için aradaki zaman farkı önemsiz. yapılması istenen önce 1.akım sensöründeki bilgiyi alsın ekrana yazsın sonra bulunduğu döngü dursun bir sonraki akım sensörü için o sensör döngüsü başlasın yine veriyi alıp ekrana yazdıktan sonra o döngüde sonlansın, ardından sıcaklık ve nem bilgisini alalım ekrana yazsın ve o döngü sonlansın en son titreşim içinde aynı şekilde. LabVİEW de çok yeni olduğumuz için bir kaç döngü denedik fakat bir türlü önceki döngüyü sonlandıramadık. Sonlandırmak istememizin sebebi bir önceki döngü sonlanmadıkça usb bağlantı blokları aktif kalıyor ve veri çekmeye devam ediyor sürekli hata alıyoruz. tüm sensörlerden aynı anda veri almayı denedik bunu da gerçekleştiremedik. bu sorunu çözmemiz için kullanmamız gereken blok veya döngü hakkında bilgi verebilir misiniz ?

0 Kudos
Message 1 of 9
(5,851 Views)

nasıl bir döngü kullandınız acaba resim formatında paylaşır mısınız?

0 Kudos
Message 2 of 9
(5,839 Views)

State machine yapisini kullanin. Bir while loop yaratin ve icerisine bir adet case structure koyun. Ayrica case ler arasi bilgi transferi icin bir adet cluster olusturup while loop uzerinden shift register kullanarak bu cluster i dolastirin. Herbir sensor icin case yaratin mesela sensor 1, sensor 2 gibi. Bu case dongusunun en basina initialize case ekleyip tum sensorlerin USB baglantilarini yaratin (initialize dongusu sadece bir kere run edilmeli) ve yarattiginiz referanslari clusterin icerisine aktarinki diger dongulerde bu cluster dan bilgi cekebilsinler. Ayrica her bir sensoru taradiginizda da okunan degerleri bu clusterin icerisine aktaracaksiniz. program sonlandirilana kadar bu yaratilan baglanti referanslarini kapatmayin cunku while dongusunde initialize yapildiktan sonra surekli olarak sensorleri tarayip guncel bilgi transferi yaparken initialize da yarattiginiz baglanti referansini kullanacaksiniz. Bu case dongusune ayrica front paneldeki degerleri guncellemek icin "UpdateIndicators" gibi bir case daha ekleyebilirsiniz. Ayrica kullanici Programdan cikis icin ekrandaki cikis dugmesine bastiginda program sonlandirmak icin "Exit" case I de eklemeniz gerekecek. Exit yaparken Initialize da yarattiginiz referanslari kapatmayi unutmayin.State machine Program dongusunu asagidaki gibi programlayabilirsiniz.

 

1. Initialize (sadece 1 defa run edin)

2. Sensor1 oku

3. Sensor2 oku

4. UpdaeIndicators

Ilk donguden sonra surekli olarak 2,3,4 u run edin taki kullanici Exit e basip programdan cikana kadar.

 

Ekteki ornegi inceleyin lutfen ve kendi ihtiyaclariniza gore modifiye edin.

Senior Software Developer
0 Kudos
Message 3 of 9
(5,836 Views)

ekte yapmış olduğumuz iki farklı programı gönderiyorum.Neden istediğimiz gibi olmadığını şu şekilde anlatayım.

Paralel bağlı olan da her döngünün usb bağlantısını tek bir bloğa indirmiştik.program çalıştığında sadece sıcaklık ve nem sensöründen birde titreşimden bilgi alabiliyoruz döngü devam ettiğinde hata veriyor sıcaklık ve titreşimde bu sefer de bi anlık iki akım sensöründeki veriyi görüyoruz ama anında hata veriyor programı bile durduramıyoruz. aralarına süre koymayı da denedik fakat olmadı.

Seri bağlı da ise hepsinin usb bağlantısı farklı ve case dosyaları içindeler case dosyalarının true falselarını kendimiz birini açıp diğerini kapatarak ilerlediğimizde sıkıntı olmuyor ama bunu biz elimizle yapmak istemiyoruz. Buna da bir çare bulamadık malesef

Download All
0 Kudos
Message 4 of 9
(5,822 Views)

Hemen bunu deniyeceğim. İlginiz ve örneğiniz için çok teşekkürler

0 Kudos
Message 5 of 9
(5,821 Views)

Ekledigin vi lar acilmiyor.

Senior Software Developer
0 Kudos
Message 6 of 9
(5,817 Views)

Yüklememe izin vermiyor. Virüs uyarısı alıyorum 

0 Kudos
Message 7 of 9
(5,814 Views)

Birkactane Screenshot koyabilirsin block diagramdan.

Senior Software Developer
0 Kudos
Message 8 of 9
(5,809 Views)

picten veriyi alırken ttl to usb çevirici gibi birşey kullandıgınızı varsayıyorum o zaman standart read,write fonksiyonları işinizi görür böyle while loop içinde portu sürekli aç kapa yapmanıza gerek yok. pic içinde değerleri aralarında virgül koyarak string halde labviewe gönderin labviewde değerleri ayrıştırın termination char da kullanın ki daha sağlıklı iletişim olsun bu kadar karmaşaya hiç gerek yok.

0 Kudos
Message 9 of 9
(5,806 Views)