XMLGetElementAsync (FB)¶
FUNCTION_BLOCK XMLGetElementAsync EXTENDS CBM.ETrig
Reads a xml element from file asynchronously, i.e. distributed on several cycles. This function block should be used to get elements of 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
BOOL
Rising 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 completedETrig
xBusy
BOOL
TRUE
: Function block activeETrig
xError
BOOL
TRUE
: Error occurred, function block aborts actionFALSE
: No errorETrig
Input
sFileName
STRING(255)
Path to a file
udiStartPosition
UDINT
Start position in file to read elements. Use XMLElement.udiPosition´
readMode
Read mode
paElements
POINTER TO XMLElement
Pointer to the result set
udiMaxElements
UDINT
Maximum size of paElements
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