From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

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

cancel
Showing results for 
Search instead for 
Did you mean: 

"exe" olusturma problemi

Merhaba,

 

Benim "exe" olustururken karsilastigim bir problem var.

 

Ekte projenin basit bir hali bulunuyor. Projede 2 adet VI'im var. Biri "My Computer" altinda (main.vi) digeri de "cRIO (9073)" altinda (cRIO (FRM).vi). 

 

Yapmak istedigim main VI'dan gelen x-ekseni koordinat bilgisini "Shared Variable" kullanarak (veya baska bir yöntem varsa önerebileceginiz) cRIO altindaki VI'a göndererek bir hareket olusturmak.

 

Bu hareketi nasil olusturdugumu "Block Diagram"larda bulabilirsiniz.

 

Bu noktaya kadar her sey (hareket, haberlesme...) normal calisiyor. Fakat cRIO ve PC altinda "exe" olusturdugum zaman sürücülerle haberlesme saglanmiyor. Block Diagram'da bulunan kirmizi loop'a kontrol icin led ekledigimde sinyal gelip led'i yakiyor (yani loop calisiyor) fakat motorlarda herhangi bir hareket olmuyor.

 

Benim sorum, bunun sebebi ne olabilir?

 

Kullanilan sürücü modeli: SEW EURODRIVE Movidrive B

cRIO: NI 9073

DI: NI 9421

Haberlesme: Modbus TCP/IP

Thanks!
~drycsr~
0 Kudos
Message 1 of 18
(6,728 Views)

LV 2010 ile kaydedebilir misiniz?

 

Koda bakmadan tahminim ise şöyle. Kullandığınız "shared var" erişimi ile ilgili bir sorun olabilir. İki farklı "shared var" "deploy" ediliyor ve birbiri ile ilişkisi olmayan yerlere veriler yazılıyor olabilir. Bunun yerine değişkeni sadece veri yazılan yerde "deploy" ediniz ve burası değişkenin dağıtıcısı olsun. Veriyi okuyacağınız yerde ise adresi ile ağ üzerinden çağırınız.

Bunu yapmak için proje içerisinde oluşturduğunuz değişkeni sadece veri yazılan yerde kullanınız. Okuduğunuz yerde ise "Data Communication/Shared Variable/Open Variable Connection" ile deploy edilen adresi göstererk o değişkene bağlanın. Böylece değişkenin tek noktada tanımlanacak ve diğer noktalardan erişim olacaktır.

 

Diğer olasılık ise güvenlik duvarınız açık olabilir. Bilgisayarda mutlaka kapatınız yada uygulama erişimine izin veriniz.

0 Kudos
Message 2 of 18
(6,721 Views)

CPU yükü %100'e ulaştığı zaman da Shared Variable iletişimi sekteye uğrayabiliyor. Bu durumu, MAX vasıtasıyla ilgili yazılım paketinin cRIO'ya yüklenmesinin ardından, Distributed System Manager vasıtasıyla takip etmekte fayda var. Söz konusu böyle bir durum var ise, döngü hızlarını azaltmak ya da algoritmayı hafifletmek ile CPU yükünü azaltmayı deneyebilirsiniz. Alternatif çözüm ise her zaman daha yüksek kapasiteli bir kontrolcüye geçmek olabilir.

 

Nadir olarak görülmekle birlikte, PC ile cRIO arasında (ya da tam tersi yönde) tanımlanan Shared Variable'lar, yanlış IP adresine bakıyor olabiliyorlar. Bu durumu SV'ların Error çıkışına bağlanabilecek bir indikatörde, çok farklı bir IP adresine yönelik bildirimle karşılaştığınızda fark edebilirsiniz. Böyle bir durum söz konusu olduğunda ise SV'ları kaldırıp projeye yeni bir SV kütüphanesi tanıtılması çözüm olabiliyor. 

 

 

Kolaylıklar dilerim.

 

 

Candan

 

 

Not: Derya Hanım, "Tanıtım" başlıklı mesajlaşma altında kendinizi ve belki de çalışma yapmış olduğunuz projeyi tanıtabilirseniz benim haricimde diğer forum takipçileri de sizi ve firmanızı tanıma şansına sahip olacaklardır 🙂

(Bay) Candan CANER
National Instruments Türkiye
0 Kudos
Message 3 of 18
(6,706 Views)

Merhaba,

 

Zafer Bey, eki LV 2010 ile degistirdim. Güvenlik duvarini da kontrol ettim, kapali. Diger bahsettikleriniz acaba "enable aliasing" secenegiyle mi ilgili?

 

Candan Bey, dediginiz gibi olabilir, CPU yükü 90% civarindaydi en son. Sizin ve Zafer Bey'in dediklerini deneyip tekrar dönüs yapicam.

 

Not: Hatirlattiginiz icin tesekkürler, unutmusum kendimi tanitmayi 😉

 

