İçeriğe geç

SVG Animations

SVG Animation, inSCADA’nın temel görselleştirme bileşenidir. Her animation bir SVG dosyasından oluşur ve değişken değerlerine bağlanarak gerçek zamanlı SCADA ekranları oluşturur.

Energy Monitoring Dashboard

Bir SCADA ekranı oluşturmak üç adımdan oluşur:

SVG ekranı, herhangi bir SVG editörü ile tasarlanır. Inkscape (ücretsiz, açık kaynak) önerilen editördür.

Inkscape ile SVG Tasarımı

Tasarım sırasında:

  • Ekranın görsel düzenini serbest bir şekilde oluşturun — cihaz sembolleri, metin alanları, butonlar, göstergeler, grafikler
  • SVG ID’leri ile ilgilenmenize gerek yok — inSCADA tüm SVG ağacını otomatik tarar ve her objeyi seçilebilir hale getirir
  • Standart SVG öğeleri kullanın: <rect>, <circle>, <text>, <path>, <g>, <image>
  • İstediğiniz kadar karmaşık tasarım yapabilirsiniz — katmanlar, gruplar, gradyanlar, filtreler

Inkscape’te File → Document Properties (Dosya → Belge Özellikleri) bölümünde sayfa boyutunu ayarlayın:

AyarÖnerilen DeğerAçıklama
Genişlik1920 pxFull HD ekran genişliği
Yükseklik1080 pxFull HD ekran yüksekliği
BirimpxPiksel birimi
Ölçek1.01:1 ölçek
YönlendirmeYatay (Landscape)SCADA ekranları genellikle yatay

Tasarlanan SVG dosyasını platforma yükleyin:

Menü: Development → Animations → Animation Dev

Animation Dev

Yeni animation oluşturun veya mevcut bir animation’ın SVG içeriğini güncelleyin. SVG dosyası upload edildikten sonra ekranda görselleşir.

SVG yüklendikten sonra, ekran üzerinde mouse ile objelere tıklayarak her objeye animation davranışı bağlarsınız:

  1. SVG üzerinde bir objeye mouse ile tıklayın — obje seçilir ve vurgulanır
  2. Sağ üstteki Element Editor (sihirli değnek ikonu) butonuna tıklayın
  3. Seçilen objenin tipine göre uygulanabilir animation tipleri otomatik listelenir
  4. İstediğiniz animation tipini seçip yapılandırın
  5. Save ile kaydedin

Animation Element Editor

Bu üç adım sonucunda, Visualization ekranında çalıştırdığınızda SVG ekranı canlı SCADA verisiyle güncellenir.

Detaylı bilgi: Element Editor →

Roket ikonuna tıklayarak animation’ı canlı olarak önizleyebilirsiniz:

Preview Animation

Kalem ikonuna tıklayarak animation’ın ayarlarını düzenleyebilirsiniz — Duration, Play Order, Main, Color, Alignment, erişim rolleri ve Pre/Post scripts:

Animation Yapılandırma

Detaylı bilgi: Animation Yapılandırma →

Her animation üç bileşenden oluşur:

Animation
├── SVG Content (upload edilen SVG dosyası)
├── Animation Elements (mouse ile seçilen objelere bağlanan davranışlar)
│ ├── Element 1: sıcaklık metni → Temperature_C (Get)
│ ├── Element 2: motor göstergesi → MotorStatus (Color)
│ └── Element 3: vana grubu → ValvePosition (Rotate)
└── Animation Scripts (her döngüde çalışan kodlar)
├── Pre-Animation Code
└── Post-Animation Code

Animation Element, SVG üzerinde mouse ile seçilen bir objeye bağlanan davranış tanımıdır. Objeye tıklayıp Element Editor’ü açtığınızda aşağıdaki alanlar otomatik doldurulur veya yapılandırılır:

