FW_ObjMgr_CreateAndInitInstance

FW_ObjMgr_CreateAndInitInstance 1:

Diese Funktion erzeugt eine Instanz der mittels Class-ID spezifizierten Klasse und liefert zugleich einen Schnittstellenzeiger auf dieses Objekt. Zudem können Objektname und Zustand, in den das Objekt versetzt werden soll, sowie optional auch Initialisierungsparameter angegeben werden.

FW_ObjMgr_CreateAndInitInstance 2: Rückgabewert

FW_ObjMgr_CreateAndInitInstance : HRESULT;

Name

Typ

Beschreibung

FW_ObjMgr_CreateAndInitInstance

HRESULT

Liefert S_OK, wenn der Funktionsaufruf erfolgreich war.

FW_ObjMgr_CreateAndInitInstance 3: Eingänge

VAR_INPUT
    clsId     : CLSID;
    iid       : IID;
    pipUnk    : POINTER TO ITcUnknown;
    objId     : UDINT;
    parentId  : UDINT;
    name      : REFERENCE TO STRING;
    state     : UDINT;
    pInitData : POINTER TO TComInitDataHdr;
END_VAR

Name

Typ

Beschreibung

clsId

CLSID

Spezifiziert die Klasse, von welcher ein Objekt angelegt werden soll.

iid

IID

Spezifiziert die Schnittstellen-ID, zu welcher ein Schnittstellenzeiger referenziert werden soll.

pipUnk

POINTER TO ITcUnknown

Liefert den Schnittstellenzeiger auf das erstellte Objekt.

objId

UDINT

Spezifiziert die Objekt-ID für das neu erstellte Objekt. Wird hier die globale Konstante OTCID_CreateNewId eingegeben, so wird intern eine neue Objekt-ID generiert.

parentId

UDINT

Objekt-ID des Elternobjektes (optional)
Hier kann die Objekt-ID der SPS-Instanz angegeben werden, aus welcher diese Funktion aufgerufen wird. (TwinCAT_SystemInfoVarList._AppInfo.ObjId).

name

REFERENCE TO STRING

Spezifiziert den Objektnamen, welcher für das neu erstellte Objekt vergeben werden soll.

State

UDINT

Spezifiziert den Zustand, in den das neu erstellte Objekt versetzt werden soll. Typischerweise wird Operational (TCOM_STATE.TCOM_STATE_OP) angegeben.

pInitData

POINTER TO TComInitDataHdr

Zeiger auf Initialisierungsparameter (optional)

FW_ObjMgr_CreateAndInitInstance 4:

Notwendiges Löschen des Objektes

Ein erzeugtes Objekt muss explizit wieder gelöscht werden. Es gibt keinen Garbage-Collector wie in .Net. Es wird empfohlen, FW_ObjMgr_DeleteInstance zu verwenden, um spätestens im Destruktor des Objektes, welches die Instanz angelegt hat, die erzeugte Instanz zu löschen.

Voraussetzungen

TwinCAT Version

Hardware

Einzubindende Bibliotheken

TwinCAT 3.1, Build 4020

x86, x64, ARM

Tc3_Module