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

Seite 1 von 5 123 ... LetzteLetzte
Ergebnis 1 bis 10 von 44

Thema: FB_FileWrite Writeerror

  1. #1
    Registriert seit
    22.07.2009
    Beiträge
    98
    Danke
    18
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hey leute ich hab mal wieder Probleme
    Bei dem Baustein FB_FileWrite gibt es ein cbWriteLen um die Länge anzuzeigen. gibt es da iwie ein maximum? weil bei mir steht da 6500924 bytes und gleizeitig dazu zeigt er mir an bFileWriteerror=TRUE. Ergo is da iwo nen fehler. kann es daran liegen, das ich ein Array mit Struktur da reinschreiben will?

    Code:
    Var
        FB_FileWrite        :    FB_FileWrite;    (*    FileWrite um die veränderten Parameter in die geöffnete TxT Datei reinzuschreiben    *)
        bFileWrite        :    BOOL;
        bFileWriteBusy    :    BOOL;
        bFileWriteError    :    BOOL;
        nFileWriteErrorId    :    UDINT;
        nFileWriteCount    :    UDINT;
        arrFILEDATA         :    ARRAY[0..50] OF st_FileData;        (*    Für weitere veränderbare Parameter bitte Programm umschreiben.    *)
    END_VAR
    CODE:
        fb_FileWrite(
            hfile:=hfile,
            pWritebuff:=ADR(arrFILEDATA),
            cbWriteLen:=SIZEOF(arrFILEDATA),
            bExecute:=P_Main.Einlesen.O_bAbmeldung,
            tTimeout:=t#2s,
            bBusy=>bFilewriteBusy,
            bError=>bFileWriteError,
            nErrID=>nFileWriteErrorid,
            cbWrite=>nFileWriteCount);
    das hfile bekommt es vom FB Open der auch noch da is.
    Zitieren Zitieren FB_FileWrite Writeerror  

  2. #2
    Registriert seit
    27.07.2007
    Ort
    Leipzig
    Beiträge
    239
    Danke
    25
    Erhielt 47 Danke für 43 Beiträge

    Standard

    Es gibt dich zu jedem Fehler auch eine FehlerId. Schau doch erstmal nach was die FehlerId bedeutet.

    Edit: Es liegt nicht daran das du ein Array schreiben willst.

  3. #3
    COOLT ist offline Benutzer
    Themenstarter
    Registriert seit
    22.07.2009
    Beiträge
    98
    Danke
    18
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hm Fehler ID 1795 steht bei bFilewriteerrorID dabei aber dazu find ich iwie nix.

  4. #4
    Registriert seit
    27.07.2007
    Ort
    Leipzig
    Beiträge
    239
    Danke
    25
    Erhielt 47 Danke für 43 Beiträge

    Standard

    Also 1795 = 703hex = invalid index offset

    Versuch mal die Hilfe zu benutzen!

    Edit: In der Hilfe steht auch der Fehler:
    0x703 Invalid or unknown file handle.
    Geändert von bonatus (25.08.2009 um 14:23 Uhr)

  5. #5
    COOLT ist offline Benutzer
    Themenstarter
    Registriert seit
    22.07.2009
    Beiträge
    98
    Danke
    18
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Oh man ich peil nich was falsch daran sein soll.
    Code:
    VAR
        FB_FileOpen        :    FB_FileOpen;    (*    Fileopen und schreiben    *)
        bFileOpen        :    BOOL;
        bFileOpenBusy    :    BOOL;
        bFileOpenError    :    BOOL;
        nFileOpenErrId    :    UDINT;
        hFile            :    UINT;
    
        FB_FileWrite        :    FB_FileWrite;    (*    FileWrite um die veränderten Parameter in die geöffnete TxT Datei reinzuschreiben    *)
        bFileWrite        :    BOOL;
        bFileWriteBusy    :    BOOL;
        bFileWriteError    :    BOOL;
        nFileWriteErrorId    :    UDINT;
        nFileWriteCount    :    UDINT;
        arrFILEDATA         :    ARRAY[0..50] OF st_FileData;        (*    Für weitere veränderbare Parameter bitte Programm umschreiben.    *)
    
        nFiledataCounter    :    INT;                                (*    *)
        nFiledatareset    :    INT;                                (*    *)
    
        FB_FileClose        :    FB_FileClose;                    (*    FileClose für Dateischließung nach Abmeldung    *)
        bFileClose        :    BOOL;
        bFileCloseBusy    :    BOOL;
        bFileCloseError    :    BOOL;
        nFileCloseErrorId    :    UDINT;
    
    (*Datum*)
        fbGetSystemTime     :    GETSYSTEMTIME;
        fileTime             :    T_FILETIME;
    
    
    (***********************************************************)
        fbNextstep            :    FB_Next;                    (*    Funktion zur Schrittweiterschaltung    *)
        nStep                :    INT := 0;
        nNextStep            :    INT;
        bCondition            :    BOOL;
        nLastStep            :    INT;
    END_VAR
    
    CODE:
    
    CASE nStep OF
        0:    nNextStep:=1;
            fb_FileOpen(
                sPathname:='\Hard Disk\Protkoll_fuer_Parameteränderungen.txt',
                nMode:=FOPEN_MODEAPPEND OR  FOPEN_MODEPLUS,
                bExecute:=P_Main.User.O_bFileOpen,
                tTimeout:=t#3s,
                bBusy=>bFileOpenBusy,
                bError=>bFileOpenError,
                nErrID=>nFileOPenErrID,
                hfile=>hfile);
    
            bCondition:=P_Main.User.O_bFileOpen;
    
            fbNextstep (I_bEnable:=bCondition, I_bSeqMode:= TRUE , I_tTimeValue:= t#0s);
                IF fbNextstep.O_bStart THEN
                    nLastStep:=nStep;
                    nStep:=nNextStep;
                END_IF
        (***************************************************************************************)
        1:    nNextStep:=2;
            fb_FileWrite(
                hfile:=hfile,
                pWritebuff:=ADR(arrFILEDATA),
                cbWriteLen:=SIZEOF(arrFILEDATA),
                    bExecute:=P_Main.Einlesen.O_bAbmeldung,
                tTimeout:=t#2s,
                bBusy=>bFilewriteBusy,
                bError=>bFileWriteError,
                nErrID=>nFileWriteErrorid,
                cbWrite=>nFileWriteCount);
    
            bCondition:=    P_Main.Einlesen.O_bAbmeldung;
    
            fbNextstep (I_bEnable:= bCondition, I_bSeqMode:= TRUE , I_tTimeValue:= t#0s);
                IF fbNextstep.O_bStart THEN
                    nLastStep:=nStep;
                    nStep:=nNextStep;
                END_IF
        (********************************************************************************************)
        2:    nNextStep:=0;
            fb_FileClose(
                hfile:=hfile,
                bExecute:=P_Main.Einlesen.O_bAbmeldung,
                    tTimeout:=t#3s);
    
            fbNextstep (I_bEnable:= TRUE, I_bSeqMode:= TRUE , I_tTimeValue:= t#0s);
                IF fbNextstep.O_bStart THEN
                    nLastStep:=nStep;
                    nStep:=nNextStep;
                END_IF
    END_CASE
    
    IF P_Main.Zuweisung.arrLastUserlist[P_Main.Zuweisung.nLastUserlistCounter].ID<>P_Main.Zuweisung.sLastID THEN
        nFiledataCounter:=nFiledataCounter+1;
    END_IF
    
    IF nFiledataCounter=25 AND arrFILEDATA[50].dDate<>'' THEN
        nFiledatareset:=26;
        FOR nFiledatareset:=26 TO 50 DO
            arrFILEDATA[nFiledatareset].dDate:='';
            arrFILEDATA[nFiledatareset].nPressure:=0;
        END_FOR
    END_IF
    
    IF nFiledataCounter=51 THEN
        nFiledatareset:=0;
        FOR nFiledatareset:=0 TO 25 DO
            arrFILEDATA[nFiledatareset].dDate:='';
            arrFILEDATA[nFiledatareset].nPressure:=0;
        END_FOR
    END_IF
    
    
    (**********************************************)
    (*    DATUM    *)
        fbGetSystemTime(timeLoDW=>fileTime.dwLowDateTime, timeHiDW=>fileTime.dwHighDateTime );
        g_Date :=SYSTEMTIME_TO_STRING( FILETIME_TO_SYSTEMTIME( fileTime ) );
    Kann mir iwer sagen wo da ein fehler sein soll?

  6. #6
    Registriert seit
    06.07.2007
    Beiträge
    2.811
    Danke
    174
    Erhielt 274 Danke für 253 Beiträge

    Standard

    Bist du dir sicher, dass das Öffnen der Datei funktioniert?? Mir fällt nämlich gerade auf, dass du weder beim Öffnen noch beim Schreiben noch beim Schließen der Datei eine AmsNetId zugewiesen hast.
    A programmer is just a tool which converts caffeine into code.

  7. #7
    COOLT ist offline Benutzer
    Themenstarter
    Registriert seit
    22.07.2009
    Beiträge
    98
    Danke
    18
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Ich hab die deklarationen und beschriftungen aus dem Beispiel von Beckhoff, dort haben die auch keine AmsNetId zugewiesen sondern das feld einfach offen gelassen.

  8. #8
    Registriert seit
    06.07.2007
    Beiträge
    2.811
    Danke
    174
    Erhielt 274 Danke für 253 Beiträge

    Standard

    Also im Info-System von Beckhoff wird dem Eingabe-Parameter "sNetId" ein leerer String übergeben. Könntest auch mal versuchen.
    A programmer is just a tool which converts caffeine into code.

  9. #9
    COOLT ist offline Benutzer
    Themenstarter
    Registriert seit
    22.07.2009
    Beiträge
    98
    Danke
    18
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hm.. hat iwie nix gebracht hab den ePath beim Open noch ergänzt und die sNetId überall als Leerstring hinzugefügt aber immer noch derselbe fehler.

  10. #10
    Registriert seit
    06.07.2007
    Beiträge
    2.811
    Danke
    174
    Erhielt 274 Danke für 253 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Und du bist dir sicher, dass das Öffnen der Datei funzt? Denn die Fehler-Beschreibung "invalid file handle" legt nahe, dass dabei irgendwas schief läuft.
    A programmer is just a tool which converts caffeine into code.

Ähnliche Themen

  1. Antworten: 5
    Letzter Beitrag: 12.10.2011, 09:48
  2. Fehler bei Benutzung FB_FileWrite ID:1802 :Out of Memory
    Von ysh032 im Forum CODESYS und IEC61131
    Antworten: 5
    Letzter Beitrag: 22.09.2011, 12:02
  3. FB_FileWrite Probleme mit Array schreiben
    Von FredlFesl im Forum CODESYS und IEC61131
    Antworten: 7
    Letzter Beitrag: 20.06.2011, 08:20

Lesezeichen

Berechtigungen

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