S7 1200 encoder ile D/Dk hesaplamaları

hsyn54

Üye
Katılım
28 Mar 2021
Mesajlar
17
Puanları
1
Yaş
36
Arkadaşlar merhaba plc konusunda yeniyim. Ekteki projeyi yapmak istiyorum. motor sürücü ile çalışacaktır. 1 ile 50 arası bir skala atayacagım örneğin skala 40 yazdığımda ekranda 120 dakikada ürün çıkar diye otomatik hesaplattıracak.Encoder ile devir sayısını bulabiliriz sanırım. Nasıl bir yol izlemeliyim program tarafında. Desteğiniz için şimdiden teşekkürler.


cb7404e0-72e7-470a-b744-47f2e64abd7f.jpg
 
Merhabalar,iyi forumlar.Çizimde ki gibi bir zaman hesaplaması yapacaksan çok fazla parametre işin içerisine girer ve sapma oranın yüksek olur.Motorun bağlı olduğu dişlinin çevresini, konveyor band ile taşınacaksa konveyorun yarım boy uzunluğu her band geçişinde konveyorun ne kadar önüne düşeceğinin bilgileri gibi bilgileri eğer elde edebilirsen süre hesaplaması daha net ortaya çıkar.zaten bu bilgileri elde ettikten sonra gerisi çarpma bölme ile çözülür
 
Devir hesabı için mantık, enkoder degerini okuduğunu varsayarak;
Kod:
    TimeClock.IN := NOT TimeClock.Q;
    TimeClock.PT := T#10ms;
    TimeClock();

    IF TimeClock.Q THEN (* 10ms bir örnek al 0.01s TON timer *)
        SampleNew_Inc  :=  SampleVal_Inc; (* Enkoder increment değeri *)
        Speed          :=  ( (SampleNew_Inc - SampleOLD_Inc)/0.01 )*60.0 ; (* Inc /dk sonucu*)
        Speed_RPM      :=  Tur_Inc * Speed; (* 1 Turda tambur ilerleme Increment degeri ile Speed çarp*)
        SampleOLD_Inc  :=  SampleNew_Inc; (* Son alınan örneği sakla *)
    END_IF

Tur / Incement değerini aşağıdaki videodaki hesaplamadaki gibi hesaplayabilirsin
 
Son düzenleme:
Merhabalar,iyi forumlar.Çizimde ki gibi bir zaman hesaplaması yapacaksan çok fazla parametre işin içerisine girer ve sapma oranın yüksek olur.Motorun bağlı olduğu dişlinin çevresini, konveyor band ile taşınacaksa konveyorun yarım boy uzunluğu her band geçişinde konveyorun ne kadar önüne düşeceğinin bilgileri gibi bilgileri eğer elde edebilirsen süre hesaplaması daha net ortaya çıkar.zaten bu bilgileri elde ettikten sonra gerisi çarpma bölme ile çözülür
Hocam tamburdan tambura mesafe 7.40 m bütün bantlar aynı boyda toplam mesafeyi biliyoruz. Deviride encoderden alacagim veya hizi daha sonra x=V.t formulu ile t yi cekemezmiyim? Burada bir yanılmam var midir
Devir hesabı için mantık, enkoder degerini okuduğunu varsayarak;
Kod:
    TimeClock.IN := NOT TimeClock.Q;
    TimeClock.PT := T#10ms;
    TimeClock();

    IF TimeClock.Q THEN (* 10ms bir örnek al 0.01s TON timer *)
        SampleNew_Inc  :=  SampleVal_Inc; (* Enkoder increment değeri *)
        Speed          :=  ( (SampleNew_Inc - SampleOLD_Inc)/0.01 )*60.0 ; (* Inc /dk sonucu*)
        Speed_RPM      :=  Tur_Inc * Speed; (* 1 Turda tambur ilerleme Increment degeri ile Speed çarp*)
        SampleOLD_Inc  :=  SampleNew_Inc; (* Son alınan örneği sakla *)
    END_IF

Tur / Incement değerini aşağıdaki videodaki hesaplamadaki gibi hesaplayabilirsin
Hocam ilgili için teşekkür ederim ladder diyagram ile yapacağım daha amatör seviyedeyim ama anlamak için uğraşacağım desteğin için teşekkür ederim.
 
Hocam tamburdan tambura mesafe 7.40 m bütün bantlar aynı boyda toplam mesafeyi biliyoruz. Deviride encoderden alacagim veya hizi daha sonra x=V.t formulu ile t yi cekemezmiyim? Burada bir yanılmam var midir

Hocam ilgili için teşekkür ederim ladder diyagram ile yapacağım daha amatör seviyedeyim ama anlamak için uğraşacağım desteğin için teşekkür ederim.
Yani tam olarak bilmiyorum sonuç olarak açısal hız ile tahriklenen bir doğrusal hareket var x=v.t formülünde ki hız parametresine açısal hızı yazman ne kadar doğru olur bilemeyeceğim daha yetkin kişiler varsa onlar daha doğru ilerleme katedebilir diye düşünüyorum
 
Devir hesabı için mantık, enkoder degerini okuduğunu varsayarak;
Kod:
    TimeClock.IN := NOT TimeClock.Q;
    TimeClock.PT := T#10ms;
    TimeClock();

    IF TimeClock.Q THEN (* 10ms bir örnek al 0.01s TON timer *)
        SampleNew_Inc  :=  SampleVal_Inc; (* Enkoder increment değeri *)
        Speed          :=  ( (SampleNew_Inc - SampleOLD_Inc)/0.01 )*60.0 ; (* Inc /dk sonucu*)
        Speed_RPM      :=  Tur_Inc * Speed; (* 1 Turda tambur ilerleme Increment degeri ile Speed çarp*)
        SampleOLD_Inc  :=  SampleNew_Inc; (* Son alınan örneği sakla *)
    END_IF

Tur / Incement değerini aşağıdaki videodaki hesaplamadaki gibi hesaplayabilirsin
Hocam dosya ekledim burada herhangi bir hata var midir
 

Ekli dosyalar

  • Encoder ile dakika bilgisi_230109_211519.pdf
    104.3 KB · Görüntüleme: 12
Kodunda örnekleme zamanı diye bir timer veya kesme OB si kullanman gerek.
Birde benim yazdığım kod aktuel m/dk veya rpm bilgisini alırsınız. Adet/metre iki ürün arası veriniz varsa o veriyi m/dk ile çarpıp Adet / dk verisine erişebilirsiniz.
 

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