×
Siemens Industry Online Support
Siemens AG
Beitragstyp: Anwendungsbeispiel Beitrags-ID: 5669592, Beitragsdatum: 24.10.2000
(0)
Bewerten

Wie können Sie auf Lokaldaten einer vorherigen Funktion zugreifen?

  • Beitrag
  • Betrifft Produkt(e)
Greifen Sie auf vorherige Lokaldaten (V-L-Daten) zu, können Sie einen selbst zusammengestellten ANY-Pointer oder die absolute Adresse am aufrufenden FC übergeben.

Wenn Sie einen selbst zusammengestellten ANY-Pointer übergeben, würde der Bereichszeiger auf seine eigenen Lokaldaten zeigen, was keinen Sinn ergibt. Daher ist es unbedingt erforderlich, dass die Kennung für den V-Bereich im ANY-Pointer steht. Diese Kennung muss explizit transferiert werden. Bei Angabe der absoluten Adresse erledigt das der Compiler.

Allgemeine Programmstruktur
Übergabe als ANY-Pointer oder Absolut:

LAR1 P##target

.
.
.

// Anfangsadresse der lokal definierten ANY-Variable
L W#16#87// Ladekennung für den V-Bereich
T LB[AR1, P#6.0]// Transferiere in ANY-Variable
CALL FCxy 
source1: = #target// Übergabe des selbst zusammengestellten ANY-Pointers
source2: = P#L0.0 BYTE 8//Übergabe des absoluten L-Datenbereich

Unterschiede zwischen der absoluten Adressierung und der Adressierung über einen ANY-Pointer
Das folgende Bild zeigt den Unterschied zwischen der absoluten Adressierung und der Adressierung über einen selbst zusammengestellten ANY-Pointer. In diesem Fall wurde die Kennung "87" nicht transferiert, weshalb der ANY-Pointer auf seinen eigenen lokalen Bereich zeigt.

Weitere Informationen
zum Aufbau des ANY-Pointers finden Sie in der STEP 7 - Onlinehilfe, unter

  • Format des Parametertyps ANY
  • Parametertypen
  • Verwendung des Parametertyps ANY

Beispielbeschreibung
Das Beispiel demonstriert Ihnen das Verhalten bei falscher und richtiger Übergabe des ANY-Pointers. Anhand einer Variablentabelle (VAT) lassen sich die lokalen Variablen der beiden Funktionen vorbelegen. Weiterhin kann in der Tabelle eine Auswahl vorgegeben werden, ob die Kennung des V-Bereiches transferiert werden soll oder nicht.

VAT - Parameter

Operand Kommentar 
M 240.0

Vorgabe: 0 = Zugriff auf V-L-Daten, 1 = Zugriff auf L-Daten

MD 200

Vorbelegung von V-L-Daten (FC22)

MW 204

Vorbelegung von V-L-Daten (FC22)

M 206

Vorbelegung von V-L-Daten (FC22)

MD 210

Vorbelegung von L-Daten (FC23)

MW 214

Vorbelegung von L-Daten (FC23)

MW 216

Vorbelegung von L-Daten (FC23)

MD 230

Aktuelle Werte (L oder V-L-Daten)

MD 234

Aktuelle Werte (L oder V-L-Daten)

MD 236

Aktuelle Werte (L oder V-L-Daten)

Der nachfolgende Download enthält ein STEP 7 V5.5 Projekt mit den beiden beschriebenen Funktionen. Die Variablentabelle dient zur Vorgabe bzw. zur Beobachtung der Funktion. In diesem Beispiel wird das prinzipielle Verhalten dargestellt. Sie können dieses Projekt beliebig an Ihre Anforderungen anpassen.

 Registrierung notwendig  5669592_AnyFC_Proj_STEP7.zip (1,1 MB) 
SHA256: 671AB8A7871C59AE3271C0A42C2AB13BD775A243A8DF26F1093BBF4721EFE3C3

Entpacken Sie die Datei "5669592_AnyFC_Proj_STEP7.zip" in ein separates Verzeichnis. Das STEP 7 V5 Projekt wird automatisch mit allen dazugehörigen Unterverzeichnissen entpackt. Anschließend können Sie das entpackte Projekt mit dem SIMATIC Manager öffnen und bearbeiten.

Securityhinweise
Um technische Infrastruktur, Systeme, Maschinen und Netzwerke gegen Cyber-Bedrohungen zu sichern, ist es erforderlich, ein ganzheitliches IT Security-Konzept zu implementieren (und kontinuierlich aufrechtzuerhalten), das dem aktuellen Stand der Technik entspricht. Die Produkte und Lösungen von Siemens formen nur einen Bestandteil eines solchen Konzepts. Weitergehende Informationen über Cyber Security finden Sie unter
https://www.siemens.com/cybersecurity#Ouraspiration.
Beitrag bewerten
keine Bewertung
Anfragen und Feedback
Was möchten Sie tun?
Hinweis: Das Feedback bezieht sich immer auf den vorliegenden Beitrag / das vorliegende Produkt. Ihre Nachricht wird an die Redakteure im Online Support gesendet. In einigen Tagen erhalten Sie von uns eine Antwort, wenn Ihr Feedback das erfordert. Ist für uns alles klar, werden wir Ihnen nicht mehr antworten.