×
Siemens Industry Online Support
Siemens AG
Beitragstyp: FAQ, Beitrags-ID: 97552147, Beitragsdatum: 08.07.2014
(6)
Bewerten

Wie können Sie in STEP 7 (TIA Portal) sicher und indirekt adressieren?

  • Beitrag
  • Betrifft Produkt(e)
Bei der indirekten Adressierung wird die Adresse, deren Wert gelesen oder geschrieben werden soll, erst während der Ausführung des Programms bestimmt.

Beschreibung
Mit dieser Methode können Sie den Programmieraufwand reduzieren und Ihr Programm flexibler gestalten. Meistens sind die Zugriffsadressen bei der Programmerstellung bekannt. Um die indirekte Adressierung flexibel und sicherer zu machen,

  • nutzen Sie den Datentyp "Array" für die zusammenliegenden Daten des gleichen Datentyps,
  • verwenden Sie für unterschiedliche Bereiche den Index, über den der Zugriff auf die jeweilige Variable erfolgt.

Im nachfolgenden Beispiel wird auf drei Variablen mit unterschiedlichen Speicherbereichen zugegriffen. Nachfolgende Tabelle zeigt die Zugriffsliste der drei Variablen, die je einem Index zugeordnet sind:
 

 IndexZugriff auf Variable Speicherbereich 
 1 Input_Word_0 EW 0
 2 "Processdata".Temperature DB 1
 3 Output_Word_4 AW 4


Erzeugen Sie eine Funktion und deklarieren Sie eine Eingangsvariable mit dem Datentyp "Int". Definieren Sie auch den Rückgabewert mit dem gleichen Datentyp. Bild 1 zeigt ein Beispiel für die Programmierung der Funktion "AccessGroupInt", in der indirekte Zugriffe deklariert und mittels Index zurückgegeben werden. Die indirekten Zugriffe können Sie direkt im Programm verwenden, z.B. mit der definierten Anweisung #TempValue:= "AccessGroupInt"(#Index);. Diese Methode der Programmierung ist nun

  • nachvollziehbar, da Sie die Querverweislisten anwenden können,
  • sicher, da Sie nur die vorher definierten Speicherbereiche nutzen,
  • universell für Standard als auch für optimierte Datenbereiche anwendbar.


Bild 1

Im nachfolgenden Beispiel werden Daten von drei verschiedenen optimierten Datenbausteinen gelesen und geschrieben. Alle drei Datenbausteine "Silo_Water", "Silo_Sugar" und "Silo_Milk" enthalten die gleichen Variablendeklarationen:

  • DB-Variable 1: "MyBool" vom Datentyp Bool,
  • DB-Variable 2: "MyInt" vom Datentyp Int,
  • DB-Variable 3: "MyWord" vom Datentyp Word.


Bild 2

Für die Adressierung der DB-Variablen mit den unterschiedlichen Datentypen wird der PLC-Datentyp "SiloUDT" erstellt. Das Auslesen erfolgt mit dem Rückgabewert der Funktion "AccessGroupSiloRead", der mit dem PLC-Datentyp "SiloUDT" definiert ist. Auf dieser Basis können Sie die indirekten Zugriffe in einem FB programmieren, wie z.B. mit der Anweisung im Bild 03:

  • "Silo_Handling_OnlyReading"("AccessGroupSiloRead"(Index:= #Silo_Index));


Bild 3

Erstellumgebung
Die Bilder in diesem FAQ sind mit STEP 7 (TIA Portal) V15 erstellt worden.

Ergänzende Suchbegriffe
Symbolisch


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
http://www.siemens.com/industrialsecurity.
Unterstützung zur Statistik
Mit dieser Funktion werden die IDs des Suchergebnisses nach gewünschter Anzahl ausgegeben (Format .txt)

Liste generieren
URL kopieren
Diese Seite in neuem Design anzeigen
mySupport Cockpit