-> Hier kostenlos registrieren
Erstmals an alle ein Hallo (zum zweiten mal, da mein erster Text aufgrund des Forum-Timeouts im Nirvana verschand :-(
Wie vermutlich viele andere hier im Forum auch, hab ich mich aufgrund eines Problems registriert und hoffe, dass mir jemand von Euch einen Tipp geben kann.
Ich programmiere in strukturiertem Text (ST) und habe nun eine Frage zu Strukturen als Übergabeparameter. Ich beginne mal von vorn und liste auf, wie der prinzipielle Aufbau ausschaut.
Als erstes hab ich da eine Struktur definiert:
Des weiteren hab ich folgenden FB definiert:
Ausserdem besitzt dieser FB eine Aktion set()
Möchte ich diesen FB nun instanzieren, so kann ich den Inhalt von i_scErrorSource gleich mit Werten beschreiben:
Dies funktioniert, da gibt es soweit keine Probleme.
Nun möchte ich aber den Inhalt der Struktur beim Aktionsaufruf set() mit neuen Werten überschreiben:
Dies funktioniert nun leider nicht mehr.
Eine Alternative wäre das vorherige Abfüllen der Struktur, bevor der set() Aufruf erfolgt :
Obwohl auch dies wieder einwandfrei funktioniert, finde ich es rein optisch nicht sehr elegant, da die Dazugehörigkeit des Aktions-Übergabeparameters nicht mehr so eindeutig ersichtlich ist.
Hat irgend jemand von Euch eine andere Idee, die Struktur bei einem Aktionsaufruf sauber abzufüllen ?
Besten Dank schonmal im Voraus.
Greets
VPCoder
Wie vermutlich viele andere hier im Forum auch, hab ich mich aufgrund eines Problems registriert und hoffe, dass mir jemand von Euch einen Tipp geben kann.
Ich programmiere in strukturiertem Text (ST) und habe nun eine Frage zu Strukturen als Übergabeparameter. Ich beginne mal von vorn und liste auf, wie der prinzipielle Aufbau ausschaut.
Als erstes hab ich da eine Struktur definiert:
Code:
TYPE T_SErrorSource :
STRUCT
wFbId : WORD;
bSmId : BYTE;
bState : BYTE;
END_STRUCT
END_TYPE
Des weiteren hab ich folgenden FB definiert:
Code:
FUNCTION_BLOCK FB_Error
VAR_INPUT
i_scErrorSource : T_SNcErrorSource;
END_VAR
Ausserdem besitzt dieser FB eine Aktion set()
Möchte ich diesen FB nun instanzieren, so kann ich den Inhalt von i_scErrorSource gleich mit Werten beschreiben:
Code:
fbErr : FB_Error := ( i_scErrorSource := (wFbId := 1,
bSmId := 2,
bState := 3));
Dies funktioniert, da gibt es soweit keine Probleme.
Nun möchte ich aber den Inhalt der Struktur beim Aktionsaufruf set() mit neuen Werten überschreiben:
Code:
fbErr.set(i_scErrorSource := (wFbId := 11,
bSmId := 12,
bState := 13));
Dies funktioniert nun leider nicht mehr.
Eine Alternative wäre das vorherige Abfüllen der Struktur, bevor der set() Aufruf erfolgt :
Code:
fbErr.i_scErrorSource.wFbId := 11;
fbErr.i_scErrorSource.bSmId := 12;
fbErr.i_scErrorSource.bState := 13;
fbErr.set();
Obwohl auch dies wieder einwandfrei funktioniert, finde ich es rein optisch nicht sehr elegant, da die Dazugehörigkeit des Aktions-Übergabeparameters nicht mehr so eindeutig ersichtlich ist.
Hat irgend jemand von Euch eine andere Idee, die Struktur bei einem Aktionsaufruf sauber abzufüllen ?
Besten Dank schonmal im Voraus.
Greets
VPCoder