Program Kontrol Komutları (S7-200)

Konusu 'Otomasyon' forumundadır ve oguzturk tarafından 20 Nisan 2008 başlatılmıştır.

  1. oguzturk Administrator Staff Member


    Koşullu Son
    Koşullu Son komutu (END) öncesinden gelen lojik duruma göre taramanın sonlanmasına neden olur. Koşullu Sonu yalnızca ana programda kullanabilirsiniz; altprogram ve interrupt altprogramlarında kullanılmasına izin verilmez.

    Stop
    Stop komutu (STOP), S7-200 CPUnun RUNdan STOP konumuna geçmesine neden olarak program işlenmesini sonlandırır.

    Eğer Stop komutu bir interrupt altprogramında kullanıldıysa altprogram derhal kesilir ve sonraki interruptlar da ihmal edilir. O anki taramada yapılması gereken işlemlere devam edilir ve ana programın sonunda RUNdan STOPa geçiş gerçekleştirilir.

    [​IMG]

    Gözetleyiciyi Resetle
    S7-200’ün içerisinde tarama süresinin aşırı bir seviyeye varıp varmadığını izleyen bir gözetleyici (watchdog) bulunmaktadır. Gözetleyiciyi Resetle komutu (WDR), bu gözetleyiciyi tekrar tetikleyerek gözetleyici hatası verilmeden S7-200’ün tarama süresinin uzatılmasını sağlar.

    Gözetleyiciyi Resetle komutunu çok dikkatle kullanmalısınız. Taramanın sonuçlanmasını engellemek veya çok uzatmak için çevrimsel işlemler yapıyorsanız, tarama sonuçlanmadan aşağıdaki işlemlerin engellendiğini dikkate almalısınız:
    • İletişim (Freeport hariç)
    • Giriş/Çıkış güncelleme (anında giriş/çıkışlar hariç)
    • Forse etme güncelleme
    • SM bit güncelleme (SM0, SM5 ila SM29 güncellenmez)
    • Programlama hataları teşhisi
    • 25 saniyeyi geçen tarama sürelerinde 10 msn ve 100 msn zaman röleleri doğru çalışmayacaktır
    • İnterrupt altprogramı içinde kullanılan STOP komutu
    • Sayısal çıkış içeren genişleme modüllerinde de, çıkışlar S7-200 tarafından güncellenmezse devre dışı bırakacak şekilde çalışan ek gözetleyiciler vardır. Uzatılmış tarama süresinde çıkışların güncellenmesi sağlamak için sayısal çıkışlara Anında Çıkış komutuyla güncel değerleri yazmalısınız. Aşağıdaki örneğe bakınız.
    Bilgi Notu
    Tarama üresinin 500 msnden uzun sürmesini bekliyorsanız veya ana programın bu süreyi aşacak şekilde birdizi interruptlartarafından kesileceğini tahmin ediyorsanız, gözetleyiciyi resetle komutunu kullanabilirsiniz.
    Gözetleyiciyi Resetle komutunu kullandığınız herseferde, sayısal genişleme çıkışlarına anında çıkış komutunu kullanarak güncel değerleri yeniden yazmalı ve onlarda bulunan gözetleyicilerin de yeniden tetiklenmesini sağlamalısınız.
    Gözetleyiciyi Resetle komutunu kullandığınız programı içeren CPUnun konum şalterini STOPa aldığınızda, STOP konumuna geçiş 1.4 saniye kadarsürebilir.

    [​IMG]
     



  2. oguzturk Administrator Staff Member

    FOR ve NEXT komutlarını kulllanarak bir döngüyü belli bir sayıda tekrarlatabilirsiniz. Her For komutu için bir Next komutu gereklidir. For-Next döngülerini 8e kadar dallandırabilirsiniz (Bir For-Next döngüsü içinde bir başka For-Next döngüsü).

    For komutu, For ile Next arasındaki komutları işler. İndeks veya anlık döngü numarası INDX, başlangıç değeri INIT ve son değer FINAL parametrelerinde yer alır.

    Next komutu For döngüsünün bitimini gösterir.



    ENO = 0 yapan hata koşulları
    • Q 0006 (endirekt adresleme)
    For-Next döngüsüçalıştırıldığında, çevrim işlemini INDX=FINAL oluncaya kadar tekrarlar. Son, başlangıç değerleri ve anlık döngü numarası, döngü içerisinden de değiştirilebilir. Döngü tekrar çalıştırıldığında, kendini resetler ve başlangıç değerini indeks değerine kopyalar.

    [​IMG]

    Örneğin, INIT için 1, FINAL için 10 girilmiş olsun. Bu durumda döngüçalıştığında 10 tekrar yapacak ve INDX değeri 1, 2, 3, ...10 şeklinde artacaktır.

    Eğer başlangıç değeri son değerden büyük ise döngü işletilmez. Her döngüden sonra INDX değeri 1 arttırılır ve sonuçtaki değer FINAL ile karşılaştırılır. Eğer INDX > FINAL ise, döngü sona erdirilir.

    Komuta başlandığında lojik yığının tepe değeri 1 ise, bittiğinde de 1 olacaktır.

    [​IMG]
     
  3. oguzturk Administrator Staff Member

    Etikete Sıçrama komutu (JMP), program içerisinde Etiket (label) Ne bir dallanma gerçekleştirir.

    Etiket komutu (LBL), sıçrama noktası Ni işaretler.
    Sıçrama komutunu ana programda, altprogramda ve interrupt altprogramında kullanabilirsiniz. Sıçrama ve ona ait olan Etiket komutu, aynı program parçası içinde yer almalıdır (aynı altprogramda veya ana programda).

    Ana programdan bir altprogram veya interrupt altprogramındaki etikete sıçrama yapamazsınız. Aynışekilde farklı altprogramlar arasında sıçrama da mümkün değildir.

    Sıçrama komutu SCR parçası içinde kullanabilirsiniz, ancak ona ait Etiket de aynı SCR parçasında yer almalıdır.

    [​IMG]
     
  4. oguzturk Administrator Staff Member

    SCR komutları ile birbirini takip eden alt birimlere ayrılabilen proseslerde (ki çoğu makina böyledir) kullanmak üzere adımkontrolunu basit bir şekilde yapabilirsiniz.
    Bir dizi işlemin tekrar tekrar yapılması gerekiyorsa, uygulamanıza tam uyan SCRler programınızın yapılandırılmasında kullanılabilir. Sonuçta, uygulamanızı daha kısa sürede programlar ve testlerini de daha kolay gerçekleştirirsiniz.

    SCR Yükle komutu (LSCR), SCRnin başlangıcını gösterir. S-bit parametresi 1 ise, SCR Yükle komutuyla SCR Sonu arasındaki işlemler (adım) devrede olacaktır. Eğer S_bit 0 ise, bu iki komut arasındaki işlemlere/komutlara enerji akışı yok varsayılacaktır.

    Sınırlamalar
    SCRleri kullanırken aşağıdaki sınırlamalara dikkat ediniz:
    • Aynı S bitini farklı program parçasında kullanamazsınız.
      Örneğin, S0.1i ana programda kullandıysanız bir altprogramda kullanmamanız gerekir.
    • SCR parçasının içinden dışarıya veya dışarıdan içeriye sıçrama yapamazsınız; ancak, Sıçrama ve ilgili Etiketi aynı SCR parçasının içinde yer almak üzere kullanabilirsiniz.
    • SCR parçasının içinde Koşullu Son (END) komutunu kullanamazsınız.
    [​IMG]
     
  5. ot-gu Genel Sorumlu

    teşekkurler, ellerine sağlık
     

Sayfayı Paylaş