Methoden in C# definieren
Sie können Methoden und OPC UA-Methoden in C# definieren.
Methode
Innerhalb einer NetLogic können Sie eine neue Methode (z. B.
Foo
) definieren, indem Sie die folgende Syntax verwenden:public void Foo() { // Code to run }
TIPP:
Sie können mehrere Methoden innerhalb einer Klasse definieren.
OPC UA-Methode
OPC UA-Methoden:
- Können zur Entwurfszeit referenziert werden.
- Sind zur Laufzeit aufrufbar.
Um eine OPC UA Methode zu definieren, fügen Sie
[ExportMethod]
vor der Methode ein. Nachstehend finden Sie ein Beispiel hierfür:[ExportMethod]public void Foo() { // Code to run }
Weitere Informationen finden Sie unter OPC UA-Methode erstellen.
Methodenargumente
Sie definieren Methodenargumente in runden Klammern
()
nach dem Methodennamen.Eine OPC UA Methode kann eine beliebige Anzahl von Ein- und Ausgabeargumenten haben.
WICHTIG:
Wenn Sie die Argumente einer Methode bearbeiten, die mit einem Ereignis in
FactoryTalk Optix Studio
verknüpft ist, müssen Sie die Methode erneut verknüpfen.So definieren Sie ein Eingabeargument:
- Geben Sie den Datentyp in runden Klammern an, gefolgt vom Namen des Arguments.
- Trennen Sie jedes Argument mit einem Komma.
Im folgenden Beispiel werden zwei Ganzzahl-Eingabeargumente,
speed
und rpm
, deklariert:public void Foo(int speed,int rpm) { // Code to run }
So definieren Sie ein Ausgabeargument:
- Geben Sie das Schlüsselwortoutgefolgt vom Datentyp und dem Argumentnamen in runden Klammern an.
- Trennen Sie jedes Argument mit einem Komma.
- Weisen Sie die Werte den Ausgabeargumenten zu.
Im folgenden Beispiel werden zwei Ausgabeargumente definiert,
result
und motorSpeed
, jeweils vom Typ String und Ganzzahl:public void Foo(out string result,out int motorSpeed) { result= "Ok"; motorSpeed = motor.speed; }
Sie können sowohl Eingabeargumente als auch Ausgabeargumente für dieselbe Methode definieren. Im folgenden Beispiel werden zwei Eingabeargumente und zwei Ausgabeargumente definiert:
public void Foo(int speed,int rpm,out string result,out int motorSpeed) { result = "Ok"; motorSpeed = motor.speed; }
Rückmeldung geben