+ Antworten
Ergebnis 1 bis 6 von 6
  1. #1
    Registriert seit
    Aug 2009
    Ort
    59581 Warstein
    Beiträge
    75

    Standard CSV oder TXT z.B vom Zähler auslesen - Problem mit der Dateigröße

    Hallo liebe IPS_Gemeinde,

    ich habe nun schon länger das Problem, dass ich meine Stromzähler über den Umweg einer von EDL Cockpit erstellten Datei einlese. So weit kein Problem nur diese Datei hat nach ca. 3 Tagen die Größe von ca. 13000 Kb bis 15000 Kb erreicht. Dann werden die Daten nicht mehr eingelesen. Ich lösche dann die Datei und erstelle eine neue. Aber wenn ich es zu spät merke, fehlen mir natürlich einige Datensätze. Was kann ich tun? Gibt es auch einen Weg die Datei automatisch kleiner zu machen oder unter neuen Namen woanders abzuspeichern. Ich brauche ja eh nur die letzte Zeile.

    Hier mein Auslesefile:

    PHP-Code:
    <?

    $file 
    file("C:\Gesamt.csv");

    $lastentry $file[count($file)-1]; // letzte Zeile extrahieren , eventuell -1 einsetzen
    $resoldata explode(";"$lastentry); // Daten in ein Array  schreiben
    print_r($resoldata);
    $Datum $resoldata[0];

    SetValueString(50616 /*[Zähler\Stromzähler\Auslesedatum Zähler Gesamt]*/$Datum); // ID anpassen
    SetValue(37713 /*[Zähler\Stromzähler\Ausleseuhrezeit Gesamt]*/ $resoldata[1]);
    SetValue(55447 /*[Zähler\Stromzähler\zaehlernummer]*/ $resoldata[2]);
    SetValue(29476 /*[Zähler\Stromzähler\Lesistung Zähler Gesamt Aktuell]*/ $resoldata[3]);
    SetValue(49812 /*[Zähler\Stromzähler\zaehlerstand _Bezug]*/ $resoldata[5]);
    SetValue(35293 /*[Zähler\Stromzähler\Statusinformation]*/ $resoldata[9]);
    SetValue(27996 /*[Zähler\Stromzähler\Zählerstand Lieferung]*/ $resoldata[11]);

    ?>
    Die CSV oder TXT Datei sieht so aus:

    Datum;Zeit;Zählernummer;Leistung;Obiskennzahl;Zähl erstand;
    29.01.2014;16:10:57;4xxxxA;189;1-0:1.8.0;3228,5467;1-0:1.8.1;3228,5467;1-0:1.8.2;0;1-0:2.8.0;2567,6814;1-0:2.8.1;2567,6814;1-0:2.8.2;0;
    29.01.2014;16:10:59;4xxxxA;190;1-0:1.8.0;3228,5468;1-0:1.8.1;3228,5468;1-0:1.8.2;0;1-0:2.8.0;2567,6814;1-0:2.8.1;2567,6814;1-0:2.8.2;0;
    29.01.2014;16:11:01;4xxxxA;190;1-0:1.8.0;3228,5469;1-0:1.8.1;3228,5469;1-0:1.8.2;0;1-0:2.8.0;2567,6814;1-
    Geändert von nancilla (27.02.14 um 12:51 Uhr) Grund: php-tags eingefügt
    Busch Jaeger Eib Powernet, Eib über TP mit Powernet gekoppelt. Wärmepumpen und Solar (Resol) für Heizung und WW. Alles mit IP Symcon & Busch Powerprojekt überwacht.
    Senertec Dachs Mini BHKW mit 5,3 KW...

  2. #2
    Registriert seit
    Jul 2012
    Beiträge
    24

    Hallo,

    ich verwende für unser Tägliches Kraftwerklogbuch folgenden Codeschnipsel um täglich eine entsprechende Datei zu erzeugen. Für mehr Funktionen einfach mal nach "php date" suchen.

    PHP-Code:
    $monat =date("m");
    $jahr=date ("Y");
    $datei"Kraftwerkslogbuch@SymconServer-".$monat."-".$jahr.".csv"
    Gruß Christian
    Wir verwenden in unserem Unternehmen IP Symcon 5.4 mit Siemens S7 diverse, Advantech ADAM Series, APC USV mit NMC2, BERG UBN Stromzähler, WuT Webthermometer, AXIS Netzwerkkameras. Insgesamt ca 3500 Datenpunkte auf 30 Steuerungen.

  3. #3
    Registriert seit
    Mar 2008
    Ort
    Ruesselsheim
    Beiträge
    3,939

    Hallo
    So wie das sehe wird das File nicht von IPS erstellt.
    Er hat nur das Problem , wenn das File zu gross wird kann er
    es nicht mehr komplett einlesen.
    Wenn man nur die letzte Zeile haben will sollte man wohl
    mit fseek zum Fileende springen und nur die die letzte Zeile einlesen.
    Google hilft da.



    Gesendet von meinem iPad mit Tapatalk HD

  4. #4
    Registriert seit
    Jan 2007
    Ort
    Nidda(Hessen)
    Beiträge
    7,337

    Du könntest mit fopen und w+ die Datei auf 0 kürzen, sofern Du Schreibrechte auf der Datei hast.
    Gruß Rainer


    Unmögliches wird sofort erledigt, Wunder dauern etwas länger.


  5. #5
    Registriert seit
    Mar 2009
    Ort
    Berlin
    Beiträge
    791

    Hallo,

    oder du nimmst diesen Codeschnipsel:

    PHP-Code:
    if (file_exists("C:\Gesamt.csv"))
    {
    $path1="Gesamt.csv";
    $path2="Gesamt".time().".csv";
    $co="copy $path1 $path2";
    exec($co);
    unlink("C:\Gesamt.csv");

    Die Datei wird kopier und anschließend gelöscht.
    Benutzung auf eigene Gefahr.

    Schöne Grüße
    Thomas

  6. #6
    Registriert seit
    Aug 2009
    Ort
    59581 Warstein
    Beiträge
    75

    Standard Das war es ThomasD

    Danke, damit klappt es. Ich lasse einmal am Tag das script laufen und die Datei hat wieder 1 KB.
    Alles Super.

    if (file_exists("C:\Gesamt.csv"))
    {
    $path1="Gesamt.csv";
    $path2="Gesamt".time().".csv";
    $co="copy $path1 $path2";
    exec($co);
    unlink("C:\Gesamt.csv");
    }

    viele Grüsse
    Mcnelly
    Busch Jaeger Eib Powernet, Eib über TP mit Powernet gekoppelt. Wärmepumpen und Solar (Resol) für Heizung und WW. Alles mit IP Symcon & Busch Powerprojekt überwacht.
    Senertec Dachs Mini BHKW mit 5,3 KW...

Ähnliche Themen

  1. Daten vom Archiv in txt schreiben?
    Von michl im Forum Skripte, PHP, SQL
    Antworten: 1
    Letzter Beitrag: 02.11.13, 23:13
  2. XML vom Controller der Fa.Wago auslesen
    Von maddinracer im Forum SPS Automatisierungstechnik
    Antworten: 1
    Letzter Beitrag: 13.07.13, 11:25
  3. CSV Datei Auslesen
    Von Jimmyrakete im Forum Allgemeine Diskussion (2.x/3.x)
    Antworten: 6
    Letzter Beitrag: 05.01.13, 17:18
  4. txt auslesen
    Von Bastian im Forum Skripte, PHP, SQL
    Antworten: 2
    Letzter Beitrag: 07.09.11, 09:29
  5. amcharts Problem mit graphconfig.txt
    Von prof im Forum Skripte, PHP, SQL
    Antworten: 9
    Letzter Beitrag: 13.07.10, 21:59