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 ProgrammTrendStorageAPI_TestProg
und dem FunktionsbausteinTrendStorageReader
.
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.
Die aktuellen Werte der
DataWritten
-Methode werden in "New Data" angezeigt.
Das Auslesen der Werten erfolgt auf der Registerkarte "Read Values".
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
DOWNLOAD Projekt