inSCADA
Version 2022
Version 2022
  • inSCADA Version 2022
    • inSCADA 2022
    • Başlarken
    • Kullanıcı Arayüzü
      • Dashboards
      • Development
        • Projeler
        • Bağlantılar
        • Cihazlar
        • Variables
        • Cihaz Kütüphanesi
        • Animasyonlar
          • Pipe
          • Get
          • Click
          • Color
          • Rotate
          • Move & Move Line
          • Opacity
          • Bar
          • Tooltip
          • Visibility
          • Slider
          • Chart
          • Data Table
          • Get Symbol
          • Input
          • QR Code
          • All in One
        • Alarmlar
          • Alarm Grupları
          • Alarmlar
        • Grafikler
        • Scriptler
          • Scriptler
          • Script Editor
        • Expressions
        • Raporlar
          • Custom Reports
          • Raporlar
          • Jasper Reports
        • Custom Table
          • Custom Table
          • SQL Editor
        • Gas Ölçüm
        • Süreçler
        • Veri Transferi
        • Anahtar Kelimeler
        • Languages
        • Info
      • Runtime
        • Kontrol Panel
        • Visualization
        • Trend Grafik
        • Rapor
        • Variable Tracking
          • Değişken Geçmişi
          • Değişken İzleme
          • Variable Trace
        • Alarm Tracking
          • Alarm Geçmişi
          • Alarm Monitor
        • Proje Haritası
        • Akış
        • Süreç
        • Job
      • Kullanıcı Menüsü
        • Kullanıcılar
        • Space
        • Roller
      • Bildirimler
        • E-Posta
        • SMS
        • Chat
      • Yedekle / İçe Aktar
        • Meta Data
        • Data
      • Settings
        • General Settings
        • Custom Table
        • Akış
        • E-posta
        • SMS
        • Harita
      • Logs
        • Log
        • Auth Log
      • Yardım
        • Online Yardım
        • Lisans
        • Hakkında
    • Mimik Tasarım
    • Haberleşme Protokolleri
      • MODBUS
        • Modbus TCP
        • Modbus UDP
        • Modbus RTU Over TCP
        • Modbus TCP Server
        • Modbus RTU Slave Over TCP
      • DNP3
        • DNP3 Master
        • DNP3 Outstation
      • S7 Protokol
      • IEC-104-Master
      • OPC
        • OPC DA Client
        • OPC UA Client
      • MQTT
    • Programlama
      • API's
        • Variable Functions
        • Connection Functions
        • Project Functions
        • Alarm Functions
        • Script Functions
        • In-Memory DB Functions
        • System Functions
        • User Funcitons
        • Date-Time Functions
        • String Functions
        • Notification Functions
        • Confirmation Functions
        • Database Functions
        • Other Functions
    • Veritabanı
    • Faydalı Özellikler
    • Mimari ve Uygulamalar
    • Geliştirme Yol Haritası
    • inSCADA' ya Geçiş
    • Lisanslandırma Politikaları
    • SSS
    • Videolar
    • Örnek Ekranlar
    • Yardımcı Araçlar
      • VSTO Excel Add-In
      • S7-PLCSim Connector
      • Modbus TCP/UDP Client
  • KURULUMLAR
    • Gereksinimler
    • Windows Kurulum
    • Linux'a Kurulum
    • Başlangıç Parametreleri
Powered by GitBook
On this page
  • Variable Expression
  • Variable Logs
  1. inSCADA Version 2022
  2. Kullanıcı Arayüzü
  3. Development

Expressions

İfadeler

PreviousScript EditorNextRaporlar

Last updated 3 years ago

inSCADA içerisinde javascript dilinde expression'lar yazabilirsiniz. Script'ten farklı olarak expression'lar kullanıldıkları ortamdan parametre alabilmektedir. Kullanılan ortamlar;

  • Variable Expression,

  • Variable Logs,

  • Alarms,

  • Alarm Group On-Off-Ack Actions,

  • Animation Elements.

Expression'lar projeye bağımlı değildir. Yazdığınız Expression'lar tüm projelerde kullanılabilir.

Resim 1'de gösterildiği gibi tüm ifadeleriniz " expressions " ekranında görüntülenmektedir. İfade adı ve/veya açıklamasına göre filtrelendirme yapabilirsiniz. Variable Expression

Variable Expression

