-> Hier kostenlos registrieren
Hallo
Ich bin auf der Suche nach einer Lösung, die mir einen Pointer auf eine globale Variable liefert. In einer Hochsprache, z.B. C, kann ich mir zur Laufzeit den Pointer auf eine Variable bestimmen lassen und kann, sofern mir die Struktur der benachbarten Elemente bekannt ist, den Pointer manipulieren und so auf diese benachbarten Elemente zugreifen. Jetzt hab ich aber nur STEP7 auf einer S7-400 zur Verfügung und da ist mir das nicht geläufig, ob das überhaupt geht, was ich mir vorstelle.
Ich habe in der Symboltabelle verschiedene Periepherieadressen symbolisiert, wie z.B. PAW 568, PAW 572, PAW 576 usw. Dahinter verbergen sich Displays, die über Profibus DP angesteuert werden sollen. Die Struktur, die sich hinter jeder Adresse verbirgt, ist z.B. jeweils 8 Byte breit und dient zur Aufnahme des darzustellenden Wertes und einiger Steuerinformationen. Jetzt möchte ich gerne einen FB (ggf. auch einen FC - bleibt sich gleich) schreiben, der als VAR_IN einen Bausteinparameter enthält, an den ich bei dem Aufruf dieses FB's z.B. den Aktualoperanden "PAW 568" anlegen kann. Im FB benötige ich nun eine Möglichkeit, den Pointer auf "PAW 568" bestimmen zu können, damit ich diesen manipulieren kann, um auch die anderen Bytes beschreiben zu können. Die Variante, die Adresse als INT-Konstante, z.B. 568, an einen Bausteinparameter zu legen, um dann mit der indirekten Adressierung zu arbeiten, würde zwar funktionieren, ist mir aber nicht elegant genug, da ich dann auf diese Weise den Vorzug der symbolischen Adressierung aufgeben würde. :shock: :shock: :shock:
Wäre die Anwendung des SFC 15 der richtige Weg? Das ganze soll auch noch, falls möglich, in SCL geschrieben werden, falls nicht, dann geht so was auch in AWL, ich hätte damit keine Probleme :lol: wird aber von der Seite des Kunden nicht so gerne gesehen.
Gruß Barnee
Ich bin auf der Suche nach einer Lösung, die mir einen Pointer auf eine globale Variable liefert. In einer Hochsprache, z.B. C, kann ich mir zur Laufzeit den Pointer auf eine Variable bestimmen lassen und kann, sofern mir die Struktur der benachbarten Elemente bekannt ist, den Pointer manipulieren und so auf diese benachbarten Elemente zugreifen. Jetzt hab ich aber nur STEP7 auf einer S7-400 zur Verfügung und da ist mir das nicht geläufig, ob das überhaupt geht, was ich mir vorstelle.
Ich habe in der Symboltabelle verschiedene Periepherieadressen symbolisiert, wie z.B. PAW 568, PAW 572, PAW 576 usw. Dahinter verbergen sich Displays, die über Profibus DP angesteuert werden sollen. Die Struktur, die sich hinter jeder Adresse verbirgt, ist z.B. jeweils 8 Byte breit und dient zur Aufnahme des darzustellenden Wertes und einiger Steuerinformationen. Jetzt möchte ich gerne einen FB (ggf. auch einen FC - bleibt sich gleich) schreiben, der als VAR_IN einen Bausteinparameter enthält, an den ich bei dem Aufruf dieses FB's z.B. den Aktualoperanden "PAW 568" anlegen kann. Im FB benötige ich nun eine Möglichkeit, den Pointer auf "PAW 568" bestimmen zu können, damit ich diesen manipulieren kann, um auch die anderen Bytes beschreiben zu können. Die Variante, die Adresse als INT-Konstante, z.B. 568, an einen Bausteinparameter zu legen, um dann mit der indirekten Adressierung zu arbeiten, würde zwar funktionieren, ist mir aber nicht elegant genug, da ich dann auf diese Weise den Vorzug der symbolischen Adressierung aufgeben würde. :shock: :shock: :shock:
Wäre die Anwendung des SFC 15 der richtige Weg? Das ganze soll auch noch, falls möglich, in SCL geschrieben werden, falls nicht, dann geht so was auch in AWL, ich hätte damit keine Probleme :lol: wird aber von der Seite des Kunden nicht so gerne gesehen.
Gruß Barnee