Skip to main content

Befehl: Speicher für aktive Applikation prüfen

Funktion: Der Befehl startet eine Prüfung des Speicherbereichs der aktiven Applikation.

Aufruf: Menü Debug

Voraussetzung: Das CODESYS Memory Tools Package ist installiert. Die Applikation ist im Onlinebetrieb.

Der Speicherbereich der aktiven Applikation wird auf Folgendes überprüft:

Die Ergebnisse der Prüfung werden im Meldungsfenster ausgegeben. Verstöße gegen die Prüfungskriterien erscheinen als Warnungen.

Tabelle 1.

ID der Warnung, wenn das Prüfkriterium nicht erfüllt wird

Prüfkriterium

MC0001

BOOL-Variablen müssen im Speicher entweder 0 oder 1 sein.

MC0002

Enumerationsvariablen dürfen nur Werte annehmen, die in der Enumeration definiert sind.

MC0003

Variablen eines Unterbereichstyps dürfen nur Werte innerhalb des Unterbereich annehmen.

MC0004

Alles Strings müssen 0 terminiert sein.

MC0005

Pointer müssen immer auf Adressen zeigen, die das korrekte Alignment haben.

Pointer müssen auf Speicherstellen zeigen, deren Adresse auf die Typgranularität ausgerichtet ist, oder 0 oder -1 ist.

MC0006

Pointer müssen auf Speicher innerhalb der Applikation zeigen.

Funktionspointer im Projekt müssen in einen von CODESYS Memory Tools verwalteten Speicher zeigen.

Funktionspointer auf Bibliotheksbausteine oder auf externe Bausteine sind ausgenommen, da diese in einem externem Speicher liegen können.

MC0007

Pointer müssen auf Variablen des korrekten Typs verweisen. z. B. wenn ein POINTER TO STRING auf einen REAL zeigt.

MC0008

Interne Konsistenz von Compilerstrukturen

Funktionspointeradressen müssen intern konsistent sein.

MC0009

Interne Konsistenz von Compilerstrukturen

Schnittstellenvariablen und Funktionstabellenpointer müssen intern konsistent sein.

MC0010

Interne Konsistenz von Compilerstrukturen

MC0011

Der heruntergeladene Code darf sich seit dem Download nicht geändert haben.

Der Code von kompilierten Bausteinen muss unverändert sein.

Hinweis: Kompilierte Bausteine mit Haltepunkten werden von der Prüfung ausgenommen, weil für diese der Code zur Laufzeit manipuliert wird.

MC0012

Der Werte einer Konstanten darf sich seit dem Download nicht geändert haben.

Variablen eines konstanten Blocktyps (STRUCT, ARRAY etc.) müssen gegenüber ihren Initialisierungswerten unverändert sein.

MC0013

Interne Konsistenz von Compilerstrukturen

MC0014

Interne Konsistenz von Compilerstrukturen



Bei einem Doppelklick auf eine Warnung erscheint die Ansicht Speicher, in der die betreffende Stelle orange markiert ist.

Die Ansicht Speicher kann auch mit dem Befehl Ansicht → Speicher geöffnet werden.

Mit Hilfe des Attributs 'memory_check' kann die Prüfung eingeschränkt werden.