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_PRGauf, um Daten zu simulieren.
- Die simulierten Daten werden von der Task - TrendRecordingTaskund der Komponente "Trend Recording Manager" in einer Datenbank gespeichert.
- Die Task - VISU_TASKist für die Aktualisierung der Visualisierung zuständig.
- Das eigentliche Lesen der Trenddaten erfolgt in der Task - Task200ms, dem Programm- TrendStorageAPI_TestProgund 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.  
- 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
 DOWNLOAD Projekt