2017-08-10 7 views
0

Ich verwende ein Automatisierungsgerät (mit CODESYS ausgestattet), um den Ausgangswert eines Funktionsblocks zu berechnen. Um sicherzustellen, dass die Funktion wie gewünscht funktioniert, möchten wir diesen Ausgangswert mit dem Ausgangsergebnis eines anderen Funktionsblocks vergleichen, den wir nicht geschrieben haben.Wie führe ich Datei-I/O in CODESYS (IEC 61131-3) durch?

Um das Ergebnis dieses Vergleichs zu melden, hätten wir gerne die beiden oben genannten Werte in Form eines Graphen gezeichnet. Daher müssen wir eine Zeitreihe dieser beiden Daten (in CSV oder einem anderen Format) haben. Ich habe einige Google-Forschung und auch einen Blick auf diese question. Es scheint nicht viel Information darüber zu geben, wie Datei-I/O mit CODESYS ausgeführt wird.

Ich frage mich, ob jemand ähnliche Erfahrung (Durchführung einer synchronen Datei I/O, um CSV-Daten zu erzeugen) hatte.

Jede Idee wird sehr geschätzt. Danke.

Antwort

0

Die Frage wird vor kurzem in Dr. Alizadeh Tutorial-Serie auf Codesys gefragt. Hier ist ein link dazu. Es ist im Grunde schmaler als mit Codesys Trace-Funktionalität.

1

Siehe FILE Bibliothek: https://help.codesys.com/webapp/Examples;product=CAA_FILE;version=3.5.11.0

Im Grunde, was Sie tun müssen, ist:

  1. einen Datenpuffer erstellen für Sie CSV-Linien, zum Beispiel
    LineArray : ARRAY[1..100] OF STRING[255].
  2. speichern die gemessenen Werte in den String-Puffer mit einem Intervall. Verwenden Sie CONCAT und REAL_TO_STRING, um eine gültige CSV-Zeile zu erstellen.

  3. Zur gleichen Zeit öffnet die Datei mit FILE.Open Funktionsblock

  4. den geöffneten Datei-Handle verwenden, um Daten in die Datei (FILE.Write) aus dem Puffer zu schreiben. Denken Sie daran, den Puffer nach dem Schreiben zum Beispiel mit MemCpy zu verschieben.

  5. Nachdem alle Zeilen geschrieben wurden, verwenden Sie FILE.Close.

+0

Dank Quirzo. Fragen Sie sich, ob Sie ein ähnliches Beispiel haben. –

+0

Ich habe nur etwas ähnliches mit TwinCAT-Bausteinen codiert. Es gibt einige Beispiele für TwinCAT-Dateiblöcke, die jedoch sehr ähnlich funktionieren (Öffnen, Schreiben, Schließen usw.). [Link zur Beckhoff-Seite] (https://infosys.beckhoff.com/deutsch.php?content=../content/1033/tcplclibsystem/html/tcplclibsys_fileio_example.htm&id=) – Quirzo

+0

great! Danke! –

Verwandte Themen