SP19 Runtime Zugriff auf lokales Dateisystem

2023-03-31
2023-11-22
  • captaincookie - 2023-03-31

    Hallo,

    ich habe meine Projekt von Codesys V3.5 SP18 Patch 4 auf SP19 aktualisiert. Mein Projekt beinhaltet eine Funktion, die, angelehnt an das Beispiel-Projekt CNC3DEditor (https://store.codesys.com/de/cnc-3d-editor.html), auf das lokale Dateisystem des Host PCs zugreift und von dort CNC-Dateien einliest. In SP18 hat das funktioniert. Mit dem Update auf SP19 funktioniert dieser Zugriff bei mir nicht mehr. Ich bekomme keine Fehlermeldung angezeigt, sondern die Tabelle mit den Einträgen bleibt einfach leer, obwohl Dateien vorhanden sein sollten. Auch habe ich verschiedene Systempfade versucht, das Ergbnis ist immer das gleiche. In den Release Notes für SP19 steht "Änderungen im Dateizugriff aus IEC-Programmen". Weiß jemand was diese Änderungen beinhalten und wie das Projekt angepasst werden muss, um wieder Zugriff auf das Dateisystem zu bekommen?

    Danke im Voraus.

     
  • ct-f - 2023-11-22

    Hallo, bin auf das gleiche Problem gestoßen und würde mich sehr über einen Lösungsansatz freuen. Habe ein umfangreiches Projekt, wo mehrere Datenein gelesen und geschrieben werden. Nach Umzug auf SP 19 funktioniert leider nichts mehr. Es gibt keine Fehlermeldungen, die Ursache ist nicht erkennbar.

    VG Falk

     
  • captaincookie - 2023-11-22

    Hallo,
    das konkrete Problem konnte ich seither leider nicht lösen, allerdings habe ich mit SP19 Patch 4 einen Workaround gefunden, der zumindest für meine Anwendung funktioniert:
    Zunächst besteht das Problem nicht für alle Funktionalitäten gleichermaßen. Die Anzeige einer .bmp oder .tiff-Datei im Visu-Elementtyp Bild beispielsweise funktioniert aus dem lokalen Dateisystem. Die Anzeige von .cnc-Dateien in einer Tabelle dagegen nicht. Allerdings funktioniert das wiederum, wenn der Dateipfad in den Ordner der PLC führt, genannt '_cnc'. In der PLC wird dieser Ordner über den Pfad _cnc/ erreicht.

    Auch lohnt es sich einen Blick in die PLC Config-Datei zu werfen und ggf. Anpassungen vorzunehmen. Einzelne Einträge definieren Zugriffsrechte und ähnliches.

    Die beschriebene Lösung ist nicht sonderlich schön und es erklärt das Problem nicht. Vielleicht kann das noch jemand anders beantworten.

     
  • eschwellinger

    eschwellinger - 2023-11-22

    seit SP19 nur noch im PLcLogic pfad.
    c:\ProgramData\CODESYS...usw datein schreiben lesen

    [SysFile]
    PlaceholderFilePath.1=/tmp, $TMP$
    PlaceholderFilePath.2=/media/usb, $USB$
    PlaceholderFilePath.2.Volatile=1

    Seit der Behebung kann der IEC-Code aus Security-Gründen nur noch auf das Arbeitsverzeichnis PLCLogic zugreifen. Sollte auf Dateien außerhalb dieses Pfades zugegriffen werden müssen, dann können diese per Platzhalter bekannt gemacht werden und sind dann zugreifbar. Darüber hinaus kann weiterhin ForceIecFilePath=0 gesetzt werden, um das bisherige Verhalten wiederherzustellen. Von letzterem raten wir aber dringend ab, da dann der IEC-Code wieder auf das gesamte Filesystem zugreifen kann. Daher sollte beides nur nach einer eingehenden Securitybewertung erfolgen.

     

    Last edit: eschwellinger 2023-11-23

Log in to post a comment.