XML lesen Baustein in Funktion ausführen - TwinCat 3

DauDau

Level-1
Beiträge
2
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,
Ich versuche einen Funktionsbaustein (FB_XMLSrvRead) in einer Function auszuführen.

[h=1]FUNCTION F_CheckXML : BOOL
VAR_INPUT
sStation : T_MaxString;
pt: POINTER TO ST_Station;
END_VAR
VAR
value1 : ST_Station;
fbXmlSrvRead : FB_XmlSrvRead;
sFilePath : T_MaxString := 'C:\stations.xml'; //disable for CE
//sFilePath : T_MaxString := '\Hard Disk\Test.xml'; //enable for CE
sXPath : T_MaxString;


bExecute : BOOL := TRUE;


END_VAR


-------------------------------------------------------------

sXPath := CONCAT('/station/' , sStation);

fbXmlSrvRead(
pSymAddr := ADR(value1),
cbSymSize := SIZEOF(value1),
sFilePath := sFilePath,
sXPath := sXPath,
bExecute := bExecute
);

pt^ := value1;
[/h]Also eigentlich wie in dem Beispiel. In einem PRG funktioniert das ganze auch, als FUN leider nicht.
Ich habe versucht es zu debuggen. Das Progamm geht auch in die Funktion, führt fbXMLSrvRead aus, aber schreibt keine Werte in value1.
Ich vermute, dass es mit dem bExecute Eingang zu tun hat. Dieser reagiert auf steigende Flanken.

Baustein:
https://infosys.beckhoff.com/index....ys3/html/startpage.htm&id=8037999518053714500

habt ihr eine Idee, woran das liegt?
 
in einer Funktion kannst/darst du keinen FB aufrufen. Das widerspricht sich und ist auch per IEC nicht erlaubt.
(Eine Funktion ist per se re-entrant und hat keine remanentes Verhalten...
Nutze also statt einer Funktion ein FunktionsBlock

Guga
 
Zurück
Oben