Hatte mir das folgendermaßen gedacht: Nach jedem Arbeitsgang werden die aktuelle daten in eine csv gespeichert, mein VB Programm liest diese Daten ein
Beim nächsten Arbeitsgang wird die csv mit den aktuellen Daten überschrieben und so weiter ( macht das sinn?)
in dem fall könnten daten verloren gehen.
anderer ansatz.
du erzeugst die datei mit einem zeitstempel. z.b. dateiname_JJJJ-MM-TT_hh-mm-ss.csv auf ein lokales verzeichnis im hmi.
nachdem die datei erzeugt wurde kopierst du diese in das verzeichnis netzwerkkopie (auf dem hmi). anschliessend macht du ein move von den dateien in diesem verzeichnis auf das netzlaufwerk.
du hast in diesem fall also immer daten gesichert, auch bei netzausfall. die dateien aus netzwerkkopie werden verschoben sobald das netzlaufwerk wieder verfügbar ist.
dein vb-programm liest nun die datei vom netzlaufwerk ein. nachdem die daten der datei in der db abgelegt sind löscht das vb-programm diese datei auf dem netzlaufwerk.
aber beim ordner wo du im hmi deine dateien ablegst musst du ein wenig aufpassen.
schreibst du alle dateien in das gleiche verzeichnis können dort unmengen an dateien liegen. das könnte das dateisystem irgendwann überfordern.
ich halte es deshalb so, dass ich mir entsprechende verzeichnisse erzeuge. \Jahr \Monat \Tag und dort die dateien ablege. auf tag kann an evtl verzichten wenn es nur tagesdateien gibt.
muss man halt schauen wieviel dateien auflaufen und dann mehr oder weniger unterverzeichnisse schaffen.
und gegebenenfalls uraltdaten löschen damit die speicherkarte nicht voll wird.
ich hatte hier ein scenario auf einem hmi (pc-system)
daten wurden lokal im ordner \jahr\monat\usw erzeugt. anschliessend in den ordner netzkopie (auch auf dem hmi) kopiert. diese dateien wurden vom bde augeholt und gelöscht.
bde erzeugte aber eine sicherungskopie im verzeichnis bde_sicherung (auch auf dem hmi)
das war eine säge mit relativ kurzer taktzeit. nach nicht allzu langer zeit waren in dem verzeichnis weit über 100.000 dateien vorhanden. keine chance die zu löschen.
das windows schmiert dort dann gnadenlos ab.
was würde passieren, wenn mein VB programm die Daten noch einließt während das Panel überschreiben will? Hätte nämlich sonst eine temporäre Kopie der csv Datei gemacht die eingelesen wird und wieder gelöscht damit da kein Konflikt entsteht oder geht das auch so ?
kommt drauf an wie dein programm die datei öffnet.
normaler ablauf ist soweit ich das weiß
dein vbs möchte eine neue datei erzeugen. ist diese datei bereits vorhanden wird diese gelöscht und eine neue datei erzeugt. diese ist dann erst mal leer und wird mit den daten beschrieben.
öffnet dein vb-programm die datei so, dass diese nicht gelöscht werden kann, würde keine neue datei erzeugt. das script würde einen fehler generieren. es würden also keine daten geschrieben.