05-11-2010 03:35 AM
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...
05-25-2010 02:40 PM
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
06-16-2010 08:15 AM
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...