.csv Datei aus CoDeSys Variable

Terence_Hill

Level-1
Beiträge
4
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
ich bin neu hier und hätte eine Frage bezüglich des erstellens einer .csv Datei mit den Werten aus einer CoDeSys Variablen. Ich möchte das der Wert der Variablen jede Sekunde aufgenommen wird und die Werte anschließend in einer .csv Datei gespeichert werden können. Weiß nicht so recht wie ich das anstellen soll. Kann mir jemand helfen?
Gruß
Terence
 
Welches Zielsystem?

Also mal auf die Schnelle was zum Spielen und Diskutieren Läuft bei mir auf dem Rechner mit der CoDeSys RTE bei anderen Plattformen wird der Pfad nicht passen:

Code:
PROGRAM PLC_PRG
VAR
    myTON            :TON;
    SysFileOpenNum    :DWORD;
    FileName        :STRING := 'D:\CoDeSysCSV.csv';
    FileMode        :STRING := 'w';

    WriteBuffer     : STRING;
    DwWritten         : DWORD;

    myCount            :INT;
    myValue            :INT;

END_VAR

myTON(IN:=NOT myTON.Q, PT:=t#1s); (* Sekunden oszi *)
IF myTON.Q THEN

    CASE myCount OF
    0:        SysFileOpenNum := SysFileOpen(FileName,FileMode);

    1..100:    WriteBuffer := '';
            WriteBuffer := INT_TO_STRING(myValue);
            WriteBuffer := CONCAT(WriteBuffer, ';');
            DwWritten := SysFileWrite(SysFileOpenNum, ADR(WriteBuffer), LEN(WriteBuffer));
    101:    SysFileClose(SysFileOpenNum);
    END_CASE
    IF myCount < 102 THEN
        myCount := myCount + 1;
    END_IF;
END_IF
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Zotos,
habe dein Programm mal übernommen. Aber CoDeSys erkennt z.B. LEN nicht, obwohl ich die Standart.lib eingebunden habe. Zudem fehlt mir die SysLibFile.lib für SysFileOpen usw. kannst du mir sagen wo ich die und eine aktuelle Standart.lib finde?
 
Ich wiederhole meine Frage: Welches Zielsystem?!

Also komisch ist das Du eine Fehlermeldung wegen LEN bekommst da die ja in der Standard.lib vorhanden ist.

Die SysFile.Lib in der sysFileOpen, sysFileWrite, sysFileClose vorhanden ist, findest Du da es sich ja um eine Systemfunktion handelt, im Target Ordner des entsprechenden Targets zum Zielsystem.

Bei mir da ich als Zielsystem die RTE verwende:
C:\Programme\Gemeinsame Dateien\CAA-Targets\3S\Lib_NTRT
 
Hallo Zotos,

Sehr guter Beitrag!
Bei mir ist es eine WAGO 750-841 und folglich CoDeSys
Läuft und alles gut, aber :( es scheibt keine Datei ... was ist noch zu bedachten?
Zielsystemeinstellungen? Visu einschalten? Bin ratlos!

Bitte im einen Tipp - Danke
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi

OSCAT hat da was "fertiges" .
Infos / Variablen aufzeichnen. (Auch mit Delta-Aufzeichnung)
Die erzeugte Datei wird anschließend auf Wunsch zu einem NAS-Laufwerk übertragen. (Oder Server)


Gruß Karl
 
Zuletzt bearbeitet:
Hi
:confused: den Satz verstehe ich nicht... würde mich auch interessieren. Anyone?
Grüße
danhw
Solltest du mich meinen ? (Ups, da fehlen ja etliche Zeichen ;) )


Falls ja:

Zur Homepage gehen --> www.oscat.de .

Dateien downloaden --> oscat_basic_332 und codesys_network_112

Achtung, NICHT die S7 oder PcWorx laden.

Die Handbücher hierzu sind auch sinnvoll.

Die Networklib öffnen.
Hierin sind Demo-Programme zu finden.
Nimm das passende Demo-Programm, es ist vieles realisiert, das du benötigst.

Gruß Karl
 
zwar ein bisschen alt der Thrend aber ich wollte nicht ein neuen auf machen ....


und zwar ich hab den Quellcode von Zots genommen und habe folgende Fehlermeldung:

#16: Tasküberwachung fehlgeschlsfen für 'Watchdog expired -> Task = Default Task'

CPU geht in STOP

Kann mir jemand weiterhelfen?
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
@Zoto......sehr gute Lösung. gefällt mir.

Mein Einsatzgebiet ist der Controller 750-841 von Wago . Hier fällt bei mir ein String mit 80 Zeichen an, den ich gern im Zielsystem "Profilab Expert 4"
darstellen würde. Die Kommunikation von Wago-Controller zu PC mit ProfiLab Expert 4 erfolgt über MODBUS / TCP. DAs heisst ich müsste dort irgendwie
den String in Register packen, per Modbus / TCP zu ProfiLab übertragen und dort dann wieder "auseinanderpflücken".
Ich habe momentan noch keine Lösung. Wäre aber über ein Lösungsanstoss dankbar.
 
Zurück
Oben