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