Auf Variablen eines FBs zugreifen

OOP

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

habe ich eine Möglichkeit auf Variablen eines Fbs, welche nicht als Eingang deklariert sind schreiben zuzugreifen?
Also Variablen im FB zusätzlich zu der normalen Deklaration als VAR noch so zu deklarieren, dass man diese von außen beschreiben kann,
diese jedoch nicht beim Aufruf als Eingang angezeigt werden?

Gruß
 
Korrekt, nur lesend.

Um Variablen im FB zu ändern und man auf weitere Eingänge verzichten möchte, besteht die Möglichkeit mittels Pointer schreibenden Zugriff zu erhalten.
In TC3 bzw. CodeSys V3 hat man die Möglichkeiten mittels Properties (Get/Set), Variablen im FB lesen und zu schreiben. Ist schon sehr elegant gelöst.
 
Ja, ich habe allerdings eine Struktur und möchte nicht immer die gesamte Struktur über Eine property übergeben, sondern bspw. Nur eine Variable von der Struktur ansprechen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ist zwar eigentlich ein "No go", aber Du kannst einen Pointer vom Typ der zu ändernden Variable deklarieren an diese die Adresse der Variable der gewünschten Instanz des FBs übergeben, dann kannst Du auf alles schreiben.

Von irgendwas mit Internetzugang gesendet
 
So wie ich verstanden habe nutzt du Properties von TC3 bzw. CoDeSys3. Warum legst du nicht eine Property für die Variable an, die in der Struktur beschrieben werden soll und weißt dann in der Set so zu:
Code:
struktur.variable := propertyname;

So finde ich es am elegantesten gelöst, wenn du nicht immer die ganze Struktur übergeben möchtest.

Übrigens bei Arrays in einem FB lege ich immer Methoden (Methodenname(value, index)) anstelle von Properties an, die wie folgt aussehen:
Code:
array[index] := value;

Gruß
snej
 
Zurück
Oben