07-24-2012 02:42 AM - edited 07-24-2012 02:43 AM
RT.vi ile bilgisayarda çalışan VI arasında nasıl bir ilişki var? Bilgisayar tarafındaki sadece "shared var" okuyorsa hiç bir sorun çıkmaması gerekir. Bir de şunu deneyin; RT.vi çalıştırın ama PC tarafındaki VI'ı çalıştırmayın. NI "Distributed System Manager'ı" açın ve cRIO IP'si üzerinden paylaşılan değişkenleri görüp göremediğinizi kontrol edin. Orada görebiliyor ve içeriğin değişimini de gözlemleyebiliyor olmanız gerekir.
07-24-2012 03:00 PM
Merhabalar;
Proje içersinde cRIO'ya sağ tıklayarak "Disable Autodeploy Variables" yapmayı denediniz mi acaba ?
Kolaylıklar dilerim.
07-25-2012 01:49 AM
RT.vi da fpga den TC leri ve dijital IO ları okuyup genel kontrol işlemleri yapılıyor. Bilgisayarda çalışan VI ise "shared variable" lar ile teste başla,testi durdur gibi komutlar ile TC lardan okunan sıcaklık değerlerini okuyup dosyaya kaydediyor.Compact RIO nun altına library ekleyip içerisine network-published türünden değişkenler atadım. RT.vi da bu değişkenlere ilgili local değişkenlerden değerleri yazıyorum. Bilgisayarda çalışan vi dan ise shared variables ları okuyorum. RT.vi startup vi olarak ayarlı. Bilgisayarda çalışan vi run olduğunda deploy etmeye başlıyor ve sonra rt.vi şu an çalıştığı için kapatılmalıdır gibi bi uyarı veriyor. Devam ettiğimde rt.vi ı stop konumuna alıyor.
"Disable Autodeploy Variables" seçeneğini denemedim. Zaten değişkenkeri deploy etmeye çalıştığı için RT.vi i stop konumuna alıyor.İlk fırsatta deniyeceğim.
teşekkürler.
07-25-2012 02:11 PM
Shared Variable'ları proje içersinde nerede bulundurduğunuza bağlı olarak hem cRIO hem de PC için bu seçeneği seçmeyi deneyebilirsiniz. Shared Variable deployment işlemini, uygulama geliştirdiğiniz bilgisayarda LabVIEW projesi içersinde en az 1 defa manuel olarak yaptığınızdan ötürü, derlenmiş olan RT ve/veya PC Uygulamasında bu işlemin her seferinde tekrar edilmesine gerek kalmamaktadır (dolayısıyla autodeploy'a ihtiyaç duyulmayacaktır).
Sonucu bildirmenizi bekliyoruz.
Kolaylıklar dilerim.
07-25-2012 05:47 PM - edited 07-25-2012 05:48 PM
ne yazık ki olmadı. disable shared variable seçeneğini aktif hale getirdim. Crio yu reboot (enerjisini kapatıp açtığımda) user1 ledi vasıtası ile RT.vi ın run olduğunu gözlemliyorum. fakat PC tarafında shared değişkenin içeriğini okuyamıyorum.RT.vi da "sayı"isimli bir shared değişkenim var ve buna sayaç vasıtasıyla sürekli artan nümerik değerler yüklüyorum. Eğer manuel olarak rt.vi ı run edersem pc tarafındaki "sayı" değişkenimin içeriğinin sayaç dolayısıyla arttığını görüyorum. eğer reboot edip RT.vi startup olarak run olursa sayı değişkenimin içeriği 0 oluyor. Distributed system manager dan sayı değişkenine bakıyorum içeriği 0,değer yazmaya çalışıyorum,yeni değişkeni anlık olarak yazıyor ve hemen sonra tekrar içeriğini sıfıra çekiyor. Sanki shared değişkene sürekli sıfır atanıyormuş gibi oluyor.Shared variable lar CRIo içerisindedir
sitede buna benzer bi uygulamayada rastlamadım.
07-27-2012 09:00 AM
Merhabalar;
Aslında sorununuzun ilk kısmının çözülmüş olduğunu görüyorum. Artık PC'de çalışan VI (ya da EXE) devreye girdiğinde, cRIO'da çalışan uygulamanın duruşa geçmediğini düşünüyorum. Teyit edebilir misiniz ?
Acaba Distributed System Manager'da, adı geçen Shared Variable'a en son yazıldığı zaman bilgisinde (timestamp) sürekli bir değişiklik gözlemleyebiliyor musunuz ? Refresh'e bastığınızda da bu sürenin değiştiğini görebilmelisiniz. Eğer zaman bilgisi sürekli değişiyorsa, bu durumda cRIO'daki Shared Variable'a sürekli yazılıyor demektir ve kodda bir sıkıntı olabilir (belki Race Condition ?). Eğer yazma süresi değişmiyorsa bu durum Shared Varible Deployment'ta bir sorun olabileceğini göstermektedir.
Kolaylıklar dilerim.
07-29-2012 04:13 PM
evet PC de çalışan program RT.vi ı stop a geçirmiyor. ama rt.vi çalştığı halde Disributed system manager da ilgili değişkenlerin içeriği okunmuyor.hata veriyor. Ama RT.vi ı manuel çalıştırdığımda haberleşme sıkıntısız çalışıyor. Normalde örnekleri inceliyorum benim yaptığımdan farkli birşey yok. nasıl bişey bu anlamadım