İçeriğe geç

Studio

Zamanlanmış görevler

Zamanlanmış görev, bir betiği sizin yerinize çalıştırır: her saniye bir hesap, vardiya başında sayaç sıfırlama, bir tag eşiği aşınca uyarı. Görev ne zaman çalışacağını belirler, işi betik yapar.

Görev tanımlama

  1. Betiği hazırlayın

    Betikler bölümünde görevin çalıştıracağı betiği yazın: VBS modülü ya da aksiyonu, C, JavaScript fonksiyonu ya da Python. Ayrıntı için betikler sayfasına bakın.

  2. Görevi ekleyin

    Zamanlanmış Görevler bölümünde Ekle’ye basın ve Ad girin.

  3. Tetikleyiciyi seçin

    Tetikleyici listesinden bir tür seçin. Türe göre saat, tarih, gün ya da tag alanları açılır.

  4. Betiği bağlayın

    Çalıştırılacak betik listesinden betiği seçin. VBS modülünde, C ve Python betiğinde çağrılacak prosedür / işlev Prosedür / İşlev kolonundan seçilir. Boşsa betikle aynı adlı prosedür ya da işlev çağrılır.

  5. Denetleyin

    F7 eksik betik, saat, tag, tarih ve gün seçimini hata ya da uyarı olarak listeler.

Tetikleyiciler

Tetikleyici Ne zaman çalışır Alanlar
Döngüsel Seçilen döngü süresi her dolduğunda (en sık 100 ms). Döngü
Her gün belirli saatte Her gün o saatte. Saat (SS:DD, örnek 07:30)
Haftanın belirli günlerinde Seçilen günlerde o saatte. Varsayılan hafta içi. Saat, Pazartesi … Pazar anahtarları
Ayın belirli gününde Her ay o gün ve saatte. Ayda o gün yoksa (örnek 31) ayın son günü çalışır. Saat, Ayın günü (1 – 31) ya da Ayın son günü
Yılın belirli gününde Her yıl o ay, gün ve saatte. 29 Şubat görevi artık olmayan yılda 28 Şubat’ta çalışır. Saat, Ay, Ayın günü
Tek seferlik Bir kez. Çalışınca tamamlandı olur ve bir daha çalışmaz. Saat, Tarih
Tag değişince Seçilen tag’in değeri her değiştiğinde. Yeni değer betiğe ilk parametre olarak verilir. Tag
Tag koşulu Koşul sağlanmaya başladığında bir kez. Koşul bozulup yeniden sağlanınca yine çalışır. Live başlarken koşul zaten sağlanıyorsa çalışmaz. Tag, Koşul, Eşik değeri
Live başlayınca Proje açılınca bir kez. –
Live kapanırken Live kapanırken bir kez. Kapanış, görevin bitmesini bekler. –

Tag koşulunda Koşul, Yükselen kenar, Düşen kenar, Değeri değişince ya da değerin eşikle karşılaştırması olabilir: >, ≥, <, ≤, =, ≠. Metin tag’inde yalnızca eşit ve farklı kullanılır. Koşul sürdükçe her değişimde açıksa görev, koşul sürerken tag her değiştiğinde de çalışır.

Zaman tetikleyicilerinde saat ve tarih, Live bilgisayarının yerel takvimidir. Zamanlama kartı seçili görevin sonraki beş çalışma zamanını listeler.

Zamanlama örnekleri

İş Tetikleyici
Tank seviyesini her saniye denetlemek Döngüsel, 1 sn döngüsü
Vardiya başında parti sayacını sıfırlamak Haftanın belirli günlerinde, 06:00
Sayacı her gece yarısı sıfırlamak Her gün belirli saatte, 00:00
Her ayın son günü bakım notu yazmak Ayın belirli gününde, Ayın son günü
Filtre fark değeri eşiği aşınca uyarı bitini 1’e çekmek Tag koşulu, KS1_Filtre_Fark > 230
Parti bitince parti numarasını artırmak Tag değişince, Parti_Bitti
Açılışta sayaçları hazırlamak, kapanışta kayıt düşmek Live başlayınca ve Live kapanırken
Belirli saatte rapor kaydı almak Saatli görev bir tag’i 1’e çeker, rapor bu tag’i tetik olarak kullanır