Variable expression , gerçek zamanlı verilerinizin belirleyeceğiniz fonksiyona göre işlenmesini sağlamaktadır. Alt kısımda bulunan örnek 1 ve 2 yi inceleyebilirsiniz.

Variable expression, bir değişkenin haberleşme kanalından okuma taraması sırasında çalıştırılır. Bir variable'a ekleyeceğiniz expression, Variable'ın bağlı olduğu Device ve Frame'in tarama periyoduna bağlı olarak çalıştırılır.

Expression'a aktarılan değişkenler;

  • initialValue (Number) ( örnek 1-2 )

  • self (object) ( Örnek 3 )

Resim 2 'de gösterildiği üzere custom olarak yazabileceğiniz gibi, Experssions ekranından da yazdığınız scirptlerinizi variable expression menüsünden seçerek ilgili değişkenin yazdığınız ifadeler üzerinden değer almasını sağlayabilirsiniz.

Resim 2'de görüldüğü gibi bir variable içerisinde custom bir expression yazılmıştır. Yukarıdaki expression tanımında, expression'ların çalıştırıldığı ortamdan parametreler alabildiğinden bahsetmiştik. Resim 2'deki örnekteki yazılan javascript kodunu incelediğimizde "initialValue" isimli bir değişken göreceksiniz. "initialValue" değişkeni sadece Variable içerisinde kullanılabilecek, inSCADA platformu tarafından expression'a gönderilen bir değişkendir. Bu değişken içerisinde , ilgili variable'in değeri bulunmaktadır.

Örnek 1 :

if (initialValue<10) {
    return 1;
}
else 
{
    return 0;
}

Resim 2'deki javascript kodunu incelerseniz, ilgili variable değerinin 10'dan küçük olması durumunda 1, büyük ve eşit olması durumunda 0 değeri olması sağlanmaktadır.

Variable Expression çok güçlü ve kullanışlı bir özelliktir. Geleneksel metotlarda, cihazlardan okunan ham verilerin, scale operasyonundan daha karmaşık ve farklı hesaplamaları için sanal Variables/Tag oluşturmanız akabinde, script'ler yazıp ham değeri okuduğunuz Variables/Tags'dan sanal taglarınıza işlemden geçirip kopyalamanız gerekir. Fakat inSCADA bu tür operasyonlarınız için projenizin takip edilemez içeriklerle doldurmanıza göz yummaz. Size daha güçlü ve kullanışlı olan Variable Expression metodunu sunar.

Aşağıda variable expression için farklı örnekler görebilirsiniz.

Örnek 2 :

// Joule to KCal
var newValue=initialValue/4185.5;
return newValue;

Örnek 3 : Self mantığı örnek 1 ve 2 de gösterildiği gibi yazdığınız bir expression'ı kütüphaneye kaydettiğiniz zaman tüm data çeşitlerine göre farklı çalışmasını sağlanması için kullanılmaktadır. Örneğin data ismi bar olan değişkenlerde farklı, data ismi PSI olan değişkenlerde farklı fonksiyonlar kullanılmasını sağlamaktadır. Örneklerle inceleyelim ;

if (self.name.search("BAR">=0) {
return initialValue*1000; // Convert BAR to mBAR
}

if (self.name.search("PSI">=0) {
return initialValue*69; // Convert PSI to mBAR
}
var datetime=new Date(initialValue);
if (self.name.search("YEAR")>=0 {
return datetime.getYear()+1900;
}

if (self.name.search("MONTH")>=0 {
return datetime.getMonth()+1;
}

Variable Logs

Variable logs'da yazılan expressionlar, sonucu true olduğu durumlarda değişken değerinin veritabanına tarama periyodunda kaydedilmesini sağlar. Expressions ekranından oluşturacağınız ifadelerinizi Resim 3'te gösterildiği üzere variable log type expressions alanından seçebileceğiniz gibi custom olarak da yazabilirsiniz.

Aşağıda variable log'da kullanılabilecek expression örneklerini görebilirsiniz.

if initialValue>100 return true; else false;
if (self.name.search("DAILY")>=0 {
    var dt=ins.now();
    if (dt.getHours()===0 && dt.getMinutes()===0) {
    return true; }
}
return false;
Resim 1 : Expressions HomePage
Resim 2 : Variables Expression / Custom
Resim 3 : Variables Log Custom / Expressions