API per creare oggetti

Introduzione

Le API descritte di seguito creano oggetti nel progetto Q Studio e restituiscono oggetti C# corrispondenti. Sono fornite dalla classe InformationModel, esposta dal modulo QPlatform.HMIProject.

Nella tabella seguente sono indicate le API da usare per gli scopi più comuni:

Scopo

API

Creare un oggetto di progetto del tipo base BaseObject.

InformationModel.MakeObject(browseName)

Creare un oggetto di progetto del tipo desiderato.

InformationModel.MakeObject<T>(browseName)

Creare un tipo di oggetto di progetto del tipo base BaseObject.

InformationModel.MakeObjectType(browseName)

Creare un tipo di oggetto di progetto del tipo desiderato.

InformationModel.MakeObjectType<T>(browseName)

InformationModel.MakeObject(browseName)

Crea un oggetto di progetto di tipo BaseObject e restituisce un oggetto C# di tipo IUAObject corrispondente.

static IUAObject MakeObject(QualifiedName browseName);

Argomenti

browseName QualifiedName

BrowseName del nuovo oggetto.

Restituisce

IUAObject

Oggetto C# corrispondente all’oggetto di progetto creato.

Esempio

Di seguito un esempio in cui l’API crea un oggetto Motor e restituisce l’oggetto C# corrispondente, che viene assegnato alla variabile motor. L’oggetto Motor viene poi aggiunto al nodo padre del NetLogic.

var motor = InformationModel.MakeObject("Motor");
Owner.Add(motor);

InformationModel.MakeObjectType(browseName)

Crea un tipo di oggetto derivato da BaseObject e restituisce un oggetto C# di tipo IUAObjectType corrispondente.

static IUAObjectType MakeObjectType(QualifiedName browseName);

Argomenti

browseName QualifiedName

BrowseName del nuovo tipo di oggetto.

Restituisce

IUAObjectType

Oggetto C# corrispondente all’oggetto di progetto creato.

Esempio

Di seguito un esempio in cui l’API crea un oggetto Motor (type) e restituisce l’oggetto C# corrispondente, che viene assegnato alla variabile motor. L’oggetto Motor (type) viene poi aggiunto al nodo padre del NetLogic.

var motor = InformationModel.MakeObjectType("Motor");
Owner.Add(motor);

InformationModel.MakeObject(browseName, objectTypeId)

Crea un oggetto di progetto del tipo indicato dal secondo argomento e restituisce un oggetto C# di tipo IUAObject corrispondente.

static IUAObject MakeObject(QualifiedName browseName, NodeId objectTypeId);

Argomenti

browseName QualifiedName

BrowseName del nuovo oggetto.

objectTypeId NodeId

NodeId del tipo da cui derivare il nuovo oggetto.

Restituisce

IUAObject

Oggetto C# corrispondente all’oggetto di progetto creato.

Esempio

Di seguito un esempio in cui l’API crea un oggetto NewMotor derivato da Motor (type), cercato con metodo Find e poi specificato tramite NodeId:

var motorType = Project.Current.Find("Motor");
var mymotor = InformationModel.MakeObject("NewMotor", motorType.NodeId);

InformationModel.MakeObjectType(browseName, superTypeId)

Crea un tipo di oggetto di progetto derivato dal tipo indicato dal secondo argomento (supertipo) e restituisce un oggetto C# di tipo IUAObjectType corrispondente.

static IUAObjectType MakeObjectType(QualifiedName browseName, NodeId superTypeId);

Argomenti

browseName QualifiedName

BrowseName del nuovo oggetto.

superTypeId NodeId

NodeId del tipo da cui derivare il nuovo oggetto.

Restituisce

IUAObject

Oggetto C# corrispondente all’oggetto di progetto creato.

Esempio

Di seguito un esempio in cui l’API crea un oggetto SpecialMotor (type) derivato da Motor (type), cercato con metodo Find e poi specificato tramite NodeId:

var supertype = Project.Current.Find("Motor");
Owner.Add(InformationModel.MakeObjectType("SpecialMotor", supertype.NodeId));

InformationModel.MakeObject<T>(browseName)

Crea un oggetto di progetto del tipo <T> specificato e restituisce un oggetto C# corrispondente e dello stesso tipo.

Nota

