Showing results 1 to 8 of 8

Thread: Fehler in VBA in CEL schreiben

  1. #1
    Join Date
    13.10.2017
    Posts
    30

    Default Fehler in VBA in CEL schreiben

    Hallo,

    Ich bin durch diesen Beitrag darauf gestoßen das, wenn ein Fehler in VBA passiert, das man das in die CEL schreiben kann.

    https://forum.copadata.com/showthread.php?1608-Individueller-Archiv-Export&highlight=WriteCelString

    Ich habe mir ein Bild mit chronologischer Ereignisliste erstellt. Das Bild heißt einfach VBA_Info.

    Dann habe ich folgenden Code mal ausprobiert, aber es wird nichts in die CEL eingetragen.

    Code:
    strExportFehlerPath = D:\Fehler
     'check if the folder exists
        If obFSO.FolderExists(strExportFehlerPath) = False Then
            'write message to CEL
            thisProject.Cel.WriteCelString ("Folder does not exist: " & strExportFehlerPath)
            Set obFSO = Nothing
            Exit Sub
        End If
    Wie muss für die CEL der Filter eingestellt werden, wenn ich nur die Fehlermeldungen von VBA haben möchte.
    Ich habe leider noch keine Erfahrung mit der CEL gemacht.




    Woran muss ich noch denken, wenn ich die CEL nutzen möchte?

    Vielen Dank

    MfG Tommylik




    Attached Thumbnails Attached Thumbnails CEL.jpg  

  2. #2
    Join Date
    10.12.2007
    Posts
    260

    Default AW: Fehler in VBA in CEL schreiben

    Ab zenon Version 8.20 gibt es Kategorien zum Filtern der CEL Einträge. Da kann man dann eigene Kategorien erstellen und über eine erweiterete VBA Methode (ich glaube CEL.WriteCelStringEx) dann zusätzlich die Kategorie angeben mit der dieser CEL Eintrag erstellt werden soll. Danach kann man dann filtern.

    Davor gibt es keine wirkliche Möglichkeit nach selbst erstellten CEL Einträgen zu filtern. Die beste Möglichkeit ist da vielleicht noch, bei jedem Eintrag einen speziellen Textteil einzufügen nach dem man dann mit dem Textfilter suchen kann (z.B. CEL.WriteCelString "VBA_" & strText -> Textfilter = "VBA_*")

  3. #3
    Join Date
    13.10.2017
    Posts
    30

    Default AW: Fehler in VBA in CEL schreiben

    Hallo mst,

    Vielen Dank für deine Antwort.

    Da habe ich mich falsch aus gedrückt. Ich möchte nicht nach selbst erstellten CEL Einträgen filtern.

    Es geht darum wie man den Filter einstellen muss damit die Fehler angezeigt werden.

    Code:
    thisProject.Cel.WriteCelString ("Folder does not exist: " & strExportFehlerPath)
    Wenn ich das auf alles lasse dann bekomme ich alles angezeigt, ich kann aber nur eins auswählen.

    Click image for larger version

