Ana içeriğe geç

Ekran ifadesi işlevleri

Ekran ifadeleri bir ekran nesnesinin özelliğini tarayıcıda hesaplar. Onları Tag Binding penceresinin Advanced sekmesinde yazarsınız (bkz. İfade yazma).

Sinyaller​

BiçimAnlamı
Tags.get('Plant.Tank.Level')Bir sinyalin değeri; tags.get ve Tag.get de çalışır. Ad bir ifade olabilir, örneğin bir CONCAT.
Plant.Tank.LevelAynısı, Tags.get olmadan yazılmış
valueTag to bind altında seçilen sinyalin değeri
#p#Bir sembolün parametresi (bkz. Semboller)

Bir sinyalin bir parçası ada eklenerek okunur:

ParçaDeğer
.qualitySayı olarak kalite
.raw_valueÖlçeklemeden önceki ham değer
.timestampDeğerin zamanı
.source_timeCihazdan gelen zaman
.unitBirim

Örneğin Tags.get('Pump1.Speed.quality').

Değerler​

TürYazılışı
Sayı12, 1.5 (.5 değil, üs yok)
Metin'metin' ya da "metin"; \' bir tırnak yazar
Doğruluk değeritrue, false
Hiçbir şeynull

null, false, 0 ve boş metin bir koşulda yanlış sayılır; geri kalan her şey doğru sayılır.

İşleçler​

En zayıftan en güçlüye:

SıraİşleçlerNot
1OR, ||, |Sol değer doğruysa onu, değilse sağ değeri verir
2XORYalnız bir yan doğruysa doğru
3AND, &&, &Sol doğruysa sağ değeri, değilse yanlış verir
4NOT, !Bir koşulu tersine çevirir
5=, ==, !=, <>, <, <=, >, >=Karşılaştırma; = karşılaştırır, atama yapmaz; === ve !== == ve != gibi çalışır
6+, -Bir yan metinse + metinleri birleştirir
7*, /, %Sıfıra bölme bir şey döndürmez
8Değerden önce -Eksi

Parantezler sırayı değiştirir. İşlev adları ve anahtar sözcükler büyük ya da küçük harfle yazılabilir.

Koşul​

İşlevSonuç
if(koşul, a, b)Koşul doğruysa a, değilse b; IIF de çalışır

a ve b'nin ikisi de hesaplanır.

Metin işlevleri​

İşlevSonuç
FORMAT(şablon, değerler…)Değerler yerleştirilmiş metin: %s metin, %d tam sayı, %f ondalık (%.1f tek ondalık), %% yüzde işareti
CONCAT(a, b, …)Metin olarak birleştirilmiş değerler; hiçbir şey boş metin sayılır
STR(x)Metin olarak x
NUM(x)Sayı olarak x
BOOL(x)Doğruluk değeri olarak x
LEN(s)Karakter sayısı
UPPER(s), LOWER(s), TRIM(s)Büyük harf, küçük harf, iki uçtaki boşluklar olmadan
CONTAINS(s, parça)s parça'yı içeriyorsa doğru
STARTSWITH(s, parça), ENDSWITH(s, parça)s parça ile başlıyor ya da bitiyorsa doğru
REPLACE(s, eski, yeni)Her eski'si yeni ile değiştirilmiş s
SUBSTR(s, başlangıç, bitiş)başlangıç'tan bitiş'e kadar, bitiş hariç karakterler (0'dan sayılır; bitiş isteğe bağlı)

Sayı işlevleri​

İşlevSonuç
ABS(x)İşaretsiz değer
FLOOR(x), CEIL(x)Aşağı yuvarlanmış, yukarı yuvarlanmış
ROUND(x, ondalık)ondalık basamağa yuvarlanmış (yazılmazsa 0)
MIN(a, b, …), MAX(a, b, …)En küçük, en büyük
CLAMP(x, en_az, en_çok)en_az ile en_çok arasında tutulan x
SQRT(x)Karekök
POW(x, y)x üssü y
MAP(x, giriş_en_az, giriş_en_çok, çıkış_en_az, çıkış_en_çok)giriş_en_az…giriş_en_çok aralığından çıkış_en_az…çıkış_en_çok aralığına doğrusal ölçeklenen x. Sonuç çıkış aralığıyla sınırlanmaz; bunun için CLAMP kullanın. giriş_en_az ile giriş_en_çok eşitse sonuç çıkış_en_az olur
LERP(a, b, t)a + (b - a) × t: t = 0 için a, t = 1 için b

Bit işlevi​

İşlevSonuç
BIT(değer, n)değer'in tam kısmının n. biti (0'dan sayılır) 1 ise doğru

Örnekler​

İfadeKullanım
if(value > 80, '#ef4444', '#22c55e')80'in üstünde kırmızı, değilse yeşil
FORMAT('%.1f %s', value, Tags.get('Tank.Level.unit'))Tek ondalıklı değer ve birimi
BIT(Tags.get('Pump1.Status'), 3)Bir durum sözcüğünün 3. biti
CLAMP(value / 10, 0, 100)0 ile 100 arasında tutulan ölçeklenmiş bir değer
CLAMP(MAP(value, 4, 20, 0, 10), 0, 10)4–20 mA sinyalin 0–10 bar olarak gösterimi; 12 mA 5 verir

Bilmekte fayda var​

  • Hesaplanamayan bir ifade bir şey döndürmez ve özellik tasarım değerini korur.
  • BOOL('false') doğrudur: yalnız boş metin yanlış sayılır.