Beispiel: Verwenden der Bibliothek CSV Utility SL
Produkt: CODESYS IIOT Libraries SL
Im Ordner
CSVReaderbefinden sich die Komponenten für das Lesen der CSV-Dateinen.Die Initialisierung und die Übergabe des Dateipfades erfolgt über den Funktionsbaustein
CSVReaderInit.Die Werte der CSV-Datei können einzeln, zeilenweise oder komplett gelesen werden. Das Lesen der Werte erfolgt über die Funktionsbausteine
NextLine,NextElementoderReadAll.Die Verwendung wird in dem Beispielprojekt
CSV Utility Examples.projectin der ApplikationCSVReaderExampleveranschaulicht.Die maximale Elementlänge muss größer oder gleich der maximalen Spaltenlänge der CSV-Datei sein.
Im Ordner
CSVWriterbefinden sich die Komponenten für das Schreiben von CSV-Dateien.Das Speichern der Daten erfolgt in drei Schritten:
Im ersten Schritt wird die Bibliothek initialisiert. Dabei wird der Pfad und der Dateiname übergeben.
Im zweiten Schritt werden die Daten in einem Puffer abgelegt.
Im dritten Schritt wird der Puffer als CSV-Datei geschrieben.
Beschreibung
Das Beispiel beschreibt, wie Sie die Bibliotheksbausteine in einer Applikation verwenden können.
Klassisch prozedurale Programmierung
Die Funktionsbausteine für die klassische funktionsbausteinorientierte Programmierung liegen im Ordner FunctionBlock.
Die Funktionsbausteine in diesem Ordner sind für eine asynchrone Verarbeitung ausgelegt. Sie wurden abgeleitet von dem Funktionsbaustein CBM.ETrigA .
Zu jedem Funktionsbaustein wurde zusätzlich ein Visualisierungsobjekt angelegt, das in weiteren Projekten verwendet werden kann.
Ein Beispiel dazu ist im Projekt CSV Utility Examples.project in der Applikation CSVWriterCFCExample zu finden.
Initialisierung: Erfolgt über den Funktionsbaustein Init. Hier kann der Speicherpfad und der Dateiname übergeben werden.
Hinzufügen von Werten: Werte können über die Funktionsbausteine AddXXX in den Puffer geschrieben werden. Eine neue Zeile kann über den Baustein NewLine hinzugefügt werden. Eine neuen Datei wird mit NewFile angelegt.
Speichern: Das Speichern des Puffers erfolgt über den Baustein WriteFile. Die Werte werden im Standardformat des jeweiligen Datentyps geschrieben.
Visualisierungen: Zu jedem Funktionsbaustein existiert eine Visualisierung der Ein- und Ausgänge.
Verwendung der Bausteine
Alle Funktionsbausteine im Ordner FunctionBlocks reagieren auf eine ansteigende Flanke am Eingang xExecute.
Bitte beachten Sie, dass diese Operationen asynchron ausgeführt werden und die Ausgänge xDone, xError und eError entsprechend abgefragt werden müssen. Die Abarbeitung muss nicht in einem Zyklus erfolgen!
Objektorientierte Programmierung
Im Ordner Objects liegen die Funktionsbausteine und Interfaces für die objektorientierte Programmierung.
Ein Beispiel dazu ist im Projekt CSV Utility Examples.project in der Applikation CSVWriterSTExample zu finden.
Der Funktionsbaustein CSVWriter stellt grundlegende Methoden zum Speichern von CSV Dateien zur Verfügung.
Initialisierung: Zu Beginn muss die InitSave-Methode aufgerufen werden, um eine neue Datei anzulegen oder eine vorhandene Datei zu öffnen.
Hinzufügen von Werten: Beim Aufruf einer der Add-Methoden wird der Wert in den Puffer geschrieben. Eine neue Zeile wird angehängt, sobald die entsprechende Methode aufgerufen wird. Wenn der uffer vollgeschrieben ist, wird ein Fehler zurückgegeben. Sobald Daten gespeichert wurden, besteht wieder Platz für neue Werte.
AddXXX: Fügt Daten am Ende des Puffers einNewLine: Hängt eine neue Zeile an
Speichern:
Save: speichert den Wert des Puffers als CSV-Datei
Weitere Methoden:
GetFileSize: Gibt die Größe der aktuellen Datei zurückNewFile: Erzeugt eine neue Datei, entweder mit einem gegebenen oder mit einem automatisch generierten Namen
Fehler: Alle Methoden besitzen ein Fehlerfeld, um einen mögliche Fehler desTyps CSV_ERROR zu speichern
Weitere Informationen
Das Beispielprojekt CSV Utility SL Examples.project enthält eine Beispielapplikation zum CSVReader und zwei Beispielapplikationen zum CSVWriter.
Applikation CSVReaderExample
Das Beispiel zeigt die drei Möglichkeiten, wie Werte einer CSV Datei gelesen werden können. In dem Programm Prog wird die Verwendung der Funktionsbausteine CSVReaderInit, NextElement, ReadAll und NextLine veranschaulicht. Der Inhalt der Datei CSVReader.csv wird in einer Visualisierung dargestellt.
Tipp
Zum Testen der Beispiele auf einer CODESYS Control kann die CSV-Datei CSVReader aus dem Zielverzeichnis der Installation in das Verzeichnis c:\temp kopiert werden.
Applikation CSVWriterCFCExample
Dieses Beispiel zeigt anhand eines CFC-Beispiels, wie die Funktionsbausteine der Bibliothek CSVWriter verwendet werden können. Dabei wird auch die Verwendung der integrierten Visualisierung demonstriert.
Funktionsweise:
Das Programm
WriteValueserzeugt eine CSV -Datei im Ordner"c:/temp/CSVWriterCFCExampleData.csv".Das Schreiben der Datei wird über die Visualisierung beim Klick auf den Button Click here to add angestoßen.
Die Initialisierung erfolgt über den Baustein
CSV.Init. Der Pfad und der Dateiname werden hier direkt übergeben.Die Bausteine
AddWord,AddStringundNewLinedemonstrieren das Hinzufügen von Werten zum internen Puffer.Der Counter
ctuzählt bei jedem Event die Zeilennummer hoch. Nach dem Hinzufügen einer neuen Zeile werden die Werte über den FunktionsbausteinWriteFilein eine CSV Datei geschrieben.
Applikation CSVWriterSTExample
Dieses Beispiel zeigt, wie Variablenwerte über einen objektorientierten oder der sequentiellen Weg in eine CSV-Datei geschrieben werden können. Jeder Ablauf wird in zwei Tasks ausgeführt. Eine Task schreibt die Werte in den Puffer und die andere speichert die Daten aus dem Puffer in die Datei.
Funktionsweise:
ObjectOriented_Save(Objektorientiertes Speichern)Dieses Programm ruft die Methode
SavevonDataObjectauf, in der der Speichervorgang implementiert ist.ObjectOriented_Write(Objektorientiertes Schreiben)Dieses Programm ruft die Methode
WritevonDataObjectauf, in der der Schreibvorgang implementiert ist.DataObjectDieser Funktionsblock implementiert das Interface
ICSVObject. Die MethodeWritebeinhaltet die lokalen Variablen, die später gespeichert werden. Für jeden Datentyp wird die entsprechendeAddXXX-Methode aufgerufen. Nach einer gewissen Anzahl von Zeilen wird eine neue Datei mit anderen Werten erstellt. Sobald ein Fehler auftritt, wird der StatusErrorerreicht. Daraufhin wird nichts mehr geschrieben. Die MethodeSaveimplementiert den Speichervorgang. Zu Beginn wird die MethodeInitSaveder Funktionsbaustein-InstanzCSVWriteraufgerufen. Danach muss nur noch die MethodeSaveaufgerufen werden.Um die folgenden Programme zu aktivieren, müssen die POUs in den Tasks geändert werden.
Sequential_Save(Sequentielles Speichern)Der Speichervorgang muss ebenso mit der Methode
InitSavegestartet werden. Nachdem die CSV-Datei eine bestimmte Größe erreicht hat, wird eine Neue erzeugt. Wird kein Dateiname angegeben, so wird der bestehende Name mit angehängter Nummerierung verwendet.Sequential_Write(Sequentielles Schreiben)Es werden unterschiedliche Variablen in den Puffer geschrieben. Ist dieser voll, wird der Fehler
EndOfBufferzurückgegeben. Im Gegensatz zum obigen Schreiben wird diesmal der Fehler ignoriert und der Puffer weiter beschrieben. Somit gehen einige Daten verloren, aber das Programm läuft weiter. Sobald der nächste Speichervorgang gestartet wird, ist der Puffer wieder frei.
Systemvoraussetzungen und Einschränkungen
Programmiersystem | CODESYS Development System Version 3.5.18.0 oder höher |
Laufzeitsystem | Alle Hinweis: Verwenden Sie das kostenlos im CODESYS Store International erhältliche Projekt |
Zusatzkomponenten | - |
Hinweis
DOWNLOAD Projekte