Bir betik birden çok göreve bağlanabilir. Örnek projede (Tanitim_Tesisi) vardiya sayacını sıfırlayan tek betik haftalık, günlük ve kapanış görevlerinden çalışır.

Live’da çalışma

  • Zaman tetikleyicileri birkaç saniyede bir denetlenir. Görev planlı zamandan en çok yaklaşık 5 sn sonra başlar.
  • Aynı betik önceki çağrısı sürerken yeniden tetiklenirse yeni çağrı atlanır.
  • Yaz saati geçişinde var olmayan saat (örnek 02:30) geçiş anında bir kez çalışır. Tekrarlanan saat yalnızca ilk yaşanışta çalışır.
  • Her çalışma olay günlüğüne yazılır. Durum (son çalışma, sonuç, çalışma ve hata sayısı) projenin veri klasöründe saklanır ve Live yeniden açılınca korunur.
  • Başlangıç Dizisi’nde Zamanlanmış görevler kapatılırsa hiçbir görev çalışmaz.

Kaçırılan görevler

Live kapalıyken ya da bilgisayar uykudayken planlı bir zaman geçerse görev o an çalışamaz. Zaman tetikleyicili görevde Kaçırılırsa açılışta çalıştır açıksa görev Live açılınca bir kez çalışır. Kaçan her zaman için ayrı çalışmaz. Kapalıysa kaçan zaman atlanır ve olay günlüğüne “kaçırıldı” yazılır.

Planlı zamandan en çok 2 dakika sonra başlayan çalışma gecikmiş sayılmaz. Yeni eklenen görev için geçmiş zamanlar telafi edilmez. Görevin tanımı değişirse tamamlandı ve telafi durumu sıfırlanır.

Görev durum penceresi

Live’da Sistem menüsü › Görevler… tüm görevlerin durumunu gösterir: tetikleyici, son çalışma ve kaynağı, sonuç (Tamam, Hata ve iletisi, Atlandı, Tamamlandı, Çalışıyor, Pasif, Henüz çalışmadı), sonraki planlı zaman ve çalışma sayısı. Pencere saniyede bir yenilenir.

Betik hata verirse görevin sonucu Hata olur ve iletide betik, prosedür ve satır yazar. Hata görevin sonraki çalışmalarını durdurmaz.

Sınırlar

  • Süresi 0 ms olan Değişince döngüsüyle döngüsel görev hiç zamanlanmaz ve Studio bunu uyarmaz. Döngüsel görevde 100 ms ve üzeri bir döngü seçin. Değere göre çalıştırmak için Tag değişince ya da Tag koşulu tetikleyicisini kullanın.
  • Çalıştırılacak betik seçilmemişse ya da Etkin kapalıysa görev çalışmaz.
  • Zamanlanmış rapor yazdırma görevi yoktur. Sessiz yazdırma desteklenmez.
  • Görevler yalnızca Live’ın çalıştığı bilgisayarda çalışır, tarayıcıdan izlemede çalışmaz.

Sık sorulanlar

Görev Live kapalıyken çalışır mı?

Hayır. Görevler Live içinde çalışır. Kaçan zaman için Kaçırılırsa açılışta çalıştır açılırsa görev Live açılınca bir kez çalışır.

Bir görevde hata olursa sonraki çalışmalar durur mu?

Hayır. Sonuç Hata olur, ileti olay günlüğüne ve durum penceresine yazılır, görev bir sonraki zamanında yine çalışır.

İlgili sayfalar

Demoyu deneyin

Demo sürümünü indirin, örnek projeyi açın ve bu özelliği kendi ekranınızda görün.