VariableInformationStruct5 (STRUCT) ¶ TYPE VariableInformationStruct5 : STRUCT WARNING! If you pass this struct to the IecVarAccess or CmpIecVarAccess, it MUST be initialized with IIecVarAccess9.VarAccInitVarInfo() or IecVarAccInitVarInfo() before usage, and it MUST be cleaned up with IIecVarAccess9.VarAccExitVarInfo() or IecVarAccExitVarInfo(). Weird side effects including crashes and memory leaks will result if you do not adhere to this rule. The new member wMethodMemberIndex nicely fits into an existing gap within the VariableInformationStruct3 struct. Depending on the architecture and global pack mode settings, we either have 3 bytes or 7 bytes gap. wMethodMemberIndex uses 2 bytes, thus a further byte is available for further use. The resulting struct size, which is also stored in the member wStructSize, is unchanged compared to the VariableInformationStruct3 struct. This allows us to implement executables without dynamic allocation in the runtime. Access is additionally guarded by VIF_EXECUTABLE_MEMBER. InOut: Name Type Comment wStructSize WORD wFlags WORD dwOffset XWORD byBitOffset BYTE wMethodMemberIndex WORD xwMonitoringOffset XWORD xwMonitoringSize XWORD dwArrayOfArrayNesting DWORD hBrowseInfo RTS_IEC_HANDLE User HandleStore varInstance HandleStore aReserved ARRAY [0..11] OF BYTE Not Used: Only for backward compatibility.
VariableInformationStruct6 (STRUCT) ¶ TYPE VariableInformationStruct6 : STRUCT WARNING! If you pass this struct to the IecVarAccess or CmpIecVarAccess, it MUST be initialized with IIecVarAccess9.VarAccInitVarInfo() or IecVarAccInitVarInfo() before usage, and it MUST be cleaned up with IIecVarAccess9.VarAccExitVarInfo() or IecVarAccExitVarInfo(). Weird side effects including crashes and memory leaks will result if you do not adhere to this rule. The new member wMethodMemberIndex nicely fits into an existing gap within the VariableInformationStruct3 struct. Depending on the architecture and global pack mode settings, we either have 3 bytes or 7 bytes gap. wMethodMemberIndex uses 2 bytes, thus a further byte is available for further use. The resulting struct size, which is also stored in the member wStructSize, is unchanged compared to the VariableInformationStruct3 struct. This allows us to implement executables without dynamic allocation in the runtime. Access is additionally guarded by VIF_EXECUTABLE_MEMBER. InOut: Name Type Comment wStructSize WORD wFlags WORD dwOffset XWORD byBitOffset BYTE wMethodMemberIndex WORD xwMonitoringOffset XWORD xwMonitoringSize XWORD dwArrayOfArrayNesting DWORD hBrowseInfo RTS_IEC_HANDLE User HandleStore varInstance HandleStore currentBrowseNameIndex DINT aReserved ARRAY [0..7] OF BYTE Not Used: Only for backward compatibility.
File and Project Information ¶ Scope Name Type Content FileHeader creationDateTime date 24.10.2023, 17:51:06 companyName string 3S-Smart Software Solutions GmbH libraryFile IecVarAccess3_Itfs.library primaryProject True productName CODESYS productProfile CODESYS V3.5 SP16 Patch 3 contentFile IecVarAccess3_Itfs.clean.json version version 2.0.0.0 ProjectInformation IsInterfaceLibrary bool True Released False LastModificationDateTime date 24.10.2023, 17:51:06 LibraryCategories library-category-list Intern|SymbolConfiguration Author string CODESYS Development GmbH Company System CompiledLibraryCompatibilityVersion CODESYS V3.5 SP15 DefaultNamespace IecVarAccess_Interfaces Description See: Description Project IecVarAccess3_Itfs Title IecVarAccess3 Interfaces Version version 4.5.0.0
Library Reference ¶ This is a dictionary of all referenced libraries and their name spaces. Base Interfaces ¶ Library Identification ¶ Name: Base Interfaces Version: newest Company: System Namespace: IBaseLibrary Library Properties ¶ LinkAllContent: False Optional: False QualifiedOnly: False SystemLibrary: False Key: Base Interfaces, * (System) Collections Interfaces ¶ Library Identification ¶ Name: Collections Interfaces Version: newest Company: System Namespace: ICollections Library Properties ¶ LinkAllContent: False Optional: False QualifiedOnly: False SystemLibrary: False Key: Collections Interfaces, * (System) SysTypes2 Interfaces ¶ Library Identification ¶ Name: SysTypes2 Interfaces Version: newest Company: System Namespace: SysTypes Library Properties ¶ LinkAllContent: False Optional: False QualifiedOnly: False SystemLibrary: False Key: SysTypes2 Interfaces, * (System)
TypeDescVarArrayAsStruct (STRUCT) ¶ TYPE TypeDescVarArrayAsStruct : STRUCT InOut: Name Type Comment _iDimensions USINT _dimInfoOffset __XWORD relative to complete stackframe _IDimInfoTypeDesc ITypeDesc _IBaseTypeDesc ITypeDesc
VariableInformationFlags (GVL) ¶ InOut: Scope Name Type Initial Comment Constant VIF_COMPLETE_ACCESS WORD 16#1 Complete access to this node, e.g. for array access VIF_DONT_MODIFY_OFFSET WORD 16#2 Internally used for resolving struct members VIF_BITACCESS WORD 16#4 A bit access is requested, e. g. for a direct address like %IX0.0 VIF_SPLIT_HUGE_VARIABLES WORD 16#8 Allow to read/write only a part of the requested variable VIF_CLIENT_ADDRESS_RESOLUTION WORD 16#10 Address/offset/size was resolved by client VIF_NATIVE_SIZE WORD 16#20 VarAccGetSize3() should return native size instead of (client) size VIF_EXTENDED_INFORMATION WORD 16#40 Obsolete, not used anymore VIF_EXECUTABLE_MEMBER WORD 16#80 Member is executable, since V3.5.11.0
VariableInformationStruct (STRUCT) ¶ TYPE VariableInformationStruct : STRUCT InOut: Name Type wStructSize WORD wFlags WORD dwOffset XWORD byBitOffset BYTE xwMonitoringOffset XWORD
VariableInformationStruct2 (STRUCT) ¶ TYPE VariableInformationStruct2 : STRUCT InOut: Name Type wStructSize WORD wFlags WORD dwOffset XWORD byBitOffset BYTE xwMonitoringOffset XWORD xwMonitoringSize XWORD
VariableInformationStruct3 (STRUCT) ¶ TYPE VariableInformationStruct3 : STRUCT WARNING! If you pass this struct to the IecVarAccess or CmpIecVarAccess, it MUST be initialized with IIecVarAccess9.VarAccInitVarInfo() or IecVarAccInitVarInfo() before usage, and it MUST be cleaned up with IIecVarAccess9.VarAccExitVarInfo() or IecVarAccExitVarInfo(). Weird side effects including crashes and memory leaks will result if you do not adhere to this rule. InOut: Name Type Comment wStructSize WORD wFlags WORD dwOffset XWORD byBitOffset BYTE xwMonitoringOffset XWORD xwMonitoringSize XWORD dwArrayOfArrayNesting DWORD hBrowseInfo RTS_IEC_HANDLE aBrowseInfoPool ARRAY [0..27] OF BYTE OBSOLETE: Only for backward compatibility. Not used anymore because data is stored in hBrowseInfo pool.
ITypeDescWithBaseType (ITF) ¶ INTERFACE ITypeDescWithBaseType EXTENDS ITypeDesc TypeDesc nodes which have a base type implement this interfaces. This can be used for the TypeDesc nodes of derived FBs, as well as e. G. for alias types or subrange types. Methods: GetBaseType FindNode , inherited from ITypeDesc Get , inherited from ITypeDesc GetNativeSize , inherited from ITypeDesc GetSize , inherited from ITypeDesc GetSize2 , inherited from ITypeDesc GetSwapSize , inherited from ITypeDesc GetTypeClass , inherited from ITypeDesc GetTypeDesc , inherited from ITypeDesc GetTypeNode , inherited from ITypeDesc NodeFound , inherited from ITypeDesc Set , inherited from ITypeDesc Swap , inherited from ITypeDesc Swap2 , inherited from ITypeDesc Structure: GetBaseType (Method)