Step 7 Statische Parameter für FB's mit CFC?

sunny22

Level-2
Beiträge
259
Reaktionspunkte
52
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

ich befass mich derzeit etwas mit CFC auf der S7. Rein aus persönlichem Interesse um mal zu sehen wie das funktioniert und was man damit anstellen kann.
Dabei bin ich auf ein Problem gestoßen zu dem ich bislang keine Lösung finden konnte.
Ich wollte die Ablaufsteuerung FB85 benutzen. Damit die funktioniert, müssen ja einige Parameter über statische Variablen im Instanz-DB festgelegt werden. z.B. die Ausgangsmasken der einzelnen Schritte. CFC erstellt zwar den FB und den zugehörigen DB, Bislang hab ich jedoch keine Möglichkeit gefunden die statischen Parameter im CFC anzupassen. Gibt es da eine?
Bearbeitet man den DB im DB-Editor wird er beim nächsten kompilieren im CFC wieder mit Standardwerten überschrieben.

Grüße Oliver
 
Grundsätzlich ist das mit dem Überschreiben keine Eigenheit von CFC, das würde auch ohne CFC so passieren, wenn du ein Gesamtübersetzen des Programms durchführst. Wenn du die Nummer vom DB kennst, kannst du natürlich z.B. mit MOVE direkt auf die entsprechende Adesse im DB schreiben. Sinnvoll ist das aber nicht, weil sich die Nummer vom DB auch ändern könnte. Man kann das Problem aber umgehen, indem man den FB85 als Multiinstanz in einem anderen FB aufruft und im aufrufenden FB die entsprechenden Zuweisungen macht.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
OK, das ist dann aber eher eine Art Workaround.
CFC ist ja vom Grundsatz her die "klicki bunti" Variante der Programmierung. Da sollten solch grundlegende Dinge doch ohne solche Umwege möglich sein.
Oder hab ich da zu hohe Erwartungen?
 
Nein, das ist kein Workaround, das müsstest du auch ohne CFC so machen. Sonst wären die Parameter beim nächsten Mal Übersetzen weg, wenn du sie einfach nur über den Editor in den IDB schreibst und nicht vom Programm aus eine Zuweisung machst. Ganz unabhängig davon ist es aber schlechter Programmierstil direkt in einen IDB zu schreiben und sollte tunlichst vermieden werden. Ein FB hat IN/OUT zur Übergabe von Parametern und sollte auch entsprechend beschaltet werden. Daher bin ich auch etwas irritiert, dass es anscheinend direkt von Siemens irgendwelche Bausteine gibt, bei denen in den STAT-Bereich eines IDB geschrieben werden muss (der FB85 war mir bis dato nicht bekannt).
 
Ah ok, jetzt hab ich's verstanden. Es ist also im Grunde kein Problem von CFC sondern eine Kuriosität dieses FB's.
Danke für die Aufklärung.
 
Zurück
Oben