N tane Motoru Sıralı Çalıştırma Hk.

Katılım
5 Ara 2018
Mesajlar
18
Puanları
1
Yaş
28
Herkese merhaba öncelikle Plc programlama ile ilgili kedimi geliştirmek amaçlı bir uygulama yapmak istiyorum. Bu uygulama şu şekilde 3 5 motoru sıralı çalıştırmak fonksiyoun blokları ile yapılabiliyor. Peki bu motor sayıları 50 100 tane olursa ne şekilde yapmalıyız. Yanı ben 80 tane motoru belirli aralıklarla start aldıracağım ve yine aynı srayla stop ettireceğim.Ayrıca 80. motorun termiği attığında arkadaki 79 motorun durmasını sağlaycağım. Bu uygulamayı en pratik nasıl yapabilirim. cevaplarınız için şimdiden teşekkür ederim.
 
KNX Standardı, küçük bir rezidansın içerisindeki aydınlatma, perde panjur, klima kontrolünden, Dünya’nın en büyük havalimanlarındaki aydınlatma otomasyonu gibi çözümler için tercih edilen bir Dünya standardıdır.
Yazımızda endüstrinin can damarı sayılabilecek PLC’yi inceleyeceğiz.
Herkese merhaba öncelikle Plc programlama ile ilgili kedimi geliştirmek amaçlı bir uygulama yapmak istiyorum. Bu uygulama şu şekilde 3 5 motoru sıralı çalıştırmak fonksiyoun blokları ile yapılabiliyor. Peki bu motor sayıları 50 100 tane olursa ne şekilde yapmalıyız. Yanı ben 80 tane motoru belirli aralıklarla start aldıracağım ve yine aynı srayla stop ettireceğim.Ayrıca 80. motorun termiği attığında arkadaki 79 motorun durmasını sağlaycağım. Bu uygulamayı en pratik nasıl yapabilirim. cevaplarınız için şimdiden teşekkür ederim.
Bu soru daha önce sorulmuştu otomatik kumanda ile yapılmıştı , forum geçmişine bakın
 
kullanacağınız plc inputlarına ve outputlarına bağlı 3-5 ile 100-1000 arasında fark yok. Önce birincisini start stop devresi ile çalıştırıp daha sonra onun çalıştığından emin olacak şekilde bir sonraki motoru çalıştıracaksınız ve bu şekilde 80. motor dahil çaıştıracaksınız , herhangi bir motor termiği attığında tüm sistem durmalı diyorsanız ;
Tüm motorları durduracak çıkışları pasif edip, sayıcıları sıfırlayıp tekrar baştan başlayabilirsiniz tabi bu sistemin nasıl çalışmasını istemenize bağlı.
-Eğer tüm motor çalışma zamanları sabit ise örneğin 2.3 saniye tek bir zamanlayıcı ile herbirini otomatik olarak çalıştırmak kolay olacaktır önemli olan zaman aralıkları eşit mi farklı ise kaç tür zamanlama var şeklinde zamanlayıcılarınızı hazırlamak işinizi kolaylaştıracaktır.
-termiklerin hepsini paralel bağlamanız bir inputa girmeniz yeterli olacaktır

1-stop basılı değilse, termikler atmamışsa, starta basıldığında 1. motoru set reset ile yada mühürleme ile çalıştır
2-1. motor çalışıyorsa belirli bir zaman sonra ikinci motoru çalıştır,
3-2. motor çalışıyosa belirli bir zaman sonra 3. motoru çalıştır,
....
-79. motor çalışıyorsa belirli bir zaman sonra 80. motoru çalıştır..

termik inputu geldiğinde tüm motor çıkışlarını resetle yada mührünü boz ...

fonksiyon bloklarını aynı süreler var ise kullanabilirsin fakat gerek yok diye düşünüyorum..
 
Merhaba,

Siemens TIA Portal bizlere hem arızayı bulma hem de kolay kodlama anlamında kolaylıklar sağlamaktadır. Bunu şu şekilde gerçekleştirebilirsiniz. Bir tane motor fonksiyon bloğu hazırlayabilirsiniz. Fakat Siemens bu konuda bizlerin imdadına yetişmiş. Siemens TIA Portal Hazır Kodlar yazısından fikir edinmek isteyebilirsiniz. Bu hazırlayacağınız veya hazır bulunan fonksiyon bloğunu giriş, çıkış, arıza, başlatma, durdurma, hata vb. parametrelerini kontrol edebilirsiniz. Kaç tane motor olduğunun pek bir önemi yoktur.

İnceleyeceğiniz sayfa içerisinde motor, valf, dijital ve analog fonksiyon bloklarına ait hazır kodları ve örnek içerikleri bulabileceksiniz. Siemens TIA Portal ve PLCSIM ile bu örnekleri bilgisayarınıza indirip programın istediği yerine atıp, projeyi çalıştırabilirsiniz. Yeter ki yönergeleri doğru bir şekilde izlemeniz. Açıklamalı bir şekilde detaylar ile hem Siemens hem de sayfa içerisinde görsel desteklere de yer verilmiştir.

Sevgiler.​
 
Kod:
 (* Test için 6 motor kullanıldı, 100 motor için 5 gördüğün yere 99 yaz*)
"F_TRIG_DB"(CLK:=#inStart); // Start çıkan kenar test?
 
    IF "F_TRIG_DB".Q THEN  // Start verildigi an?
        #i := 0;           // Motorların indeksini sıfırla
    END_IF;
 
    IF #inStart THEN // Start verildi mi?
 
        IF (#Motor[#i] = FALSE) AND #AcmaZamani.Q THEN // Motor çalışma zamanı kadar bekle
            #AcmaZamani.IN := FALSE; // Süre doldu zamanı tekrar kur
            #Motor[#i] := TRUE;      // i nci motoru çalıştır
 
            IF #i < 5 THEN    // Kaçıncı motor? i<5 mi?
                #i := #i + 1;  // Sıradaki motor indeksi i<5 için
            ELSE
                #i := 0;  // i>=5 ise i:=0
            END_IF;
       END_IF;

   END_IF;

 //Motorlar arası çalışma zamanı 2sn
#AcmaZamani(IN := (#Motor[#i] = FALSE), PT := T#2s);

    IF #inStop THEN  // Stop var mı?  Sıralı stop olayını sana bırakıyorum
        #i       := 0;
        #inStart := FALSE;
        #inStop  := FALSE;
 
        FOR #i:= 0 TO 5 DO   // Motor çıkışlarını kes
            #Motor[#i] := FALSE;
        END_FOR;
    END_IF;
1631595797492.png
 
Son düzenleme:
Index te hata vardı düzeltildi. Eklenen satır:
Kod:
            IF #i < 5 THEN    // Kaçıncı motor? i>=5 ise sayma!
                #i := #i + 1;  // Sıradaki motor indeksi i<5 için
            ELSE
                #i := 0;  // i>=5 ise i:=0
            END_IF;
 
Motor değil de led lerle başlayabilirsin bütçesel olarak daha uygun olur kanaatindeyim

AA4B24AA-9BDD-467C-B492-108006AD744C.gif
 

Forum istatistikleri

Konular
127,950
Mesajlar
913,849
Kullanıcılar
449,596
Son üye
anilhikmet

Yeni konular

Geri
Üst