Ana içeriğe geç

Sunucu betiklerini içe ve dışa aktarma

scada-manager script import ve script export, sunucu betiklerini bir projeyle bir dosya klasörü arasında taşır; örneğin sürüm denetiminde tutmak ya da aynı kümeyi birkaç projeye yüklemek için. İçe aktarma, editördeki kayıtla aynı denetimlerden geçer: değişen her betik yeni bir sürüm olur ve içe aktarma denetim kaydına yazılır.

Başlamadan önce​

  • YTCC sunucusunda, YTCC klasöründe bir komut isteminde çalışıyorsunuz. Komutlar yönetici araçlarıdır: bir betiğin izin ve sınır alanlarını ayarlayabilirler.
  • Betiklerin yazdığı dahili sinyaller projede var.

Adımlar​

1. Dosyaları denetleyin​

  • Yalnız .js dosyaları içe aktarılır. Betik adı uzantısız dosya adıdır: harf, rakam ve _, 1–64 karakter; CON ya da COM1 gibi bir Windows aygıt adı olamaz.
  • Tip bildirimi olmayan TypeScript JavaScript'tir: uzantısını .js yapın. Tipli kod için editörde Compile and save kullanın.

2. İçe aktarmayı deneyin​

scada-manager script import pump_station scripts --dry-run

<proje> slug, proje kimliği ya da görünen addır; proje çalışıyor olabilir. --dry-run her şeyi denetler ve hiçbir şey yazmadan tüm sorunları listeler.

3. İçe aktarın​

scada-manager script import pump_station scripts --activate
SeçenekAnlamı
--activateİçe aktarılan betikleri etkinleştirir. Verilmezse etkinlik olduğu gibi kalır; yeni betikler etkin olmadan başlar.
--can-command --targets "Pump1.*,Valve?.Open"Desenlere uyan saha noktalarına komut izni verir. İki seçenek birbirini gerektirir; boş hedef listesi reddedilir.
--can-publish --publish-targets "Line1.*.Energized"Desenlere uyan noktalara hesaplanan değer yayını izni verir.
--publish-targets-file patterns.txtBir dosyadan satır başına bir yayın deseni okur, # açıklama içindir. --can-publish gerektirir.
--handler-ms 2000İşleyici süre sınırını ayarlar.

--can-command ya da --can-publish verilmezse var olan izin korunur; --handler-ms verilmezse var olan sınır korunur. İçeriği değişmeyen dosya değişmemiş sayılır ve yeni sürüm almaz.

Betikler 200'lük gruplar hâlinde uygulanır. Bir grup başarısız olursa komut orada hatayla durur; önceki gruplar uygulanmış kalır. Sorunu düzeltip komutu yeniden çalıştırın: değişmeyen betikler atlanır. Çalışan proje değişen betikleri birkaç saniye içinde yeniden yükler. Denetim kaydı kullanıcıyı cli:<Windows kullanıcısı>, kaynağı import olarak gösterir.

4. Dışa aktarın​

scada-manager script export pump_station yedek\betikler

Projenin her betiğini klasöre yazar: derlenmiş kodu olmayan betikleri yeniden içe aktarılabilen <ad>.js olarak, editörde TypeScript'ten derlenmiş betikleri <ad>.ts olarak. Hedef klasörde .js ya da .ts dosyası olmamalıdır. --force ile dosyalar önce geçici bir klasöre yazılır; ancak hepsi başarılı olursa projede artık olmayan betiklerin .js ve .ts dosyaları kaldırılır ve yeni dosyalar taşınır. Klasördeki diğer dosyalara dokunulmaz.

Dışa aktarım klasörü VS Code için de hazırlar; bkz. Betiklerle VS Code'da çalışma. ytcc-script.d.ts ve .ytcc-sync.json her dışa aktarımda yazılır; tsconfig.json ve .vscode/tasks.json yalnız henüz yoksa yazılır, böylece bunlarda yaptığınız değişiklikler korunur. .d.ts dosyaları betik sayılmaz.

Yalnız büyük/küçük harfle ayrılan adlar (Pump ve pump; Windows bunları tek dosyaya koyardı) hiçbir şey yazılmadan reddedilir.

Betiklerle VS Code'da çalışma​

Dışa aktarılan bir klasör sunucu bilgisayarında VS Code ile açılabilir. Dışa aktarım betiklerin yanına şunları yazar:

DosyaAmacı
ytcc-script.d.tsdefineScript, ctx ve alarm() için yerleşik editördekiyle aynı tip bilgisiyle tamamlama ve hata denetimi
tsconfig.json.js dosyalarını da denetler; çıktı üretmez
.vscode/tasks.jsonTerminal › Run Task altında üç görev: deneme (script import --dry-run), etkinleştirerek içe aktarma (script import --activate) ve kaydedince yükleyen izleme (script sync --watch)
.ytcc-sync.jsonDışa aktarımdaki her betiğin sürümü. Silmeyin: eşitleme bununla çalışır

Değişen dosyaları görev olmadan yüklemek için şunu çalıştırın:

scada-manager script sync pump_station yedeketikler --watch

script sync yalnız içeriği dışa aktarımdan ya da son eşitlemeden bu yana değişen .js dosyalarını yükler. --watch ile klasörü Ctrl+C'ye basana kadar her saniye denetler; onsuz bir kez çalışır. --activate yüklenen betikleri etkinleştirir de. Çalışan proje yüklenen betikleri yeniden yükler.

Eşitleme projede yapılan değişikliklerin üzerine yazmaz. Şu durumlarda dosya yüklenmez ve bir çakışma satırı yazılır:

  • betik dışa aktarımdan sonra yerleşik editörde değiştirildiyse ya da
  • betik projede var ama bu klasöre dışa aktarılmadıysa.

Devam etmek için --force ile yeniden dışa aktarın ve değişikliğinizi yeni dosyaya uygulayın. Başka bir projeden dışa aktarılmış klasör reddedilir. TypeScript betiklerini (.ts) editörde Compile and save ile kaydedin.

Sonuç​

Klasördeki betikler, değiştikleri yerde yeni sürümle projededir; ya da projenin betikleri klasördedir. Onları Automation › Server scripts'te denetleyin; bkz. Sunucu betikleri.