İçeriğe geç
Proxus 2.0.0 Proxus 2.0: Proxus tarihinin en büyük sürümü Sürüm notları

Başvuru · Mühendisler için

Kural ifadeleri

Kural koşulunda her olay türü için kullanılabilen alanlar, işleçler ve fonksiyonlar. Örneklerin tamamı kural motorunda test edilmiştir.

Alarm kuralının koşulu tek bir ifadeden oluşur. Edge Gateway bu ifadeyi, kuralın izlediği türdeki her olayda (kuraldaki Olay alanı) kontrol eder ve ifade doğru olduğunda kural tetiklenir. İfadeyi kuralın koşul düzenleyicisinde bir cümle gibi kurabilir ya da İfade altında metin olarak yazabilirsiniz. İki yol da aynı ifadeyi üretir; cümlenin söyleyebildiği bir ifade yazdığınızda düzenleyici cümleye geri dönebilir. Bkz. Alarm kuralı oluşturun.

Aşağıdaki tablolarda, Edge Gateway'in her olayda kurala aktardığı alanlar yer alır. Alan adlarında büyük ve küçük harf ayrımı vardır. Metin değerleri tek tırnak içinde yazılır.

İşleçler ve fonksiyonlar

  • Karşılaştırma: =, ==, <>, !=, <, <=, >, >=.
  • Birleştirme: AND (ya da &&), OR (ya da ||), NOT ve parantez ( ).
  • Aritmetik: +, -, *, /.
  • Aşağıdaki örneklerde geçen fonksiyonlar: Contains(Field, 'text'), Abs(x), ToDouble(text).
  • Liste içinde arama: [List][condition] ifadesi, listedeki öğelerden en az biri koşulu sağladığında doğru olur.

Veri alındığında

Her mesaj, bir cihazın belirli bir anda gönderdiği değerleri içerir.

AlanAçıklama
TopicCihaz kimliği (ID).
[Payload]Mesajdaki veri noktası değerlerinin listesi. Her öğede şu alanlar bulunur: Key (veri noktası adı), NumericValue (sayı olarak değer), Value (metin olarak değer), PreviousValue (metin olarak önceki değer), Unit, Type, Quality (Good, Bad, Uncertain), Time ve PreviousValueTime.
[MetaData]Cihazın konumu. Öğelerde Key ve Value alanları bulunur. Anahtarlar şunlardır: DeviceId, DeviceName, Enterprise, Site, Area, ProcessCell, EquipmentModule.
[Attributes]Cihaza tanımlı öznitelikler. Öğelerde Key ve Value alanları bulunur.

Veri noktası her zaman [Payload][...] içinde kontrol edilir. Veri noktasının adı ve koşulu aynı köşeli parantezin içine yazılır. Sayıları Value ile değil, NumericValue ile karşılaştırın, çünkü Value metindir. Mesajda yalnızca cihazın o anda okuduğu veri noktaları bulunur. Bu yüzden iki veri noktasına bakan bir koşul, ancak ikisi de aynı mesajdaysa sağlanabilir.

[Payload][Key = 'Temperature' AND NumericValue > 28]

Belirli bir aralığın dışına çıkan veri noktası:

[Payload][Key = 'Voltage' AND (NumericValue < 215 OR NumericValue > 245)]

Adıyla seçilen tek bir cihaz:

[MetaData][Key = 'DeviceName' AND Value = 'MFB_LYS_TUNNEL_OVEN'] AND [Payload][Key = 'Zone1Temp' AND NumericValue > 200]

Adında belirli bir sözcük geçen tüm cihazlar:

[MetaData][Key = 'DeviceName' AND Contains(Value, 'PowerGenerator')] AND [Payload][Key = 'Temperature' AND NumericValue > 85]

Önceki okumaya göre 5'ten fazla sıçrama:

[Payload][Key = 'Pressure' AND Abs(NumericValue - ToDouble(PreviousValue)) > 5]

Önceki okumaya göre %10'dan fazla artış:

