Library Reference ¶ This is a dictionary of all referenced libraries and their name spaces. 3SLicense ¶ Library Identification ¶ Placeholder: 3SLicense Default Resolution: 3SLicense, * (3S - Smart Software Solutions GmbH) Namespace: _3S_LICENSE Library Properties ¶ LinkAllContent: False Optional: False QualifiedOnly: False SystemLibrary: False Key: 3SLicense CAA FB Factory ¶ Library Identification ¶ Placeholder: CAA FB Factory Default Resolution: CAA FB Factory, * (CAA Technical Workgroup) Namespace: FBF Library Properties ¶ LinkAllContent: False Optional: False QualifiedOnly: True SystemLibrary: False Key: CAA FB Factory CAA Types Extern ¶ Library Identification ¶ Placeholder: CAA Types Default Resolution: CAA Types Extern, * (CAA Technical Workgroup) Namespace: CAA Library Properties ¶ LinkAllContent: False Optional: False QualifiedOnly: True SystemLibrary: False Key: CAA Types CmpCrypto ¶ Library Identification ¶ Placeholder: CmpCrypto Default Resolution: CmpCrypto, * (System) Namespace: CmpCrypto Library Properties ¶ LinkAllContent: False Optional: False QualifiedOnly: False SystemLibrary: False Key: CmpCrypto CmpErrors2 Interfaces ¶ Library Identification ¶ Name: CmpErrors2 Interfaces Version: newest Company: System Namespace: CmpErrors Library Properties ¶ LinkAllContent: False Optional: False QualifiedOnly: False SystemLibrary: False Key: CmpErrors2 Interfaces, * (System) CmpLog ¶ Library Identification ¶ Placeholder: CmpLog Default Resolution: CmpLog, * (System) Namespace: CmpLog Library Properties ¶ LinkAllContent: False Optional: False QualifiedOnly: False SystemLibrary: False Key: CmpLog Common Behaviour Model ¶ Library Identification ¶ Placeholder: CBML Default Resolution: Common Behaviour Model, * (3S - Smart Software Solutions GmbH) Namespace: CBML Library Properties ¶ LinkAllContent: False Optional: False QualifiedOnly: True SystemLibrary: False Key: CBML Component Manager ¶ Library Identification ¶ Placeholder: Component Manager Default Resolution: Component Manager, * (System) Namespace: Component_Manager Library Properties ¶ LinkAllContent: False Optional: False QualifiedOnly: False SystemLibrary: False Key: Component Manager Net Base Services ¶ Library Identification ¶ Placeholder: NetBaseSrv Default Resolution: Net Base Services, * (3S - Smart Software Solutions GmbH) Namespace: NBS Library Properties ¶ LinkAllContent: False Optional: False QualifiedOnly: True SystemLibrary: False Key: NetBaseSrv Standard ¶ Library Identification ¶ Placeholder: Standard Default Resolution: Standard, * (System) Namespace: Standard Library Properties ¶ LinkAllContent: False Optional: False QualifiedOnly: False SystemLibrary: False Key: Standard String Util Intern ¶ Library Identification ¶ Placeholder: String_Util_Intern Default Resolution: String Util Intern, * (CODESYS) Namespace: MSU Library Properties ¶ LinkAllContent: False Optional: False QualifiedOnly: True SystemLibrary: False Key: String_Util_Intern StringUtils ¶ Library Identification ¶ Placeholder: StringUtils Default Resolution: StringUtils, * (System) Namespace: Stu Library Properties ¶ LinkAllContent: False Optional: False QualifiedOnly: False SystemLibrary: False Key: StringUtils SysMem ¶ Library Identification ¶ Placeholder: SysMem Default Resolution: SysMem, * (System) Namespace: SysMem Library Properties ¶ LinkAllContent: False Optional: False QualifiedOnly: False SystemLibrary: False Key: SysMem SysSocket2 ¶ Library Identification ¶ Placeholder: SysSocket2 Default Resolution: SysSocket2, * (System) Namespace: SysSocket2 Library Properties ¶ LinkAllContent: False Optional: False QualifiedOnly: False SystemLibrary: False Key: SysSocket2 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)
XML Utility SL Library Documentation ¶ Company : CODESYS Title : XML Utility SL Version : 1.11.0.0 Categories : Application|Utils Namespace : XML Author : CODESYS Development GmbH Placeholder : XML_Utility_SL Description [ 1 ] ¶ Library to read and write XML files. The library can read and write UTF-8 and UTF-16 coded well-formed xml files. Supported xml elements: Standard element <xxx>aaa</xxx> and <xxx /> Attributes yyy="zzz" Comments <!-- Comment --> CDATA elements Each element of the file is stored in a structure of the type XMLElement. A complete xml file or parts of it will be stored in an array of structures. Function block to read xml files ¶ XMLGetElement : Function block to read xml elements with following options: Read one element only Read all children of an element Read all underlying elements The reading is done file based and buffered, so it is possible to load an element without loading the complete file. XMLGetElementAsync : Asynchronous version of the function block XMLGetElement. Function blocks to find xml elements ¶ XMLFindElement : Function block to find xml elements with following search options: Search by element name Search by attribute name and value Read all children of the search result Read all underlying elements of the search result Start position in the file of the search XMLFindElementAsync : Asynchronous version of the function block XMLFindElementAsync. XMLFindElementByStringAsync : Functions like function block XMLFindElementAsync with STRING input fields. Function blocks to write xml files ¶ XMLWrite : Function block to write xml files. Partial writing of elements is not supported, i.e. the complete file structure must be loaded. XMLWriteAsync : Asynchronous version of the function block XMLWrite. Parameters ¶ Reading files is buffered. The size of the buffer must greater than the size of the largest xml element. The size of the buffer and the maximum WSTRING size of the structure XMLElement can be changed in the parameter list ( param ) of the library manager. The size of the data array can be declared individually outside the function blocks. Example project XMLUtilityExample.project ¶ The example project XMLUtilityExample contains two example applications for the xml library. The application XMLFindExample (see Figure 1 ) shows how to search for elements and how to load child elements. The application has three functions. The button ‘Find first XML element’ returns the first element with the specified element name and attribute value. If no element name is set than the root element will be returned. The button ‘Find next element’ will continue the search from the current position and will return the next element. The function ‘Read children of the selected element’ reads all child elements of the selected element. You can use the example XML file ‘c:\temp\SimpleXMLExample.xml’ to test the application. Figure 1: Visualization of application ‘XMLFindExample’ ¶ Example XML file ‘SimpleXMLExample.xml’ ¶ <?xml version="1.0" encoding="utf-8"?> <Elements> <!--This is a simple xml example --> <Element attribute1= "1" > This is the value of Element 1 </Element> <Element attribute1= "2" > This is the value of Element 2 </Element> <Element attribute1= "3" attribute2= "33789" attribute3= "99.98" > This is the value of Element 2 </Element> <Element attribute1= "4" > <Subelement id= "1" > Value of Subelement 1 </Subelement> <Subelement id= "2" > Value of Subelement 2 </Subelement> <Subelement id= "3" > Value of Subelement 3 <!--3. level --> <Child attribute1= "1" > Element4/Subelement3/Child1 </Child> <Child attribute1= "2" > Element4/Subelement3/Child2 </Child> <Child attribute1= "3" > Element4/Subelement3/Child3 </Child> </Subelement> </Element> <!--CDATA and escaping --> <Text id= "1" > <![CDATA[This is a CDATA section.]]> </Text> <Text id= "2" > Lesser than: < Greater than: > And: & Apostroph: ' Quote: " </Text> </Elements> The application XMLReadWriteExampleAsync (see Figure 2 and Figure 3 ) reads and writes xml files. The function ‘Read XML file’ loads every element of the file ‘SimpleXMLExample.xml’ in an array of XMLElements. The function ‘Write XML file’ writes the loaded elements in a new file called ‘SimpleXMLExample2.xml’. Each element of the file is loaded to the memory. It is important to ensure that the size of data array is large enough to hold the data. Figure 2: Visualization of application ‘XMLReadWriteExampleAsync’ ¶ Figure 3: CFC of application ‘XMLReadWriteExampleAsync’ ¶ Contents: ¶ XML Utility Enums Function Blocks Parameter Structs Indices and tables ¶ [ 1 ] Based on XML Utility SL.library, last modified 14.08.2024, 09:24:07. LibDoc 4.5.0.0 The content file XML Utility SL.clean.json was generated with CODESYS V3.5 SP16 Patch 3 on 14.08.2024, 09:24:09.
XML Utility ¶ Enums ERROR (Enum) ElementType (Enum) Encoding (Enum) READ_MODE (Enum) Function Blocks XMLFindElement (FunctionBlock) XMLFindElementAsync (FunctionBlock) XMLFindElementByStringAsync (FunctionBlock) XMLGetElement (FunctionBlock) XMLGetElementAsync (FunctionBlock) XMLWrite (FunctionBlock) XMLWriteAsync (FunctionBlock) Parameter Param (ParamList) Structs XMLElement (Struct)
Enums ¶ ERROR (Enum) ElementType (Enum) Encoding (Enum) READ_MODE (Enum)
ERROR (ENUM) ¶ TYPE ERROR : Error codes of the XML Utility Attributes: qualified_only InOut: Name Initial Comment NO_ERROR 0 Executed without error TIME_OUT 1 Time out FILE_OPEN_ERROR 2 Could not open file INVALID_HANDLE 3 Open file retuned invalid handle READ_ERROR 4 Could not read file WRITE_ERROR 5 Could not write file SET_POS_FAILED 6 Invalid file position NOT_FOUND 7 Element not found START_TAG_NOT_FOUND 8 Start tag of the element not found NEXT_START_TAG_NOT_FOUND 9 Next start element not found. ELEMENT_EXCEEDS_BUFFERSIZE 10 Element size exceeds buffer size. Increment the value of gc_udiBufferSize . COMMENT_EXCEEDS_BUFFERSIZE 11 Comment size exceeds buffer size. Increment the value of gc_udiBufferSize . BLANK_NOT_FOUND 12 Missing blank between attributes MAX_ELEMENT_SIZE_EXCEEDED 13 Maximum array size of XMLElemnts exceeded DATA_ARRAY_POINTER_IS_NULL 14 Data pointer is null EMPTY_DATASET 15 Empty dataset MAX_VALUE_SIZE_EXCEEDED 16 Maximum value size exceeded. Increment the value of gc_udiMaxValueSize . INVALID_LICENSE 17 No valid license found or demo mode has expired. INVALID_INPUT_MAXELEMENTS 18 No valid udiMaxElements, e.g. udiMaxElements = 0
ElementType (ENUM) ¶ TYPE ElementType : Type of the xml element InOut: Name Initial Comment Element 0 Marks an element CDATAElement 1 Marks an element with CDATA Attribute 2 Marks an attribute of an element Comment 3 Marks an comment NotSet 4 Marks an empty element
Encoding (ENUM) ¶ TYPE Encoding : Encoding of a xml file InOut: Name Initial Comment UTF8 0 UFT-8 encoding UTF16 1 UTF-16 encoding
READ_MODE (ENUM) ¶ TYPE READ_MODE : Read modes InOut: Name Initial Comment ONE_ELEMENT 0 Reads only the specified element CHILDREN_ONLY 1 Reads all child elements of the specified element RECURSIVE 2 Reads all underlying elements of the specified element
Function Blocks ¶ Function blocks to read, write and find XML elements. XMLFindElement (FunctionBlock) XMLFindElementAsync (FunctionBlock) XMLFindElementByStringAsync (FunctionBlock) XMLGetElement (FunctionBlock) XMLGetElementAsync (FunctionBlock) XMLWrite (FunctionBlock) XMLWriteAsync (FunctionBlock)
XMLFindElement (FB) ¶ FUNCTION_BLOCK XMLFindElement Finds a xml element by name and attribute. Use the function block XMLFindElementAsync for large XML files to find the value asynchronously. To read from file set sFileName to file path and paDataArray = 0. To read from data array set sFileName = ‘’ and paDataArray to data pointer. InOut: Scope Name Type Initial Comment Input sFileName STRING(255) Path to a xml file wsElement WSTRING(gc_udiMaxValueSize) The element to find. if blank, the root element will be returend. attribute XMLElement Attributes of the xml element to find. readMode READ_MODE Read mode paElements POINTER TO XMLElement Pointer to the result set udiMaxElements UDINT Maximum size of paElements udiStartPosition UDINT 0 Start position in bytes xTruncateValues BOOL FALSE true: All values that exceed the maximum value size will be truncated paDataArray POINTER TO BYTE 0 Pointer to XML data array, if 0 read from file (sFileName) udiDataArraySize UDINT 0 Size of paDataArray Output eError ERROR Error udiCountElements UDINT Number of elemnents in paElements udiNextReadPos UDINT Position in file (in bytes) of the next xml element, 0 if last element eEncoding Encoding Encoding of the xml file