FB_HVACPersistent_Struct

FB_HVACPersistent_Struct 1:

VAR_INPUT

bSetDefault        : BOOL;
dwAdrStruct        : DWORD;
udiSizeOfStruct    : UDINT;
dwAdrStruct_Default: DWORD;                        

bSetDefault: Wenn die Variable TRUE ist, werden die Voreinstellwerte der lokierten Strukturinstanz dwAdrStruct_Default übernommen und auf die dwAdrStruct Adresse kopiert.

dwAdrStruct: Adresse der deklarierten Struktur Variable, die persistent gespeichert werden soll.

udiSizeOfStruct: Größe der instanzierten Struktur in Bytes.

dwAdrStruct_Default: Adresse der lokierten Strukturinstanz mit den Voreinstellwerten.

VAR_OUTPUT

bInvalidParameter     : BOOL;

bInvalidParameter: TRUE, wenn udiSizeOfStruct > g_udiMaxNoOfBytesInStruct ODER dwAdrStruct = 0 ODER dwAdrStruct_Default = 0

VAR_GLOBAL CONSTANT

g_udiMaxNoOfBytesInStruct  : UDINT := 16;  (* size in number of bytes *)                       

g_udiMaxNoOfBytesInStruct: Über diese global deklarierte Konstante wird die Größe der Struktur in Bytes definiert. Standardmäßig sind 16 Bytes definiert. Diese Konstante kann den Erfordernissen angepasst werden.

Beispiel:

VAR
    fbBackupStruct    : FB_HVACPersistent_STRUCT;
    bSetDefault       : BOOL;            (* default flag *)
    stTemp            : ST_Temp;             (* structure values *)
    stTemp_Default    : ST_Temp;             (* default Values *)
    bInvalidParameter : BOOL;
END_VAR                     

ST_Temp:

TYPE ST_Temp :
STRUCT
       (* total of 8 bytes *)
       byVar1      : BYTE;
       byVar2      : BYTE;
       byVar3      : BYTE;
       byVar4      : BYTE;
       iVar1       : INT;
       iVar2       : INT;
END_STRUCT
END_TYPE
stTemp_Default.byVar1:= 11;    (* one byte *)
stTemp_Default.byVar2:= 22;    (* one byte *)
stTemp_Default.byVar3:= 33;    (* one byte *)
stTemp_Default.byVar4:= 44;    (* one byte *)
stTemp_Default.iVar1:= 55;     (* two bytes *)
stTemp_Default.iVar2:= 66;     (* two bytes *)

FB_HVACPersistent_Struct 2: