İçeriğe geç

Trend API

Trend API; platformdaki trend tanımlarını ve bunlara bağlı tag’leri (trend üzerindeki her bir değişken/çizgi) listeler, runtime’da tag ölçeğini değiştirmeye izin verir.

Projedeki tüm trend tanımlarını döner — Collection<TrendResponseDto>.

var trends = ins.getTrends();
trends.forEach(function(t) {
ins.consoleLog(t.getName() + " period=" + t.getPeriod() + "ms");
});
MetodTürAçıklama
getName()StringTrend adı
getDsc()StringAçıklama
getPeriod()IntegerÖrnekleme periyodu (ms)
getOrder()IntegerUI listesindeki sıra
getConfigs()StringSerileşmiş görünüm ayarları (JSON string)
getProjectId()StringProje ID

Verilen trend ID’ye bağlı tüm tag’leri döner — Collection<TrendTagResponseDto>.

// Trend ID'yi ad üzerinden bul
var trends = ins.getTrends();
var target = null;
trends.forEach(function(t) {
if (t.getName() == "Power Trend") target = t;
});
if (target) {
var tags = ins.getTrendTags(target.getBaseId());
tags.forEach(function(tag) {
ins.consoleLog(tag.getVariableName() + " [" + tag.getMinScale() + ", " + tag.getMaxScale() + "]");
});
}
MetodTürAçıklama
getName()StringTag adı
getDsc()StringAçıklama
getStatus()BooleanTag aktif mi
getOrder()IntegerTrend içi sıra
getVariableName() / getVariableUnit()StringBağlı değişken adı ve birimi
getVariableId() / getTrendId()StringReferans ID’ler
getMinScale() / getMaxScale()DoubleY ekseni ölçek alt/üst sınırı
getColor()StringÇizgi rengi (hex)
getThickness()IntegerÇizgi kalınlığı
getGridThickness()DoubleGrid kalınlığı
getHideValueAxe()BooleanDeğer ekseni gizlensin mi

ins.setTrendTagMinMaxScale(trendName, tagName, minScale, maxScale)

Section titled “ins.setTrendTagMinMaxScale(trendName, tagName, minScale, maxScale)”

Belirli bir trend tag’inin Y ekseni ölçek alt/üst sınırını günceller. Trend, bu değerleri bir sonraki render’dan itibaren yeni aralıkla çizer.

ins.setTrendTagMinMaxScale("Power Trend", "ActivePower_kW", 0.0, 500.0);

Örnek: Son 1 Saatlik Veriye Göre Otomatik Ölçek

Section titled “Örnek: Son 1 Saatlik Veriye Göre Otomatik Ölçek”

Trend’in y eksen aralığını son 1 saatteki gerçek veri aralığına %10 pay bırakarak dinamik ayarla.

function main() {
var end = ins.now();
var start = ins.getDate(end.getTime() - 3600000);
var stats = ins.getLoggedVariableValueStats(["ActivePower_kW"], start, end);
var s = stats.ActivePower_kW;
if (!s) return;
var margin = (s.getMaxValue() - s.getMinValue()) * 0.1;
ins.setTrendTagMinMaxScale(
"Power Trend", "ActivePower_kW",
s.getMinValue() - margin,
s.getMaxValue() + margin
);
}
main();