Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Ergebnis 1 bis 5 von 5

Thema: Twincat Array nach CSV file

  1. #1
    Registriert seit
    26.11.2013
    Beiträge
    32
    Danke
    9
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    Ich habe ein Problem bei es schreiben van mehrere Word nach ein File(CSV format).
    Ich woll ein array von 10 WORDte nach ein file schreiben, in CSV format.
    Wenn ich es mache mit FB_Fileopen und FB_FileWrite dann bekomme ich kein nützliche data.
    Code:
    Data      :                              ARRAY[1..10] OF UINT;
     
    Data1 AT%IW0:WORD:= 32767;                                (*QW2*)
                    Data2 AT%IW2:WORD := 32767;               (*QW4*)
                    Data3 AT%IW4:WORD := 32767;               (*QW6*)
                    Data4 AT%IW6:WORD := 32767;               (*QW8*)
                    Data5 AT%IW8:WORD := 32767;               (*QW10*)
                    Data6 AT%IW10:WORD := 32767;             (*QW12*)
                    Data7 AT%IW12:WORD := 32767;             (*QW14*)
                    Data8 AT%IW14:WORD :=10;                     (*QW16*)
                    Data9 AT%IW16:WORD :=100;                   (*QW18*)
                    Data10 AT%IW18:WORD :=1000;              (*QW20*)
    Code:
    FB_FileOpen(
                    sNetId:='' ,
                    sPathName:= 'Hard Disk2\logs\testfile3.txt' ,
                    nMode:=FOPEN_MODEWRITE OR FOPEN_MODETEXT,
                    ePath:=PATH_GENERIC ,
                    bExecute:= fileopen,
                    tTimeout:=t#5s ,
                    bBusy=> ,
                    bError=> ,
                    nErrId=> ,
                    hFile=>hFile );
     
    FB_FileWrite(
                    sNetId:= '',
                    hFile:=hFile ,
                    pWriteBuff:= ADR (Data) ,
                    cbWriteLen:=SIZEOF (Data) ,
                    bExecute:=filewrite ,
                    tTimeout:=t#5s ,
                    bBusy=> ,
                    bError=> ,
                    nErrId=> ,
                    cbWrite=> );
    Jetzt habe ich es auch auf die nächste weise gemacht:

    Data1 ist 32767

    Code:
    Stringtest:= WORD_TO_STRING(Data1);
    CSVtest:= STRING_TO_CSVFIELD(Stringtest,TRUE);
     
    FB_FileOpen(
                    sNetId:='' ,
                    sPathName:= 'Hard Disk2\logs\testfile4.txt' ,
                    nMode:=FOPEN_MODEWRITE OR FOPEN_MODETEXT,
                    ePath:=PATH_GENERIC ,
                    bExecute:= fileopen,
                    tTimeout:=t#5s ,
                    bBusy=> ,
                    bError=> ,
                    nErrId=> ,
                    hFile=>hFile );
     
    FB_FilePuts(
                    sNetId:='' ,
                    hFile:= hFile,
                    sLine:=CSVtest,
                    bExecute:=FILEWRITE ,
                    tTimeout:= ,
                    bBusy=> ,
                    bError=> ,
                    nErrId=> );
    In die testfile4.txt steht jetzt ‘32767‘, aber ich woll die ganze array rein schreiben.(bzw. ‘32767‘32767‘32767‘32767‘32767‘32767‘32767‘32767‘10‘100‘1000‘
    Wie kann ich das am besten machen.
    Zitieren Zitieren Twincat Array nach CSV file  

  2. #2
    Registriert seit
    26.11.2013
    Beiträge
    32
    Danke
    9
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Habe es jetzt so gemacht
    Code:
    CSVStringtest[1]:= STRING_TO_CSVFIELD(WORD_TO_STRING(Data3),TRUE);
    CSVStringtest[2]:= STRING_TO_CSVFIELD(WORD_TO_STRING(Data4),TRUE);
    CSVStringtest[3]:= STRING_TO_CSVFIELD(WORD_TO_STRING(Data5),TRUE);
    CSVStringtest[4]:= STRING_TO_CSVFIELD(WORD_TO_STRING(Data6),TRUE);
    CSVStringtest[5]:= STRING_TO_CSVFIELD(WORD_TO_STRING(Data7),TRUE);
    CSVStringtest[6]:= STRING_TO_CSVFIELD(WORD_TO_STRING(Data8),TRUE);
    
    
    FB_FileOpen(
    	sNetId:='' ,
    	sPathName:= 'Hard Disk2\logs\testfile1.xls' ,
    	nMode:=FOPEN_MODEWRITE OR FOPEN_MODETEXT,
    	ePath:=PATH_GENERIC ,
    	bExecute:= fileopen,
    	tTimeout:=t#5s ,
    	bBusy=> ,
    	bError=> ,
    	nErrId=> ,
    	hFile=>hFile );
    
    
    R_TRIG1(CLK:=filewrite , Q=> );
    
    
    FB_FileWrite(
    	sNetId:= '',
    	hFile:=hFile ,
    	pWriteBuff:= ADR (CSVStringtest) ,
    	cbWriteLen:=SIZEOF (CSVStringtest) ,
    	bExecute:=R_TRIG1.Q ,
    	tTimeout:=t#5s ,
    	bBusy=> ,
    	bError=> ,
    	nErrId=> ,
    	cbWrite=> );
    Dann bekomme ich 100"1000"1500"2000"2500"3000 in Excel

  3. #3
    Registriert seit
    19.12.2006
    Beiträge
    185
    Danke
    25
    Erhielt 26 Danke für 21 Beiträge

    Standard

    Hi,

    ich würde das mit einer State Machine machen.
    Etwa so:

    Pointer auf zu schreibende Startvariable

    1. File öffnen
    2. Zeile zusammenbauen
    3. Zeile in Datei schreiben
    4. Abfrage ob alle Zeilen geschrieben wurde, wenn nein Pointer erhöhen und zurück zu 2., wenn ja nach 5.
    5. File schliessen


    Gruß

  4. #4
    Registriert seit
    21.10.2010
    Beiträge
    546
    Danke
    60
    Erhielt 42 Danke für 40 Beiträge

    Standard

    Hi

    Ist bei mir schon länger her, als ich csv Dateien speichern musste, aber fehlt da nicht noch ein File Close oder so was?? Sonst beendet es das File nicht richtig.

    Gruss blimaa

  5. #5
    Registriert seit
    26.11.2013
    Beiträge
    32
    Danke
    9
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Habe meine code von meine letzten post erweitert. Und bekomme auch in die File was ich bekommen wöll. Aber die code sieht nicht schon aus.
    Ich werde ihm noch umbauen nach ein state machine.
    Es geht ohne dass ich die file schließe, aber werde noch nachsehen was ob ich die File Close brauchen muss.

    Danke

Ähnliche Themen

  1. 2d-Array in CSV-Datei schreiben
    Von van_Burn im Forum CODESYS und IEC61131
    Antworten: 1
    Letzter Beitrag: 18.01.2013, 11:49
  2. Speichern von Array in .csv
    Von suntmaster im Forum CODESYS und IEC61131
    Antworten: 3
    Letzter Beitrag: 24.09.2012, 15:40
  3. ADO.NET SQL-DB nach Binary-File durchsuchen
    Von Schnick und Schnack im Forum Hochsprachen - OPC
    Antworten: 0
    Letzter Beitrag: 16.11.2011, 15:06
  4. Array mit strukturierten Element Zur CSV-Datei
    Von ysh032 im Forum CODESYS und IEC61131
    Antworten: 0
    Letzter Beitrag: 14.09.2011, 14:23
  5. in Excel *.xls file als *.csv file abspeichern mit "Kommas"
    Von olitheis im Forum PC- und Netzwerktechnik
    Antworten: 13
    Letzter Beitrag: 20.03.2006, 12:25

Stichworte

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •