Mit den Rezepturen wird eh' nur im Arbeitsspeicher gearbeitet, auf den Ladespeicher speichern ist nur für den Fall, daß der Rezeptur-DB die Remanenz verliert. Aus dem Ladespeicher in den Arbeitsspeicher holen ist nur bei dem Remanenzverlust oder Urlöschen nötig und wird von der Firmware der CPU automatisch gemacht.
Im Arbeitsspeicher hast Du einen DB mit dem "Rezeptbuch" Array[1..27] of Rezeptur + eine Rezeptur-Kopie mit der das Programm arbeitet + eine Rezeptur-Kopie zum Editieren. (die beiden Kopien in anderen DB als das Array)
Im Rezeptur-Editor wird ausgewählt welche Rezeptur zum Bearbeiten aus dem Array in die Edit-Kopie geladen wird. Wird im Rezeptur-Editor "Speichern" gedrückt (Flanke), dann die Edit-Kopie zurück in das Array speichern und das komplette Array oder nur den Teil mit der geänderten Rezeptur (*) per WRITE_DBL in den Ladespeicher schreiben. Weitere Speicherwünsche (unwahrscheinlich) werden solange ignoriert bis WRITE_DBL fertigmeldet. Der Ladespeicher verträgt das -zigtausend Mal - also viel viel häufiger als alle Deine Rezepturen geändert werden. Da sehe ich überhaupt kein Problem in der zulässigen Häufigkeit.
(*) wenn nur die geänderte Rezeptur auf den Ladesspeicher zurückgeschrieben werden soll, dann muß bei WRIT_DBL die Parameter SRCBLK und DSTBLK mit variablen/berechneten ANY-Pointern versorgt werden. Wenn immer alle Rezepturen geschrieben werden sollen, dann kann man konstante ANY-Pointer direkt an die Parameter schreiben.
Ich vermute, ob man WRITE_DBL mit dem gesamten DB oder nur mit Teilen des DB beauftragt spielt keine Rolle - geschrieben werden tatsächlich nur die Bytes, welche sich vom Ladespeicher unterscheiden. Nur die Ausführung des WRITE_DBL wird etwas länger dauern.
Harald