İçeriğe geç

Live

Betik ve görevler

Betikler ve zamanlanmış görevler yalnız Live programında çalışır. Veritabanı, program çalıştırma ve dosya erişimi izinleri varsayılan olarak kapalıdır ve Live Ayarları’ndan açılır.

Betik nerede çalışır

Betik, Live çalışırken tag’lere ve açık sayfaların nesnelerine erişen küçük bir programdır. Dört dilde yazılır: VBScript, JavaScript, C ve Python. Betikleri ve görevleri yalnız Live programı çalıştırır. Tarayıcıdan ya da TV’den izlemede betik, görev ve sürücü çalışmaz. Betik yazımı için betikler sayfasına bakın.

Çağıran Nasıl bağlanır
Nesne ya da sayfa olayı Olaylar sekmesinde betik çalıştırma işlevi: betik ve çağrılacak prosedür seçilir.
Olaya yazılan kod VBS, C ve Python kodu doğrudan olaya yazılır. Olayın nesnesi Item, sayfası Parent olarak hazır gelir.
Zamanlanmış görev Görev tablosunda çalıştırılacak betik ve prosedür seçilir. Tag değişince tetiklenen görevde tag’in yeni değeri betiğe ilk parametre olarak verilir.
Reçete aktarımı Reçetenin PLC aktarım ayarındaki önce ve sonra betikleri. Önce betiği hata verirse aktarım başlamaz.

Çalışma kuralları

  • VBS, C ve Python betikleri arka planda çalışır, arayüz kilitlenmez.
  • Bir VBS, C ya da Python çağrısı en çok 30 sn hesap yapabilir. Daha uzun döngü “Betik süre sınırını aştı (30 sn); sonsuz döngü olabilir” iletisiyle kesilir. Sınır yalnız kodun kendi çalıştığı süreyi ölçer, tag yazma, veritabanı, pencere ve bekleme işlemleri sayılmaz.
  • VBS, C ve Python’da aynı tetik için önceki çağrı sürerken gelen yeni çağrı atlanır. Olay günlüğüne bir kez not düşülür.
  • JavaScript için 30 sn sınırı ve yinelenen çağrı denetimi uygulanmaz.
  • Betik hatası programı durdurmaz, olay günlüğüne betik türünde yazılır.
  • Kesme noktası ve adım adım çalıştırma yoktur. Hata aramak için çıktı yazılır: VBS’te HMIRuntime.Trace, C’de printf, Python’da print ya da scada.trace.

Betik izinleri

Üç izin vardır ve hepsi varsayılan olarak kapalıdır. Studio’da Live Ayarları › Genel › Betik İzinleri kartından açılır. İzin kapalıyken VBS, C ve Python betiği o işlemi yapınca hata alır. Tag okuma ve yazma ile sayfa nesneleri izin gerektirmez.

İzin Kapsadığı çağrılar
Veritabanına bağlanma VBS’te ADODB.Connection, Recordset, Command. Python’da scada.db ve pyodbc. ODBC ile sorgu yapılır.
Program çalıştırma VBS’te WScript.Shell. C’de ProgramExecute, WinExec, ShellExecuteA. Python’da scada.run. Ek uygulamalar da bu izne bağlıdır.
Dosyalara erişme VBS’te Scripting.FileSystemObject. C’de fopen, fprintf, remove gibi işlevler. Python’da open, os, shutil, pathlib. Dosya okuma, yazma, silme ve klasör oluşturma.

Studio, izni kapalı bir çağrıyı Sorunlar listesinde önceden bildirir. İzin açıkken betik bu işlemleri operatöre sormadan Live bilgisayarında yapar. Ayar değişiklikleri çalışan Live’a anında yansımaz: projeyi kaydedip Live’a yükleyin ve yeniden açın.

Görev tetikleyicileri

Zamanlanmış görev bir betiği sizin yerinize çalıştırır. Görev tanımı betiğin ne zaman çalışacağını belirler, işi betik yapar. 10 tetikleyici vardır. Görev tanımı görevler sayfasında anlatılır.

Tetikleyici Live’da ne zaman çalışır
Döngüsel Seçilen döngü süresi her dolduğunda, en sık 100 ms’de. Süresi 0 olan Değişince döngüsüyle görev zamanlanmaz.
Her gün belirli saatte Her gün o saatte.
Haftanın belirli günlerinde Seçilen günlerde o saatte.
Ayın belirli gününde Her ay o gün ve saatte. Ayda o gün yoksa (31 gibi) ayın son günü çalışır. Ayın son günü seçeneği de vardır.
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.
Tek seferlik Bir kez. Çalışınca tamamlandı olur ve bir daha çalışmaz.
Tag değişince Tag’in değeri her değiştiğinde. Yeni değer betiğe ilk parametre olarak verilir.
Tag koşulu (eşik / kenar) 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.
Live başlayınca Proje açılınca bir kez.
Live kapanırken Live kapanırken bir kez. Kapanış görevin bitmesini bekler.

Zaman tetikleyicilerinde saat ve tarih Live bilgisayarının yerel takvimidir. Görev, planlı zamandan en çok yaklaşık 5 sn sonra başlar.

Açılış, kapanış ve ek uygulamalar

Live Ayarları’nın Başlangıç Dizisi sekmesinde Zamanlanmış görevler kapatılırsa hiçbir görev çalışmaz, açılış ve kapanış görevleri de dahildir.

Ek Uygulamalar sekmesi Live ile birlikte başlayan programları tanımlar, örneğin bir barkod okuyucu servisi. Başlatma Program çalıştırma iznine bağlıdır. İzin kapalıysa hiçbir uygulama başlatılmaz ve neden Live’ın program günlüğüne yazılır. Kapanınca kapat işaretli uygulamaya Live kapanırken önce kapatma isteği gönderilir, 3 sn sonra süreç sonlandırılır. Live’ın başlatmadığı süreçlere dokunulmaz.

Görev durumu ve günlük

Live’da sistem menüsü › Görevler… tüm görevlerin durumunu gösterir: görev (betik adıyla), tetikleyici, son çalışma ve kaynağı, sonuç, sonraki planlı zaman ve çalışma sayısı. Sonuç Tamam, Hata, Atlandı, Tamamlandı, Çalışıyor, Pasif ya da Henüz çalışmadı olabilir.

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. Her çalışma olay günlüğüne gorev türünde yazılır, durum Live yeniden açılınca korunur.

Sık sorulanlar

Live kapalıyken zamanı geçen görev açılışta çalışır mı?

Zaman tetikleyicili görevde Kaçırılırsa açılışta çalıştır seçeneği açıksa görev Live açılınca bir kez çalışır, kaçan her zaman için ayrı çalışmaz. Seçenek kapalıysa kaçan zaman atlanır ve olay günlüğüne “kaçırıldı” yazılır. Yeni eklenen görev için geçmiş zamanlar telafi edilmez.

Betikleri çalıştırmak için ek bir yazılım kurmam gerekir mi?

Hayır. VBScript, C ve Python betikleri ürünün kendi motorlarıyla çalışır, Windows Script Host, C derleyicisi ya da CPython kurulumu gerekmez. JavaScript, WebView2’nin JavaScript ortamında ç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.