Browse FAQs

Is it possible to create a Structure Variable consisting of mixed Persistent and Non-Persistent Variable leaf elements?

Published date: 12 December 2018

Issue
Is it possible to create a Structure Variable consisting of mixed Persistent and Non-Persistent Variables (leaf elements)?
 
For example, we wish to have MyINT and MyWord Non-Persistent and MyBOOL as Persistent below:

DUT Type Definition
TYPE MyStructType :
    STRUCT
        MyINT : INT;
        MyWORD : WORD;
        MyBOOL : BOOL;
    END_STRUCT
END_TYPE
 
Structure Variable Definition in Global Variable List (GVL):
VAR_GLOBAL
    ThisStruct : MyStructType;
END_VAR
 
Product Line
SoMachine v3.1, SoMachine v4.1, SoMachine v4.2, SoMachine v4.3
 
Environment
PLC Configuration Software
 
Resolution
No. It is not possible to create a Structure Variable that has leaf-element Variables that consist of mixed Persistent and Non-Persistent Variables.
 
Fully Persistent Structure Variables must be defined in the PersistentVars object, while Non-Persistent Structures must be defined in either a POU's Variable Definition box or the Global Variable List (GVL) separately.
 
Example:
The original Structure from the above Example can be split into two Structures defined in the GVL and PersistentVars objects.
 
DUT Type Definitions
1) Meant for Non-Persistent:
TYPE MyStructType :
    STRUCT
        MyINT : INT;
        MyWORD : WORD;
    END_STRUCT
END_TYPE

2) Meant for Persistent:
TYPE MyPersistentStructType :
    STRUCT
        MyBool : BOOL;
    END_STRUCT
END_TYPE
 
Structure Variable Definition in Global Variable List (GVL):
VAR_GLOBAL
    NonPersistentStruct : MyStructType;
END_VAR
 
Structure Variable Definition in PersistentVars:
VAR_GLOBAL PERSISTENT RETAIN
    PersistentStruct :  MyPersistentStructType
END_VAR

Was this helpful?

What can we do to improve the information ?

Can't find what you are looking for?

Reach out to our customer care team to receive information on technical support, assistance for complaints and more.