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.
Barış samancının kitabına bak. Canbus örneği var
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...
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.
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.
(https://s26.postimg.cc/pspdusc2d/Ads_z.png) (https://postimg.cc/image/pspdusc2d/)
Ş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.
Yardımcı olabilecek kimse yok mu çok acil benim için???
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.
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.
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.
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.
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...
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 ?
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...