Skip to main content

Beispiel: Verwenden der Bibliothek VisuTrendStorageAccess

Produkt: CODESYS Visualization

Das Beispielprojekt TrendStorage API Example.project veranschaulicht mit einer Visualisierung, wie mit Verwendung der Bibliothek VisuTrendStorageAccess das Lesen von Trenddaten funktioniert.

Für weitere Informationen zum Trendelement siehe: Visualisierungselement: Trend

Beschreibung

In diesem Beispiel werden Trenddaten vom Trendaufzeichnungsmanager gespeichert und anschließend mittels ST-Code von der API VisuTrendStorageAccess ausgelesen. Das ermöglicht die Abfrage historischer Daten. Ausserem können die Trenddaten exportiert werden.

Im Beispielprojekt TrendStorage API Example.project sind vier Tasks definiert:

  • Die Standardtask ruft das Programm PLC_PRG auf, um Daten zu simulieren.

  • Die simulierten Daten werden von der Task TrendRecordingTask und der Komponente "Trend Recording Manager" in einer Datenbank gespeichert.

  • Die Task VISU_TASK ist für die Aktualisierung der Visualisierung zuständig.

  • Das eigentliche Lesen der Trenddaten erfolgt in der Task Task200ms, dem Programm TrendStorageAPI_TestProg und dem Funktionsbaustein TrendStorageReader.

Die Schnittstelle ITrendStorageWriterListener dient der aktiven Benachrichtigung über neue Daten.

Zu diesem Zweck implementiert der Funktionsbaustein TrendStorageWriterListener die Schnittstelle ITrendStorageWriterListener und wird für den Funktionsbaustein TrendStorageReader registriert. Wenn neue Daten gespeichert werden, wird die Methode DataWritten mit dem Start- und Endzeitstempel und der Anzahl der gespeicherten Datensätze aufgerufen.

Der Funktionsbaustein TrendStorageReader und die Methode Read werden für das Auslesen von Datensätzen verwendet.

eError2 := instTrendStorageReader.Read(liTimstampFrom := liTimstampFrom2, liTimstampTo := liTimstampTo2,itfTrendStorageReaderConsumer := instTrendStorageReaderConsumer);

Die Methoden TimeStampRead und ValueRead von instTrendStorageReaderConsumer werden dann automatisch für jeden Wert aufgerufen.

Im Beispiel implementiert der Funktionsbaustein TrendStorageReaderConsumer die Schnittstelle ITrendStorageReaderConsumer und schreibt die Werte im CSV-Format in die Steuerungskonsole. Wenn durch die Anzahl der zurückgegebenen Daten die Datenbank zu lange blockiert werden sollte, dann wird ETrendStorageReaderErrors.AdditionalReadCallRequired als Fehlercode zurückgegeben. Der Lesevorgang muss zu einem späteren Zeitpunkt durch Aufruf der Methode ContinueReading mit den selben Parametern fortgesetzt werden.

Weitere Informationen

Beschreibung der Visualisierung

Die simulierten Signale werden in einem Trendelement im oberen Bereich der Visualisierung angezeigt.

  • Die minimalen und maximalen Zeitstempel der Trenddaten werden auf der Registerkarte "Min/Max Times" angezeigt.

    _example_vis_trend_api_tab_minmax_time.png
  • Die aktuellen Werte der DataWritten-Methode werden in "New Data" angezeigt.

    _example_vis_trend_api_tab_new_data.png
  • Das Auslesen der Werten erfolgt auf der Registerkarte "Read Values".

    _example_vis_trend_api_tab_read_values.png

Im oberen Feld wird der Startzeitstempel angezeigt, im unteren Feld der Endzeitstempel.

Die Schaltfläche "Compute timestamps" wandelt die angegebenen Daten in den entsprechenden Zeitstempel um (Umkehrfunktion: "Compute date/time"). Anschließend kann das Auslesen durch Anklicken der Schaltfläche "Read Trend Storage" gestartet werden. Ein Klick auf "Stop reading" bricht den Lesevorgang ab. Wenn die Schaltfläche "Detailed output" aktiv ist, können die Daten auf der Logging-Seite des Geräts angesehen werden (CODESYS Control Win nicht über SysTray starten). Andernfalls wird die Anzahl der Datensätze im Feld "count rows" angezeigt.

Systemvoraussetzungen und Einschränkungen

Programmiersystem

CODESYS Development System Version 3.5.14.0 oder höher

Laufzeitsystem

CODESYS Control Win Version 3.5.14.0

Zusatzkomponenten

-

Hinweis

_example_icon.png DOWNLOAD Projekt