Welcome to our new forum
All users of the legacy CODESYS Forums, please create a new account at account.codesys.com. But make sure to use the same E-Mail address as in the old Forum. Then your posts will be matched.
Close
in meinem Projekt muss ich eine Datei zeilenweise einlesen, was ich mit SysFileRead ausführe. Die SP RTE läuft auf einem handelsüblichen PC mit Festplatte.
Ohne die Leseroutine zeigt mit die Zykluszeitanzeige 17µs an. Mit Dateilesefunktion über 1100ms. Die Datei wird von der Festplatte gelesen.
Das gleiche Projekt auf einem Industriedisplay mit CoDeSys läuft mit aktive Dateilesefunktion bei 80ms. Gelesen wird dort von einer mäßigen SD Karte.
Die Festplatte hat zwar eine gewisse Zugriffszeit, aber der Unterschied zwischen Display und PC ist doch etwas sehr goß. Hat jemand eine Ahnung was da in die Suppe spuckt?
Anbei ein Quellcodeauszug zu dem was ich als lesefunktion entworfen habe.
FORj :=0TO80DO Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â
  (*readitem*)
  dwReturn :=SysFileRead(File:=hFile, Buffer:=ADR(buffer), Size:=1);  (*read one byte*)
  (*checkifEOF*)
  eofReached :=SysFileEOF(File :=hFile)AND(dwReturn=0);       Â
  (*exithandlingforreadline*)
  IF((j>=80)OR((dwReturn=0)OReofReached)THEN             Â
    EXIT;                                   Â
  END_IF;
  (*getlinestringuntillineendfound*)
  IFbuffer<>'$R'THEN                     Â
    outString :=CONCAT(STR1:=outString, STR2:=buffer);         Â
  END_IF;END_FOR;
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
PC ist mit einem E5400 bei 2,7GHz ausgestattet. Auch die Platte ist eine schnelle (habe derzeit keine Daten zur Hand).
Das Industriedisplay ist ein XV-102 Gerät von Microinnovation. Hier wurden allerdings Soft-SPS und Datenzugriff direkt von der SD-Karte betrieben und der interne Flash vollkommen aussen vor gelassen.
Speicher ist eine Class 2 2GB SD-Karte von Panasonic, laut c't Tool ca. 4MB/s schreiben und 2MB/s lesen.
Es werden pro SPS Zyklus ca. 50 Byte gelesen. Die Datei wird zu Beginn geöffnet und nach Erreichen des Dateiendes geschlossen.
Gruß,
M
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hallo,
in meinem Projekt muss ich eine Datei zeilenweise einlesen, was ich mit SysFileRead ausführe. Die SP RTE läuft auf einem handelsüblichen PC mit Festplatte.
Ohne die Leseroutine zeigt mit die Zykluszeitanzeige 17µs an. Mit Dateilesefunktion über 1100ms. Die Datei wird von der Festplatte gelesen.
Das gleiche Projekt auf einem Industriedisplay mit CoDeSys läuft mit aktive Dateilesefunktion bei 80ms. Gelesen wird dort von einer mäßigen SD Karte.
Die Festplatte hat zwar eine gewisse Zugriffszeit, aber der Unterschied zwischen Display und PC ist doch etwas sehr goß. Hat jemand eine Ahnung was da in die Suppe spuckt?
Anbei ein Quellcodeauszug zu dem was ich als lesefunktion entworfen habe.
Hallo,
hab zufällig heute meine Zeiten an der Anlage gemessen, und auf deinen Bericht hin daselbe Programm am Laptop nochmals gemessen.
Hier kurz die Zeiten, die sich an den verschiedenen Plattformen erhalten habe.
Das (bei mir) schreiben auf Platte läuft in einer separaten Application und die Taskzeit wrude and die durchschnittliche Zykluszeit
angepasst.
lamer Prozessor mit schnelle Platte?
Plattform Anlagenrechner mit Platte: ohne: 0,085 ms mit schreiben: 224,5 ms Durchschnitt: 3,677 ms
Durchschitt/ohne = 43,2
schneller Prozessor mit lamer Platte?
Plattform Laptop mit Platte: ohne: 0,017 ms mit schreiben: > 400ms Durchschnitt: 5,2 ms
Duchschnitt/ohne = 305,8
Das Verhätnis wurde zwischen durchschnittlicher Zykluszeit und aktueller Zykluszeit ohne Plattenzugriff gebildet, da der Schreibzyklus
nicht genau überprüft werden konnte.
Fazit: Zwei unterschiedliche Prozessoren und Platten machen bei mir diesen Unterschied aus.
Was nutzt dein Industriedisplay als Speicher?
Gruß Rainer
PC ist mit einem E5400 bei 2,7GHz ausgestattet. Auch die Platte ist eine schnelle (habe derzeit keine Daten zur Hand).
Das Industriedisplay ist ein XV-102 Gerät von Microinnovation. Hier wurden allerdings Soft-SPS und Datenzugriff direkt von der SD-Karte betrieben und der interne Flash vollkommen aussen vor gelassen.
Speicher ist eine Class 2 2GB SD-Karte von Panasonic, laut c't Tool ca. 4MB/s schreiben und 2MB/s lesen.
Es werden pro SPS Zyklus ca. 50 Byte gelesen. Die Datei wird zu Beginn geöffnet und nach Erreichen des Dateiendes geschlossen.
Gruß,
M