Methode mit mehreren Schnittstellen

OOP

Level-1
Beiträge
49
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo.

Ich möchte gerne eine Methode erstellen, mit welcher ich einem FB diverse Daten übergaben kann.
Man könnte nun natürlich auch verschiedene Methoden anlegen und würde dies Bspw. so aufrufen:

Code:
FbInstanz.AddTemperature(Min:= 20.0, Max:= 80.0);
FbInstanz.AddSpeed(Speed:=100.0);
FbInstanz.AddDelay(Delaytime:= T#5s);

Ich würde aber gerne nur eine Methode "AddValue" anlegen, welche verschiedene Schnittstellen besitzen kann.
Ich kenne dies von Hochsprachen, dass ich eine Funktion mehrfach anlegen kann, aber mit anderen Schnittstellen.
Ist dies in Codesys auch möglich?

Bspw. So.
Code:
FbInstanz.AddValue(Min:= 20.0, Max:= 80.0);
FbInstanz.AddValue(Speed:=100.0);
FbInstanz.AddValue(Delaytime:= T#5s);
 
Zuletzt bearbeitet:
Hi,
Überlagerung funktioniert in Codesys leider nicht. Du kannst höchstens Methoden einer Basisklasse (mit gleicher Signatur) überschreiben.
Aber das bringt dir in dem Fall nichts.
 
Mmm... vielleicht nicht ganz so schön, aber würde in die Richtung gehen. Ein Array im Baustein anlegen und eine Enumeration.
Das Array ist der Speicher für die Daten und die Enumeration ist die Stelle im Speicher (Array)
Dann würde die Methode z.B. so aussehen:
Code:
FbInstanz.Set(eFbInstanzValue.Speed, 100.0);

Die Implementierung der Methode würde dann wie folgt aussehen:
Code:
dataMemory[enumerationValue] := value;

Mal so als Idee :)
Eine Get Methode könntest du dann natürlich auch ähnlich implementieren.
 
Zurück
Oben