LPC11C14 Can problemi.

Başlatan Logan, 25 Temmuz 2017, 17:29:43

Logan

Merhaba arkadaşlar.

LPC11C14 için örnek canbus programı olan var mı acaba?

Bufferlar ve çalışma mantığı ile alakalı aklıma takılan birkaç nokta var içinden çıkamadığım.
İmza.

erkinkent

Barış samancının kitabına bak. Canbus örneği var

Fethi Akel

Arkadaşlar Barış Samancı nın kitabını okudum ama can bus ile ilgili anlamadığım bir şey var biraz acil. Elimde bir sensör var bu sensördeki veriyi canbus ile bilgisayarda görmeye çalışıyorum.Donanım olarak kvaser can to usb kullanıyorum. Canking uygulaması ile gelen veriyi görüntülediğime pre-operational modda olduğu konusunda mesaj geliyor. Sensörün ıd sini bilmiyorum ama canking te başka bir mesaj da görünmüyor. kullandığım sensör bir eğim sensörü bu arada.Acaba sensöre bir mesaj mı göndermeliyim. Yardımlarınızı bekliyorum...

tmcone

Alıntı yapılan: Fethi Akel - 20 Eylül 2017, 10:05:56
Arkadaşlar Barış Samancı nın kitabını okudum ama can bus ile ilgili anlamadığım bir şey var biraz acil. Elimde bir sensör var bu sensördeki veriyi canbus ile bilgisayarda görmeye çalışıyorum.Donanım olarak kvaser can to usb kullanıyorum. Canking uygulaması ile gelen veriyi görüntülediğime pre-operational modda olduğu konusunda mesaj geliyor. Sensörün ıd sini bilmiyorum ama canking te başka bir mesaj da görünmüyor. kullandığım sensör bir eğim sensörü bu arada.Acaba sensöre bir mesaj mı göndermeliyim. Yardımlarınızı bekliyorum...


Sensör CANopen protokollü ise besleme verdikten sonra ya da reset komutu gönderdikten sonra boot up mesajı gönderecektir. Bu mesajın IDsi 700h + node ID şeklindedir. Operational mod için NMT start komutu (ID:00h, D0:01h, D1:00h) göndermelisin. Eğim sensörü için DS410 profiline bakabilirsin.

Fethi Akel

Alıntı yapılan: tmcone - 20 Eylül 2017, 20:20:27

Sensör CANopen protokollü ise besleme verdikten sonra ya da reset komutu gönderdikten sonra boot up mesajı gönderecektir. Bu mesajın IDsi 700h + node ID şeklindedir. Operational mod için NMT start komutu (ID:00h, D0:01h, D1:00h) göndermelisin. Eğim sensörü için DS410 profiline bakabilirsin.

Söylediklerinizi deneyecektim ama kendiliğinden operational moda geçti ve aşağıdaki mesajları yollamaya başladı. Sizce ne yapmalıyım...129 numaralı mesajdaki 0001 function kodu 'emergency' anlamına geliyor. Yardımcı olabilirmisiniz.


Fethi Akel

Şimdi deneme yaptım ve modlar arasında geçiş yapabiliyorum ama sensör bilgisini nasıl okuyacağımı bilmiyorum. Sensör sürekli boot up mesajı yolluyor.

Fethi Akel

Yardımcı olabilecek kimse yok mu çok acil benim için???

tmcone

Sensörün node ID si  01h.

701h (1793) mesaj ID si hearbeat servisi. 05h sensörün operational modda olduğunu ifade ediyor.

81h mesaj ID si ise emergency servisi. Buradaki hata kodunun tanımı için cihazın manual ine bakabilirsin. Cihaz datasını PDO üzerinden okuyabilirsin ama logda bu mesaj türü yok.

Fethi Akel

Verdiğin bilgiler için çok sağol çok işime yaradı. SDO üzerinden okumaya çalışıyorum. bunun için Slave olan sensöre read komutu yollamam lazım. Ama read komutunun yanında index ve subindex olarak toplam 3 bytelık bir veri istiyor. Bunların ne oldukları konusunda fikrin var mı? Manuele baktım ama sadece index ve subindex yazmam gerektiğini söylüyor.Bunları nasıl bulabileceğim konusunda bir bilgiye rastlamadım.

tmcone

SDO gerçek zamanlı veri okumak için uygun bir yol değil. Cihaz PDO ile sadece ilgili veriyi gönderirken SDO da servis yapısı nedeniyle CMD, index, subindex gibi ilave bilgiler transfer edilmesi gerektiğinden verimli değil. Amacın Modbus a benzer Master - Slave haberleşmesi ise bunun yerine PDO gönderimini n. SYNC mesaji alındığında aktive edecek şekilde ayarlabilirsin. Ya da daha basit bir şekilde PDO ları periyodik gönderim için düzenleyebilirsin.

Cihazın manualini paylaşırsan yardımcı olurum.

Fethi Akel

Elimdeki cihazlar sst300 eğim sensörü ve kvaser can-usb dönüştürücü manuellerinde konu ile alakalı hiçbir şey yok hatta sensörün manueli bile yok. Ben can bus communication manuellerinden bilgi edinmeye çalışıyorum. Ama hala id numarası ve sub id numarasını nereden bulabileceğim konusunda bilgi bulamadım. PDO ile haberleşirken bunlar kullanılmıyormuş ama PDO nun SDO dan tek farkı id ve sub id numarasının olmamasımı bilmiyorum. Eğer şu id ve sub id numaralarının nasıl elde edildiğini anlayabilirsem olayı anlayacağım.

tmcone

SDO için index ve subindex, Object Dictionary daki erişmek istediğin nesnenin adresini ifade eder. Elindeki sensör DS410 uyumlu olmalı. Aşağıdaki adresleri kullanabilirsin:
                    Index     Subindex
Resolution:    6000h    0h              (x .001°)
X axis angle: 6010h    0h              (16 bit signed)
Y axis angle: 6020h    0h              (16 bit signed)

Örneğin X ekseni açısını okumak için:
ID:601h D0:40h D1:10h D2:60h D3:00h D4-D7:xx

Sensörden cevap olarak ID si 581h bir mesaj gelmeli. Eğer problem yoksa ölçüm değerini; varsa hata kodunu dönecek...

Fethi Akel

Söylediklerin işime yaradı çok teşekkür ederim. Artık sensörden cevap alabiliyorum. Ama sormak istediğim bir şey daha var. Ds410 nedir acaba internette birşey bulamadım ?

Fethi Akel

Canopen ile ilgili sormak istediğim birşey daha var ve çok önemli yardımcı olur musunuz ? Bir bilgisayar bir plc ve bir sensörü can bus ile birbirlerine bağlamak istiyorum. Arada AMIS 42700 gibi bir hat çoğaltıcıya gerek varmı yoksa kendim iki ucu 120 ohm dirençle sonlanan bir hat yapsam iletişim gerçekleşir mi ?Yani sadece kablo ve dirençle 3 nodu olan bir hat oluşturabilirmiyim. ? Çok acill yardım edebilirseniz çok memnun olurum...