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

Ergebnis 1 bis 5 von 5

Thema: WinCC flexible Script Zeile einfügen bzw CR LF

  1. #1
    Registriert seit
    05.10.2005
    Beiträge
    188
    Danke
    31
    Erhielt 16 Danke für 14 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo an alle,

    ich habe ein Problem oder sehe mal wieder den Wald vor lauter Bäumen nicht mehr.

    Aufgabe:
    Erstelle eine *.csv Datei auf einem Datenträger //Kein Problem erledigt
    Schreibe das aktuelle Ergbeniss in die *.csv //Kein Problem erledigt
    Sorge dafür, das dass letzte Ergebnis immer OBEN steht. //WHat??? KEINE Ahnung.

    Mit codesy ist die Aufgabe kein Problem.
    Bei Siemens habe ich keine Möglichkeit gefunden, in der geöffneten Datei, nach dem Header alles eine Zeile nach unten zu schieben (CR,LF) und dann dort das letzte Ergebniss wegzuschreiben/einzutragen.

    Support in Nürnberg angerufen, nach 3,5h Rückruf bekommen um dann wurde mir erklärt wo ich alle unterstützten Befehle in der Hilfe suchen/finden kann. Auf die Frage ob es geht oder nicht, sollte ich selbst mal schauen.....Klasse.
    Nicht dumm gewesen nach 2Tagen wieder angerufen. Rückruf von anderen Mitarbeiter, Inhaltde Gesprächs gleich. Die guten Leute scheinen nicht mehr da oder in einer anderen Abteilung zu sein.

    Wäre schön wenn jemand mal einen Tipp für mich hätte oder sogar mir den "möglichen" Syntax nennen kann.

    Es sind leider zu viele Werte, um sie in der CPU zwischen zu speichern und jedesmal die Datei neu zu erstellen.

    Danke im vorraus.
    Fanta

    Edit: mit der Suchfunktion habe ich nichts gefunden.
    Zitieren Zitieren WinCC flexible Script Zeile einfügen bzw CR LF  

  2. #2
    Registriert seit
    13.10.2007
    Beiträge
    12.064
    Danke
    2.793
    Erhielt 3.288 Danke für 2.168 Beiträge

    Standard

    Du kannst die Datei zeilenweise einlesen, im Script temponär in einen Array zwischenspeichern.
    Neue Zeile schreiben und dann das Array dahinter hängen. Das ganze dann speichern.
    - - -
    Wer als Werkzeug nur einen Hammer hat, sieht in jedem Problem einen Nagel.

  3. #3
    Fanta-Er ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    05.10.2005
    Beiträge
    188
    Danke
    31
    Erhielt 16 Danke für 14 Beiträge

    Standard

    hmmm
    wir setzen aber auch mp377 ein.
    ein datensatz besteht meist aus: string(name); real; real; real; real; real; real; DOT
    jeden tag eine neue datei.
    die taktzeit ist teilweise bei <30 sec im dreischicht betrieb. d.h. 24h= 1440min= 2880 datensätze.
    das dürfte zu viel für ein array im flexible werden.

    werde es trotzdem mal versuchen. Danke.

    noch wer einen ansatz?

  4. #4
    Registriert seit
    29.03.2004
    Beiträge
    5.797
    Danke
    144
    Erhielt 1.707 Danke für 1.239 Beiträge

    Standard

    So als Idee:
    Die Datei mit den aktuellen Daten sei "daten.csv"

    - "daten.csv" in "daten_alt.csv" umbenennen
    - Neue Datei "daten.csv" erzeugen und die aktuellen Daten in diese Datei schreiben
    - "daten_alt.csv an "daten.csv" anhängen
    - "daten_alt.csv löschen

    Ich weiß allerdings nicht ob die VB Dateioperationen das Aneinanderhängen von Dateien ermöglicht.

    Edit:
    Falls das nicht geht, kannst du die Datei "daten_alt.csv" zeilenweise einlesen und in die neue Datei wieder hineinschreiben. Die komplette Datei in ein internen Speicher einlesen ist nicht notwendig.
    Geändert von Thomas_v2.1 (12.05.2012 um 00:29 Uhr)

  5. #5
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.314
    Danke
    932
    Erhielt 3.329 Danke für 2.688 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Warum so kompliziert denken?

    - die vorhandene Datei öffnen zum Lesen und eine neue Datei anlegen zum Schreiben
    - die Header-Zeile einlesen und in die neue Datei schreiben
    - neue Datensatz-Zeile in die neue Datei schreiben
    - in einer Schleife bis zum Dateiende je eine vorhandene Datensatzzeile lesen und in die neue Datei schreiben

    Performance:
    Egal wie man es programmiert - da im Anfangsbereich einer Datei etwas eingefügt wird, bewirkt diese Operation auf jeden Fall ein komplettes neu-Schreiben der Datei auf dem Datenträger. (es sei denn, man fügt genau ein Vielfaches eines Filesystem-Clusters ein und das Filesystem ist so intelligent, das zu erkennen...) Das hat nichts mit Codesys vs. Siemens zu tun.

    Sollte das MP377 es nicht schaffen, die vielleicht bis zu 200kByte in < 30 Sekunden neu zu schreiben, dann mache mehr als eine Datei pro Tag mit weniger als 2880 Datensätzen oder sammele die neuen Datensätze in einem Puffer und schreibe die dann nur alle 5 Minuten in die Datei oder sowas ...

    Welche Datenträger bzw. Memory Cards benutzt Du?

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

Ähnliche Themen

  1. WinCC mit VBA ein C Script einfügen
    Von Zipfelklatscher im Forum Hochsprachen - OPC
    Antworten: 0
    Letzter Beitrag: 25.08.2010, 19:22
  2. Antworten: 1
    Letzter Beitrag: 22.04.2010, 10:09
  3. DB in WinCC flexible einfügen
    Von Bensen83 im Forum HMI
    Antworten: 2
    Letzter Beitrag: 01.09.2009, 20:44
  4. WinCC flexible, checkboxen einfügen
    Von Fireball im Forum HMI
    Antworten: 2
    Letzter Beitrag: 24.05.2006, 11:55
  5. Step5: Zeile im FB42 einfügen, wie?
    Von Oeffi im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 03.03.2006, 10:54

Stichworte

Lesezeichen

Berechtigungen

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