XMLFindElementAsync (FB)¶
FUNCTION_BLOCK XMLFindElementAsync EXTENDS CBM.ETrig
Finds a xml element by name and attribute asynchronously, i.e. distributed on several cycles. This function block should be used to find elements in large xml files. 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 - Inherited from - Input - xExecute- BOOLRising edge: Action startsFalling edge: Resets outputsIf a falling edge occurs before the function block has completed its action, the outputs operate in the usual manner and are only reset if either the action is completed or in the event of an error. In this case, the corresponding output values (- xDone,- xError) are present at the outputs for exactly one cycle.- ETrig - Output - xDone- BOOL- TRUE: Action successfully completed- ETrig - xBusy- BOOL- TRUE: Function block active- ETrig - xError- BOOL- TRUE: Error occurred, function block aborts action- FALSE: No error- ETrig - Input - sFileName- STRING(255)- Path to a file - wsElement- WSTRING(gc_udiMaxValueSize)- The element to find. if blank, the root element will be returend. - attribute- Attributes of the xml element to find. - readMode- 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 code if xError is true - eLastError- The last 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 of the xml file 
