Damit es nicht passiert, daß Deine HMI eine noch nicht fertig geschriebene csv-Datei findet und versucht zu verarbeiten, sollte Dein Partner die Datei zunächst unter einem temporären Name anlegen (z.B. xxx.tmp), die Daten hineinspeichern und die Datei schließen. Und erst danach die Datei zum richtigen Name umbenennen (z.B. abc.csv)
Und Deine HMI sucht nur nach csv-Dateien (*.csv), schaut bei gefundenen Dateien auf den Datei-Zeitstempel (DateLastModified) welche davon die Neueste ist (und evtl. nicht älter als xx Minuten ist?), und liest diese Datei, egal ob schonmal eingelesen. Wenn die Datei partout nicht noch einmal gelesen werden darf, dann müsste sich Deine HMI den Dateiname (und evtl. Zeitstempel) der zuletzt eingelesenen Datei merken (am besten in der SPS zusammen mit den Daten, falls die HMI mal neu startet oder falls es mehrere Instanzen der HMI gibt).
Was mit den nicht mehr benötigten alten Dateien in dem Ordner wird, würde ich komplett dem Partner bzw. Betreiber überlassen. Und: der Ordner muß tabu sein für manuelle Datei-Aktionen von PC-Usern (außer Löschen von altem Müll).
Beim Einlesen der csv-Datei darauf achten, daß die auch genau das vereinbarte Format (die vereinbarte Anzahl Zeilen und Datenpunkte) hat, (und evtl. auch die zulässigen Wertebereiche prüfen). Bei im Format oder Wertebereich abweichenden Daten die Daten komplett nicht übernehmen und eine Systemmeldung auf dem HMI ausgeben (ShowSystemAlarm).
Tip: In der HMI in ein Bild eine Meldeanzeige für Meldeereignisse (TIA: "Meldepuffer") projektieren, die auch Meldungen der Meldeklasse "System" anzeigt, dann kannst Du auch nachträglich die Systemmeldungen lesen oder Test-Ausgaben machen/lesen. Erfahrungsgemäß treten bei der VBS-Skriptentwicklung Runtime Errors auf, die man nur sieht, wenn man die Systemmeldungen auch irgendwo anzeigt (in einem Meldefenster oder besser in einer Meldeanzeige).
Harald