Definire nuovi metodi¶
Definire un metodo in C#
All’interno di un NetLogic, la sintassi C# per definire un nuovo metodo (nell’esempio, Foo
) è la seguente:
public void Foo()
{
}
All’interno delle parentesi graffe ({}
) si scrive il codice che il metodo deve eseguire.
Nota
nell’esempio, il metodo non esegue alcun codice.
All’interno di una classe è possibile definire più metodi.
Definire un metodo OPC UA in C#
Per definire un metodo OPC UA, quindi referenziabile in Q Studio a design time e invocabile a runtime anche da un client OPC UA, scrivere [ExportMethod]
prima del metodo. Di seguito un esempio:
[ExportMethod]
public void Foo()
{
}
Creare un metodo OPC UA in Q Studio
All’interno del pannello Progetto, fare clic sul nodo desiderato, poi fare clic su
, NetLogic, NetLogic di runtime: viene creato un nuovo NetLogic.
Fare clic con il pulsante destro del mouse sul NetLogic, New, Method:
Nel NetLogic viene aggiunto il seguente codice:
[ExportMethod] public void MethodName() { }
Si apre il NetLogic nell’editor di codice impostato.
(Opzionale) Rinominare il metodo in C#.
Definire argomenti di un metodo in C#
Gli argomenti di un metodo si definiscono tra parentesi tonde (()
) dopo il nome del metodo. Un metodo OPC UA può avere un numero qualsiasi di argomenti di ingresso e uscita.
Importante
se si modificano gli argomenti di un metodo associato a un evento in Q Studio, è necessario riassociare il metodo.
Per definire un argomento di ingresso, indicare tra parentesi tonde il tipo di dato seguito dal nome dell’argomento. Separare ogni argomento con la virgola.
Nell’esempio seguente sono dichiarati i due argomenti di ingresso di tipo intero speed
e rpm
:
public void Foo(int speed, int rpm)
{
}
Per definire un argomento di uscita, indicare tra parentesi tonde la parola chiave out
seguita dal tipo di dato e dal nome dell’argomento. Separare ogni argomento con la virgola. Assegnare poi i valori agli argomenti di uscita.
Nell’esempio seguente sono definiti i due argomenti di uscita, rispettivamente di tipo stringa e intero, result
e motorSpeed
:
public void Foo(out string result, out int motorSpeed)
{
result= "Ok";
motorSpeed = motor.speed;
}
Per definire sia argomenti di ingresso che di uscita per lo stesso metodo, la sintassi non cambia. Nell’esempio seguente sono definiti due argomenti di ingresso e due di uscita:
public void Foo(int speed, int rpm, out string result, out int motorSpeed )
{
result = "Ok";
motorSpeed = motor.speed;
}