TIA Portal HMI ekran dakika girişi timerda kullanma

hsyn54

Üye
Katılım
28 Mar 2021
Mesajlar
17
Puanları
1
Yaş
36
Arkadaşlar merhaba;

Ben bir sürücü kontrol etmek istiyorum 0-50 hz arası normx ve scale ettim çalışıyor sorun yok. Fakat ben hmi ekrandan dakika bilgisi ile sürücüyü çalıştırmak istiyorum. 30 dakika yazınca 27648 150 dakikada minimum devirde olmasını istiyorum. 30 dakika yazınca tam kapasite çalışacak. Ne kadar araştırsamda net birşey bulamadım. Desteğinizi bekliyorum.
 
Arkadaşlar merhaba;

Ben bir sürücü kontrol etmek istiyorum 0-50 hz arası normx ve scale ettim çalışıyor sorun yok. Fakat ben hmi ekrandan dakika bilgisi ile sürücüyü çalıştırmak istiyorum. 30 dakika yazınca 27648 150 dakikada minimum devirde olmasını istiyorum. 30 dakika yazınca tam kapasite çalışacak. Ne kadar araştırsamda net birşey bulamadım. Desteğinizi bekliyorum.
hsyn54 Merhabalar
Hmı integer 30 ve 150 sayıları sizin max ve minumum değerlerininiz ise normx ve scale komutları ile max ve min için yeniden scale edip kullanabilirsiniz.

Kolay Gelsin
 
hsyn54 Merhabalar
Hmı integer 30 ve 150 sayıları sizin max ve minumum değerlerininiz ise normx ve scale komutları ile max ve min için yeniden scale edip kullanabilirsiniz.

Kolay Gelsin
Max değerim 30 min değerim 150 olacak. Yani ben ekrandan zaman gireceğim.
 
Arkadaşlar merhaba;

Ben bir sürücü kontrol etmek istiyorum 0-50 hz arası normx ve scale ettim çalışıyor sorun yok. Fakat ben hmi ekrandan dakika bilgisi ile sürücüyü çalıştırmak istiyorum. 30 dakika yazınca 27648 150 dakikada minimum devirde olmasını istiyorum. 30 dakika yazınca tam kapasite çalışacak. Ne kadar araştırsamda net birşey bulamadım. Desteğinizi bekliyorum.
Merhaba, Sırasıyla Norm_X ve Scale_X komutlarını koyun.
Norm_X'in Min = 0 Max 150 olacak .
Scale_X'in Min= 0 Max 27648 olacak.

Norm_x'in Valuesine bir değişken ata ve bu değişkene 30 girdiğinde motor Düşük devirde çalışacak . 150 girdiğinde Tam devrinde çalışacak. Eğer bu dakikalar sonunda durmasıı istiyorsan. Girdiğin değer Real ise DINT yapıp 1000 ile çarpıp sonucuna bir değişkeni atayıp bu değişkeni Ton zamanlıyıcının PT girişine yazmalısın. Bu zaman sonunda sürücüye de 0 göndermelisin.

İyi günler..
 
Merhaba, Sırasıyla Norm_X ve Scale_X komutlarını koyun.
Norm_X'in Min = 0 Max 150 olacak .
Scale_X'in Min= 0 Max 27648 olacak.

Norm_x'in Valuesine bir değişken ata ve bu değişkene 30 girdiğinde motor Düşük devirde çalışacak . 150 girdiğinde Tam devrinde çalışacak. Eğer bu dakikalar sonunda durmasıı istiyorsan. Girdiğin değer Real ise DINT yapıp 1000 ile çarpıp sonucuna bir değişkeni atayıp bu değişkeni Ton zamanlıyıcının PT girişine yazmalısın. Bu zaman sonunda sürücüye de 0 göndermelisin.

İyi günler..
Cevap için teşekkürler fakat istediğim bu değil. Tam devirde 30 dk girdiğimde calışacak. 150 dk girdiğimde en düşük devirde. Ve tabi ara dakika değerleride girmem gerek. 35 dk 50 dk 80 dk gibi. Motorun durup durmaması önemli değil. İstediğim dakika girişi ile motor sürücüsü ve devrini ayarlamak.
 
Buradaki önemli nokta(zor kısım) ekrandaki dk. bilgisini timera anlatmak olduğundan timera ekrandaki datayı nasıl gönderebileceğimiz kısmını açıkladım geri kalan kısım kumanda bilgisi.
Ekrandan gelen Dk bilgisini 60.0 ile çarp sn boyutuna geç, sn değerini TIME tipindeki SetTimer değişkenine atamak için önce 1000.0 ile çarpıp Real dan DINT tipine, sonrada DINT ten TIME tipine convert et hepsi bu kadar. Örnekte ekrana girilen 3.51 REAL sn değeri
SCL dilinde convert işlemleri kolay olduğundan Network 4 ü SCL dilinde yazdım.
Kod:
#SetTimer := DINT_TO_TIME( REAL_TO_DINT("EkranData".SnDegeri * 1000.0) );

1640954214123.png
 
Son düzenleme:
Buradaki önemli nokta ekrandaki dk. bilgisini timerda işlemek olduğundan timera ekrandaki datayı nasıl gönderebileceğimiz kısmını açıkladım geri kalan kısım kumanda bilgisi.
Ekrandan gelen Dk bilgisini 60.0 ile çarp sn boyutuna geç, sn değerini TIME tipindeki SetTimer değişkenine atamak için önce 1000.0 ile çarpıp Real dan DINT tipine, sonrada DINT ten TIME tipine convert et hepsi bu kadar. Örnekte ekrana girilen 3.51 REAL sn değeri
SCL dilinde convert işlemleri kolay olduğundan Network 4 ü SCL dilinde yazdım.
#SetTimer := DINT_TO_TIME( REAL_TO_DINT("EkranData".SnDegeri * 1000.0) );

Ekli dosyayı görüntüle 83681
Hocam cevap için teşekkürler. Çok yeniyim bu konuda kusura bakmayın. Bu işlemler ladder diyagramları ile çözülür mü.
 
Ladderda DINT tipinden TIME tipine dönüşümü v15.1 de bulamadım ama bir yolu olmalı
 
Son düzenleme:
Buradaki önemli nokta(zor kısım) ekrandaki dk. bilgisini timera anlatmak olduğundan timera ekrandaki datayı nasıl gönderebileceğimiz kısmını açıkladım geri kalan kısım kumanda bilgisi.
Ekrandan gelen Dk bilgisini 60.0 ile çarp sn boyutuna geç, sn değerini TIME tipindeki SetTimer değişkenine atamak için önce 1000.0 ile çarpıp Real dan DINT tipine, sonrada DINT ten TIME tipine convert et hepsi bu kadar. Örnekte ekrana girilen 3.51 REAL sn değeri
SCL dilinde convert işlemleri kolay olduğundan Network 4 ü SCL dilinde yazdım.
Kod:
#SetTimer := DINT_TO_TIME( REAL_TO_DINT("EkranData".SnDegeri * 1000.0) );

Ekli dosyayı görüntüle 83681


üstadım, 3 ile 15 dakika ölçekli şöyle bi şey yaptım ama...

prj 1.png
 

Forum istatistikleri

Konular
129,864
Mesajlar
930,851
Kullanıcılar
452,726
Son üye
ugur Göktürk

Yeni konular

Çevrimiçi üyeler

Geri
Üst