-> Hier kostenlos registrieren
Hallo zusammen,
ich habe folgendes Szenario:
Die Einstellungen werden in Binär-Dateien auf einer SD-Karte gespeichert, die gelesen werden, wenn sich der Nutzer anmeldet, und geschrieben, wenn er eine Einstellung ändert. Die Aufrufe SysFileRead und SysFileWrite habe ich direkt in den Haupttask eingebunden.
Wago rät von diesem Vorgehen ab. Sie empfehlen, Lesen und Schreiben in einen Hintergrundtask auszulagern. Eine wirklich zwingende Erklärung warum, konnte ich aber leider nicht bekommen. Deshalb würde ich gerne die Meinung der anderen Fachleute hören.
Soweit ich beobachten kann (was Wago auch bestätigt), verlängert sich die Laufzeit für einen Zyklus erheblich, deutlich über das eingestellte Aufruf-Intervall hinaus. Wegen der hohen Priorität werden natürlich auch die anderen Tasks blockiert. Aber kann das zu ernsthaften Problemen führen?
Nach meinem (zugegeben anfängerhaften) Verständnis ist dieses Verhalten eigentlich sogar erwünscht, weil der Controller erst wieder reagiert, wenn Lesen/Schreiben vollständig abgeschlossen sind.
Viele Grüße Michael Hoeft
ich habe folgendes Szenario:
- ein Wago PFC200 steuert eine Spielhilfe für eine Orgel
- es gibt mehrere Nutzer, die sich mit einem RFID-Chip anmelden
- jeder Nutzer hat seine eigenen Einstellungen
- es gibt einen Haupttask mit höchster Priorität (6), der auf die Nutzereingaben reagiert
- weitere Tasks, auch Hintergrundtasks, versorgen den Chipleser, verschiedene Anzeigen usw.
Die Einstellungen werden in Binär-Dateien auf einer SD-Karte gespeichert, die gelesen werden, wenn sich der Nutzer anmeldet, und geschrieben, wenn er eine Einstellung ändert. Die Aufrufe SysFileRead und SysFileWrite habe ich direkt in den Haupttask eingebunden.
Wago rät von diesem Vorgehen ab. Sie empfehlen, Lesen und Schreiben in einen Hintergrundtask auszulagern. Eine wirklich zwingende Erklärung warum, konnte ich aber leider nicht bekommen. Deshalb würde ich gerne die Meinung der anderen Fachleute hören.
Soweit ich beobachten kann (was Wago auch bestätigt), verlängert sich die Laufzeit für einen Zyklus erheblich, deutlich über das eingestellte Aufruf-Intervall hinaus. Wegen der hohen Priorität werden natürlich auch die anderen Tasks blockiert. Aber kann das zu ernsthaften Problemen führen?
Nach meinem (zugegeben anfängerhaften) Verständnis ist dieses Verhalten eigentlich sogar erwünscht, weil der Controller erst wieder reagiert, wenn Lesen/Schreiben vollständig abgeschlossen sind.
Viele Grüße Michael Hoeft