Registerkarte: Stackverbrauch
Registerkarte im Taskkonfigurations-Editor
Die Registerkarte Stackverbrauch zeigt den aktuellen Stackverbrauch für jede Applikation, für jede Task und für die Programmierbausteine im maximalen Aufrufbaum an.
Voraussetzung, dass die Informationen angezeigt werden: Der Applikationcode wurde erzeugt. Dies erfolgt entweder automatisch beim Einloggen auf die Steuerung oder explizit durch den Befehl Erstellen → Code erzeugen.
Standard-Stackgröße aus dem Zielsystem überschreiben | WichtigDas Überschreiben der Stackgröße in Verfügbare Stackgröße ist eine Expertenfunktion. Dieses Eingabefeld ist nur verfügbar, wenn Sie die Option hier aktivieren und die anschließend erscheinende Meldung bestätigen. Die Meldung weist darauf hin, dass die Gefahr eines Stack-Überlaufs bestehen kann. Es können Ausnahmefehler auftreten.
|
| Bei Klick auf die Schaltfläche wird der Wert in Verfügbare Stackgröße auf die Standard-Stackgröße zurückgesetzt. Die Standard-Stackgröße ist in der Gerätebeschreibung definiert. |
Verfügbare Stackgröße | Verfügbare Stackgröße in Bytes Beispiel: In der Gerätebeschreibung ist die maximale Stackgröße angegeben. Diese Standard-Stackgröße wird ausgelesen und als verfügbare Stackgröße übernommen. Sie können den Wert ändern, wenn die Option Standard-Stackgröße aus dem Zielsystem überschreiben aktiviert ist. Der Compiler prüft während der Kompilierung den maximalen Stackverbrauch in der Applikation und meldet anhand dieser berechneten Größe einen Fehler, wenn ein Überlauf möglich ist. |
Angenommene Stackgröße für externe Aufrufe | Stackgröße in Bytes, die für externe Aufrufe ins Laufzeitsystem angenommen wird Beispiel: Wenn hier 24 steht, wird angenommen, dass ein Aufruf einer externen Funktion 24 Byte auf dem Stack verbraucht Hinweis: Das Ergebnis der Berechnung des Stackverbrauchs ist immer eine Schätzung. In der Gerätebeschreibung ist ein allgemeiner Schätzwert für die Stackgröße eines externen Aufrufs angegeben. Dieser Wert wird für die Berechnung verwendet. Es sei denn, einem externen Aufruf wurde mit dem Attribut 'estimated-stack-usage' ein spezieller Schätzwert zugewiesen. In diesem Fall wird der spezielle Wert bevorzugt. |
Task/Maximaler Aufrufbaum | Beim Kompilieren ermittelter Aufrufbaum (Aufrufhirarchie) Tipp: Wenn in dieser Ansicht der Aufrufbaum leer ist, können Sie einen Kompiliervorgang starten und den Befehl Erstellen → Code erzeugen aufrufen. Danach stehen Ihnen die aktuellen Informationen zum Stackverbrauch zur Verfügung. |
Stackgröße | Genutzte Stackgröße in Bytes pro aufgerufenem Programmierbaustein Oder über die Aufrufhierarchie aufsummierte Stackgröße bei einer Task Der Compiler berechnet während der Kompilierungszeit den maximalen Stackverbrauch bei maximaler Aufrufkette. Wichtig: Wenn ein Programmierbaustein rot dargestellt ist, dann bedeutet das, dass bei diesem Baustein ein Stacküberlauf ermittelt wurde. Die nachfolgenden Programmierbausteine sind wegen Speicherüberlauf ebenfalls in rot dargestellt. |
Für weitere Informationen siehe: Berechnung des Stackverbrauchs