Name:	CEL_2.jpg
Views:	2
Size:	10.6 KB
ID:	3078

    Sind das Warnungen, Meldungen oder Informationen, wenn man durch VBA einen WriteCelString macht?

    Wie wird eigentlich festgelegt das diese Fehlermeldungen durch VBA auf dem Bild angezeigt was ich da neu erstellt habe??


    MfG Tommylik
    Last edited by Tommylik : 24th February 2021 at 11:28

  4. #4
    Join Date
    10.12.2007
    Posts
    260

    Default AW: Fehler in VBA in CEL schreiben

    Naja, aber das ist ja ein selbst erstellter CEL-Eintrag.
    Die Filterung über (Alarm-)Klassen funktioniert nur, wenn der Eintrag durch eine Grenzwertverletzung bzw. Rema kommt und diesem Grenzwert/Remazustand eben diese Alarmklasse zugewiesen ist.
    Aus VBA mit CEL.WriteCelString hast Du aber keine Variable bzw. Grenzwert/Rema die mit diesem Eintrag verbunden wäre, darum erscheint der Eintrag nur ohne Klassenfilter.
    Darum der Hinweis auf einen bestimmten Text, nach dem man filtern könnte.


    Du kannst aber die Funktion CEL.WriteCelStringEx verwenden (siehe Hilfe), dann kannst Du den Eintrag mit einer bestimmmten Alarmgruppe/-klasse erstellen.

    WriteCelStringEx(Status as long, iClass as long, strCelString as string, iGroup as long, szPvName as string, Value as variant)

    Ich weiss nicht ob man die Funktion auch ohne Angabe von Status, Variablennname und Wert (bzw. mit Dummywerten) benutzen kann.

  5. #5
    Join Date
    13.10.2017
    Posts
    30

    Default AW: Fehler in VBA in CEL schreiben

    Hallo mst,

    Vielen Dank für Deine Antwort und entschuldige ich habe Deine 1 Beitrag nicht zu Ende gelesen
    da Du mit 8.20 begonnen hast und ich 8.20 nicht habe.

    Also, wenn ich Dich richtig verstanden habe kann ich also die Seite allgemein ignorieren
    weil ich keine Variable benutze z.B. in Verbindung mit einer REMA die einer Klasse zugewiesen wird.
    Das heißt das ich mit CEL.WriteCelString immer in die CEL schreibe (Ringpuffer)
    aber über die Seite Text im Filter...  mir die Einträge herausfiltern muss.
    Das bedeutet also auch das, wenn ich keinen Text-Filter anwende bleibt die Seite leer?
    Bei meinem Vorhaben wie sollte ich alle Seiten Allgemein, Zeit, ... konfigurieren?
    Mir geht es darum das ich jederzeit mitbekommen kann das VBA einen Fehler gemeldet hat.
    Ich möchte keine MsgBox nutzen.

    Vielen Dank nochmal für Deine Unterstützung.

    MfG Tommylik







  6. #6
    Join Date
    10.12.2007
    Posts
    260

    Default AW: Fehler in VBA in CEL schreiben

    Hallo Tommylik,
    wir haben wohl beide ein bisschen aneinander vorbei geredet. Ich dachte du willst die CEL aufrufen und NUR deine selbst erstellten VBA Fehlermeldungen sehen. Du willst sie aber einfach nur ÜBERHAUPT sehen, oder?
    Wenn Du das CEL Bild ohne Filter (also Alle Alarmgruppen/-klassen/-bereiche, kein Variablenname/-kennunngsfilter usw.) aufrufst, sollten die selbst erstellten Einträge zu sehen sein. Mach Dir doch testweise einen Butten ins CEL Bild mit dem du ein Makro aufrufst, das einen CEL Eintrag schreibt. Dann kannst Du live beobachten wie der Eintrag in die CEL kommt (Liste darf natürlich nicht angehalten aufgeschaltet werden)
    Ach ja, es gibt noch die Projekteinstellung CEL aktiv, die hast Du schon drin oder? Erscheint irgendwas in deiner CEL (z.B. Runtime gestartet)?

  7. #7
    Join Date
    13.10.2017
    Posts
    30

    Default AW: Fehler in VBA in CEL schreiben

    Hallo mst,

    Vielen Dank für deine Antwort.

    Also ich habe es so gemacht wie du gesagt hattest mit dem Button und es funktioniert sehr gut.
    Mit dem eigentlichen Makro funktioniert es jetzt auch.




    Jetzt gibt es noch das Problem, das nach kurzer Zeit die Einträge weg sind.
    Wie bekomme ich es hin das die Einträge nur durch gezieltes löschen aus der CEL entfernt werden können?
    Wenn, ich z.B. mal einen Tag nicht da bin und da passiert etwas dann möchte ich den Eintrag am nächsten Tag noch lesen können.
    Weil sonst nützt es mir ja nichts.
    Welche Vorlage ich verwende für eine CEL ist das eigentlich egal?
    Brauche ich vielleicht einen bestimmten Zeitfilter, damit die Einträge nicht verschwinden?
    Oder liegt es daran das ich Ringpuffer nutze und nicht historische Daten?

    Vielen Dank für deine Hilfe.

    MfG Tommylik




    Attached Thumbnails Attached Thumbnails CEL_Eintrag.JPG  

  8. #8
    Join Date
    10.12.2007
    Posts
    260

    Default AW: Fehler in VBA in CEL schreiben

    Ja das liegt nur an der Verwaltung bzw. Aufteilung der Daten in Ringpuffer und historische Daten (da bin ich auch nicht so glücklich)
    Die Daten werden nicht gelöscht, sie wandern nur vom Ringpuffer in die historischen Daten.
    (Im Allgemeinen wird meistens zum ersten CEL Bildaufruf die Daten aus dem Ringpuffer angezeigt, weil das die aktuellsten sind. Im CEL Bild selbst macht man dann entweder einen allgemeinen bildtypspezifischen "Filter..." Button rein, oder man benutzt einen eigenen Button mit einer zusätzlichen Funktion zur Anzeige historischer Daten)

    Je nachdem was sonst noch alles in die CEL geschrieben wird, kann die Suche nach deinen Einträgen allerdings mühselig sein. Deshalb der Tip mit dem Textprefix und Textfilter

Similar Threads

  1. Uhrzeit auf Variable schreiben
    By Jusufs in forum zenon Service Engine Supervisor
    Replies: 2
    Last Post: 29th November 2017, 00:16
  2. Von VBA auf Treibervariable schreiben
    By marcolehnert in forum VBA
    Replies: 3
    Last Post: 20th August 2012, 12:51
  3. Variblenwert in Variable schreiben
    By zero in forum zenon Service Engine Supervisor
    Replies: 2
    Last Post: 16th January 2012, 11:35
  4. Replies: 4
    Last Post: 9th January 2012, 08:51

Posting Rules

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •