Çok sayıda encoderi aynı anda okumak

Başlatan gokhangokcen, 05 Mayıs 2022, 17:44:31

gokhangokcen

Merhabalar,
Şu aralar encoder okumayla ilgili ilgileniyorum. Şu ana dek en fazla 3 adet encoderi aynı anda okumuşluğum var. Fakat şu an 20 adet A-B pulse üreten (incremental) encoderi aynı anda okuyup belli bir işlemlerden geçireceğim. Her bir encoderin pulse'i maksimum olarak 100hz mertebesinde. Aynı zamanda ethernet ve ekran olacak kart üzerinde.
Şimdi ekran ve ethernet kısımlarında bir sorun yaşayacağımı sanmıyorum. Ama encoder kısmı beni biraz düşündürüyor. Donanımsal olarak bu kadar fazla encoder girişi olan bir işlemci yok. Harici kesme ile okuyayım diyeceğim ama aynı anda oluşan kesmelerden dolayı bir sıkıntı yaşama ihtimalim var mıdır?

Aklıma gelen bir kaç seçenek;
-Farklı slave kartlar ile 2-3 civarı encoder oku, master kart üzerinden slavelerden bu bilgileri oku ve aynı zamanda ethernet ile ekran işlerini yürüt.
-Her şeyi tek kart ile hallet (RTOS bu işlerin hakkından gelebilir diye düşünüyorum frekans çok yüksek değil)
...

Siz olsanız bu durumda nasıl bir yol çizerdiniz?
Farklı bakış açılarınız olabilir, fikirlerinizi bildirirseniz memnun olurum.
Bildiğini paylaşmak, Allah'ın verdiği öğrenme yeteneğinin zekatıdır.

z

Encoder frekansin dusuk olduuna gore 10Khz de timer int ile int rutininde portlari tarayip soft olarak halledebilirsin.

Yada HP nin hazir cipleri var.

Yada CPLD ile cozersin.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

ziyaretci

  • Her bir encoder çıkışını PWM ile modüle ederim,
  • Modüle ettiğim her bir çıkışın integral'ini alırım,
  • Integral'ini aldığım çıkışların her birine uygun bandlı, birim genlikli  frekans atar(port amaçlı) ve çarparım,
  • Uygun bir op-amp ile bütün AC'leri toplarım,
  • Topladığım sinyali tek bir ADC girişine veririm,
  • FFT alırım,
  • Herhangi bir bandın FFT genliği ile uygun bir referans frekansın oranından herhangi bir encoderin frekansını bulurum.

Tek kanal ADC ile iş çözülür.  8-)

Not: Evde denemeyiniz.   :D


Tagli

#3
Ben olsam maliyeti biraz arttırmayı göz önüne alarak her encoder için ayrı bir işlemci kullanırdım. Bulabileceğin en ucuz STM32 yeterli olacaktır. Sonra da bunları Modbus veya CAN Bus ile ana karta bağlarsın. Hem modüler olur, hem ana işlemciyi yormaz, hem de encoder'ları uzak mesafelere daha kolay konumlandırabilirsin. Üstelik gelecekte daha yüksek frekansta dönmeleri de tespit edebilirsin.

Fantezi yapmak istiyorsan CANopen CiA 406 destekli bir ürün tasarlama işine de girebilirsin tabi :)
Gökçe Tağlıoğlu

gokhangokcen

Alıntı yapılan: Tagli - 05 Mayıs 2022, 20:03:46Ben olsam maliyeti biraz arttırmayı göz önüne alarak her encoder için ayrı bir işlemci kullanırdım. Bulabileceğin en ucuz STM32 yeterli olacaktır. Sonra da bunları Modbus veya CAN Bus ile ana karta bağlarsın. Hem modüler olur, hem ana işlemciyi yormaz, hem de encoder'ları uzak mesafelere daha kolay konumlandırabilirsin. Üstelik gelecekte daha yüksek frekansta dönmeleri de tespit edebilirsin.

Fantezi yapmak istiyorsan CANopen CiA 406 destekli bir ürün tasarlama işine de girebilirsin tabi :)

İlerleyen süreçte amacım böyle bir şey yapmak @Tagli hocam. Ama şu an için bunu yapabilecek CanOpen bilgim yeterli değil diye düşünüyorum. Her encoder için ayrı modül çözümüde mantıklı ama 20 adet ayrı kart ve bir master biraz maliyetli olacak gibi bunuda değerlendireyim

@z hocamın dediği çözüm biraz daha basit çözüm olacak gibi.

Yanıtlarınız için teşekkür ediyorum.
Bildiğini paylaşmak, Allah'ın verdiği öğrenme yeteneğinin zekatıdır.

Emre_Tuncay_

@erkantr67 çözümünüz hakkında bir sorum olacak. Yönteminizin ilk girişinde yani pwm modülatörünün girişine verdiğimiz enkoder bilgisini ne ile okuyup vereceğiz. Yönteminiz için tekrardan 20 adet enkoder okuyucusuna ihtiyaç var.  :)

Ben olsam @Tagli 'nin dediği gibi her enkoder için veya birden fazla enoder için okuyucu cihazlar geliştirir bunları ana bir cihaz ile haberleştirirdim.

Belkide fpga kullanılabilir. Maliyet veya mühendislik süreçleri tabi tartışmalı olacaktır.

ziyaretci

#6
Alıntı yapılan: Emre_Tuncay_ - 05 Mayıs 2022, 20:25:38@erkantr67 çözümünüz hakkında bir sorum olacak. Yönteminizin ilk girişinde yani pwm modülatörünün girişine verdiğimiz enkoder bilgisini ne ile okuyup vereceğiz. Yönteminiz için tekrardan 20 adet enkoder okuyucusuna ihtiyaç var.  :)

Ben olsam @Tagli 'nin dediği gibi her enkoder için veya birden fazla enoder için okuyucu cihazlar geliştirir bunları ana bir cihaz ile haberleştirirdim.

Belkide fpga kullanılabilir. Maliyet veya mühendislik süreçleri tabi tartışmalı olacaktır.

Tamam, aklınızdaki dönüşümün maliyetini  düşüreyim biraz; bir diyot, bir R(C//R).

İlk iki maddeden kurtardım sizi, hadi yine iyisiniz.  :P

Not: Ters orantı almayı unutmayın!

Dipnot: Ta**akta geçilmiyor bunlarla. Nasıl yaşıyorsunuz bu dünyada? Hea!?

Sizin yüzünüzden sanat gelişmiyor bu ülkede.  >:(

Robotlar sizin gibileri ele geçirecek, aklınız fikriniz var-yok sistemlerde. 

Hııh!  ;D

 Düzeltme 3: Orantı diyotun yönüne göre değişir.


Emre_Tuncay_

@erkantr67 taştaş'ta geçilmiyor demişsiniz ama benim taştaş geçtiğimi anlamamışsınız. Tamam sizsiniz. ;D

ziyaretci

Alıntı yapılan: Emre_Tuncay_ - 05 Mayıs 2022, 22:12:01@erkantr67 taştaş'ta geçilmiyor demişsiniz ama benim taştaş geçtiğimi anlamamışsınız. Tamam sizsiniz. ;D
Dıdısının dıdısı... :P