AlanAçıklama
DOM IDSeçilen SVG objesinin ID’si (otomatik alınır — elle girmenize gerek yok)
TypeAnimation tipi — obje tipine göre uygun tipler otomatik listelenir
Expression TypeDeğerin nasıl hesaplanacağı (Tag, Expression, Switch vb.)
ExpressionDeğer ifadesi (değişken adı, formül veya yapılandırma)
PropsTipe özel ek ayarlar (her tip kendi görsel formunu sunar)
StatusAktif/pasif

inSCADA 36 farklı animation tipi destekler:

TipAçıklamaSayfa
GetDeğişken değerini metin olarak gösterDetay →
ColorÖğenin rengini değere göre değiştirDetay →
BarDeğere göre çubuk yüksekliği/genişliğiDetay →
OpacityDeğere göre saydamlıkDetay →
VisibilityKoşula göre göster/gizleDetay →
RotateDeğere göre döndürmeDetay →
MoveDeğere göre X/Y kaydırmaDetay →
ScaleDeğere göre ölçeklemeDetay →
BlinkKoşula göre yanıp sönmeDetay →
PipeBoru/hat akış animasyonuDetay →
TooltipHover bilgi balonuDetay →
ImageDeğere göre resim değiştirmeDetay →
AlarmIndicationAlarm durumunu gösterDetay →
TipAçıklamaSayfa
ChartGrafik bileşeniDetay →
PeityInline sparkline mini grafikDetay →
DatatableTablo bileşeniDetay →
TipAçıklamaSayfa
SetDeğişkene değer yaz (click ile)Detay →
SliderKaydırıcı ile değer ayarlaDetay →
InputMetin/sayı girişiDetay →
ButtonButon bileşeniDetay →
ClickTıklama olayıDetay →
MouseDown / MouseUp / MouseOverFare olaylarıDetay →
TipAçıklamaSayfa
OpenBaşka bir animation’a geçDetay →
IframeHarici URL gömmeDetay →
MenuMenü açmaDetay →
FaceplateFaceplate bileşeni yerleştirDetay →
TipAçıklamaSayfa
ScriptÖzel JavaScript çalıştırDetay →
FormScriptForm tabanlı scriptDetay →
GetSymbolSymbol kütüphanesinden sembol yükleDetay →
AnimateCSS/SVG animasyon tetikleDetay →
AccessYetki bazlı görünürlükDetay →
Three3D görselleştirmeDetay →
QRCodeGenerationQR kod oluşturmaDetay →
QRCodeScanQR kod okumaDetay →

Her animation element’te değerin nasıl hesaplanacağını belirler:

TipAçıklama
TagDoğrudan değişken adı referansı
ExpressionJavaScript formülü
NumericSabit sayısal değer
TextSabit metin değeri
SwitchDeğere göre koşullu seçim
CollectionBirden fazla değişken koleksiyonu
SetDeğer yazma ifadesi
AnimationBaşka bir animation referansı
UrlURL referansı
AlarmAlarm durumu referansı
FaceplateFaceplate referansı
Animation PopupPopup animation açma
ButtonButon yapılandırması
InSCADA ViewPlatform görünüm referansı
System PageSistem sayfası referansı
HtmlHTML içerik
Custom MenuCustom menu referansı
Tetra ColorDört renkli durum gösterimi (alarm renkleri)

Her animation’a Pre ve Post script bağlanabilir. Tüm kodlar her tarama döngüsünde tekrar çalışır:

Her döngüde: Pre-Animation → Elements → Post-Animation → bekleme (duration ms) → tekrar

İlk açılışta bir kez çalışması gereken kod için __firstScan değişkeni kullanılır:

if (__firstScan) {
// Sadece ilk döngüde çalışır
var logs = ins.getLoggedVariableValuesByPage(
['ActivePower_kW'],
ins.getDate(ins.now().getTime() - 3600000),
ins.now(), 0, 100
);
}
// Her döngüde çalışır
var power = ins.getVariableValue("ActivePower_kW").value;
return power.toFixed(1);

Detaylı bilgi: Animation Yapılandırma → Pre/Post Scripts