Jump to content

All Activity

This stream auto-updates     

  1. Last week
  2. İyi düşünmüş ve güzel bir çözüm bulmuşsun. Tebrikler.
  3. Hanifi

    PID

    GMTSuite ile yapmanız mümkündür.
  4. yusuf

    PID

    MERHABALAR GMT SOFT YA DA GMT SUİTE ÜZERİNDEN PID KOMUTLARINI KULLANARAK SICAKLIK HARİCİNDE BİR PİD DÖNGÜSÜ YAPMAK MÜMKÜN MÜDÜR?ÖRNEĞİN POMPA UYGULAMALARI İÇİN OKUNAN BASINÇ DEĞERİNE GÖRE OLUŞTURULABİLECEK BİR ANALOG ÇIKIŞ İLE MOTOR SÜRÜCÜSÜ SÜRMEK GİBİ.
  5. Aynı hatta sadece bir adet master bağlantısını yapmak için Pakosan PN901/10 enversör şalter aldım. Şemadaki gibi bağladım. Şalter 1 durumunda iken PLC ve HMI hattında, 2 durumunda iken ise RS485 ve PC hattında modbus aktif oluyor. Bu şekilde sorunu çözdüm. Teşekkürlerimle.
  6. Aynı hatta sadece 1 tane master cihaz bağlanır. Fiziksel olarak bağlayıp farklı zamanlarda sorgu yaparsanız da olur. Bu durumda birisinin manuel olarak sorguyu durdurması gerekir. HMI da timer ın sorgu yapmasını şarta bağlarsan şartın sağlanmadığı durumlarda sorgu yapmaz, siz de kalibrasyon işlemini yaparsınız. Sorguyu durdurmak için Tetikleyiciyi Register adres ile seçip, Ardından bir tetkleyici adresi de manuel olarak 1-0 yaptığınızda sorguyu çalıştırıp durdurabilirsiniz. Umarım faydalı olur.
  7. Merhabalar, GMTCNT HMI'de (Master) modbus üzerinden irtibatlı iki adet sensörüm (Slave) var. Bunlar Proses başlamadan PC üzerinden özel bir yazılım ile kalibre edilmeleri gerekiyor. Sensörleri çıkartıp kurduğum modbuslı bir sistem ile kalbre ediyordum. Ancak, bu yeniden bağlantılarda sıkıntılar yaratabiliyor. Bu nedenle HMI, PLC modbus hattına PC ye bağladığım RS485 USB dönüştürücüyü de bağladım. * HMI çalışınca yaklaşık 10 kadar timer devreye girip iki sensörden gelen bazı değerleri 5-10 sn. aralıklarda alıyorlar. Kalibrasyon yapmak istediğimde timerlar da devrede olduğu için PC deki yazılım sorun çıkartıyor. Özet olarak; * Kalibrasyon anında, HMI, PLC ve PC (rs485 dönüştürücü) modbus hattı devrede olacak ancak timerları durdurmak istiyorum. Böylece timerlar ile sensörlerden veri okunmayacak. Sadece PC deki özel yazılım devrede olacak. Sonra timerlar yeniden çalışacaklar. Timer durdurup yeniden çalıştırmak için bir örnek verebilir misiniz. Teşekkürlerimle.
  8. Geçtim. Fakat sonuç alamadık henüz.
  9. Firma ile irtibata geçebilirsiniz.
  10. Earlier
  11. Teşekkür ederim. Komik olan aslında tab karakterinin bu hataya yol açması.Yüksek ihtimalle kodların tokenization sürecinde bug var. Mesela lojik değil (!) de derleme hatasına yol açıyor. Fakat değişkenleri parantez içine alınca sorun halloldu gibi duruyor ama umarım kararsız davranış göstermez. Şurada belirttiğim ve cevap alamadığım sorunda da (ladder ile ilgili) böyle tuhaf bir problem olduğunu düşünüyorum. /* Sorunsuz Çalışan */ if(bit_var_1 == 1) { bit_var_2 = 1; int_var = 123; } /* Yada */ if(bit_var_1 == 1) { (bit_var_2) = 1; (int_var) = 123; } /* Derleme Hatası veren */ if(bit_var_1 == 1) { bit_var_2 = 1; int_var = 123; }
  12. Algoritmayı defalarca yeniledik. Son olarak geldiğimiz ve gözlemlediğimiz nokta şu: PLC enerjili durumdayken program yüklediğimizde günlerce durmadan sorunsuz çalışıyor. Ancak makinanın enerjisi kesildiğinde (makinanın tamamen kapatılması ya da elektrik kesintisi) ve tekrar enerjilendiğinde Px sinyallerinin işlenmesinde problemler oluşuyor. Motor devri en fazla 2000rpm. Turda 1 pulse yaklaşık 33Hz yapıyor. Bu girişlerin 1kHz okuyabildiği göz önüne alındığında oldukça uygun bir frekans. Diğer taraftan PLC çalışır durumdayken bilgisayar bağlantısı kurduğumuzda tarama frekansı yaklaşık 0.1ms olarak görünüyor. Bir pulse ise en kısa 30ms sürüyor. bu da oldukça uygun görünüyor. Yani bir yükselen kenar gelene kadar 300 defa tarama yapmış olması gerekiyor. Zaten PLC enerjiliyken program yüklendiğinde elektrik kesilene kadar sorunsuz çalışması ama elektrik kesintisinden sonra çalışmaya başladığında sorun çıkması işin açıkçası bana giriş filtre değerlerinin enerjilenme sırasında konfigürasyonda belirttiğimiz değerde (sıfır) initialize edilmediği, default değerde ayarlandığı izlenimi veriyor. Tabi bu söylediklerim genişleme modülleri için olduğunu özellikle belirtmek istiyorum.
  13. if (bit_var_1 == 1){bit_var_2=0;int_var=123;} Kodunuzu bu şekilde yazdığınızda çalışıyor. Kolay gelsin...
  14. Hem eski projede hem de yeni tamamen test amaçlı sıfırdan oluşturduğum projede aynı hatayı alıyorum. Hem offline hem de PLC'ye yüklemeye çalışırken hata veriyor. Zaten sorun compile time hatası. Derleme yapılmadığı için PLC'ye yüklenmiyor. Hata aldığım program ektedir. GMTSuite versiyonu 0.9.8.6 Çalıştırdığınız kodu ekler misiniz. undeclared_hatasi.rar
  15. Yeni proje açtığınızda benzer hata oluyor mu? Denemelerinizi offline mı deniyorsunuz? Lütfen hata aldığınız programı ekleyin GMTSuite versiyonunuz kaç gözüküyor? Belirttiğiniz kod çalışıyor
  16. Amacım olan kod bu değil. bu sadece bir test. siz isterseniz şunu da kullanabilirsiniz: if(bit_var_1 == 1) { bit_var_2 = 1; int_var = 123; } /* ladder.c:1525: error: `bit_var_2' undeclared (first use in this function) */ /* ladder.c:1525: error: (Each undeclared identifier is reported only once */ /* ladder.c:1525: error: for each function it appears in.) */ /* ladder.c:1526: error: `int_var' undeclared (first use in this function) */ mesele blok içindeki değişkenlerin undeclared hatası vermesi. sanki bir scope problemi var.
  17. Operantlar da tanımladığınız değişkenleri C alt programında istediğiniz yerlerde kullanabilirsiniz. Paylaştığınız kodun amacı nedir? "if_param" true olunca değişkenler ne olacak?
  18. Operandlar bölümünde bir değişken tanımladığımızda bunu c alt programında bir if bloğu içinde kullanamamamız bir bug mı? şu konudaki mesele olabilir diye yeni bir proje oluşturdum. Operandlar bölümünde sadece bit türünde if_param ve if_ici ve int türünde ornek_int değişkenleri oluşturdum. if_ici ve ornek_int değişkenlerini blok dışında kullandığımda sorun yok. ancak if(if_param) { ornek_int; if_ici; } gibi bir kullanımda hatası alıyorum. extern tanımı da işe yaramıyor. burada başka bir ayar, bildirim vs. mi yapılması gerekiyor?
  19. 5000 sağa dön demek ise - 5000 sola dön demektir.
  20. Şayet gelen bilgi ve analog giriş seçimleri doğru ve 0...10V ise bağlantı da doğrudur.
  21. Çözümü: Pulse değerini negatif girmek . Örneğin 5000 pulse ters yönde gidilmek isteniyorsa "5.000" olarak girilmeli.
  22. Merhaba ; Dahili pozsiyon kontrolünde örneğin 0. pozisyonda motorun ters yöne dönmesini istediğim için c - 1.8 parametresini "0.150" olarak ayarlıyorum fakat aynı parametreyi "150" olarak ayarlı durumuyla aynı yönde dönüyor, yani yönü değişmedi. 2. olarak sürücünün DIN2 inputunu c-0.2 'yi yön seçimi için "8" olarak ayarladım , DIN2 ye 24 volt verip, 0. pozisyonu çağırdım fakat gene aynı yönde döndü. Sürücüye enerjisini kesip verdim, parametreleri kayıt ettim (c-0.0 - "1") ama durum aynı. Jog mod'una alıp yönünü değiştirmek istemiyorum. Dökümanları da okudum ama çözemedim. Dahili mod da yön değişikliği nasıl yapılır? Kolay gelsin, Not: 4F bağıl pozisyon seçili
  23. 40A' nın ön resmini daha ayrıntılı gönderir misin? Yazılar okunmuyor.
  24. Merhaba. En başından beri bağlantıyı V ye yapmıştım. Foruma resimi eklerken yanlış ekledim. Sistem en başından beri, V ye göre dizayn edildi. Sorun devam ediyor. sensör -60,+125 derece olduğundan konfigürasyonda dikkat etmemiz gereken bir nokta var mı? Analog modüldeki gxm 40A bağlantı klemensi doğru mu? ilginizden dolayı tekrar teşekkür ederim.
  25. Bağlantını mA e göre konfigürasyonu ise V a göre yapmışsın.
  26. Bu arada gmt suite program konfigrasyon ayarları.
  1. Load more activity
×
×
  • Create New...