Codesys Wago-SPS Funktionsblock in ST verwenden

guwen

Level-2
Beiträge
66
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,
so als Anfänger habe ich mal eine Frage:
Bei der Programmierung meiner Wago-SPS mit CoDeSys möchte ich einen Wago-Funktionsblock (Fb_Verzoegern) in meinem eigenen Funktionsblock verwenden. Diesen programmiere ich in ST. Nur gelingt mir die Verwendung des Fb_Verzoegern nicht.
Hier ein Auszug meiner Programmierung (die WarmwasserPumpe soll mit einer Verzögerung von 300 sekunden ausschalten):
IF TempVorlaufKaminofen <= Kamin_UT THEN
KaminHeizkreisPumpe := FALSE;
WarmwasserPumpe := Fb_Verzoegern(xEingang:= KaminHeizkreisPumpe, dwTein_10tel_s:= 0, dwTaus_10tel_s:= 3000, xAusgang=>);
WarmwasserPumpe := FALSE;
END_IF;

Was mache ich falsch? Ich bekomme immer den Fehler 4051: Fb_Verzoegern ist keine Funktion.

Vielen Dank für Eure Antworten.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi,

versuch es mal damit :

Code:
Fb_Verzoegern(
  xEingang:= KaminHeizkreisPumpe,
  dwTein_10tel_s:= 0,
  dwTaus_10tel_s:= 3000,
  xAusgang=>WarmwasserPumpe);
IF TempVorlaufKaminofen <= Kamin_UT THEN
            KaminHeizkreisPumpe := FALSE;
END_IF;

FBs müssen aufgerufen werden und können keiner Variablen direkt zugeordnet werden, so wie Du das versucht hast. Das geht dann nur mit Funktionen, weil diese ein Rückgabewert haben, den Du dann der jeweiligen Variablen übergibst.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo und Danke für die Antworten.
bitte haltet mich nicht für blöd, aber wie und wo deklariere ich denn eigentlich die Instanz vom Typ Fb_Verzoegern?

Hier der Quellcode zum einschalten der KaminHeizkreisPumpe:

IF TempWarmwasser <= WW_MAX THEN
IF TempVorlaufKaminofen >= Kamin_OT THEN
KaminHeizkreisPumpe := TRUE;
WarmwasserPumpe := TRUE;
END_IF;
IF TempVorlaufKaminofen <= Kamin_UT THEN
KaminHeizkreisPumpe := FALSE;
Fb_Verzoegern(
xEingang:= KaminHeizkreisPumpe,
dwTein_10tel_s:= 0,
dwTaus_10tel_s:= 3000,
xAusgang=>WarmwasserPumpe);
WarmwasserPumpe := FALSE;
END_IF;
 
Hab es rausgefunden:
VAR
VerzoegertAus_1:Fb_Verzoegern;
VerzoegertAus_2:Fb_Verzoegern;
END_VAR
...

VerzoegertAus_1(
xEingang:= KaminHeizkreisPumpe,
dwTein_10tel_s:= 0,
dwTaus_10tel_s:= 3000,
xAusgang=>WarmwasserPumpe);


Nun mal sehen ob es funktioniert.

Danke Euch für die Hilfe.
 
Zurück
Oben