Betik örnekleri
Örnek kodlar galerisinin konu haritası, Tanıtım_Tesisi projesindeki betiklerin açıklamalı dökümü ve aynı işin dört dilde yazılışı.
Örnek kaynakları
İki yerden örnek alabilirsiniz: Studio'nun Örnek kodlar galerisi ve Tanitim_Tesisi örnek projesindeki hazır betikler. Galeri örnekleri Live'da gerçekten çalıştırılarak sınanır; her örnek kendi senaryosuyla beklenen sonucu vermek zorundadır.
Galeri: konu haritası
Galeriyi Betikler tablosunun araç çubuğundaki Örnek kodlar… ile açın (kullanımı: Betik editörü). Örnek sayıları dile ve konuya göre şöyledir:
| Konu grubu | VBS | JavaScript | C | Python |
|---|---|---|---|---|
| Tag okuma / yazma | 4 | 1 | 4 | 6 |
| Koşul ve döngü | 5 | 4 | 4 | 5 |
| Hesap ve ölçekleme | 3 | 3 | 4 | 4 |
| Tarih, saat, bekleme | 3 | 2 | 3 | 4 |
| Rapor kaydı | 1 | 0 | 0 | 1 |
| Sayfa ve nesneler | 4 | 1 | 4 | 6 |
| Operatörle etkileşim | 2 | 2 | 3 | 4 |
| Veritabanı, dosya, program | 4 | 0 | 3 | 7 |
| Betik yapısı ve tanılama | 4 | 4 | 7 | 7 |
| Python dili ve kitaplığı | — | — | — | 7 |
| Toplam | 30 | 17 | 32 | 51 |
Örnek adları dile göre öneklidir: JavaScript örnekleri Js_…, C örnekleri C_…, Python örnekleri Py_… ile başlar; VBS örneklerinin öneki yoktur (Tag_Oku_Yaz, Onay_Alarak_Yaz, Veritabani_Sorgu …). Galerinin arama kutusu ad, açıklama ve kodda arar.
Tanıtım_Tesisi'ndeki betikler
Örnek proje, betiklerin hepsini Zamanlanmış Görevler üzerinden bağlar. Betikler ve Zamanlanmış Görevler bölümlerini birlikte açarak her betiğin hangi görevden çalıştığını görebilirsiniz.
12- Tetikleyici — döngüsel, tag değişince, saatli …
- Çalıştırılacak betik — görevin çalıştırdığı betik.
| Betik | Dil / tür | Hangi görevden | Ne yapar |
|---|---|---|---|
Pompa_Ariza_Esle | JavaScript, Fonksiyon (deger) | Pompa_Ariza_Esle: P103_Calisiyor tag'i değişince | P-103 durunca P103_Ariza bitini kaldırır, çalışınca indirir. |
Tank_Seviye_Denetimi | VBS, Modül | Tank_Seviye_Denetimi: döngüsel, 1 sn | T101_Seviye 40'ın altına ya da 88'in üstüne çıkınca T101_Uyari bitini kaldırır. |
Aroma_Dozaj_Denetimi | C, Proje işlevleri | Aroma_Dozaj_Denetimi: döngüsel, 5 sn | Aroma_Seviye 42'nin altına düşünce Aroma_Dusuk bitini kaldırır. |
Birim_Enerji_Hesapla | VBS, Modül | Birim_Enerji_Hesapla: döngüsel, 5 sn | Pano gücünden ve hat hızından özgül enerjiyi (kWh / 1000 şişe) hesaplar. |
Vardiya_Belirle | JavaScript, Fonksiyon | Vardiya_Belirle: döngüsel, 10 sn | Saate göre çalışan vardiyayı belirler (06 – 14 birinci, 14 – 22 ikinci, 22 – 06 üçüncü). |
Parti_Ilerlet | JavaScript, Fonksiyon (deger) | Parti_Numarasi_Ilerlet: Parti_Bitti tag'i değişince | Parti bitince parti numarasını bir artırır ve vardiya parti sayacını günceller. |
Vardiya_Baslat | JavaScript, Fonksiyon | Vardiya_Baslangici (haftalık, 06:00), Gunluk_Parti_Sayaci_Sifirla (her gün 00:00), Kapanis_Kaydi (Live kapanırken) | Vardiya parti sayacını sıfırlar. Bir betik birden çok göreve bağlanabilir. |
Acilis_Hazirlik | JavaScript, Fonksiyon | Calisma_Acilis (Live başlayınca) | Vardiya parti sayacını hazırlar. |
Bakim_Hatirlat | JavaScript, Fonksiyon | Haftalık, aylık ve yıllık hatırlatma görevleri | Bakim_Notu tag'ine bakım notunu yazar. |
Filtre_Uyarisi, Kabin_Sicaklik_Uyarisi | JavaScript, Fonksiyon | Tag koşullu görevler: KS1_Filtre_Fark > 230, Firin_Sicaklik > 93 | İlgili uyarı bitini kaldırır. |
Bir işi dört dilde yazmak
Aşağıdaki dört betik aynı görevi yapar: P103_Calisiyor tag'i değişince P103_Ariza bitini ters değere yazar. Hepsi Tag değişince tetikli görevde çalışır; tag'in yeni değeri betiğin ilk parametresi olarak gelir.
VBS (Modül; Bool değer 1 / 0 ikili değeri olarak gelir):
Sub Pompa_Ariza_Esle(deger)
SmartTags("P103_Ariza") = Not deger
End Sub
JavaScript (Fonksiyon; Parametreler kolonu deger):
Tag.yaz('P103_Ariza', !deger);
C (Proje işlevleri):
#include "apdefap.h"
void Pompa_Ariza_Esle(int deger)
{
SetTagBit("P103_Ariza", (short)!deger);
}
Python (Modül):
def Pompa_Ariza_Esle(deger):
scada.write("P103_Ariza", not deger)
Örneği bağlama adımları
- Örneği ekleyin
Galeriden örneği seçin, Projeye ekle'ye tıklayın. Betik Betikler tablosuna eklenir.
- Derleyin
F9: söz dizimi ve projedeki tag, sayfa, nesne adları denetlenir. Uyarıları giderin ya da kodu kendi adlarınıza göre değiştirin.
- Tetikleyin
Örneğin Nasıl bağlanır metnine göre Zamanlanmış Görevler'de görev ekleyin (döngüsel, Tag değişince, saatli …) ya da bir nesnenin olayında Betik çalıştır işlevini seçin. VBS modülü, C proje işlevi ve Python modülü için gerekirse Prosedür / İşlev seçin.
- Sınayın
Çalıştır ile Live'da açın. Betik hata verirse olay günlüğünde
betiksatırı görünür (Günlük dosyaları).
Sınırlar ve dikkat edilecekler
- Veritabanı, dosya ve program örneklerinin çalışması için Betik İzinleri'nin açık olması gerekir. Galeri izin gerektiren örneği eklerken sorar; izni kendiliğinden açmaz.
- Örneklerin DSN adları, dosya yolları ve rapor adları örnek amaçlıdır (
Uretim_VT,C:\Veri,Uretim_Raporu); kendi ortamınıza göre değiştirin. - Veritabanı, dosya ve program çalıştırma örnekleri gerçek veritabanı ve dosya sistemiyle değil test köprüsüyle sınanmıştır; sahada ilk denemede izin açıkken kendi ortamınızda deneyin.