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

cancel
Showing results for 
Search instead for 
Did you mean: 

While loop'un içerisinde birden fazla case structure çalıştırma

Solved!
Go to solution

Merhabalar, 

Yönettiğim projede yaklaşık olarak 10 tane case structure var. Her bir case structure bir tane while loopun içerisinde çalıştırılıyor. Tahmin edebileceğiniz üzere aynı while loop'un içerisine 2-3 tane case structure koyulduğunda birbirlerinden etkileniyorlar yani bağımsız olarak çalışamıyorlar. Fakat bu kadar fazla while loop olması da CPU kullanımını 50%'nin üzerine çıkartıyor. Nasıl bir mimari takip edebilirim bu case structureları aynı while loop içerisinde bağımsız olarak çalıştırmak için?

Not: CPU kullanımını minimize etmek için her bir while loop'un içerisinde 500ms bekleme fonksiyonu mevcut.

Add 273 on whatever Celcius said.
-Kelvin
0 Kudos
Message 1 of 5
(4,021 Views)

Kodu görmeden yanıtlamak oldukça zor. Ama şunu diyebilirim döngülerde sabit çevrim zamanı belirliyorsanız (yani döngüler işlem parçaları gibi çalışıyorsa) bu türden işlemci yükleri oluşmaz. Proje boyutuna bağlı olarak onlarca/yüzlerce (dinamik oluşturulan) "While Döngüsü" kullanabiliyorum. İşlemci yükü belli bir analiz yoksa %1-2 leri geçmiyor. Ama analiz yapan tek fonksiyon dahi işlemci yükünü %60-70 ler seviyesine çıkarabilir.

0 Kudos
Message 2 of 5
(4,011 Views)

Proje gizliliğinden dolay yükleyemiyorum kusura bakmayın zafer bey. Peki, CPU kullanımının 52-53% olması sıkıntı yaratır mı? 

Aklıma takılan bir diğer soru da şu; verilerini for loop'a indeksleyerek elde ettiğim bir kaç tane grafiğim var. Veri alma işlemi bittiğinde bu grafikleri sıfırlamak (clear yapmak) istiyorum. Bunun için bildiğiniz bir property var mı acaba? Nasıl yaparım bu işlemi?

Add 273 on whatever Celcius said.
-Kelvin
0 Kudos
Message 3 of 5
(4,006 Views)
Solution
Accepted by topic author TITAN-x

Grafiği (Waveform Graph) sıfırlamak için içine boş bir dizi yazmanız yeterli olacaktır. Chart kullanıyorsanız Property::History içine boş dizi yazmalısınız.

 

İşlemci yükünün sürekli %50-60 larda olmasının sebebi varsa yani öyle olmak zorundaysa yapacak birşey yok. Normalde boştayken %1-2 civarını geçmemesi lazım. Analiz yapıldığında ani bir yükselme ile %50-60 lara çıkabilir. Örnek olarak üzerinde çalıştığım bir yapay görme projesinde saniyede 35/45 kare resim alıp işliyorum. Sürekli parça analizi yapıldığında işlemci %40-50 civarında yüklü oluyor ama besleme yavaşladığında yada durduğunda düşüyor hatta %1 ler seviyesinde bekliyor. (Tabiki bu yükün tamamı analizden oluşmuyor. Ekranda her üründen elde edilen değerlerin gösterildiği tablo, arka planda çalışan OPC haberleşmesi, her resmin görüntüsü, analiz istatistik grafikleri, raporlamalar, vs de bulunuyor...)

 

Şunu da eklemekte fayda var; Analiz olduğunda işlemciyi mümkünse %100 kullanarak işlem süresini kısaltmak genellikle tercih edilmesi gereken bir durumdur. Zamana yayıldığında işlemci kullanımı ortalama aynıdır ama ani olarak fazla yüke çıkarken boşta kaldığı süreler daha fazla olur. Böylece hem işlemciden daha fazla istifade edersiniz hem de sistem kapasitesini artırabilirsiniz. Bunu da çoklu çekirdek desteğini göz önünde bulundurarak programlama yaparak sağlayabilirsiniz.

 

Burada küçük bir bilgi de paylaşayım: Yüksek hızda senkron analizler (aynı zamanda yoğun kullanıcı ara yüzü) yapılması ve işlemci kullanımının en iyi şekilde kullanımı ile ilgili farklı bir deneme yaptım geçen gün. Sistem ana kartı üzerindeki ekran kartı ile ilave taktığım ekran kartı analiz performansını %5 civarında etkiledi. İlave takılan %5 hızlanma sağladı ki otomasyon için çok ciddi bir oran. Diğer her şey aynı olduğu halde sadece ekran kartı takılması görsel içeriği yoğun olan uygulamanızın performansını ciddi etkileyebilir. Yani bilgisayar testlerini iyi yapmanızı öneririm. Almadan önce internetten benchmark puanlarına bakın. Şu ana kadar aldığımız işlemcilerin sistem üzerindeki gerçek performanslarında bu puanlar hiç şaşmadı.

Message 4 of 5
(3,995 Views)

Teşekkür ederim cevabınız için.

Add 273 on whatever Celcius said.
-Kelvin
0 Kudos
Message 5 of 5
(3,991 Views)