Array initialization

If the property values of BACnet FBs are to be initialized as an array with identical values, the syntax described below can be used. The Server and iParent properties are assigned to all elements of the AI, AO and AV arrays. This example also shows the cyclic call using a for loop.

Variables

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