Variablenaufruf für XML Server

Vogei

Level-1
Beiträge
38
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo!

Ich versuche gerade den XML Server für die Sicherung von Einstellungen zu erstellen. Wenn ich es wie im Beckhoff Beispiel mache und die zu speichernden Variablen im Programm anlege funktioniert es.
Code:
    fbXmlSrvWriteByName( sNetId     := '',
                         nMode      := XMLSRV_ADDMISSING,
                         sSymName   := 'MAIN.value',
                         sFilePath  := VariableName,
                         sXPath     := '/dataentry/MAIN.value',
                         bExecute   := TRUE,
                         tTimeout   := t#10s,
                         bError     => bError,
                         nErrId     => nErrId);

Hier wird die Variable "value" gesichert. Value ist in MAIN deklariert. Daher der sSymName 'MAIN.value'.

Nun möchte ich auch Globale Variablen sichern. Nun weiß ich nicht wie der Symbolname einer globalen Variable lauten muss.

Kann mir jemand helfen?

LG Danke!
 
Zuviel Werbung?
-> Hier kostenlos registrieren
?

Bei mir verhält es sich momentan so:

Ich habe 3 Variablen die ich abspeichern will.

Die ersten beiden sind im Programm Einstellungen_Speichern, die dritte ist Global im Ordner 'Globale_Variablen'.

Nun sollen nacheinander die drei Variablen in eine XML Datei geschrieben werden.

Beim ersten Durchlauf funktioniert es bis auf die Globale Variable. Der nächste Durchlauf funktioniert gar nicht. Beim nächsten funktioniert es wieder mit den beiden ersten Variablen.

Hier der Code:
Code:
IF TP_Setup_F_TRIG.Q THEN
    Abspeichern_Ablauf:=10;
END_IF

CASE Abspeichern_Ablauf OF
10:
    Name_Variable:='Einstellungen_speichern.value';
    sXPath_Var:=CONCAT('/dataentry/',Name_Variable);
     FBXmlSrvWriteByName(bExecute := TRUE);
    Abspeichern_Ablauf:=20;

20:
    FBXmlSrvWriteByName(bExecute := FALSE);
    IF NOT fbXmlSrvWriteByName.bBusy AND NOT fbXmlSrvWriteByName.bError THEN
        Abspeichern_Ablauf := 30;
    ELSIF fbXmlSrvWriteByName.bError THEN
        Abspeichern_Ablauf := 100;
    END_IF

30:
    Name_Variable:='Einstellungen_speichern.value2';
    sXPath_Var:=CONCAT('/dataentry/',Name_Variable);
     FBXmlSrvWriteByName(bExecute := TRUE);
    Abspeichern_Ablauf:=40;

40:
    FBXmlSrvWriteByName(bExecute := FALSE);
    IF NOT fbXmlSrvWriteByName.bBusy AND NOT fbXmlSrvWriteByName.bError THEN
        Abspeichern_Ablauf := 50;
    ELSIF fbXmlSrvWriteByName.bError THEN
        Abspeichern_Ablauf := 100;
    END_IF

50:
    Name_Variable:='.E_NotHalt';
    sXPath_Var:=CONCAT('/dataentry/',Name_Variable);
     FBXmlSrvWriteByName(bExecute := TRUE);
    Abspeichern_Ablauf:=60;

60:
    FBXmlSrvWriteByName(bExecute := FALSE);
    IF NOT fbXmlSrvWriteByName.bBusy AND NOT fbXmlSrvWriteByName.bError THEN
        Abspeichern_Ablauf := 0;
    ELSIF fbXmlSrvWriteByName.bError THEN
        Abspeichern_Ablauf := 100;
    END_IF

END_CASE



FBXmlSrvWriteByName(
    sNetId:='' ,
    nMode:=XMLSRV_ADDMISSING ,
    sSymName   := Name_Variable ,
    sFilePath  := 'C:\Datensatzsicherung\Einstellungen.xml',
    sXPath     := sXPath_Var ,
    bExecute:= ,
    tTimeout:= t#10s ,
    bBusy=> ,
    bError=> ,
    nErrId=> );

Ich checks nicht!
 
Code:
0x00008005 Fehler beim Hinzufügen eines XML-Knotens XMLSRVERROR_ADDNODE
Beim zweitenmal erschein keine Fehlermeldung aber die 3. Variable wird trozdem nicht geschrieben! Ich denke es muss an dieser Globalen Variablen liegen, da der Fehler nicht auftritt, wenn ich sie weg lasse!
 
Geschlossen!

Das Problem lag daran, dass in der XML Datei die Variablennamen nicht mit einem "." beginnen dürfen. Habe nun die Variable einfach mit der zusätzlichen Bezeichnung Global abgespeichert und siehe da es funktioniert!
 
Zurück
Oben