-> Hier kostenlos registrieren
Hallo!
Ich habe hier ein Problem, das mich jetzt schon ein paar Tage beschäftigt. Die Aufgabenstellung klingt einfach, ist aber offenbar gar nicht so trivial in der Umsetzung. Also...
Ich habe folgende Aufrufkette von Funktionen und Funktionbausteinen: OB1 --> FC4 --> FB4 --> FC5 --> FB10. Der FB10 am Ende der Kette soll mit einem dynamischen Instanz-DB aufgerufen werden. Dynamisch deshalb weil der DB ganz am Anfang der Kette (im FC4) festgelegt wird. Im Grunde geht es also nur darum, einen Datenbaustein über mehrere Aufrufe weiterzugeben um ihn dann am Ende als Instanz-DB zu verwenden. Das Problem ist nur: Es funktioniert nicht. Natürlich kann ich einfach die DB-Nummer als Integer übergeben und dann den DB über den Befehl AUF DB [#Variable] öffnen. Das funktioniert aber leider nicht mit dem CALL-Befehl (CALL FB10, DB [#Variable] ist nicht erlaubt). Schade, es hätte so einfach sein können. Aber es gibt ja noch eine Möglichkeit: Den Datentyp Block_DB. Diesen kann ich für eine Input-Variable verwenden und den Instanz-DB damit weiterreichen. Aber auch hier gibt es ein kleines (und für mich genauso unverständliches) Problem: Variablen vom Typ Block_DB können nicht als Parameter an Funktionen übergeben werden, nur an Funktionsbausteine, womit ich bei FC5 Schiffbruch erleiden würde. Eine weitere Alternative wären Fallunterscheidungen und Sprungmarken, aber damit würde ich wieder seitenweise unübersichtlichen Spaghetticode produzieren.
Ich bin langsam mit meinem Latein am Ende. Wie kann ich einen FB mit dynamischem Instanz-DB aufrufen? Die wenigen Threads, in denen dieses Problem besprochen wurde brachten leider keine Lösung. Ich bin für jede Hilfe dankbar.
Falls sich jemand wundert, warum ich mit so vielen FBs und FCs arbeite, ich mache das um redundanten Quelltext zu vermeiden und um das Projekt übersichtlich zu halten (Ich programmiere in AWL).
Ich habe hier ein Problem, das mich jetzt schon ein paar Tage beschäftigt. Die Aufgabenstellung klingt einfach, ist aber offenbar gar nicht so trivial in der Umsetzung. Also...
Ich habe folgende Aufrufkette von Funktionen und Funktionbausteinen: OB1 --> FC4 --> FB4 --> FC5 --> FB10. Der FB10 am Ende der Kette soll mit einem dynamischen Instanz-DB aufgerufen werden. Dynamisch deshalb weil der DB ganz am Anfang der Kette (im FC4) festgelegt wird. Im Grunde geht es also nur darum, einen Datenbaustein über mehrere Aufrufe weiterzugeben um ihn dann am Ende als Instanz-DB zu verwenden. Das Problem ist nur: Es funktioniert nicht. Natürlich kann ich einfach die DB-Nummer als Integer übergeben und dann den DB über den Befehl AUF DB [#Variable] öffnen. Das funktioniert aber leider nicht mit dem CALL-Befehl (CALL FB10, DB [#Variable] ist nicht erlaubt). Schade, es hätte so einfach sein können. Aber es gibt ja noch eine Möglichkeit: Den Datentyp Block_DB. Diesen kann ich für eine Input-Variable verwenden und den Instanz-DB damit weiterreichen. Aber auch hier gibt es ein kleines (und für mich genauso unverständliches) Problem: Variablen vom Typ Block_DB können nicht als Parameter an Funktionen übergeben werden, nur an Funktionsbausteine, womit ich bei FC5 Schiffbruch erleiden würde. Eine weitere Alternative wären Fallunterscheidungen und Sprungmarken, aber damit würde ich wieder seitenweise unübersichtlichen Spaghetticode produzieren.
Ich bin langsam mit meinem Latein am Ende. Wie kann ich einen FB mit dynamischem Instanz-DB aufrufen? Die wenigen Threads, in denen dieses Problem besprochen wurde brachten leider keine Lösung. Ich bin für jede Hilfe dankbar.
Falls sich jemand wundert, warum ich mit so vielen FBs und FCs arbeite, ich mache das um redundanten Quelltext zu vermeiden und um das Projekt übersichtlich zu halten (Ich programmiere in AWL).