ITcSmTreeItem::CreateChild

Erzeugt ein untergeordnetes Tree Item auf einem untergeordneten Knoten. Das untergeordnete Element wird dabei durch seinen Subtyp spezifiziert.

HRESULT CreateChild(BSTRbstrName,long nSubType, BSTRbstrBefore, VARIANT vInfo, ITcSmTreeItem**pipItem); 

Das folgende Beispiel erläutert dieses Verhalten genauer.

ITcSmTreeItem::CreateChild 1:

In diesem Beispiel wird einem EtherCAT-Master-Gerät (Gerät 1) in TwinCAT XAE ein EK1100-Koppler hinzugefügt. Im TwinCAT Automation Interface könnte dies mit der CreateChild()-Methode durchgeführt werden. Der übergeordnete Knoten (Gerät 1 EtherCAT) ist vom Typ '2' (TREEITEMTYPE_DEVICE). Der Subtyp spezifiziert das untergeordnete Tree Item und so auch den EK1100, der vom Subtyp '9099' (BOXTYPE_EXXXXX) ist.

Parameter

bstrName

[in] Elementname des neuen untergeordneten Tree Item.

nSubtype:

[in] Subtyp des neuen untergeordneten Tree Items. Der verwendbare Subtyp hängt ab vom Tree Item Type (der Kategorie) des übergeordneten ´Tree Items . So kann z.B. ein SPS-Funktionsblock nur dem Elementtyp PLCFOLDER, und nicht einem DEVICE, hinzugefügt werden.

bstrBefore

[in, defaultvalue("")] Wenn gesetzt, enthält der Parameter den Namen eines anderen untergeordneten Tree Items, vor dem das neue Element einzufügen ist.

vInfo

[in, optional] Ein optionaler Parameter mit zusätzlichen Informationen für die Erstellung , welche abhängt vom Subtypen. Die verschiedenen Abhängigkeiten werden in der Tabelle unten aufgelistet.

pipItem

[out, retval] Zeigt auf den Speicherort eines ITcSmTreeItem-Schnittstellenzeigers, der das Ergebnis erhält.

Rückgabewerte

S_OK

Funktion hat Wert erfolgreich zurückgegeben.

E_POINTER

die Adresse des Rückgabezeigers ist ungültig

TSM_E_INVALIDITEMSUBTYPE (0x98510003)

der angegebene Subtyp ist ungültig.

TSM_E_ITEMNOTFOUND (0x98510001)

Das Element bstrBefore wurde nicht gefunden.

Optionaler vInfo Parameter

Abhängig vom Element-Sub typ des neuen untergeordneten Tree Items, bestimmte Zusatzinformationen sind möglicherweise erforderlich für die Erstellung des untergeordneten Tree Items. Diese Information kann über den vInfo-Parameter geliefert werden.

Untergeordnetes Element: Element-Subtyp

vInfo-Parameter

E-Bus Box / Klemme / Modul (Element-Subtyp 9099)

Enthält das Identity-Objekt (CoE 1018h, VendorId, ProductCode und optional RevisionNo und SerialNo) der EtherCAT Box. Der Typ der Variante muss ein Array von LONG (VT_I4|VT_ARRAY, 2-4 Elemente) sein. Enthält alternativ einen BSTR im folgenden Format (wobei %X = Wert in hexadezimaler Notation, z.B. "V00000002_P044c2c52_R00000000"):
Insbesondere für Beckhoff E-Bus Klemmen / Module bitte entsprechenden E-Bus Artikel lesen.

Interbus-Box. (Element-Subtyp 2002)

Enthält den IdentCode und LengthCode der Interbus-Box. Der Typ der Variante muss ein vorzeichenloses Short (VT_I2) sein, wobei das Low-Byte den IdentCode und das High-Byte den LengthCode enthält.

AX2000 (Element-Subtyp 5007)
CANDrive (Element-Subtyp 5006)

Enthält optional einen boolschen Wert (VT_BOOL) und wenn er gesetzt ist, wird eine zusätzliche Variable für den “Schleppfehler” erzeugt.

DeviceNET (Element-Subtyp 5203)
TcDNSSlave (Element-Subtyp 5250)
CX1500 (Element-Subtyp 1042)
FC520X Slave (Element-Subtyp 1043)

Enthält optional den Dateipfad einer EDS-Datei (VT_BSTR).

BK3000 und alle übrigen PROFIBUS-Box-Typen

Enthält optional den Dateipfad einer GSD-Datei (VT_BSTR).

Variable

Enthält optional die Bit-Adresse der neuen Variablen. Der Typ der Variante kann ein SHORT oder ein LONG (VT_I2 oder VT_I4) sein.

SPS-POU Funktionsblock (Element-Subtyp 604)

Enthält IEC-Sprachentyp als Integer, wie durch IECLANGUAGETYPES definiert.

SPS-POU Funktion (Element-Subtyp 603)

Enthält ein string[2]-Array, das folgende Werte hält:

  • array[0] = IEC-Sprachentyp als Integer, wie durch IECLANGUAGETYPES definiert.
  • array[1] = Rückgabetyp der Funktion. Kann jeder beliebiger SPS-Datentyp sein, z.B. DINT, BOOL, ...