İfadeler
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.

Variable Expression
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)
self (object)

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.
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.
Aşağıda variable expression için farklı örnekler görebilirsiniz.
// Joule to KCal
var newValue=initialValue/4185.5;
return newValue;
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.
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;
Last updated