Betik örnekleri
Örnek kodlar galerisinin konu haritası, Demo Projesi'ndeki 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 Demo_Projesi ö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.
Demo Projesi'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.