Hallo,
ich benutze so was recht viel. Allerdings wurde mir immer davon abgeraten. Ich habe mich dann darauf beschränkt das dynamische Anlegen von Listen auf den Beginn der Laufzeit zu legen. Sonst bekommt man in
CodeSys schnell fragmentierten Speicher.
Was möchtest Du denn dynamisch anlegen? Funktionsbausteine oder eigene Strukturen? Habe für beides zwei verschiedene Varianten gewählt. Bei Funktionsbausteinen ist der Trick __NEW(). Allerdings lässt Codesys das für selbstdefinierte Datentypen nicht mit einem Array zu.
Siehe Screenshot.
Wichtig ist, dass in dem zu instanzierenden Baustein (bei mir FBZylinder) ganz oben sowas steht:
{attribute 'enable_dynamic_creation'}
FUNCTION_BLOCK FBZylinder
mit ppZylinder[d]^(); kannst du die dann aufrufen
Mit Strukturen habe ich es anders gemacht. Dort habe ich mir einen FB gebaut welcher mir einen gewissen speicher anlegt den ich dann via Pointer mit Daten beschreiben kann. Wenn Du Interesse hat kann ich es Dir gerne zukommen lassen. Ist jetzt etwas zu viel zu schreiben
Edit:
Achso, du musst auch noch bei Eigenschafter der Applikation unter Optionen Applikationserzeugung einen Haken bei "dynamische Speicherallozierung verwenden" setzen und die größe des maximal zu Verfügung stehenden Speichers angeben.