FB_BA_StaticArray

Der Funktionsbaustein ist eine Erweiterung des Funktionsbausteins FB_DynamicArray.
Hintergrund dieser Erweiterung ist, den Einsatz von Routerspeicher zu vermeiden, und stattdessen statischen Speicher nutzen. Dieser ist in der Applikation zu deklarieren und kann dort beliebig in dessen Größe angepasst werden.
![]() | Der statische Speicher ist zwar von der Applikation bereitzustellen, jedoch darf dieser niemals außerhalb des Arrays verändert werden! Die Verwaltung sollte in jedem Fall über das Array selbst geschehen. |
Es empfiehlt sich das statische Array immer dann einzusetzen, wenn die zu erwartende Speicherausnutzung genau abgeschätzt werden kann.
Auf Gründen der Effizienz sollte die Speichergröße so dimensioniert werden, dass so wenig Speicher wie möglich, und nur so viel Speicher wie nötig reserviert wird. Zur Deklaration der Grenze des Speicherbereichs eignen sich globale Konstanten und Parameterlisten.
Anwendung
Grundsätzlich sind die Anwendungsfälle identisch mit dem dynamischen Array. Lediglich die Deklaration unterscheidet sich zum Teil, da dort der externe Speicherbereich und dessen Größe zu übergeben sind.
Weiterführende Informationen
Siehe Beispiele für Initialisierung bei Variablen-Deklaration.
Beispiele
Exemplarische Deklaration des Arrays, dessen statischem Speicher und entsprechender Konstanten.
VAR_GLOBAL CONSTANT
uiObjectCount : UINT := 100;
uiArrayMemSize : UINT := TO_UINT(uiObjectCount * SIZEOF(FB_OBJECT));
END_VAR
VAR
bArrayMemory : ARRAY[0.. uiArrayMemSize] OF BYTE;
fbArray : FB_StaticArray := (uiEntrySize:=SIZEOF(FB_Object), pExtMemory:=ADR(bArrayMemory), uiExtMemorySize:=uiArrayMemSize);)
END_VAR
Weiterführende Informationen
Da das statische Array genauso anzuwenden ist wie das dynamische Array, sind dort entsprechende Anwendungsbeispiele dokumentiert.
Methods of FB_BA_StaticArray
Name | Definitionsort | Beschreibung |
---|---|---|
Lokal | Erstellt einen neuen Datensatz am Ende des Arrays und kopiert den Inhalt des angegebenen Eintrags in den internen Speicher | |
Lokal | Setzt den kompletten Inhalt des Arrays zurück. |
Voraussetzungen
Entwicklungsumgebung | Erforderliche Bibliothek | Erforderliche Function |
---|---|---|
TwinCAT3.1 4022.16 | Tc3_BA_Common ab V1.0.4.3 | TF8040 | TwinCAT Building Automation ab V1.0.5.0 |