Funktionsbaustein Aufruf Probleme

DeMiko

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

ich bin neu hier im Forum und war bisher stiller Mitleser und konnte schon einiges nützliches und wissenswertes mitnehmen.
Nun stehe ich vor einem Problem und finde seit einigen Tagen keine Lösung.

Kontext:
Ich habe in Codesys einen FB mit ST erstellt. Nun rufe ich diesen FB in einer Funktion mehrmals auf mit unterschiedlichen Eingangsparametern. In diesem FB sind u.a. R_TRIG, F_TRIG und RS integriert und deklariert.
Die Funktionalität des Programmcodes vom FB habe ich separat erfolgreich (wie gewünscht) getestet.
In der Funktion allerdings hat der FB irgendwie seine Funktionalität verloren :(
Der RS funktioniert irgendwie nicht (setzt sich automatisch nach abfallendem SET Eingang wieder zurück).

Ich kann mir nicht erklären woran es liegen könnte, da der selbe Programmcode separat ohne Probleme funktioniert.

Habt ihr eine Idee was ich vielleicht übersehen habe? Vielen Dank im Voraus.

Gruß DeMiko
 

Anhänge

  • FB Code.png
    FB Code.png
    200,7 KB · Aufrufe: 33
  • FB Variablen.png
    FB Variablen.png
    129,9 KB · Aufrufe: 32
Das Problem ist aus meiner Sicht, dass alle die von dir genannten Funktionen nicht unabhängig funktionieren. Du benutzt bei einem zweiten (und dritten usw,) Aufruf desselben Bausteins immer wieder dieselbe Funktion und machst dadurch jeweils das Ergebnis des vorherigen Aufrufs kaputt ...
 
Vielen Dank für die Rückmeldungen :)
Ja ich kann euch die Funktion und den Aufruf in Main gerne zeigen.
In der Funktion habe ich den Funktionsbaustein mehrfach instanziiert. Und selbst bei nur einer Instanziierung (alle anderen Auskommentiert) ist die Logik im FB fehlerhaft.

Vielen Dank im Voraus :)
 

Anhänge

  • Funktion.png
    Funktion.png
    224,2 KB · Aufrufe: 23
  • Main.png
    Main.png
    78,4 KB · Aufrufe: 23
... dann stell doch mal den kompletten Baustein als TEXT, nicht als Screenshot, hier ein - dann sieht man vielleicht eher etwas ...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Function ? Um da merkende Teile zu integrieren muss das ein Function_block sein. Oben steht komischerweise noch Function_Block. Auch ist in PLC_PRG im deklarationsteil leer ? z.B. "Lichtsterung1:Lichtsteuerung;"
P.s. in eine Funktion einen Funktionsbaustein einbinden ist Unsinn, der FB - Speicher wird dadurch gelöscht
 
P.s. in eine Funktion einen Funktionsbaustein einbinden ist Unsinn, der FB - Speicher wird dadurch gelöscht
Das war der wohl treibende Keil.
Ich habe die Funktion mal weggelassen und den Funktionsbaustein direkt mehrmals in Main aufgerufen. Und siehe da es funktioniert wie gewünscht.

Ich bin aber der Meinung, dass es bei mir z.B. in TIA funktioniert hat einen FB in einem FC aufzurufen und Werte zu speichern (vielleicht lag es auch daran DB als Speicher nutzen zu können).

Vielen Vielen Dank :)
Das hat mich eine menge Nerven gekostet. Manchmal sieht man den Wald vor lauter Bäume nicht :)
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich bin aber der Meinung, dass es bei mir z.B. in TIA funktioniert hat einen FB in einem FC aufzurufen und Werte zu speichern (vielleicht lag es auch daran DB als Speicher nutzen zu können).
In TIA bzw. der S7-Welt kann man in einem FC schon gar keine FB-Instanzen (Multiinstanzen) deklarieren (weil das gar keinen Sinn macht, weil FC keinen "Merk"-Speicher Static haben). Globale (bzw. global erreichbare) FB-Instanzen kann man aber aufrufen. Und dasselbe sollte auch in Codesys gehen.
Das unscheinbare "VAR" in Codesys-FC entspricht meines Wissens eher dem VAR_TEMP in S7-FC. Was man in dem VAR in FC deklariert, wird (vermutlich) bei jedem FC-Aufuf neu initialisiert und kann sich daher nichts merken, selbst wenn das FB-Instanzen sind.
 
Zurück
Oben