Ich habe noch etwas zur Speicherbelegung bei optimierten Datenbausteinen nachgeforscht. Dass die Daten der Speichergröße der Variablen nach sortiert abgelegt wurden hat Siemens ja schon im Programmierleitfaden gezeigt. Aber man kann ja mal nachschauen ob das auch stimmt. Stimmt soweit, gibt also eigentlich nichts neues.
Ich habe mir einen Datenbaustein mit diversen Variablen angelegt, und diesen mit verschiedenen Optionen übersetzt und in die CPU geladen (1200 FW4.2). Als Optionen habe ich einmal die nicht-optimierte Variante, dann einmal optimiert mit allen Variablen ohne Remanenz, und optimiert mit alternierend remanent/nicht remanent verwendet.
Aufbau der "Test-DBs", die Nummern der Variablennamen finden sich in den Speicherkästchen wieder:
Die Speicherbelegung bei "nicht optimiert" ist so wie sie auch im TIA Portal angezeigt wird:
In der "optimierten" Variante werden die Variablen nach Größe sortiert abgelegt, spart in diesem Fall sagenhafte 6 Bytes:
Werden einzelne Variablen remanent geschaltet, so landen diese in einem separaten Speicherbereich getrennt von den nicht-remanenten:
Für den ersten großen freigebliebenen Block habe ich noch keine Erklärung.