a design time, l’API funziona solo se il tipo specificato è un tipo nativo, ovvero contenuto nei moduli Q Platform.

static T MakeObject<T>(QualifiedName browseName);

Argomenti

T

Classe C# di tipo IUAObject, corrispondente alla classe dell’oggetto C# da restituire e al tipo di oggetto da cui derivare il nuovo oggetto.

browseName QualifiedName

BrowseName del nuovo oggetto.

Restituisce

T

Oggetto C# corrispondente all’oggetto di progetto creato.

Esempio

Di seguito un esempio in cui l’API crea un oggetto NewMotor di tipo Motor:

var myObj = InformationModel.MakeObject<Motor>("NewMotor");
Owner.Add(myObj);

InformationModel.MakeObjectType<T>(browseName)

Crea un tipo di oggetto di progetto del tipo <T> specificato e restituisce un oggetto C# corrispondente e dello stesso tipo.

Nota

a design time, l’API funziona solo se il tipo specificato è un tipo nativo, ovvero contenuto nei moduli Q Platform.

static T MakeObjectType<T>(QualifiedName browseName)

Argomenti

T

Classe C# di tipo IUAObjectType, corrispondente alla classe dell’oggetto C# da restituire e al tipo di oggetto da cui derivare il nuovo oggetto.

browseName QualifiedName

BrowseName del nuovo oggetto.

Restituisce

T

Oggetto C# corrispondente all’oggetto di progetto creato.

Esempio

Di seguito un esempio in cui l’API crea un oggetto NewLabelType di tipo Label e restituisce un oggetto C# di tipo LabelType:

var myObj= InformationModel.MakeObjectType.<LabelType>("NewLabelType");
Owner.Add(myObj);

InformationModel.MakeObject<T>(browseName, objectTypeId)

Crea un oggetto di progetto del tipo indicato dal secondo argomento e restituisce un oggetto C# del tipo <T> specificato corrispondente.

Nota

a design time, l’API funziona solo se il tipo specificato è un tipo nativo, ovvero contenuto nei moduli Q Platform.

static T MakeObject<T>(QualifiedName browseName, NodeId objectTypeId);

Argomenti

T

Classe C# di tipo IUAObject, corrispondente alla classe dell’oggetto C# da restituire,

browseName QualifiedName

BrowseName del nuovo oggetto.

objectTypeId NodeId

NodeId del tipo da cui derivare il nuovo oggetto.

Restituisce

T

Oggetto C# corrispondente all’oggetto di progetto creato.

Esempio

Di seguito un esempio in cui l’API crea un oggetto NewMotor di tipo Motor, cercato con metodo Find e poi specificato tramite NodeId, e restituisce un oggetto C# di tipo Motor:

var motortype = Project.Current.Find("Motor");
var myObj = InformationModel.MakeObject<Motor>("NewMotor", motortype.NodeId);
Owner.Add(myObj);

InformationModel.MakeObjectType<T>(browseName, superTypeId)

Crea un tipo di oggetto di progetto derivato dal tipo indicato dal secondo argomento (supertipo) e restituisce un oggetto C# del tipo <T> specificato corrispondente.

Nota

a design time, l’API funziona solo se il tipo specificato è un tipo nativo, ovvero contenuto nei moduli Q Platform.

static T MakeObjectType<T>(QualifiedName browseName, NodeId superTypeId);

Argomenti

T

Classe C# di tipo IUAObjectType, corrispondente alla classe dell’oggetto C# da restituire.

browseName QualifiedName

BrowseName del nuovo oggetto.

superTypeId NodeId

NodeId del tipo da cui derivare il nuovo oggetto.

Restituisce

T

Oggetto C# corrispondente all’oggetto di progetto creato.

Esempio

Di seguito un esempio in cui l’API crea un oggetto NewMotorType di tipo Motor, cercato con metodo Find e poi specificato tramite NodeId, e restituisce un oggetto C# di tipo MotorType:

var supertype = Project.Current.Find("Motor");
var myObj = InformationModel.MakeObjectType<MotorType>("NewMotorType", supertype.NodeId);
Owner.Add(myObj);

Vedi anche

Concetti correlati

Oggetti

Procedure correlate

Gestire oggetti e tipi di oggetti

Usare template di oggetti e variabili