FB_BA_StaticArray

FB_BA_StaticArray 1:

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.

FB_BA_StaticArray 2:

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

AddEntry

Lokal

Erstellt einen neuen Datensatz am Ende des Arrays und kopiert den Inhalt des angegebenen Eintrags in den internen Speicher

Reset

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