Meldesystem

| ALPHA-VISION® PMU

# Das Meldesystem in VISION

Das Meldesystem von VISION bietet verfügbare Informationen aus dem Ereignis Archiv struckturiert und übersichtlich an.
Als grobe Struckturierung sind folgende Unterteilungen möglich:

- nach projektierte Datenobjekte -
- Historie aller Ereignisse -
- alle anstehenden Alarme -

Diese Struckturierung kann über Filter beliebig verfeinert werden, auch stehen Sortieroptionen zur Verfügung.

Die Übersichtlichkeit wird durch die Listendarstellung erreicht.

Beispiel einer Meldeliste:
- In Listen kann geblättert werden.
- Listen können gedruckt werden.

  ## Listenaufbau

  Eine Liste besteht aus:

  - Dem Kopfbereich
    Allgemeine Informationen, Spalten Überschriften
  - n Informationszeilen gleichen Aufbaus.
    - Eine Informationszeile wird als Figur mit definierten Informationsabfragen projektiert.
    - Eine Informationszeile kann mehrzeilig sein
  In einem Anwendungsbereich mit definiertem Kopfbereich wird die Figur der Informationszeile als Listeneintrag platziert und sooft wie gewünscht dupliziert. Alle Listeneinträge werden als Listenfeld zusammengefasst. Über einen Cursor-Typ wird dann festgelegt, welche Informationen aus in das Listenfeld übernommen werden sollen.
  Der Cusror-Typ definiert einen Listen-Typ:
  - Ereignisliste
  - Alarmliste
  - Objektliste
  - Sektionsliste
  - Customized Liste

  ## Cursor-Typen

  Folgende Cursor-Typen sind möglich:
  - Ereignis Cursor:

        Crsr_OpenEvnt()     (verbindet zu der Datenbank _EVENTLOG.dbf)

    In einer ungefilterten Ereignisliste wird die Historie aller im System bis zu diesem Zeitpunkt eingelaufenen Ereignisse angezeigt.

    Über Filter und Sortierung kann die Liste qualifiziert werden.

  - Alarm Cursor:

        Crsr_OpenAlarm()     (verbindet zu der Datenbank _EVENTLOG.dbf)

    In einer ungefilterten Alarmliste werden alle aktuell anstehenden Störungen angezeigt.

    Über Filter und Sortierung kann die Liste qualifiziert werden.

  - Objekt Cursor:

        Crsr_OpenObj()     (verbindet zu der Datenbank _EVENTLOG.dbf)

    In einer ungefilterten Objektliste werden alle im System vorhandenen Datenobjekte angezeigt.

    Über Filter und Sortierung kann die Liste qualifiziert werden.

  - Sektions Cursor :

        Crsr_OpenSd()     (verbindet zu der Datenbank _EVENTLOG.dbf)

    In einer Sektion werden die zu dieser Sektionen gehörenden Datenobjekte in ihrem aktuellen Zustand angezeigt
  - Cursor zu dBase kompatible Tabellen: - S o n d e r f a l l -

        Crsr_OpenCstm()             (verbindet zu einer definierten Datenbank)

    Er verbindet, im Unterschied zu den anderen Cursern, zu einer definierten DBase Datenbank, deren Spalten auf Spalten des Listenfeldes dargestellt werden können.
    Es können alle dBase kompatiblen Tabellen dargestellt werden.
    Diese Listen können nicht gefiltert oder sortiert werden.

    ## EVENTLOG - Ereignisarchiv

    In der Regel werden alle für das Meldesystem notwendigen Informationen werden dieser Datenbank _EVENTLOG.dbf entnommen. (Ausnahmen sind spezifiziert.)
    DDas Alpha-Vision Visu System arbeitet ereignisorientiert; d.h. von der SPS werden nur Zustandsänderungen übernommen. Träger dieser Information sind Datenobjekte. Zur Zeit der Projektierung wird festgelegt, ob Zustansänderungen eines Datenobjekts in das EVENTLOG geschrieben werden sollen.
    Das Eventlog ist als Ringbuffer konzipiert, es wird in der Laufzeitumgebung gespeichert.
    Die Größe der Datei wird in der Konfigurationsdatei *.cfg im Register: Default unter Archive size angegeben.
    Die maximale Größe ist 1 GB, sind ca. 3.448.270 Datensätze.
    (ein Datensatz hat 290 bytes; 1 x header=512 bytes)
    Über das Zusatzprogramm ZipArchives kann das Eventlog in definierten Zeitabständen gesichert werden.
    Es kann so eine komplette "History" der Ereignisse archiviert werden.

    ## Filter

    Abhängig der möglichen Eigenschaften von Datenobjekten können Listen gefiltert werden.
    Eigenschaften von Datenobjekten siehe:
    - Eigenschaften aller Datenobjekte
    - Eigenschaften von Messstellen
    - Eigenschaften von Prozessobjekten
    - Eigenschaften von Systemobjekten

        Mögliche Filter siehe:  Inhaltsverzeichnis, alle unter Flt_*  gelisteten Aktionen.

    ## Sortierung

    Die Reihenfolge der Darstellung in einer Liste kann durch Sortierkriterien modifiziert werden

        Mögliche Sortierfolgen siehe: Inhaltsverzeichnis, alle unter Sort_* gelisteten Aktionen.

    ## Drucken

    Listen können
    - Komplett siehe : Usr_PrintPage
    - Seitenweise - fortlaufend siehe : Usr_PrintLine - Prj_CFG Datei
    - Seitenweise - Auswahlseite siehe : Usr_PrintPage
    Gedruckt werden.
    Für den Ausdruck sind Druckformulare notwendig, die im Aufbau und Syntax identisch zur Ausgabe auf dem Bildschirm sind. Wird hinsichtlich der Farbdarstellung und der Zeilenanzahl je Seite kein Unterschied zur Bildschirmanzeige gewünscht, kann in der Regel die definierte Bildschirmseite als Druckformular verwendet werden.
    Um drucken zu können, muß ein Systemobjekt "_PRINT -Beschreibung" definiert sein.
    (über BROWSER/Benutzerdefinierte Systemobjekte prüfen)

    ### Hints & Tips Um in der Projektierung frei von "Druckernamen" zu sein , wird empfohlen, je vorhandenen Drucker ein Systemobjekt, z.B. "PRINTER1" , "PRINTER2" zu generieren und als Beschreibung dann den jeweils aktuellen Druckernamen einzutragen.

    Druckeraufruf in der Projektierung:

        Obj_QueryAttr(PRINTER1(2),Description);                erfragt Druckernamen
        Usr_PushArgs();
        Usr_PrintPage(Form,,)                eingesetzt: Usr_PrintPage(Form,Druckername,Seite)

    Komplette Liste drucken
    Üblicherweise soll für einen solchen Ausdruck die Seite komplett bedruckt werden.
    Um die Anzahl der Zeilen des Druckformulars einer Blattgrösse anzupassen wird ein Anwendungsbereich defnieren, der als Bildbreite (X) die Standardbildbreite (Bearbeiten / Information) hat. Die LÄNGE (Y)wird entsprechend der gewünschten Zeilenanzahl verlängern, oder verkürzt und entsprechend Zeilen angefügt oder gelöscht.
    Seitenweise - fortlaufend drucken
    Die Seiten werden fortlaufend gedruckt, heißt:
    Stehen in einer Liste soviele "neue" Zeilen an um eine komplette Seite zu füllen, wird diese gedruckt -

  - Soll ein Ausdruck erfolgen bevor die Listenseite voll ist, kann dies über: Usr_ForcePrint
    erzwungen werden.
    Für diesen Anwendungstyp muss auf jeden Fall ein eigenes Druckformular, im Beispiel unten"Form", mit der Listenfeld-Anbindung:

        Cstm_Refresh(DBF|_EVENTLOG|DOPRINT);Crsr_OpenCstm(Form,DBF|_EVENTLOG|DOPRINT)

    Erstellt werden.