WinCC Flexible: Analog Alarm


Mint tudjuk a ProTool és WinCC Flexible képes üzeneteket megjeleníteni. Ezek az üzenetek egy-egy logikai két állapotú PLC változóhoz vannak hozzárendelve. Amikor egy ilyen logikai változó 1 állapotú lesz (TRUE) a hozzá rendelt üzenet bekerül egy listába (Alarm list) amit meg lehet jeleníteni.
Ezzel egyszerűen jelezhetünk ki szöveges üzeneteket a berendezés működése során keletkező hibákról.
A WinCC Flexible az ilyen üzeneteket diszkrét alarmoknak nevezi. Erről bővebb információ a "WinCC Flexible és az üzenetek" c. írásban található.
Azonban létezik az alarmoknak egy másik típusa is, az Analog Alarms.

A neve beszédes, gondolom nem nehéz kitalálni, hogy ezekkel értékhatárok átlépését lehet jelezni. Ha egy rendszerben sok a mérés (pl. sok analóg bemenet van, vagy pozícionálás) tehát sok számmal kell dolgozni, nem csak bináris TRUE/FALSE állapotokkal, akkor az analóg alarm egy hasznos lehetőséggé válik.
Az Analog alarm lehetőség híjján a PLC programban kellene összehasonlítani az értékeket a limittel és megfelelő reláció teljesülésekor egy olyan bitet bekapcsolni, amelyikhez egy diszkrét alarm van hozzárendelve.
Az igazság az, hogy ezt most is pontosan így meg kell tennünk abban az esetben, ha az adott limit átlépésekor az üzenet megjelenítésén túl valamilyen más intézkedést is tenni kell (berendezés leállítása, jelzőlámpa , hangjelzés bekapcsolása, stb, stb). De ha a teendő csak annyi, hogy egy figyelmeztető üzenet jelenjen meg ami bekerül a hibanaplóba is, akkor az analóg alarmot nekünk találták ki.
Nézzük milyen lehetőségek is vannak az analog alarmban:



Egy sor, egy üzenet, ahogy a diszkrét alarmoknál megszokhattuk.
Text
Az üzenet szövege, ami akkor jelenik meg, amikor a beállított limitet a megadott érték átlépte (a beállításokat lásd alább)
Number
Az üzenet száma. Itt arra kell figyelni, hogy az Analog Alarms-nál a számozás 1-től újrakezdődik. Tehát ha használunk diszkrét alarmokat is, akkor azonos számmal több üzenet is lehet, amit (szerintem) jobb elkerülni. Ha a Number mezőben átírjuk az üzenet számát, akkor a további (később létrehozott) üzenetek számát egyesével onnantól növeli.
Class
Osztály. Az üzenet "hovatartozását" lehet szeparálni vele. Erről részletesebb leírás a már említett "WinCC Flexible és az üzenetek" c. írásban található
Trigger tag
Az a változó, amelyiknek az tartalmát figyelni kell. Értelemszerűen ez egy olyan változó lehet, amelyik nem két állapotú logikai (boolean) típusú
Limit
A határérték. Ha a Trigger tag ezt az értéket átlépi, akkor az üzenet aktiválódik
Trigger mode
A limit átlépés módját adhatjuk meg vele.
On rising edge: felfutó élre érzékeny. Ilyenkor az üzenet akkor jelenik meg, amikor a Trigger tag értéke nagyobb lesz a Limit-nél megadott értéknél
On falling edge: lefutó élre érzékeny. Az üzenet akkor jelenik meg, ha a Trigger tag értéke kisebb lesz a Limit-nél megadott értéknél
Példa:
Ha a Limit 200, a Trigger mode pedig On rising edge, és a DB1.VAR1 értéke 200 fölé növekszik, akkor megjelenik (érkezik) a hozzá rendelt üzenet:

Amikor a DB1.VAR1 értéke 200 alá csökken, az üzenet "elmegy". Vagyis kapunk egy üzenetet arról, hogy a hibaállapot megszűnt. (Ahogy a diszkrét alarmoknál is)

Hogy az üzenet éppen aktiválódott (jött) vagy inaktiválódott (ment) azt a C és (C)D jelzi.
Ha a Trigger mode On falling edge beállítású, akkor a helyzet fordított lesz.

Ha egy érték változásához több üzenetet (limitet) is hozzá szeretnénk rendelni (pl. túl alacsony, meg túl magas) akkor ugyanarra a változóra több üzenetet kell létrehoznunk eltérő limit beállításokkal (és természetesen eltérő üzenet szövegekkel).

További beállítások:
Külön figyelmet érdemel az analog alarmok Trigger beállítása:



Itt látható ugyanaz a Limit, Trigger tag és Trigger mode beállítás, ami a táblázatban is. Ezért ezekre újra nem térek ki.
A Delay beállítással késleltethető az üzenet megjelenítése. Ez annyit jelent, hogy az üzenet csak akkor fog megjelenni, ha Trigger tag értéke folyamatosan minimum ennyi ideig a limiten túl van.

A Hysteresis beállítás kissé kacifántosabb.
Amennyiben az Use mezőben nem Off beállítás van, akkor a hiszterézis hatásos.
A hiszterézis egy általunk meghatározható sáv, amit a WinCC Flex a trigger tag értékére alkalmaz a következőképpen:
Az üzenet megjelenítéséhez a Trigger tag értékváltozásának teljes egészében át kell haladnia a hiszterézisben megadott sávon, az üzenet megszűnéséhez pedig ismét teljesen át kell haladnia ezen a sávon, de ekkor természetesen fordított irányban.
Három beállítása van (az Off-ot nem számítva):

On "deactivated"
Az üzenet aktív lesz, amikor az érték eléri a limitet. Inaktívvá azonban csak akkor válik, ha a limit alá csükken a hiszterézisben megadott "távolságra"


On "activated"
Az üzenet akkor lesz aktív, ha a hiszterézissel növelt limit érték fölé növekszik az érték, és akkor válik inaktívvá, amikor újra a limit alá csökken


On "activated and deactivated"
Az üzenet akkor lesz aktív, ha a hiszterézissel növelt limit érték fölé növekszik az érték, és akkor válik inaktívvá, amikor a hiszterézissel csökkentett limit alá csökken.


Mindhárom fenti példa Trigger mode beállítása: On rising edge. (On falling edge beállítás mindent megfordít).

Már a fentiekből is kiderült, hogy a hiszterézis sávot nekünk kell megadnunk egy számmal. Ezt a Hysteresis mezőben tehetjük meg, de hogy ne legyen annyira egyszerű, ennek az értéknek kétféle értelmezése lehet, ami az alatta lévő Hysteresis % kapcsoló állapotától függ.
Kikapcsolva:
A hiszterézis értéke a Trigger tag abszolút értékére vonatkozik.
Ha pl. ide 40-et írink, akkor a hiszterézis sáv szélessége 40 lesz (On "activated and deactivated" esetén 2x40)
Bekapcsolva
A hiszterézis értéke a limit beállítás százaléka lesz
Ha pl. ide 40-et írunk és a Limit értéke 1000, akkor a hiszterézis sáv 400 lesz (az 1000 40%-a) (On "activated and deactivated" esetén 2x400)

Limit megadása változóval és az érték kijelzése az üzenet szövegében 
A Limit, amit a HMI figyel nem csak konstans lehet amit fixen adtunk meg a projectben, hanem változó is. Hasznos pl. amikor azt akarjuk figyelni hogy egyik mért érték meghalad egy másik mért értéket, vagy azt szeretnénk, hogy a figyelt limit menet közben is állítható legyen.



Limitet át kell állítani Tag-re és a szokásos módon kiválasztani egy változót a listából.

Az üzenet szövegébe kiírathatunk bármilyen változóértéket is.
Az üzenetben a változónak az az értéke fog szerepelni amennyit akkor tartalmazott, amikor az üzenet keletkezett. Limit figyelésnél célszerűen a megfigyelt változó értékét érdemes az üzenetbe tenni.
Hiszen ha a limit is változó és azt megváltoztatják üzem közben, de nem tudjuk mikor történt a módosítás, az üzenetekben szereplő értékek elárulják hogy mekkora lehetett a határérték. Persze magát a limitet is beletehetjük az üzenetbe, ettől már teljesen egyértelmű lesz hogy mi mennyi volt amikor az üzenet keletkezett. Akár több érték kijelzését is bele lehet tenni egy üzenetbe.
Menjünk az üzenetekhez és a kívánt üzenet beállításainál a General ablakban az üzenet szövegét tartalmazó mező végén kattintsunk a fekete háromszögre:



Ebből kiderül, hogy nem csak a változó (TAG) értékét tehet beletenni az üzenetbe, hanem egy textlist szerinti értékfüggő szöveget.
Az érték kijelzése futtatáskor az Alarm view ablakban alábbi lesz:



Megjegyzés: Az üzenet természetesen akkor is megjelenik (vagy eltűnik) ha a határt nem a mért érték változása, hanem a limit változása miatt lépi át!

Mire is jó ez az egész hókuszpókusz az időzítéssel, és a hiszterézissel?

Tegyük fel az a feladat, hogy mérési eredmények érték átlépését figyeljük és átlépésénél figyelmeztető jelzést adjunk.
Mi sem egyszerűbb, kell egy összehasonlítás. Ha a mért érték nagyobb mint a limit, akkor figyelmeztetés aktív. Ha kisebb vagy egyenlő, akkor inaktív.
Pl. ha egy mért hőmérséklet meghaladja a 20 C fokot, akkor keletkezzen egy üzenet.
Sajnos az analóg jelekre és így a mérésekre általában igaz, hogy a beolvasott érték ingadozik. Még akkor is, ha egyébként a fizikai mennyiség stabil (pl. a mért érték legkisebb bitje billeg ide-oda 0 és 1 között, amikor az A/D átalakító "nem tudja eldönteni" hogy melyikhez áll közelebb :)
Ha a mért érték is ingadozik, akkor a probléma fokozottabban jelentkezik.
Ja igen, a probléma:

Ha a mért érték éppen a limit közelében ingadozik, akkor rengeteg üzenetet fogunk kapni:


Az üzenet késleltetésével és a hiszterézis alkalmazásával ez elkerülhető.

Megjegyzés:
Mindenképpen szükség van arra hogy ha a berendezés valamilyen probléma miatt leáll, vagy üzem közben nem kívánt körülmény alakul ki, akkor azt közölje a rendszer a felhasználóval (kezelővel). A HMI rendszerek egyik lényege ez. Az ilyen közlések lehetővé teszik, hogy az állás idő rövidebb legyen (hamarabb megtalálják a leállás okát) és lehetővé teszi hogy a kezelő beavatkozhasson, mielőtt nagyobb baj történik.
De legyünk körültekintőek a hibajelzésekkel! Ha valaki túl gyakran kiált farkast, később már nem hisznek neki.
Ha a rendszerünk túlságosan érzékeny és gyakran jelez hibát, amikor arra nincs igazán nyomós oka, akkor a jelzések érdektelenné válnak, a kezelőt bosszantják, aki ezért nem foglalkozik velük, sapkát húz a villogó hibajelző lámpára, kesztyűvel tömi be a kürtöt, stb.

Kapcsolódó írások:
WinCC Flexible és az üzenetek
Siemens operátorpanelek programozása


Szirty