HasMember

TwinCAT TIA
Lokal Datei- und Ordner-Zugriff XML-Reader ActiveXMLDocuments Ein Reader

ns=2;s=DEPRAG Smart/Local/FileAndDirectoryAccess/Xml/ActiveXmlDocuments/0/HasMember

Mit diesem Befehl kann geprüft werden, ob das angebende XML-Element im XML-Dokument enthalten ist.

Parameter:

Rückgabewert:

    HasMember
    Eine Variable vom Typ OpcMethodReturnValueBoolean. In der Eigenschaft Result sind die befehlsspezifischen Rückgabewerte enthalten.
      Result
      Eine boolesche Variable, die angibt ob das XML-Element im XML-Dokument enthalten ist.

Beispiele:

Neben den bereits erläuterten Parametern sind für die Implementierung in TwinCAT 3 nachfolgende Variablen anzulegen / zu übergeben:

Beckhoff Parameter:

    bXmlHasMember
    Eine boolesche Variable, über welche die Ausführung des HasMember-Befehls getriggert werden kann.
    OutputDataXmlHasMember
    Eine Instanz der "ST_BoolOutputData" Struktur, in welche der Rückgabewert der HasMember-Methode geschrieben wird.
    hrXmlHasMember
    Hiermit kann die Ausführung des Befehls überwacht werden. Fehler-Codes haben den Typ "HRESULT".
    fbXml
    Eine Instanz des, mit der DEPRAG Smart-Bibliothek gelieferten, "FB_Xml" Funktionsbausteins.
    XmlPath
    Eine Variable vom Typ ST_XmlPath, in welcher die Teilpfade und deren Beschreibungen enthalten sind.
    ClientId
    Eine STRING(255)-Variable, die das XML-Dokument in der Liste der ActiveXmlDocuments eindeutig identifiziert.
    ConnectionHandle
    Beim Verbindungsaufbau zwischen DEPRAG Smart Server und Ihrem OPC UA Client erhaltenes "ConnectionHandle".


VAR
       bXmlHasMember     : BOOL;
       OutputDataXmlHasMember   : ST_BoolOutputData;
       hrXmlHasMember     : HRESULT;
       XmlPath       : ST_XmlPath;

       fbXml        : FB_Xml;
END_VAR

XmlPath.PartialPathsLength       := 1;
XmlPath.XmlPartialpaths[0].ElementName    := 'book';  
XmlPath.XmlPartialpaths[0].AttributesLength   := 1;    
XmlPath.XmlPartialpaths[0].XmlAttribute[0].Name  := 'id'; 
XmlPath.XmlPartialpaths[0].XmlAttribute[0].Value  := 'bk102'; 

hrXmlHasMember := fbXml.HasMember(
       bExecute    := bXmlHasMember,   
       ConnectionHandle := depragSmartConnection.ConnectionHandle, 
       XmlPath    := XmlPath,         
       ClientId   := '0',
       OutputData   => OutputDataXmlHasMember);
IF hrXmlHasMember <> S_FALSE THEN 
       bXmlHasMember := FALSE;
END_IF
                                                    

Für Beispiele und Erklärungen bezüglich der Aufrufe von Knoten via Siemens TIA Portal sei an dieser Stelle auf den Unterpunkt "Siemens TIA Portal" in Abschnitt "Erste Schritte" verwiesen.