Quantcast
Channel: SPS-Forum - Automatisierung und Elektrotechnik
Viewing all articles
Browse latest Browse all 49355

String Array in Textdatei speichern

$
0
0
Hi,

ich möchte ein Array mit Strings in einer Datei mit FB_Write speichern. Klappt soweit - nur ein Haufen "Müll" wird mit gespeichert.

Code:

CASE iState OF
    0: IF bExecute THEN
            iState := istate +1;
        END_IF
       
    1: fbGetLocalAmsNetId.bExecute := TRUE;
        IF fbGetLocalAmsNetId.bBusy THEN
            iState := iState + 1;
        END_IF

    2: IF NOT fbGetLocalAmsNetId.bBusy AND NOT fbGetLocalAmsNetId.bError THEN
            fbGetLocalAmsNetId.bExecute := FALSE;
            sAmsNetId := fbGetLocalAmsNetId.AddrString;
            iState := iState + 1;
        ELSIF fbGetLocalAmsNetId.bError THEN
            iState := 99;
        END_IF
   
    3: fbFileOpen.nMode    := FOPEN_MODEWRITE ;
        fbFileOpen.sNetId    := sAmsNetId;
        fbFileOpen.ePath    := Path_GENERIC;
        fbFileOpen.sPathName    := 'C:\TwinCat\Trace.txt';
       
        fbFileOpen.tTimeout    := T#3S;
        fbFileOpen.bExecute    := TRUE;
        iState := iState +1;
       
    4: IF fbFileOpen.bBusy AND NOT fbFileOpen.bError THEN
            iState := iState +1;
        ELSIF fbFileOpen.bError THEN
            iState := 99;
        END_IF;
   
    5: IF NOT fbFileOpen.bBusy AND NOT fbFileOpen.bError THEN
            hFile := fbFileOpen.hFile;
            fbFileOpen.bExecute := FALSE;
            fbFileWrite.bExecute := FALSE;
            iState := iState + 1;
        ELSIF fbFileOpen.bError THEN
            fbFileOpen.bExecute := FALSE;
            iState := 99;
        END_IF;
   
    6: fbFileWrite.hFile          := hFile;
        fbFileWrite.sNetId      := sAmsNetId;
        fbFileWrite.tTimeout    := T#3S;
        fbFileWrite.pWriteBuff    :=  ADR(GVL_Trace.ConcatTrace );
        fbFileWrite.cbWriteLen  := SIZEOF(GVL_Trace.ConcatTrace);
        fbFileWrite.bExecute    := TRUE;
        iState := iState + 1;
   
    7: IF fbFileWrite.bBusy AND NOT fbFileWrite.bError THEN
            iState := iState + 1;
        ELSIF fbFileWrite.bError THEN
            fbFileWrite.bExecute := FALSE;
            iState := 99;
        END_IF;

    8: IF NOT fbFileWrite.bBusy AND NOT fbFileWrite.bError THEN
            fbFileWrite.bExecute    := FALSE;
            fbFileClose.bExecute    := FALSE;
            iState := iState + 1;
        ELSIF fbFileWrite.bError THEN
            fbFileWrite.bExecute := FALSE;
            iState := 99;
        END_IF;

    9: fbFileClose.hFile          := hFile;
        fbFileClose.sNetId      := sAmsNetId;
        fbFileClose.tTimeout    := T#3S;
        fbFileClose.bExecute  := TRUE;
        iState := iState + 1;
   
    10:IF fbFileClose.bBusy AND NOT fbFileClose.bError THEN
            iState := iState + 1;
        ELSIF fbFileClose.bError THEN   
            fbFileClose.bExecute := FALSE;
            iState := 99;
        END_IF;

    11:    IF NOT fbFileClose.bBusy AND NOT fbFileClose.bError THEN
            fbFileClose.bExecute    := FALSE;
            iState := 88;
        ELSIF fbFileClose.bError THEN           
            fbFileClose.bExecute := FALSE;
            iState := 99;
        END_IF;
   
    88: bExecute := FALSE;
        iState := 0;
   
    99: bError := TRUE;
        iState := 88;
END_CASE
fbGetLocalAmsNetId();
fbFileOpen();
fbFileWrite();
fbFileClose();

Ich habe mitlerweile herausgefunden, dass im State 6 der SIZEOF für Arrays so nicht anwendbar ist und für den zusätzlichen Datenmüll verantwortlich ist (LENOF geht auch nicht) - nur habe ich noch nicht herausgefunden wie man nun ein Array als Textdatei speichert :? Jede Hilfe willkommen ;)

Viewing all articles
Browse latest Browse all 49355


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>