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

Ergebnis 1 bis 2 von 2

Thema: Array auf SD-Speicherkarte

  1. #1
    Registriert seit
    08.04.2014
    Ort
    Ruhrgebiet
    Beiträge
    75
    Danke
    9
    Erhielt 4 Danke für 4 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,
    vielleicht hat ja einer von euch eine Idee zu meinem Problem:
    Ich habe folgendes Array: csv_String: ARRAY [0..59] OF STRING(255), wobei die eingetragene Länge des Strings variiert. Jetzt mochte ich dies Array kompett auf eine SD-Karte speichern. Dazu habe ich folgenden Code

    Code:
    IF SaveStatus >0 THEN
    
        CASE SaveStatus OF
    
        100:  Filename1 :=CONCAT('/media/sd/', INT_TO_STRING (Jahr));   (*Filename z.B. /media/sd/2015/2015-KW_10.csv*)
                Filename1 := CONCAT( Filename1, '/');
                Filename1 := CONCAT( Filename1, INT_TO_STRING (Jahr));
                Filename1 := CONCAT( Filename1,  '-KW_');
                Filename1 := CONCAT( Filename1,INT_TO_STRING(KW));
                Filename1 := CONCAT( Filename1,'.csv');
    
                FileMode := 'a';
                SaveStatus := 101;
    
        101:     File_Handle :=SysFileOpen(FileName1, FileMode);
                IF File_Handle > 0 THEN
                    SaveStatus :=102;
                END_IF;
    
        102:     BytesDone:=    SysFileWrite(File_Handle, ADR(csv_String[MINUTE]), LEN(csv_String[MINUTE])); (*writing to file*)
                IF BytesDone = LEN(csv_String[MINUTE]) THEN
                    SaveStatus :=103;
                END_IF;
    
        103:     SysFileClose(File_Handle);
                SaveStatus:=    0;
        END_CASE;
    
    END_IF;
    Dieser Code speichert ein Element des Arrays, abhängig vom Inhalter der Variable MINUTE. Soweit so gut und es klappt wunderbar. Ersetze ich jetzt die MINUTE durch eine Laufzeitwariable von 0..59 in eine "For" Schleife dauert der Speichervorgang etwas länger, so dass ich irgenwann die Datei schließe ohne dass alles sauber abgespeichert wurde. Ich rufe die Routine alle 300 ms auf. Wie kann ich das so programmieren, dass alle Datendsätze sicher nacheinander gespeichert werden und dann erst die Datei geschlossen wird?
    Ziel der Aktion ist es, die SD-Karte mit "nur" 24 Speichervorgängen pro Tag zu belasten, anstatt mit 1440.

    Gruß
    Chris
    Zitieren Zitieren Array auf SD-Speicherkarte  

  2. #2
    Termi ist offline Benutzer
    Themenstarter
    Registriert seit
    08.04.2014
    Ort
    Ruhrgebiet
    Beiträge
    75
    Danke
    9
    Erhielt 4 Danke für 4 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen,
    nach einer großen Pause habe ich anschließend eine zufriedenstellende Lösung gefunden. Danke für die Aufmerksamkeit.
    Gruß
    Chris

Ähnliche Themen

  1. Step 7 Zeitstempel in Textdatei auf HMI-Speicherkarte?
    Von Hangasilly im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 11.12.2014, 13:04
  2. Step 7 Speicherkarte auf der Simatic-Steuerung.
    Von monster im Forum Simatic
    Antworten: 18
    Letzter Beitrag: 06.11.2014, 09:40
  3. Antworten: 2
    Letzter Beitrag: 10.09.2008, 21:39
  4. Antworten: 12
    Letzter Beitrag: 13.07.2008, 09:43
  5. Antworten: 1
    Letzter Beitrag: 26.05.2006, 17:57

Lesezeichen

Berechtigungen

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