FabyaVisionKullanım Kılavuzu
/

Betiklere genel bakış

4 dk okumaBetikler

FabyaVision'da betik dört dille yazılır (VBScript, JavaScript, C, Python). Bu konu hangi dilin ne zaman uygun olduğunu, betiklerin nerelerden çalıştırıldığını ve Studio'da yazılan betiğin Live'a nasıl ulaştığını anlatır.

Betik ne işe yarar

Tag yazma, sayfa açma, hesaplama ya da operatöre soru sorma gibi işler olay işlevleriyle yapılamıyorsa betik yazılır. Betik, Live çalışırken tag'lere ve açık sayfaların nesnelerine erişen küçük bir programdır. Betikler Betikler bölümünde yazılır; Live'da yalnızca Live programı çalıştırır.

Dört dilin hepsi aynı işi görür. Dil seçimi, ekibin alışkanlığına ve işin niteliğine bağlıdır.

Dört dil

DilBetik türleriTag erişimiNe zaman uygun
VBScript (VBS)Modül, AksiyonHMIRuntime.Tags("Ad").Read, SmartTags("Ad")WinCC VBS alışkanlığı olan ekipler; metin, tarih ve sözlük işleri; ODBC ile veritabanı.
JavaScriptFonksiyon, Genel modülTag.oku('Ad'), Tag.yaz('Ad', değer)Kısa tag işlemleri ve hesaplar. Ürün yalnızca dört hazır nesne sağlar (Tag, Sayfa, Bildir, Kullanici); veritabanı, dosya ve program çalıştırma işlevi yoktur.
CProje işlevleri, Aksiyon, Başlık dosyasıGetTagFloat("Ad"), SetTagBit("Ad", 1)WinCC C betiği alışkanlığı olan ekipler; yapı, dizi ve işaretçi kullanan hesaplar.
PythonModül, Aksiyonscada.read("Ad"), scada.write("Ad", değer)Okunaklı kod, liste ve sözlük işleme, JSON, düzenli ifade, geniş standart kitaplık.

Dillerin ayrıntısı: VBScript, JavaScript, C, Python. Tüm diller için nesne ve işlev listesi Betik nesne modeli başvurusu konusundadır.

Betik türleri

Türün adı dile göre değişir, ancak iki temel kalıp vardır.

Yeniden kullanılan işlevler
VBS ve Python'da Modül, C'de Proje işlevleri, JavaScript'te Genel modül. İşlevler adıyla başka betiklerden çağrılır. Modül düzeyindeki kod (işlev dışındaki satırlar) proje açılırken bir kez çalışır.
Doğrudan çalıştırılan kod
VBS, C ve Python'da Aksiyon, JavaScript'te Fonksiyon. Her çağrıda baştan çalışır. JavaScript fonksiyonu parametre alabilir (Parametreler kolonu).
Başlık dosyası
Yalnızca C'de. Betiğin başında #include "Ad.h" ile alınır; kendi başına çalıştırılamaz.

Türlerin kullanım kuralları dil konularında anlatılır: tablodaki Tür kolonu seçilince kod şablonu da değişir (kod henüz şablon durumundaysa).

Betik nerelerden çalışır

ÇağıranNasıl bağlanır
Nesne ya da sayfa olayıOlaylar sekmesinde Betik çalıştır işlevi: betik ve (VBS modülü, C proje işlevi, Python modülü için) çağrılacak prosedür / işlev seçilir. Seçilmezse betikle aynı adlı prosedür çalışır. Bkz. Olaylar ve işlevler.
Olaya yazılan kodVBS kodu çalıştır, C kodu çalıştır, Python kodu çalıştır işlevleri: kod doğrudan olaya yazılır; olayın nesnesi Item, sayfası Parent olarak hazır gelir. JavaScript için böyle bir işlev yoktur.
Zamanlanmış görevZamanlanmış Görevler tablosunda Çalıştırılacak betik ve Prosedür / İşlev kolonları. Tag değişince tetikli görevde tag'in yeni değeri betiğe ilk parametre olarak verilir. Bkz. Zamanlanmış görevler.
Reçete aktarımıReçetenin PLC aktarım ayarındaki Önce betiği ve Sonra betiği. Önce betiği hata verirse aktarım başlamaz. Bkz. Reçete tasarımı.
Başka bir betikPython modülleri import Betik_Adi ile alınır; VBS modüllerinin prosedürleri ve C proje işlevleri bütün betiklerin ortak ad alanındadır.

Yazımdan çalışmaya

  1. Betiği yazın

    Betikler bölümünde satır ekleyin, dili ve türü seçin, kodu sağdaki kod alanına yazın. Ayrıntı: Betik editörü.

  2. Derleyin

    F9 betiği, Ctrl+Shift+B tüm betikleri denetler. Söz dizimi hataları ve projeyle ilgili uyarılar (olmayan tag, kapalı izin) kodun altında listelenir.

  3. Bağlayın

    Betiği bir olaya, göreve ya da reçeteye bağlayın.

  4. Sınayın ve yükleyin

    Çalıştır projeyi kaydedip Live'da açar. Betiklerde derleme hatası varsa Studio Hataları göster, Yine de çalıştır ve Vazgeç seçeneklerini sunar; hatalı betik Live'da çalışmaz. Kalıcı kurulum için projeyi Live'a yükleyin.

Live'da betiklerin çalışma kuralları

  • Arayüz kilitlenmez. VBS, C ve Python betikleri arka planda çalışır; tag yazma, bekleme, pencere ve dosya işlemleri otomatik beklenir.
  • 30 saniye sınırı. VBS, C ve Python çağrısı en çok 30 saniye 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ızca kodun kendi çalıştığı süreyi ölçer: tag yazma, veritabanı, pencere ve bekleme işlemlerinin (C'de Sleep, Python'da scada.sleep, MsgBox) bekleme süresi sayılmaz. JavaScript için böyle bir sınır uygulanmaz.
  • Üst üste çağrı atlanır. VBS, C ve Python'da aynı tetik (aynı görev ya da aynı olay satırı) için önceki çağrı sürerken gelen yeni çağrı atlanır; olay günlüğüne bir kez not düşülür. JavaScript'te bu denetim yoktur.
  • Hatalar günlüğe yazılır. Betik hatası programı durdurmaz; olay günlüğüne betik türünde yazılır. Bkz. Günlük dosyaları.
  • Tarayıcıdan ve TV'den izlemede betik çalışmaz. Betikler yalnızca Live programında çalışır.
  • Hizmet kapalıysa görev çalışmaz. Live Ayarları › Başlangıç Dizisi'nde Zamanlanmış görevler kapalıysa hiçbir görev tetiklenmez.

Sınırlar ve dikkat edilecekler

  • Betik motorları ürünün kendi motorlarıdır; Windows Script Host, gerçek C derleyicisi ya da CPython kurulumu gerekmez. Diller tam değil, alt kümedir; farklar dil konularında listelenir.
  • Alarm üretme ve onaylama, arşiv günlükleri gibi bazı WinCC nesneleri betiklerde yoktur. Çağrılırsa betik açık bir hata verir ya da tanılama satırı yazılır (Bilinen sınırlar).
  • Sahada ilk denemede veritabanı, dosya ve program çalıştırma işlevlerini izin açıkken gerçek ortamda deneyin.

İlgili konular

FabyaVision 0.1.0 Kullanım Kılavuzu · 18 Ekim 2026© Fabyatek Yazılım Bilişim Teknolojileri Ltd. Şti.