S7300'de value change komutu var midir ?

Katılım
9 Tem 2012
Mesajlar
235
Puanları
1
Yaş
33
Herkese merhaba arkadaslar ,

Ekrandan girilen servo motor icin referans degeri degistiginde ( ornegin 100 pozisyonunu kullanici 200 yapti) servonun o degere gitmesini istiyorum.
Aklima gelen servonun hareket programini 0b35 e yazip giris sartinada "ekrandaki deger degistiyse" yi koyup yazmak ama c# ta oldugu gibi "if x valuechange" gibi bir komut var midir acaba ben bulamadim ? Veya herhangi bir fikri olan ?

KontrolKalemi Mobile ile gönderildi.
 
sanırım plcdeki bir rakam değişikliğini algılamaya çalışıyorsun. bu çok zor değil.

plcdeki değer integer MW30 diyelim.burdaki bilgiyi boş bir alana atarsın.
eğer MW30 MW32ye eşit değilse Move MW30 to MW32 dersin ve rakam değişti M34.0 bool değerini 1 yaptırırsın. her rakam değişikliğinde M34.0 1 olur. bu kadar. rakam değişmezse MW30 MW32ye aktarılmıycağı için M34.0 0 olarak kalır. soruyu doğru anladıysam cevap bu şekilde.MW yerine datablock (DB) kullanırsan plc restartlandıktan sonra ilk seferde M34.0 gereksiz yere 1 olmaz.
 
Cevabiniz icin tesekkur ederim ederim ama soyle bir durum var;
Sizin orneginizden gidersek mw30'u mw32 ye move yaptiginizda iki deger birbirine esit olacak ve daha sonrasindada mw30 degistirdiginizde mw32 yine mw30 icerigiyle ayni olucak. Yani ikideger birbirinden hicbirzaman farkli olmayacak.
Şu da var programin basinda birkere pals yapar move islemi yaparsiniz dediğiniz gibi olur. Ama operator ikinci deger girdiğinde yine sıkıntı çıkıcaktir bence..

KontrolKalemi Mobile ile gönderildi.
 
merhaba.güncel bir örneği paylaşarak anlatayım.yeni yaptığmız bir makinada ekrandan hızı ve pozisyonu girerek işlemi gerçekleştiriyoruz.cpu s71200 1214c Ekran da Siemens.servolarımıza siemens.çalışma şöyle;start verildiğinde birinci eksen start şartları gerçekleşirse ki bunların başında servonun homeda olması daha sonra da güvenlik şartlarımız geliyor.motor ekrandan yazdığımız bir data blok ile belirlediğimiz pozisyona gidiyor.bunu ilgili bloğa yazıyoruz.aynı şekilde hızımızıda data blok üzerinden velocity bölümüne aktarıyoruz.birinci eksenimiz ürünü alıp yerine geldiğinde ikinci eksenimizde ürünü alma poziyonuna geliyor ki bunuda ekrandan belirliyoruz.sizde bu tarz bir şey yaparak sistemi çalıştırabilirsiniz.ekrana bir db koyun.oradan yazın değerlerinizi.tabi gerekli hesaplamaları yaparak iligili bloğa yazın.
 
Cevabiniz icin tesekkur ederim ederim ama soyle bir durum var;
Sizin orneginizden gidersek mw30'u mw32 ye move yaptiginizda iki deger birbirine esit olacak ve daha sonrasindada mw30 degistirdiginizde mw32 yine mw30 icerigiyle ayni olucak. Yani ikideger birbirinden hicbirzaman farkli olmayacak.
Şu da var programin basinda birkere pals yapar move islemi yaparsiniz dediğiniz gibi olur. Ama operator ikinci deger girdiğinde yine sıkıntı çıkıcaktir bence..

KontrolKalemi Mobile ile gönderildi.

Ekteki gibi bir network ihtiyacı görüyor. MW30'un her değişiminde M34.0 1saniyeliğine 1 oluyor. 1 saniyeyi değiştirebilirsin..Her rakam değişiminde M34.0 1 olmaya devam eder sıkıntı yok.
 

Ekli dosyalar

  • Rakamdegisti.jpg
    Rakamdegisti.jpg
    13.8 KB · Görüntüleme: 39

Forum istatistikleri

Konular
129,879
Mesajlar
930,976
Kullanıcılar
452,748
Son üye
Baranturk34.

Yeni konular

Geri
Üst