Übersicht

Die SPS Bibliothek Tc3_DynamicMemory vereinfacht die Verwendung von dynamischem Speicher in der SPS. Die Speicherallokationen bedienen sich aus dem TwinCAT Router Speicher.

Es stehen Funktionsbausteine zur Verfügung, um Puffer für verschiedenste Daten anzulegen. Diese kümmern sich automatisch auch um die nötige Freigabe des Speichers zum Ende der Laufzeit.

Zudem können eigene Speicherallokationen mit einem Speicher-Manager überwacht werden, welcher Methoden analog zu den Operatoren __NEW() und __DELETE() anbietet. Bei Verwendung der Bibliothek kann und sollte also auf die Verwendung der zwei genannten Operatoren verzichtet werden.

Bei Verwendung dieser SPS Bibliothek resultiert so ein besserer Überblick über die Menge des bereits allokierten Speichers.

Vorteile von dynamisch allokiertem Speicher in der TwinCAT Echtzeit

Es muss nur die Speichermenge allokiert werden, welche zur Laufzeit benötigt wird. Das vorherige Anlegen großer Reserven entfällt.

Auf unerwartet hohen Speicherbedarf, bspw. beim Datenaustausch über eine Kommunikationsschnittstelle, kann in der Laufzeit reagiert werden und dieser ggf. sogar nur temporär zur Verfügung gestellt werden.

Nachteile von dynamisch allokiertem Speicher in der TwinCAT Echtzeit

- Eine Speicherallokation während der Laufzeit ist rechenintensiv.

- Eine Speicherallokation kann fehlschlagen, wenn kein entsprechend großer Block mehr im Speicher frei ist.

- Fragmentierungen im TwinCAT Router Speicher sind möglich.

- Explizite Speicherfreigaben sind nötig.

- Eine Typänderung einer dynamisch allokierten Instanz per Online-Change ist nicht möglich.

>>> Nur bei hohem Nutzen und ohne sinnvolle Alternativen sollte in der TwinCAT Echtzeit Speicher dynamisch allokiert werden.

Systemvoraussetzung

 

 

Target System

Win7, WES7, WEC7, Win10
IPC oder CX (x86, x64, ARM)

Min. TwinCAT-Version

3.1.4024.7

Min. TwinCAT-Level

TC1200 TC3 PLC