# Datei Schreiben mit FBGeneralFile



## _Johannes_ (12 Februar 2018)

Hallo zusammen,

ich arbeite mit den E-Cockpit von Wago und einer 750-8100 Steuerung.

Mit den FunctionBlock FBGeneralFile will ich eine Datei mit den Namen Datei auf die SD Karte schreiben. In der Online Hilfe habe ich ein Beispiel gefunden, wie man dies programmieren könnte und in mein Programm übernommen. Das Problem ist, das sich der FB beim Öffnen aufhängt. Die Datei wird zwar erstellt (siehe Bild), aber xBusy bleibt immer auf True und xTerminated immer False.

Was mache ich falsch?


----------



## oliver.tonn (12 Februar 2018)

Hallo Johannes,


_Johannes_ schrieb:


> Was mache ich falsch?


vieles. Leider ist die Art wie Du programmierst hier häufiger anzutreffen, Dein Problem hatte erst vor kurzem schon jemand.
Der FB kann nur seinen Status (Ausgänge) ändern, wenn er ausgeführt wird. Du rufst ihn in der Case-Anweisung einmal auf und springst dann weiter, dadurch wird er nicht wieder aufgerufen und kann seinen Staus auch nicht mehr ändern, das funktioniert nicht. Wie in diesem Forum schon mehrfach angemerkt sollte die Ausführung des FBs außerhalb der CASE-Anweisung erfolgen, in der CASE-Anweisung werden dann nur die Eingänge des FBs entsprechend gesetzt.


----------



## _Johannes_ (12 Februar 2018)

Danke für die schnelle Antwort!

Ich habe den Baustein jetzt vor der Case Anweisung einmal aufgerufen und jetzt funktioniert es.


----------



## Radoslaw Moskal (24 April 2018)

Hi!
I have the same issue and can not solve it 

I will be very grateful to you Johannes if you can show a piece of code with your solution.


----------



## Radoslaw Moskal (27 April 2018)

Does anyone want to help me, please?


----------



## _Johannes_ (30 April 2018)

Hello ,

i just called the Method and forgot to call the function block. 
Here is an example:


```
CASE iState OF
    0:
        IF xTrigger THEN
            eRes:=FileSystem.Open(sFileName, FAM_WRITE,0,FALSE);
            iState:=1;
        END_IF
    1:
        IF FileSystem.xTerminated THEN
            FileSystem.WriteString("Just a test");
            iState:=2;
        END_IF
    2:
        IF FileSystem.xTerminated THEN
            FileSystem.Close();
            iState:=3;
        END_IF
    3:
        IF FileSystem.xTerminated THEN
            iState:=5;
        END_IF
END_CASE

//SD_File-Handler
//I forgot to call the function block
FileSystem(
    xTerminated=>, 
    xBusy=>, 
    xError=> , 
    eResult=> , 
    xIsOpen=>, 
    xEofReached=>, 
    liGetPos=>, 
    udiRxNBytes=>, 
    bRead=>, 
    sLine=>);
```


----------



## Radoslaw Moskal (30 April 2018)

Thank you Johannes!


----------

