İçeriğe geç

Alarm Yönetimi

Alarm sistemi, değişken değerlerindeki anormal durumları tespit eder, kaydeder ve bildirir. Alarmlar grup halinde organize edilir ve her grup bir projeye bağlıdır.

Alarm Grupları

Alarm grubu, alarm tanımlarını organize eder ve ortak davranış parametrelerini (scan periyodu, öncelik, tetik script’leri, renkler, yazıcı ayarları) belirler.

AlanTipZorunluAçıklama
nameString (≤100)EvetGrup adı
dscString (≤255)HayırAçıklama
scanTimeInMillisInteger (≥100)EvetAlarm kontrol periyodu (ms)
priorityShort (1-255)EvetÖncelik seviyesi
projectIdStringEvetAit olduğu proje

Alarm olaylarında otomatik çalışan script referansları — her biri opsiyoneldir:

AlanAçıklama
onScriptIdAlarm tetiklendiğinde çalışan RepeatableScript
offScriptIdAlarm kapandığında çalışan script
ackScriptIdAlarm onaylandığında çalışan script

Alarm monitöründeki satırların arka planı:

AlanDurum
onNoAckColorON + onaylanmamış
onAckColorON + onaylanmış
offNoAckColorOFF + onaylanmamış
offAckColorOFF + onaylanmış

Renkler #RRGGBB formatında hex olarak saklanır.

Alarm olayları doğrudan ağ yazıcısına gönderilebilir:

AlanAçıklama
printerIpYazıcı IP adresi
printerPortYazıcı port numarası (0-65535)
printWhenOnTetiklendiğinde yazdır
printWhenOffKapandığında yazdır
printWhenAckOnaylandığında yazdır
printWhenCommentYorum eklendiğinde yazdır

Her alarm (Alarm tablosu) üç alt tipten birine ait bir DiscriminatorValue taşır.

AlanTipAçıklama
nameString (≤100)Alarm adı (proje içinde benzersiz)
dscString (≤255)Açıklama
groupIdStringAit olduğu alarm grubu
delayInteger (ms, ≥0)Koşul sağlandıktan sonra beklenen süre (debounce)
isActiveBooleanBu alarm tanımı aktif mi
partString (≤100)Ekipman / hat kodu — raporlama ve filtre için
onTimeVariableIdStringON zamanını yazacak değişken referansı (opsiyonel)
offTimeVariableIdStringOFF zamanını yazacak değişken referansı (opsiyonel)

Sayısal değişkenlerin eşik değerlerini izler. Ek alanlar:

AlanAçıklama
variableIdİzlenen değişken
setPointValueReferans değer (deviation hesabı için)
highHighValueÇok yüksek kritik eşiği
highValueYüksek uyarı eşiği
lowValueDüşük uyarı eşiği
lowLowValueÇok düşük kritik eşiği
deadbandHisterezis (mutlak) — eşikten geri dönüş için bu kadar fark gerekli
deviationPercentagesetPoint’ten yüzde sapma eşiği
EşikÖrnek Koşul
High-HighSıcaklık > 90 °C (kritik)
HighSıcaklık > 70 °C (uyarı)
LowBasınç < 2 bar (uyarı)
Low-LowBasınç < 1 bar (kritik)

Her eşik kullanılmak zorunda değildir — null bırakılırsa o eşik kontrol edilmez. deadband değeri ile alarm titreşimi önlenir.

Boolean değişkenlerin durum değişimini izler.

KoşulDavranış
Değer trueAlarm tetiklenir (ON)
Değer falseAlarm kapanır (OFF)

Örnek: motor arıza sinyali, kapı açık kontağı, acil stop butonu.

JavaScript expression ile özel alarm koşulu tanımlama. Koşul truthy dönerse alarm ON, falsy dönerse OFF olur.

// Birden fazla değişkene bağlı alarm koşulu
var power = ins.getVariableValue("ActivePower_kW").value;
var temp = ins.getVariableValue("Temperature_C").value;
return power > 500 && temp > 70; // her ikisi de yüksekse alarm

Gerçek alarm durumu (FiredAlarmStatus enum) iki değerlidir:

ON (tetiklendi) → OFF (kapandı)

Onay (acknowledge), yorum (comment) ve zorla kapatma (force-off) durumun bir parçası değildir — ayrı alanlar / operasyonlardır:

Alan / İşlemAçıklama
acknowledgeTime / acknowledgedByOperatör onayladığında doldurulur; alarm hâlâ ON olabilir
commentTime / comment / commentedByOperatör yorum eklediğinde doldurulur
forceOff işlemiAlarmı yapay olarak OFF’a çeker; koşul hâlâ doğru olsa bile
offTimeKoşul doğal olarak ortadan kalktığında doldurulur
İşlemTetikleyenDurum Değiştirir mi?
AcknowledgeOperatörHayır (acknowledgeTime dolar)
CommentOperatörHayır (comment + commentTime dolar)
Force OffOperatörEvet (durum ON → OFF’a çekilir)
Sistem’in doğal OFF’a almasıSistemEvet (offTime dolar)
DurumOnayTipik Renk
ONOnaylanmamışKırmızı yanıp söner (onNoAckColor)
ONOnaylanmışKırmızı sabit (onAckColor)
OFFOnaylanmamışSarı (offNoAckColor)
OFFOnaylanmışNormal (offAckColor)

Alarm Monitor

Aktif alarmları gerçek zamanlı olarak gösterir. Operatör bu ekrandan:

  • Alarmları görüntüler
  • Onaylar (Acknowledge)
  • Yorum ekler (Comment)
  • Zorla kapatır (Force Off)

Alarm geçmişini tarih aralığına göre sorgular. Her FiredAlarm kaydı şu alanları içerir:

AlanAçıklama
alarmNameHangi alarm tetiklendi
onTimeTetiklenme zamanı
offTimeKapanma zamanı (null = hâlâ ON)
statusOn / Off
acknowledgedBy / acknowledgeTimeKim, ne zaman onayladı
comment / commentedBy / commentTimeYorum metadatası
variableValueTetiklenme anındaki değişken değeri
partAlarm tanımından miras — filtreleme için

// Son N aktif alarm (OFF olanları hariç tut)
var last10 = ins.getFiredAlarms(0, 10);
// → [{ alarmName: "...", status: "On", onTime: ..., ... }, ...]
// Son N alarm (OFF olanları da dahil)
var last10Full = ins.getFiredAlarms(0, 10, true);
// Tarih aralığında alarm geçmişi (son 24 saat)
var end = ins.now();
var start = ins.getDate(end.getTime() - 86400000);
var history = ins.getFiredAlarmsByDate(start, end, true, 100);
// An itibariyle aktif alarmlar
var current = ins.getCurrentAlarms(false);
// Alarm grubunu devre dışı bırak (bakım modu)
ins.deactivateAlarmGroup("Temperature_Alarms");
// Bakım sonrası tekrar etkinleştir
ins.activateAlarmGroup("Temperature_Alarms");
// Operatör aksiyonları — FiredAlarmDto alır
var latest = ins.getFiredAlarm(0);
if (latest) {
ins.acknowledgeAlarm(latest);
ins.commentAlarm(latest, "Bakım ekibi haberdar edildi");
// ins.forceOffAlarm(latest); // zorla kapatmak için
}
// Alarm durumu
var groupStatus = ins.getAlarmGroupStatus("Temperature_Alarms");
// → "Active" veya "Not Active"

Detaylı API: Alarm API → | REST API Reference → (Alarm Group, Analog Alarm, Digital Alarm, Custom Alarm, Fired Alarm, Alarm Controller Facade grupları)