FB_HVACPersistent_Struct
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 *)