Zugriff auf Werte im Scheduler

Hirschi

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

wie kann ich zumindest lesend auf die Werte um Scheduler 03 zugreifen, die im oberen Teil der Tabelle in der Visu dargestellt werden. Das einzige, was ich verwenden ist rDefaultValue. Mich interessiert aber z.B. auch fbScheduler.SUPER^._rVisuManualValue. Wenn ich die Struktur aufklappe, sehe ich den Wert, kann aber aus dem Programm nicht darauf zugreifen.
Gibt es da eine Möglichkeit?
Codesys 3.5

Gruß
Hirschi
 
Hallo
Es ist sicherlich kein idealer weg, aber manchmal doch der einzige. Ich weiss nicht ob dies bei deinem Problem geht, aber mit MEMCPY geht vieles was so nicht vorgesehen ist.

z.b.
MEMCPY(ADR(ReadVakue),ADR(WriteAdr),SIZEOF(ReadValue));

gruss samus
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Danke samus,

aber wie referenziere ich ReadValue? Ich kenne hier im konkreten Beispiel nur fbScheduler.SUPER^._rVisuManualValue. Aber dann hätte ich ja den Wert auch so.
Aber gerade beim probieren hab ich einfach mal SUPER^weggelassen, da es sich sonst nicht kompilieren ließ:
fbScheduler._rVisuManualValue
Und da ist der Wert ja :)
Was repräsentiert eigentlich SUPER?

Gruß
Andreas
 
Ja natürlich, du hast recht. Es ist manchmal nützlich wenn man eine Variable beschreiben möchte welche nicht als Input eines Bausteines deklariert ist. Dies lässt der Compiler nicht einfach so zu. Über den oben beschriebenen Weg lässt sich dies allerdings umgehen.

Super^. ist der Zeiger auf den "Parent" Baustein.

Code:
FUNCTION_BLOCK FB_Base
VAR
    sString : STRING;
END_VAR

METHOD GetString : STRING
    GetString := sString;



FUNCTION_BLOCK FB_BetterFB EXTENDS FB_BASE

METHOD GetString : STRING //Überschreibt die Methode des FB_Base, ruft aber über SUPER^. die FB_Base Implementation auf
    GetString := CONCAT(SUPER^.GetString(), 'additional String');

Dies ist ein Bespiel mit einer Methode, man kann aber auch auf Variablen des "Parent" Bausteines zugreifen. Wie dies bei deinem Beispiel gemacht worden ist. In der Onlineansicht sind aber dann alle (auch Vars vom FB_Base) Variablen Teil des FB_BetterFB, deshalb musst du von aussen auch nicht mehr mit dem Super^. darauf zugreifen.

Gruss Samus
 
Zurück
Oben