İçeriğe geç

Değişkenler

Değişken (Variable), inSCADA’daki en temel veri birimidir. Bir sıcaklık ölçümü, bir motor durumu, bir enerji sayacı — her biri bir değişkendir.

Değişken Listesi

Menü: Runtime → Variables → Yeni Değişken

AlanZorunluAçıklama
NameEvetDeğişken adı (proje içinde benzersiz)
TypeEvetVeri tipi
UnitHayırMühendislik birimi (°C, kW, V, A, bar…)
DescriptionHayırAçıklama
Connection / Device / FrameEvetHangi bağlantıya ait
ActiveEvetAktif/pasif
TipAçıklamaÖrnek
FloatOndalıklı sayı25.4, 230.1, 0.95
IntegerTam sayı100, -5, 0
BooleanDoğru/Yanlıştrue, false
StringMetin”Recipe-A”, “Running”
{
"id": 23227,
"name": "ActivePower_kW",
"dsc": "Total active power",
"type": "Float",
"unit": "kW",
"projectId": 153,
"connectionId": 153,
"deviceId": 453,
"frameId": 703,
"isActive": true,
"fractionalDigitCount": 2,
"engZeroScale": 0.0,
"engFullScale": 1000.0,
"logType": "Periodically",
"logPeriod": 10,
"keepLastValues": true,
"valueExpressionType": "CUSTOM",
"valueExpressionCode": "var t = new Date().getTime() / 1000; return (Math.sin(t / 60) * 150 + 450 + Math.random() * 30).toFixed(2) * 1;"
}

Ham (raw) değer, mühendislik değerine lineer dönüşüm ile çevrilir.

ParametreAçıklama
engZeroScaleMühendislik birimi alt sınır
engFullScaleMühendislik birimi üst sınır
rawZeroScaleHam değer alt sınır
rawFullScaleHam değer üst sınır
Eng = engZeroScale + (raw - rawZeroScale) ×
(engFullScale - engZeroScale) / (rawFullScale - rawZeroScale)
ParametreDeğer
rawZeroScale4 (mA)
rawFullScale20 (mA)
engZeroScale0 (°C)
engFullScale100 (°C)
  • Raw: 4mA → Eng: 0°C
  • Raw: 12mA → Eng: 50°C
  • Raw: 20mA → Eng: 100°C
{
"value": 359.91,
"extras": { "raw_value": 606.56 },
"flags": { "scaled": true }
}

value ölçeklenmiş mühendislik değeri, extras.raw_value ham değerdir.


Değişken değerleri zaman serisi veritabanına kaydedilebilir.

TipAçıklama
PeriodicallySabit aralıkla kayıt (logPeriod saniye)
When ChangedYalnızca değer değiştiğinde kayıt
NoneKayıt yok
ParametreAçıklama
logPeriodKayıt periyodu (saniye). 10 = her 10 saniyede bir
logThresholdMinimum değişim eşiği (opsiyonel). Küçük dalgalanmaları filtreler
logMinValue / logMaxValueGeçerli değer aralığı. Dışındaki değerler loglanmaz
keepLastValuesSon değer listesini bellekte tut

fractionalDigitCount gösterilecek ondalık basamak sayısını belirler:

DeğerGösterim
0350
1350.5
2350.48
3350.483

Değişkene özel bir JavaScript formülü atanabilir. Her okuma döngüsünde bu formül çalışır ve sonucu değişkenin değeri olur.

TipAçıklama
NONEExpression yok, ham değer kullanılır
CUSTOMSatır içi JavaScript kodu
REFERENCEPaylaşımlı Expression referansı (space seviyesi)
// Sinüs dalga (ActivePower_kW)
var t = new Date().getTime() / 1000;
return (Math.sin(t / 60) * 150 + 450 + Math.random() * 30).toFixed(2) * 1;
// Fahrenheit → Celsius
var fahrenheit = value; // ham değer
return ((fahrenheit - 32) * 5 / 9).toFixed(1) * 1;
// İki değişkenden verimlilik hesapla
var input = ins.getVariableValue("Input_kW").value;
var output = ins.getVariableValue("Output_kW").value;
if (input > 0) {
return ((output / input) * 100).toFixed(1) * 1;
}
return 0;

Boolean değişkenlere darbe modu atanabilir:

ParametreAçıklama
isPulseOnON darbesi aktif
pulseOnDurationON darbe süresi (ms)
isPulseOffOFF darbesi aktif
pulseOffDurationOFF darbe süresi (ms)

Darbe modu, anlık komut gönderimi için kullanılır (örn: motor start butonu — basıldığında ON, bırakıldığında otomatik OFF).


ParametreAçıklama
setMinValueYazılabilir minimum değer
setMaxValueYazılabilir maksimum değer

Bu parametreler ayarlandığında, aralık dışı yazma komutları reddedilir. Operatör hatalarını önlemek için kullanılır.


// Anlık değer oku
var val = ins.getVariableValue("ActivePower_kW");
// → { value: 359.91, extras: { raw_value: 606.56 }, dateInMs: ... }
// Toplu okuma
var vals = ins.getVariableValues(["ActivePower_kW", "Voltage_V", "Current_A"]);
// Değer yaz
ins.setVariableValue("Temperature_C", {value: 55.0});
// Değişken bilgisi
var info = ins.getVariable("ActivePower_kW");
// → { name: "ActivePower_kW", unit: "kW", type: "Float", logPeriod: 10 ... }

Detaylı API: Variable API → | REST API →