Yazılım | Örnek Uygulamalar | Destek | İletişim

 

LOGGER verileri belirli aralıklarla değer ve zaman damgası olarak veri-tabanına loglayan zaman-tabanlı bir sistemdir....

Şartlı Eşitsizlikler

Sinyal karşılığı olmayan, fakat diğer verilerden türetilebilen verileri LOGGER'da kolaylıkla oluşturabilirsiniz. LOGGER’ın “Şartlı Eşitlikler” özelliği, mevcut bulunan sinyallerin değerlerini kullanarak, olmayan bir sinyali türetme imkanı sunmaktadır. Böylece bağımsız verilerin değerleri izlenerek, bu verilere bağımlı fakat sinyal karşılığı olmayan yepyeni bir veri türetilebilir.

LOGGER’ın bu özelliğini anlamak ilk bakışta biraz zor görünebilir. Fakat aslında çok basit bir temele dayanmaktadır ve bir kez anlaşıldıktan sonra eşitsizlikleri kurmak sadece dakikalar alacaktır.
Yeni oluşturulmak istenen verinin türetileceği ve cihazlardan okunan veriler iki nokta üst üste (:) ile ayrılacak şekilde Değer Belirteci sütununa yan yana dizilmiş bir şekilde girilmelidir. Verilerle ilgili şartlı eşitsizliklerin yazılacağı fonksiyon bloğu FUNC[şartlı eşitlik satırı] ibaresi kullanılarak aşağıdaki gibi girilmelidir:

x:y:FUNC[şartlı eşitlik satırı]

Bu satırda ilk sırada girilen değer eşitsizlik bloğunun içinde v1, ikinci sırada girilen değer v2, üçüncü sırada girilen değer v3,…. vs. olarak otomatik olarak adlandırılacaktır.

Örneğin, okunan verinin değerine göre 0 veya 1 (aç/kapa) değerlerini alabilen yeni bir veri türetelim. Diyelim ki verimizi bir kağıtsız yazıcının birinci kaleminden okuyoruz ve bu kalem 6337 nolu kayıt defterine (register) karşılık gelmektedir. Okunan değer 5’in altında ise türetmek istediğimiz veri 0 (kapalı), üstünde ise 1 (açık) değerini alsın. Değer belirtecine aşağıdaki ifadeyi yazmamız yeterli olacaktır:

R0#6337:FUNC[v1gt5eq1;else0]

Şartlı eşitsizlikler bloğunun kabul ettiği parametreler aşağıda listelenmiştir:

• gt: büyüktür
• ge: büyük ve eşittir
• lt: küçüktür
• le: küçük ve eşittir
• et, eq: eşittir
• ne: eşit değildir
• bt: arasındadır
• br: arasında ve sağa eşittir
• bl: arasında ve sola eşittir
• bb: arasında ve iki tarafa eşittir
• nd: AND bağlama
• or: OR bağlama
• else: diğer durumlardaki değer

ÖRNEK 1:
R0#6337:FUNC[v1gt5eq1;else0]

MODBUS cihazı olarak ilk sırada girilmiş cihazın 6337 nolu adresli kayıt defterinden (register) okunan değer v1 olarak adlandırılmıştır. Fonksiyon bloğunun içerisindeki eşitlik satırına göre, eğer bu v1 değeri 5’den büyükse (gt: büyüktür), sonuç 1 olacak aksi bütün durumlarda değer 0 olacaktır.

ÖRNEK 2:
R0#10:FUNC[v1bt5_200orv1gt400eq7;v1bb200_400eq10;else0]

MODBUS cihazı olarak ilk sırada girilmiş cihazın 10 nolu adresli kayıt defterinden (register) okunan değer v1 olarak adlandırılmıştır. Fonksiyon bloğunun içerisindeki eşitlik satırına göre,

v1bt5_200orv1gt400eq7 : v1 değeri 5 ile 20 arasında (bt: arasındadır) veya (or: OR bağlama) v1 değeri 400’den büyük ise (gt: büyüktür) sonuç 7 olacak;

v1bb200_400eq10 : v1 değeri 200 ile 400 arasında (bb: arasında ve iki tarafa eşittir) sonuç 10 olacak;

else20 : aksi bütün durumlarda sonuç 0 olacaktır.

ÖRNEK 3:
R0#6: R1#8:FUNC[v1lt5ndv2lt5eq0; v1gt5ndv2gt5eq10;else-1]

MODBUS cihazı olarak ilk sırada girilmiş cihazın 6 nolu adresli kayıt defterinden (register) okunan değer v1, ikinci sırada girilmiş cihazın 8 nolu adresli kayıt defterinden (register) okunan değer ise v2 olarak adlandırılmıştır. Fonksiyon bloğunun içerisindeki eşitlik satırına göre,

v1lt5ndv2lt5eq0 : hem v1 ve (nd: AND bağlama) hem de v2 değerleri 5’in altında (lt: küçüktür) ise sonuç 0 olacak;

v1gt5ndv2gt5eq10 : hem v1 ve (nd: AND bağlama) hem de v2 değerleri 5’in üstünde ve eşit (le: küçük ve eşittir) ise sonuç 10 olacak;

else-1 : aksi bütün durumlarda sonuç -1 olacaktır.