Hier die Siemens-Hilfe dazu:
Lokaldaten-Stack
Der L-Stack speichert:
- die temporären Variablen der Lokaldaten von Bausteinen
- die Startinformation der Organisationsbausteine
- Informationen zum Übergeben von Parametern
- Zwischenergebnisse der Logik in Kontaktplan-Programmen
Beim Erstellen von Organisationsbausteinen können Sie temporäre Variablen (TEMP) deklarieren, die nur während der Bearbeitung des Bausteins zur Verfügung stehen und dann wieder überschrieben werden. Vor dem ersten Zugriff müssen die Lokaldaten initialisiert werden. Außerdem benötigt jeder Organisationsbaustein für seine Startinformation 20 Lokaldaten-Byte.
Die CPU besitzt einen begrenzten Speicher für die temporären Variablen (Lokaldaten) gerade bearbeiteter Bausteine. Die Größe dieses Speicherbereichs, des Lokaldaten-Stacks, ist CPU-abhängig. Der Lokaldaten-Stack wird zu gleichen Teilen unter den Prioritätsklassen aufgeteilt (Voreinstellung). Das bedeutet, jede Prioritätsklasse verfügt über einen eigenen Lokaldatenbereich. Damit ist gewährleistet, dass auch hochpriore Prioritätsklassen und ihre zugeordneten OBs Platz für ihre Lokaldaten zur Verfügung haben.
Nachfolgendes Bild zeigt die Zuordnung von Lokaldaten zu den Prioritätsklassen in einem Beispiel, in dem im L-Stack der OB 1 vom OB 10 unterbrochen wird, der dann wiederum vom OB 81 unterbrochen wird.
https://www.sps-forum.de/attachment.php?attachmentid=729&d=1145434457
Vorsicht
Alle temporäre Variablen (TEMP) eines OB und seiner unterlagerten Bausteine werden im L-Stack gespeichert. Wenn Sie viele Schachtelungsebenen in Ihrer Bausteinbearbeitung verwenden, kann der L-Stack überlaufen.
S7-CPUs wechseln in den Betriebszustand "STOP", wenn Sie die zulässige L-Stack-Größe für ein Programm überschreiten.
Testen Sie den L-Stack (die temporären Variablen) in Ihrem Programm.
Berücksichtigen Sie den Lokaldatenbedarf von Synchronfehler-OBs.
Zuordnen von Lokaldaten zu Prioritätsklassen
Nicht jede Prioritätsklasse benötigt gleich viel Speicher im Lokaldaten-Stack. Durch Parametrierung mit STEP 7 können Sie bei S7-400-CPUs und bei der CPU 318 die Größe des Lokaldatenbereichs für die einzelnen Prioritätsklassen unterschiedlich festlegen. Nicht benötigte Prioritätsklassen können Sie abwählen. Bei S7-400-CPUs und der CPU 318 wird damit der Speicherbereich für andere Prioritätsklassen erweitert. Abgewählte OBs werden bei der Programmbearbeitung nicht berücksichtigt, dadurch sparen Sie Rechenzeit.
Bei den anderen S7-300-CPUs ist jeder Prioritätsklasse eine feste Anzahl von Lokaldaten zugeordnet (256 Bytes), die nicht verändert werden kann.