Tesekkürler, iyi calismalar.

Thanks!
~drycsr~
0 Kudos
Message 4 of 18
(6,698 Views)

Tekrar merhaba,

 

Sormayi unuttugum bir sey daha var. cRIO altindaki VI'a degerler bir "main VI"dan geliyor bir de main VI icindeki "sub VI" dan geliyor (Farkli shared variable'lar kullanilarak). Bir de sürücülerle haberlesme icin "NI Modbus LLB" kullaniyorum. Acaba bunlarin bir etkisi olabilir mi?

 

Tesekkürler, iyi calismalar.

 

 

Thanks!
~drycsr~
0 Kudos
Message 5 of 18
(6,687 Views)

CRIO - FPGA build edilirken adımlar biraz daha farklılaşıyor diye biliyorum. Bununla bir ilgisi olabilir mi?


Yasemin Barutçu
Electrical And Electronics Engineer
0 Kudos
Message 6 of 18
(6,685 Views)

Öncelikle foruma hoş geldiniz.

 

Öncelike değişkenlerin "deploy" edildiğinden emin olun.

 

SV Deploy.png

 

İki ayrı noktada iki ayrı SV oluşup birbiriyle ilişkisi olmaması durumu olabilir. Bunun için tek noktada deploy edilsin diğer noktada ise adresi üzerinden erişip işlem yapın.

 

SV Okuma.png

 

Candan'ın bahsettiği işlemci yükü de oldukça önemli. Ama konunun modbus ile ilgisi olmaması gerekli.

0 Kudos
Message 7 of 18
(6,666 Views)

Zafer Bey merhaba hosbuldum,

 

Projeyi anlattiginiz sekilde degistirdim fakat yine ayni sorun devam ediyor. Yine exe olusturmadan calistirdigimda, main VI'daki "x Rc (slide)" isimli numeric control degeri direk cRIO altindaki VI'a geliyor ve istedigim hareket gerceklesiyor.

 

Fakat exe isleminden sonra hic bir hareket yok. Acaba exe olustururken secilmesi gereken gözümden kacan veya bilmedigim bir yer mi var?

 

Not: Ekteki ilk resimde DO ile kontrol icin ekledigim boolean ve 3 tane while loop var.

2.Loop'da sürücü referanslaniyor, 3.Loop'da da x Rc(slide) ile main VI'dan gelen degere hareket saglaniyor.

 

 

 

 

Thanks!
~drycsr~
Download All
0 Kudos
Message 8 of 18
(6,651 Views)

192.168.10.2 cRIO adresi olduğuna ve "değişken arama penceresinde" içini ve değişkenleri gördüğünüze göre sorun çıkmaması gerekir. Bu haliyle herşey normal görünüyor. Bir de kodunuzu cRIO'ya aktarıp çalıştırdıktan sonra dener misiniz aynı değişkenleri görüp erişebiliyor musunuz? Hatta cRIO üzerinde değişkenler tanımlandıktan sonra sade bir VI yazıp adresleri arayıp değişkenlere erişebiliyormusunuz kontrol edin. Sade bir VI ile erişip yazabilmeniz ve okuyabilmeniz gerekir.

 

Herşey normal görünüyorsa Candan'ın bahsettiği işlemci yükü sorun olabilir ama bu veri kaybına neden olur temelde. Yani hiç erişememek durumunuz olmaması gerekir. Son olarak değişken ayarlarınızda sorun olabilir. Bence cRIO'ya kodu yükleyip çalıştırın ve bir VI ile deneyin. Ona göre bakalım.

0 Kudos
Message 9 of 18
(6,630 Views)

Merhaba tekrar,

 

Öncelikle yardimlariniz icin tesekkür ederim. Dediginiz gibi sade bir VI ile denedim. My computer altindaki VI'lari projeden cikardim ve sadece cRIO altinda (hic bir SV kullanmadan) bir tane VI ile calistim (ekte görebilirsiniz). Yine ayni sonucu aliyorum. VI'i calistirinca motor hareket ediyor, rt App olusturunca digital output modulundeki led'ler yaniyor fakat hareket saglanmiyor.

 

exe olusturma asamasinda "Dependencies" kismindaki Modbus kütüphanesini baska bir klasöre alarak da denedim. (su linkte yazdigi sekilde: http://forums.ni.com/t5/LabVIEW/modbus-ethernet-example/m-p/849140#M385109 ) Yine sonuc ayni. "Component Definition" kismindaki secimlerle de oynadim bir etkisi olur mu bilmiyorum? Veya kullandigim Labview versiyonunu etkisi var midir? (LV 2011 32-bit, PC 64-bit).

 

Tekrar tesekkür ediyorum, iyi calismalar.

 

 

Thanks!
~drycsr~
Download All
0 Kudos
Message 10 of 18
(6,614 Views)