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

cancel
Showing results for 
Search instead for 
Did you mean: 

Timed Loop

Solved!
Go to solution

Hekese iyi çalışmalar dilerim.
Timed loop'u 1Mhz de çalıştırıyorum yani 1uS de bir işlesin istiyorum. Ve döngü içerisinde cRIO'nun dijital çıkışlarından 2 tanesinin durumlarını kontrol ediyorum, bununla birlikte her 20uS de bir analog girişi okumaya çalışıyorum. Lojik durumları ve okuma süresi için döngü iterasyonunu kontrol ediyorm. Mesela iterasyonu(i)'yi 20 ye bölüyorum sonra kalan 0 mı diye bakıyorum ve analog girişi okuyorum.(her 20uS de bir okumak için.)  dijital girişlerin durumunuda aynı şekilde, mesea dijital çıkış 0 ı dire döngü başlayınca 0 yapıyorum. 10ms sonra sıfıra çekmek istiyorum bunun için ilk başta iterasyonu 10 000 ile karşılaştırıyorum(10 000us =10ms mantığı ile) eğer eşitse çıkışı sıfırlıyorum. Fakat bu durumda doğru olmuyor 100 ile karşılaştırdığımda bana 10ms lik bir fark veriyor. Sebebi nedir ? Programı ekte yolluyorum.

0 Kudos
Message 1 of 8
(3,959 Views)

Kodu 2015 olarak kaydedip gönderebilir misiniz?

0 Kudos
Message 2 of 8
(3,912 Views)
0 Kudos
Message 3 of 8
(3,908 Views)

Kullanmış olduğunuz 1MHz Clock program içerisindeki bütün işlemlerin 1us içerisinde gerçekleşeceği anlamına gelmiyor. Çevrim zamanını Timed Loop özellikleri içerisinde Loop Timing Attributes bölümündeki Period değeri belirler. Iterasyon değeri programınızın her çevriminde 1 artacağı için programınız en iyi ihtimalle Period değerindeki kadar hızlı çalışır. Eğer işlemci belirttiğiniz süre içerisinde yazmış olduğunuz kodu işleyemezse bu süre dahada uzun olacaktır. Bu nedenle zamana bağlı bir işlem iterasyon sayısına bağlamak doğru değildir. Bunun yerine Tick Count fonksiyonunu kullanarak ne kadar süre geçtiğini daha doğru bir şekilde algılayabilirsiniz. 

0 Kudos
Message 4 of 8
(3,906 Views)

İlginiz için teşekkürler. 
Yapmak istediğim olay 20us de bir analog veri almak ve cRIO sample ratesi buna musait fakat yukardaki gibi bir problemle karşılaşıyorum. Bunun için önerebileceğiniz bir yol,metod,yöntem varmı ? tickcount sanırsam ms ile işlem gerçekleştiriyordu, onun için ona başvurmadım çünkü gerçekleştirmek istediğim periyod 20us liyelik periyotlar.

0 Kudos
Message 5 of 8
(3,902 Views)
Solution
Accepted by BALCI29

cRIO varsa niye FPGA içerisinde üretmiyorsunuz? Özel bir sebebi var mıdır?

 

İyi çalışmalar,

Emre

AnsoLab Elektronik

 

Actor Framework rocks!
Emre TUZUNER
0 Kudos
Message 6 of 8
(3,889 Views)
Solution
Accepted by BALCI29

Bu hızlara çıkmak teorik olarak mümkün olsada Scan Interface modunda bu hızlarda veri alamazsınız. Emre beyin söylediği gibi FPGA Interface modunu kullanmanız gerekir. Fakat CRIO sample rate yüksek olsada veriyi kendi ekranınıza aktarmak istediğinizde bu hız düşecektir. FPGA kullanarak Buffered veri transferi yaparak en yüksek hıza ulaşabilirsiniz. 

İngilizce biliyorsanız http://www.ni.com/tutorial/11198/en/ sayfasında konu ile ilgili detaylı açıklamalar mevcut.

0 Kudos
Message 7 of 8
(3,881 Views)

Mehmet_SARIKOÇ ve etuzuner  biraz geç oldu cevap vermem ama  ilginiz için teşekkürler. Sinyali FPGA ile almak zorunda kaldık ve istediğimiz örneklemeye bu sayede ulaşabildir. 
İyi çalışmalar dilerim.

 
0 Kudos
Message 8 of 8
(3,792 Views)