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

Showing results for 
Search instead for 
Did you mean: 
Reply

Timed Loop

Solved!
Go to Solution
Highlighted

Timed Loop

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 (466 Views)
Reply
0 Kudos

Re: Timed Loop

Kodu 2015 olarak kaydedip gönderebilir misiniz?

0 Kudos
Message 2 of 8 (419 Views)
Reply
0 Kudos

Re: Timed Loop

0 Kudos
Message 3 of 8 (415 Views)
Reply
0 Kudos

Re: Timed Loop

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 (413 Views)
Reply
0 Kudos

Re: Timed Loop

İ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 (409 Views)
Reply
0 Kudos
Solution
Accepted by topic author BLC
‎02-02-2017 10:40 AM

Re: Timed Loop

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

 

İyi çalışmalar,

Emre

AnsoLab Elektronik

 

0 Kudos
Message 6 of 8 (396 Views)
Reply
0 Kudos
Solution
Accepted by topic author BLC
‎02-02-2017 10:39 AM

Re: Timed Loop

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 (388 Views)
Reply
0 Kudos

Re: Timed Loop

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 (299 Views)
Reply
0 Kudos