-> Hier kostenlos registrieren
So, wieder mal nen Tag an S7 rumgeklickt, dabei kamen so einige Frage auf auf SCL bezogen):
1) Angenommen in einem FB1 wurde in den statischen Variablen eine Struktur definiert. Wie kann ich diese z.B. an FB2 übergeben, so dass ich von FB2 zumindest lesend darauf zugreifen kann?
DB1.meineStruktur.meineVariable funktioniert nicht --> „Strukturierte Daten aus dem IO-Bereich des Instanz-DBs ‚Name’ sind nicht als Operanden im globalen DB-Zugriff erlaubt“
2) Warum kann ich in einer Stuktur keine Multiinstanzen anlegen?
Also z.B. sowas:
VAR
meineStruktur :STRUCT
Variable1:BOOL;
Zylinder1:FB_Zylinder;
Zylinder2:FB_Zylinder;
Zylinder3:FB_Zylinder;
END_STRUCT
Ausserhalb der Stuktur funktioniert es einwandfrei.
3) Wie kann ich eine Instanz eines FB (also sowas wie gerade gezeigt, nur ausserhalb der Struktur) an einen anderen FB übergeben? VAR_IN_OUT bzw VAR_IN lässt diese Datentypen nicht zu. ANY hat nicht funktioniert. Können Pointer weiterhelfen?
Es geht darum, aus einem FB heraus auf die Daten des aufrufenden FB zugreifen zu können. Möglichkeit 1 wäre gewesen, alle Variablen die ich brauche per VAR_IN oder VAR_IN_OUT rein zu holen. Fällt allerdings weg, das es über 40 Stück sind. Die nächste unschöne Möglichkeit wäre, direkt auf die Daten im Instanz-DB zuzugreifen. Da darin aber Strukturen sind, geht das nicht (s.o.).
Das letzte was mir einfällt ist alle Variablen global anzulegen. Auch sehr unangenehm.
Hat jemand bessere Ideen?
Dann noch was zum GRAPH-Editor:
Ich wollte auf ein globales Array einer Stuktur zugreifen, also so:
[FONT="]"X".Modul[10].Variable1
Hat im FUP/KOP-Editor einwandfrei funktioniert. Im Graph-Editor kann ich zwar in der Dropdown-Liste alles richtig auswählen, aber dabei werden die "" verschluckt. Auch wenn ich es von Hand eingebe. Wenn ich es allerdings rein kopiere, funktioniert es. Falsche Einstellung oder Fehler im Graph-Editor?
So, ich hoffe es kommen ein paar Antworten. Danke...!
[/FONT]
1) Angenommen in einem FB1 wurde in den statischen Variablen eine Struktur definiert. Wie kann ich diese z.B. an FB2 übergeben, so dass ich von FB2 zumindest lesend darauf zugreifen kann?
DB1.meineStruktur.meineVariable funktioniert nicht --> „Strukturierte Daten aus dem IO-Bereich des Instanz-DBs ‚Name’ sind nicht als Operanden im globalen DB-Zugriff erlaubt“
2) Warum kann ich in einer Stuktur keine Multiinstanzen anlegen?
Also z.B. sowas:
VAR
meineStruktur :STRUCT
Variable1:BOOL;
Zylinder1:FB_Zylinder;
Zylinder2:FB_Zylinder;
Zylinder3:FB_Zylinder;
END_STRUCT
Ausserhalb der Stuktur funktioniert es einwandfrei.
3) Wie kann ich eine Instanz eines FB (also sowas wie gerade gezeigt, nur ausserhalb der Struktur) an einen anderen FB übergeben? VAR_IN_OUT bzw VAR_IN lässt diese Datentypen nicht zu. ANY hat nicht funktioniert. Können Pointer weiterhelfen?
Es geht darum, aus einem FB heraus auf die Daten des aufrufenden FB zugreifen zu können. Möglichkeit 1 wäre gewesen, alle Variablen die ich brauche per VAR_IN oder VAR_IN_OUT rein zu holen. Fällt allerdings weg, das es über 40 Stück sind. Die nächste unschöne Möglichkeit wäre, direkt auf die Daten im Instanz-DB zuzugreifen. Da darin aber Strukturen sind, geht das nicht (s.o.).
Das letzte was mir einfällt ist alle Variablen global anzulegen. Auch sehr unangenehm.
Hat jemand bessere Ideen?
Dann noch was zum GRAPH-Editor:
Ich wollte auf ein globales Array einer Stuktur zugreifen, also so:
[FONT="]"X".Modul[10].Variable1
Hat im FUP/KOP-Editor einwandfrei funktioniert. Im Graph-Editor kann ich zwar in der Dropdown-Liste alles richtig auswählen, aber dabei werden die "" verschluckt. Auch wenn ich es von Hand eingebe. Wenn ich es allerdings rein kopiere, funktioniert es. Falsche Einstellung oder Fehler im Graph-Editor?
So, ich hoffe es kommen ein paar Antworten. Danke...!
[/FONT]