[Payload][Key = 'FillRate' AND ToDouble(PreviousValue) <> 0 AND (NumericValue - ToDouble(PreviousValue)) / ToDouble(PreviousValue) > 0.10]

Biri NOT ile tersine çevrilmiş birden çok koşul:

[Topic] = 'Device123' AND [Payload][Key = 'Pressure' AND NumericValue > 100] AND NOT [Payload][Key = 'Temperature' AND NumericValue < 25]

İki cihaz özniteliği:

[Attributes][Key = 'Location' AND Value = 'FactoryA'] AND [Attributes][Key = 'Priority' AND Value = 'High']

Durum değiştiğinde

AlanAçıklama
DeviceId, DeviceNameCihaz.
CurrentConnectionStatusUnknown, Connected ya da Disconnected (veya 0, 1, 2).
PreviousConnectionStatusDeğişiklikten önceki durum.
ConnectionDurationÖnceki durumun saniye cinsinden süresi.
CurrentConnectionStatus = 'Disconnected'

Bağlantısı bir dakikadan kısa süre kopup geri gelen cihaz:

CurrentConnectionStatus = 'Connected' AND PreviousConnectionStatus = 'Disconnected' AND ConnectionDuration < 60

Günlük alındığında

AlanAçıklama
Time, Level, Source, Category, MessageKaydın zamanı, önem düzeyi (örneğin Warning, Error, Critical), kaydı yazan Edge Gateway, Edge Gateway'in ilgili bölümü ve kayıt metni.
ReasonCodeOlay türünü belirten sabit kod. Yalnızca ürünün kod atadığı olaylarda bulunur. Message metniyle eşleştirmek yerine bu alanı kullanın.
EventId, CorrelationId, Operation, EntityType, EntityId, Fingerprint, OccurrenceCount, DiagnosticVarsa ek ayrıntılar.
Level = 'Critical' OR Level = 'Error'
Level == 'Error' && Contains(Category, 'FieldbusActor')

Kural motorunun ve bildirim hizmetinin kendi yazdığı günlük kayıtları alarm kurallarına aktarılmaz.

Metrikler alındığında

Bu olay bir cihazın okuma istatistiklerini taşır ve her okuma döngüsünden sonra gönderilir.

AlanAçıklama
DeviceCihaz.
TotalRequests, SuccessfulRequests, FailedRequests, ResponseCountO ana kadar yapılan okuma istekleri.
ReadErrorCount, ConnectionErrorCount, ReadErrorPercentageO ana kadarki hatalar ve başarısız okumaların yüzdesi.
AverageResponseTimeCihazın ortalama yanıt süresi.
LastCommunicationTime, LastDataReceivedTimeCihazın en son yanıt verdiği ve en son veri gönderdiği zaman.
TotalDataReceived, ProcessedDataCount, SleepModeTransitionCountSayaçlar.
DataAccuracy, DataCompleteness, DataFreshness, DataIntegrity, DataConsistencyVeri kalitesi puanları.
ReadErrorPercentage > 10
FailedRequests > 100 && ReadErrorPercentage > 20
DataAccuracy < 80

Sık yapılan hatalar

YazılanSorunDoğrusu
[Temperature] > 80Veri noktaları mesajın alanları değildir.[Payload][Key = 'Temperature' AND NumericValue > 80]
[Payload][Key = 'Temperature' AND Value > 80]Value metindir.NumericValue > 80
[Payload][Key = 'A'] AND [Payload][NumericValue > 5]İki parça, iki farklı veri noktasıyla eşleşebilir.Adı ve koşulu aynı köşeli paranteze yazın: [Payload][Key = 'A' AND NumericValue > 5]

Edge Gateway'in çözümleyemediği bir ifade hiçbir zaman eşleşmez. Bu durumda kuralın Günlükler kayıtlarında ölçütlerin derlenemediğini bildiren bir kayıt görünür.

Sonraki adımlar

Bu sayfa işinize yaradı mı?

Proxus'u değerlendiriyor musunuz? 30 dakikalık teknik görüşmede kendi makinelerinizle görün.