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

cancel
Showing results for 
Search instead for 
Did you mean: 

UDP den okuduğum datayı ilgili değişkenlere atamak

Solved!
Go to solution

Selamlar,

 

UDP den yaklaşık 1000 byte data okuyorum. okuduğum bu data yaklaşık olarak 800 adet değişkene ait. data bilgilerini içeren bir array var. bu arrayde değişken isimleri ve data uzunluk bilgileri mevcut. UDP den gelen verinin arraydeki sıraya göre ilgili değişkenlere atanması gerekiyor.

Bu değişkenler ile 50 adet instrument üzerindeki lamba, gauge gibi birimleri kontrol edeceğim. (compact RIO IO modülleri ile instrumentları süreceğim).

UDP den gelecek olan 1000 byte lık bilgi her 100 mili saniyede bir gelecek. dolayısı ile bu bilgi her geldiğinde değişkenlerin değerlerinin değişmesi gerekiyor. instrumentlar için yazdığım sub vi larda yine 100 ms refreh rate ile birimleri kontrol edecek.

Ben şuan için UDP den gelen 1000 byte lık bilgiyi string subset ile tek tek değişkenlere atıyorum. Fakat labview ın başka bir özelliği ile daha uygun bir atama işlemi olacağını düşünüyorum.

 

Bu konuda bilgisi olan paylaşabilir mi?

 

Teşekkürler.

Serdar

 

0 Kudos
Message 1 of 8
(5,539 Views)
Solution
Accepted by soz
Serdar Bey Merhabalar,

Udp den gelen string uzerinde string operasyonlar yardimiyla içinde değerler tutan 800 luk 1d array'i oluşturun. Yani 800 elemani sirasiyla array'e yerleştirin. Ayrıca bu değerleri gösterecek olan indikatorlerin her biri icin referanslarini oluşturun (uzerine sag tıklayıp create reference). Ve bu indikatorlerin referenclerini tutan bir array olusturun. Udp sonucu gelen 800 luk 1d array i ve reference arrayi for döngüsüne sokun ve reference'lar aracılığıyla value property'sine her bir degeri yerleştirin.
Bu işinizi oldukça kolaylaştırır diye düşünüyorum.

Saygılarımla
Himmet GENCER
Software Development Coordinator at TDG
himmetgencer@gmail.com

View Himmet Gencer's profile on LinkedIn

View on Instagram
Message 2 of 8
(5,532 Views)

Himmet Bey,

 

İlginiz için teşekkürler. Hafta için kontrol edeceğim. Aradığım bilgi sanırım bu.

 

Saygılarımla

Serdar

0 Kudos
Message 3 of 8
(5,526 Views)

Ne demek Serday Bey,

 

Takıldığınız bir nokta olursa tekrardan yazarsınız.

 

Saygılarımla...

Himmet GENCER
Software Development Coordinator at TDG
himmetgencer@gmail.com

View Himmet Gencer's profile on LinkedIn

View on Instagram
0 Kudos
Message 4 of 8
(5,522 Views)

Merhaba,

 

Himmet Beyin dediği gibi değişkenler için reference lar oluşturdum ve ekteki gibi bir deneme kodu yazdım. 70 adet değişken oluşturup deneme yaptım. Çalışıyor fakat CRIO-9074 altında işlem süresi 300ms olarak çıkıyor. Bu süre oldukça uzun. Kodun resmini ekte gönderiyorum. Kod kısaca şu şekilde çalışıyor. array içerisinde variable lar için data uzunluk bilgisi alınıyor. bazı değişkenler 1 byte, bazıları 2 byte. UDP den gelen string veri 70 adet değişkene data uzunluk bilgilerne göre sırasıyla atanıyor. işlem bundan ibaret. 300 ms bu işlem için oldukça uzun bir zaman olarak geldi bana. Bu arada aynı kod kendi bilgisayarımda (Core2Duo 2.4Ghz) 3-4 ms de bitiyor.

 

Saygılarımla

0 Kudos
Message 5 of 8
(5,499 Views)

Merhabalar Serday Bey,

 

Sizlere daha fazla yardımcı olabilmek için birkaç sorum olacaktı:

 

  • Crio'nun host tarafında çalışıyorsunuz değilmi?
  • Kodunuz içerisindeki for döngüsü içerisinde yer alan "data from UDP string" ini for döngüsünün dışına alabilir misiniz?
  • Ayrıca for döngüsü içerisindeki çoğu işlemi özellikle string'e ait referans ile işlem yapan kısmı kaldırıp tekrar çalıştırır mısınız ?

Bu dediklerimi uygulayabilir misiniz ?

 

Saygılarımla...

Himmet GENCER
Software Development Coordinator at TDG
himmetgencer@gmail.com

View Himmet Gencer's profile on LinkedIn

View on Instagram
0 Kudos
Message 6 of 8
(5,472 Views)

Himmet Bey Merhaba,

 

- CRIO nun Host tarafında çalışıyorum.

- UDP stringi döngü dışına aldım. sonucu değiştirmedi.

- döngü içerisinde referans array kullanıp llgili değişkenlere değer atadığım string value propertysini döngüden çıkardım. (koddan hep çıkardım) böyle olunca döngü 1ms de tamamlanıyor. çıkardığım kısmı ekteki fotoda görebilirsiniz. resim kalitesi çok iyi değil ama önceki gönderdiğim resimden karşılaştırarak anlaşılabiliyor.

 

Saygılarımla

Serdar

0 Kudos
Message 7 of 8
(5,460 Views)

Merhabalar,

 

Kusura bakmayın sizlere biraz önce yanlış bir soru yönelttim. Crio'nun real time tarafında mı çalışıyorsunuz diye soracaktım. Anladığım kadarı ile realtime tarafta çalışıyorsunuz.

Öncelikli olarak sizlere şunu sormak istiyorum bu 70 adet değişkenin hepsini aynı anda göstermeniz gerekiyor mu? Ve bu kod parçanız crio'nun içinde çalışmak zorunda mı ?

 

Saygılarımla...

 

 

 

 

Himmet GENCER
Software Development Coordinator at TDG
himmetgencer@gmail.com

View Himmet Gencer's profile on LinkedIn

View on Instagram
0 Kudos
Message 8 of 8
(5,452 Views)