Beispiel: Verwenden der Bibliothek CSV Utility SL
Produkt: CODESYS IIOT Libraries SL
Im Ordner
CSVReader
befinden 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
,NextElement
oderReadAll
.Die Verwendung wird in dem Beispielprojekt
CSV Utility Examples.project
in der ApplikationCSVReaderExample
veranschaulicht.Die maximale Elementlänge muss größer oder gleich der maximalen Spaltenlänge der CSV-Datei sein.
Im Ordner
CSVWriter
befinden 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
WriteValues
erzeugt 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
,AddString
undNewLine
demonstrieren das Hinzufügen von Werten zum internen Puffer.Der Counter
ctu
zählt bei jedem Event die Zeilennummer hoch. Nach dem Hinzufügen einer neuen Zeile werden die Werte über den FunktionsbausteinWriteFile
in 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
Save
vonDataObject
auf, in der der Speichervorgang implementiert ist.ObjectOriented_Write
(Objektorientiertes Schreiben)Dieses Programm ruft die Methode
Write
vonDataObject
auf, in der der Schreibvorgang implementiert ist.DataObject
Dieser Funktionsblock implementiert das Interface
ICSVObject
. Die MethodeWrite
beinhaltet 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 StatusError
erreicht. Daraufhin wird nichts mehr geschrieben. Die MethodeSave
implementiert den Speichervorgang. Zu Beginn wird die MethodeInitSave
der Funktionsbaustein-InstanzCSVWriter
aufgerufen. Danach muss nur noch die MethodeSave
aufgerufen 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
InitSave
gestartet 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
EndOfBuffer
zurü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