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

cancel
Showing results for 
Search instead for 
Did you mean: 

CAN bus donanımını 2 farklı VI dan kullanmak

Merhabalar. Bende USB-8473s CAN bus donanımı var. Aynı CAN ağına bağlı 2 mikro kontrolöre 2 farklı VI dan bilgi göndermek ve almak istiyorum. Aşağıda resimde de verdiğim gibi Cconfig ve Copen alt VI ları farklı bir programda 2. kez çalıştıgında doğal olarak hata vermekte. Cconfig ve Copen VI larını bir kez çalıştıracak (ve çıkışlarını yani resimde oklar ile gösterdiğim bu farklı 2 VI da kullanabileceğim) ve 2 farklı VI dan CAN ağı ile haberleşecek bir program yapmak istiyorum. Yardımlarınızı bekliyorum...Diğer resimde ise yapmak istedigim sistemin yapısını çizmeye çalıştım...

Untitled-2.jpg

 

CAN.jpg

0 Kudos
Message 1 of 3
(7,181 Views)

Merhaba,

 

 

Tek bir donanım kaynağını aynı anda  (eşzamanlı olarak) iki farklı programda kullanmak maalesef pek mümkün değil.

Ancak CAN Bus üzerinden aynı anda birden fazla CAN iletişimi gerçekleştiren üniteyle (sizin örneğinizde 2 adet mikronkontrolörlerle)  sırayla iletişim kurmak olası.Bu işlem için tek bir VI içersinde Master/Slave tarzı bir iletişim kurmanız yeterli olacak.

 

Aslında aynı VI içersinde 2 farklı noktada  2 adet Cconfig ve Copen alt VI'larını çalıştırmanız da mümkün. Ancak bu kopya alt VI'lar birbirlerini beklemek (kilitlemek) zorundalar. Bu işlem için Mutex, non-reentrant alt VI ya da benzeri bir kilitleme mekanizması kullanarak iki paralel işlemin (alt VI'ın) birbirini beklemesini ayarlamanız gerekmektedir (Bu konular LabVIEW Intermediate eğitiminde üzerinden geçilen konulardır).

 

3'üncü ve de en kolay yöntem ise, ek bir CAN Bus modülü (USB-8473s ya da iki portlu başka bir CAN Bus ürünü) temin ederek donanım darboğazını aşmak olacaktır 🙂

 

 

Kolay gelsin.

 

 

Candan

NI Türkiye

(Bay) Candan CANER
National Instruments Türkiye
0 Kudos
Message 2 of 3
(7,147 Views)

Selamlar,

Candan'a katılıyorum. Bu tür aygıtlara farklı noktalardan erişmek genelde mümkün değil. Eğer gerçek zamanlı bir işlem yapmıyorsanız ve bilgisayar gecikmeleri sorun değilse deneyebileceğiniz bir yöntem var. Can haberleşmeyi yapan ve gelen/giden komutları sıraya koyan bir arabirim (API) yazabilirsiniz. Her uygulamanız TCP/IP, Shared Variable yada benzer bir haberleşme protokolü üzerinden, istemci IDleri ile, bu API ile haberleşecek ve bu API komutları dağıtacak. Karşılığında gelen cevapları da yine aynı haberleşme protokolleri üzerinden istemcilere geri yollayacak. Bir nevi CAN sunucu da diyebiliriz...

 

CAN.png

0 Kudos
Message 3 of 3
(7,084 Views)