Navigation:  SPS > Referenz SPS > Datentypen >

ANY

Vorherige SeiteKapitelübersichtNächste Seite

 

Dieser Datentyp ist ein Zeiger, der auf irgendeinen Datenbereich weist und gleichzeitig angibt, wie viele Daten welchen Typs dort zu finden sind.

Eine typische Notation ist:

 P#M22.0 WORD 3

Dieser Ausdruck bezeichnet die Merkerwörter MW 22, MW 24 und MW 26.

Der Datentyp ANY hat daher einiges gemeinsam mit dem Typ ARRAY, während aber bei einem FB-Aufruf mit einem Array-Parameter tatsächlich alle Elemente des Arrays übergeben werden, werden beim Aufruf mit einem ANY-Parameter nur die 10 Bytes übergeben, die zur Beschreibung eines ANYs notwendig sind.

 

Sie können als Aktualparameter für einen ANY jedoch auch einfach ein Merkerwort, eine Struktur in einem DB oder die Lokaldaten angeben.

 

ANYs sind manchmal recht schwierig zu handhaben und wenn es nicht unbedingt sein muss, empfehlen wir Ihnen, sie in TrySim nicht zu verwenden. Wir müssen leider zugeben, dass wir die in STEP®7 gültige Syntax und Semantik der ANYs nicht vollständig begriffen haben. Sie scheint sich zu dem von STEP®7-Version zu -Version leicht zu ändern. Wenn Sie irgendwelche Probleme mit ANYs haben,  informieren Sie uns bitte sofort, hier ist ein Fehler unsererseits so wahrscheinlich wie in kaum einem anderen Bereich von TrySim sonst.

 

Wenn Sie an einen als ANY-deklarierten Parameter einen Operanden anschließen, beachten Sie folgende Besonderheiten:

 

1. Sie können den Operanden wie oben beschrieben als Konstante schreiben:

z.B.        P#DB100.DBX 3.0 S5TIME 3

Dann werden die 10 Bytes, die zur Beschreibung dieser Konstant notwendig sind, ohne Modifikationen an den aufgerufenen Baustein übergeben.

 

2. Sie können als Operanden auch Parameter und Variablen angeben, die im Bausteinkopf deklariert worden sind. Der Übersetzer bestimmt dann automatisch die richtige Adresse (Leider schreibt er sie dann auch so, darum erkennen Sie Ihren Operanden kaum wieder, das werden wir aber irgendwann ändern). Während der Laufzeit werden dann aber noch folgende Umsetzungen unternommen:

2.a Wenn es sich um einen Parameter oder eine statische Variable handelt, wird nicht die Kennung 85h (für Instanzdaten) übertragen, sondern die Kennung 84h (für Global - DB) und die aktuelle IDB - Nr. wird übergeben.

2.b Wenn es sich um eine lokale Variable handelt, wird nicht die Kennung 86h (für Lokaldaten), sondern die Kennung 87h (für vorherige Lokaldaten) übergeben.

2.c Parameter von Funktionen (FC) können Sie nicht an ein ANY-Parameter übergeben.

 

3. Wenn Sie jedoch einen als ANY-deklarierten Parameter oder Variable angeben, wird ausnahmsweise nicht die Adresse dieses Parameters übergeben, sondern es werden die 10 Bytes, die an dieser Adresse stehen, übergeben.

 

Siehe auch:

Internes ANY Datenformat

Pointer

Datentypen

 

STEP®7 ist eingetragenes Warenzeichen der Siemens AG.