Ana içeriğe geç

Dahili sinyal ifade söz dizimi

Bir ifade sinyali değerini başka sinyallerden bir formülle hesaplar, örneğin {T101.Level} * 0.01 * 120. Sunucu onu girdilerinden biri her değiştiğinde değerlendirir. Nasıl oluşturulduğu Dahili sinyaller sayfasında anlatılır.

Ekranlarda nesneleri canlandıran ifadeler başka bir söz dizimi kullanır; bu sayfa yalnız ifade sinyalleri için geçerlidir.

Sinyal başvuruları​

BiçimÖrnekNot
Süslü parantezde{Line1.Pump1.Current}Her zaman çalışır; rakamla başlayan yol parçaları için de, örneğin {1A.Feeder}
Çıplak yolLine1.Pump1.CurrentHarfle ya da _ ile başlamalıdır

Bir yol, noktalarla ayrılmış harf, rakam ve _ parçalarından oluşur. Hemen ardından ( gelen bir ad sinyal değil işlevdir. Bir ifade kendi sinyaline başvuramaz.

Sabitler​

TürÖrnekler
Sayı12, 1.5, .5, 1.5e3
Metin'AUTO', "AUTO" (kaçış karakteri yok)
Mantıksaltrue, false (büyük-küçük harf fark etmez)

İşleçler​

En düşük öncelikten en yükseğe:

ÖncelikİşleçlerAnlamı
1or, ||Mantıksal veya
2and, &&Mantıksal ve
3not, !Mantıksal değil
4==, !=, <, <=, >, >=Karşılaştırma
5+, -Toplama, çıkarma; metinle + metinleri birleştirir
6*, /, %Çarpma, bölme, kalan
7- (önde)Negatif değer

not bir karşılaştırmadan daha gevşek bağlanır: not {A} == 1, not ({A} == 1) demektir. Emin değilseniz parantez kullanın.

İşlevler​

İşlev adları büyük-küçük harf fark etmeden yazılabilir.

İşlevBağımsız değişkenSonuç
if(c, a, b)tam 3c doğruysa a, değilse b; yalnız seçilen dal hesaplanır
min(x, …)1 ya da daha çokEn küçük değer
max(x, …)1 ya da daha çokEn büyük değer
abs(x)1Mutlak değer
floor(x)1Aşağı yuvarlanmış
ceil(x)1Yukarı yuvarlanmış
round(x), round(x, n)1 ya da 2n ondalığa yuvarlanmış (varsayılan 0, en çok 15)

Tip kuralları​

  • Hesaplamalarda mantıksal değer 1 ya da 0 sayılır, metin sayı olarak okunur. Sayı olmayan bir metin hatadır.
  • İki metin alfabetik karşılaştırılır; aksi halde değerler sayı olarak karşılaştırılır. Bir metin sayı olarak okunamazsa == yanlış, != doğrudur.
  • Koşul olarak bir sayı 0 değilse, bir metin boş, 0 ya da false değilse doğrudur.
  • Sonuç sinyalin veri tipine çevrilir. Tam sayı tipleri yuvarlar; tipin aralığı dışındaki bir sonuç hata sayılır.

Eksik ve kötü girdiler​

  • Herhangi bir girdinin değeri yoksa ya da kalitesi kötüyse ifade hesaplanmaz. Sinyal son iyi değerini Bad kalitesiyle korur ya da hiç değeri olmadıysa değersiz kalır. Bu, if'in kullanılmayan dalındakiler dahil tüm girdiler için geçerlidir.
  • Sıfıra bölme ya da sıfıra göre kalan ve sonlu sayı olmayan bir sonuç da aynı etkiyle hata sayılır.

Sınırlar​

SınırDeğer
İfadenin uzunluğu4096 karakter
Farklı girdi sinyali64
İç içe parantez ve işlev32 düzey
Formülün derinliği64 düzey, örneğin tek zincirde 63 işleç

Hatalar​

Konfigürasyon editörü ifadeyi, konfigürasyonu doğruladığınızda ya da uyguladığınızda denetler. İleti karakter konumunu ve sorunu belirtir, örneğin 12. karakterde bilinmeyen bir sqrt işlevi.