Arrayinitialisierung

Sollen die Propertywerte von BACnet-FBs als Array mit identischen Werten initialisiert werden, lässt sich die nachfolgend beschriebene Syntax verwenden. Dabei werden auf alle Elemente der Arrays AI, AO und AV die Eigenschaften Server und iParent zugewiesen. Dieses Beispiel zeigt ebenfalls den zyklischen Aufruf mit Hilfe einer for-Schleife.

Variablen

FUNCTION_BLOCK FB_BACnetServer
VAR
    Adapter : FB_BACnet_Adapter;
    Server : FB_BACnet_Server := (Adapter := Adapter);

    View_AI : FB_BACnet_View := (Server := Server, sObjectName := 'AI_Objects', sDescription := 'Collector AI Objects');

    View_AO: FB_BACnet_View := (Server := Server, sObjectName := 'AO_Objects', sDescription := 'Collector AO Objects');

    View_AV : FB_BACnet_View := (Server := Server, sObjectName := 'AV_Objects', sDescription := 'Collector AV Objects');

    AI : ARRAY[1..MAX_OBJECTS] OF FB_BACnet_AI := [MAX_OBJECTS((Server := Server, iParent := View_AI))];

    AO : ARRAY[1..MAX_OBJECTS] OF FB_BACnet_AO := [MAX_OBJECTS((Server := Server, iParent := View_AO))];

    AV : ARRAY[1..MAX_OBJECTS] OF FB_BACnet_AV := [MAX_OBJECTS((Server := Server, iParent := View_AV))];

    iFor : INT;
END_VAR
VAR CONSTANT
    MAX_OBJECTS : INT := 50;
END_VAR

Code

Adapter();
Server();
View_AI();
View_AO();
View_AV();

FOR iFor := 1 TO MAX_OBJECTS DO
    AI[iFor]();
    AO[iFor]();
    AV[iFor]();
END_FOR