-> Hier kostenlos registrieren
Hallo,
ich habe einen GRAPH-FB, der mehrere Ketten beinhaltet. Jede Kette hat immer einen aktiven Schritt. Nun habe ich ein Array, für jede Kette ein Element, das den momentan aktiven Schritt beinhaltet.
Also sowas:
ActStep : Array[1..6] of INT //Aktiver Schritt der Ketten 1-6
Über die GRAPH-Interne Struktur kann ich das auch realisieren (mit SAX[..], G7S[..].SNO, ...). Habe das in einem SCL-FB umgesetzt. Da ich das ganze aber mehrfach brauche, wäre es schöner, wenn ich das in einer Funktion hätte, die folgende Parameter hat:
IN:
SAX : ANY
G7S : ANY
OUT:
ActStep : Array[1..6] of INT
Beides macht allerdings Probleme. SAX/G7S hatte ich als ANY deklariert, da das ja kein "richtiger" Datentyp ist. Die Zuweisung im aufrufenden FB funktioniert auch, allerdings kann ich in der Funktion dann per SAX[index] nicht darauf zugreifen. Geht wohl nur per absolutem Zugriff, was aber wohl nicht brauchbar sein wird.
Das Ausgangs-Array kann ich beim Aufruf nicht zuweisen. In GRAPH erscheint ja dann der Block in dem die Parameter angegeben werden können, aber wenn ich dort ein gleiches Array, auch 1..6 of int zuweisen will, bleibt das dauernd rot. Egal ob ich es mit DBn.Arrayname oder nur mit Arrayname oder mit Arrayname[..] mache, es geht einfach nicht.
Inzwischen habe ich es fast schon aufgegeben, das ganze in eine Funktion zu packen.
Eine zweite Idee war, mit BLOCK_DB als Eingangsparameter der Funktion den Zugriff auf den gesamten GRAPH-DB zu verschaffen, aber dann ist wieder nur absoluter Zugriff mit DBn.DBX1.3 usw möglich und nicht DBn.SAX[index].
Am sinnvollsten wäre es natürlich, wenn ich keine Funktion bräuchte, sondern direkt in GRAPH das gewünschte Array erzeugen könnte, aber mit der primitiven Syntax in GRAPH seh ich da keine Möglichkeit.
Hat jemand Ideen?
Kann ich die Daten doch an eine Funktion übergeben?
Kann ich die Schrittnummern sonstwie rauskriegen? (S_NO ist recht sinnfrei bei mehreren Ketten..)
An was kann es liegen dass ich kein Array zuweisen kann? (In KOP geht es bei derselben Funktion).
Wäre für Ideen dankbar
By the way: Weiss man schon ab wann GRAPH auch SCL-Aktionen kann?
ich habe einen GRAPH-FB, der mehrere Ketten beinhaltet. Jede Kette hat immer einen aktiven Schritt. Nun habe ich ein Array, für jede Kette ein Element, das den momentan aktiven Schritt beinhaltet.
Also sowas:
ActStep : Array[1..6] of INT //Aktiver Schritt der Ketten 1-6
Über die GRAPH-Interne Struktur kann ich das auch realisieren (mit SAX[..], G7S[..].SNO, ...). Habe das in einem SCL-FB umgesetzt. Da ich das ganze aber mehrfach brauche, wäre es schöner, wenn ich das in einer Funktion hätte, die folgende Parameter hat:
IN:
SAX : ANY
G7S : ANY
OUT:
ActStep : Array[1..6] of INT
Beides macht allerdings Probleme. SAX/G7S hatte ich als ANY deklariert, da das ja kein "richtiger" Datentyp ist. Die Zuweisung im aufrufenden FB funktioniert auch, allerdings kann ich in der Funktion dann per SAX[index] nicht darauf zugreifen. Geht wohl nur per absolutem Zugriff, was aber wohl nicht brauchbar sein wird.
Das Ausgangs-Array kann ich beim Aufruf nicht zuweisen. In GRAPH erscheint ja dann der Block in dem die Parameter angegeben werden können, aber wenn ich dort ein gleiches Array, auch 1..6 of int zuweisen will, bleibt das dauernd rot. Egal ob ich es mit DBn.Arrayname oder nur mit Arrayname oder mit Arrayname[..] mache, es geht einfach nicht.
Inzwischen habe ich es fast schon aufgegeben, das ganze in eine Funktion zu packen.
Eine zweite Idee war, mit BLOCK_DB als Eingangsparameter der Funktion den Zugriff auf den gesamten GRAPH-DB zu verschaffen, aber dann ist wieder nur absoluter Zugriff mit DBn.DBX1.3 usw möglich und nicht DBn.SAX[index].
Am sinnvollsten wäre es natürlich, wenn ich keine Funktion bräuchte, sondern direkt in GRAPH das gewünschte Array erzeugen könnte, aber mit der primitiven Syntax in GRAPH seh ich da keine Möglichkeit.
Hat jemand Ideen?
Kann ich die Daten doch an eine Funktion übergeben?
Kann ich die Schrittnummern sonstwie rauskriegen? (S_NO ist recht sinnfrei bei mehreren Ketten..)
An was kann es liegen dass ich kein Array zuweisen kann? (In KOP geht es bei derselben Funktion).
Wäre für Ideen dankbar

By the way: Weiss man schon ab wann GRAPH auch SCL-Aktionen kann?