×
Siemens Industry Online Support
Siemens AG
Beitragstyp: FAQ Beitrags-ID: 67598676, Beitragsdatum: 09.01.2015
(11)
Bewerten

Wie kann ein Array-Zugriff bei einer S7-1200/S7-1500 mit variablem Index realisiert werden?

  • Beitrag
  • Betrifft Produkt(e)
Verwenden Sie für die indizierte Adressierung der ARRAY-Elemente als Index eine Variable vom Datentyp Ganzzahl.

Beschreibung
Zur Adressierung der Elemente eines ARRAYs können Sie bei einer SIMATIC S7-1200/S7-1500 Steuerung als Index neben Konstanten auch Variablen vom Datentyp Ganzzahl angeben. Dabei sind Ganzzahlen mit einer Länge bis 32 Bit zulässig.
Diese Art der Adressierung ist mit einer SIMATIC S7-1200/S7-1500 in allen verfügbaren Programmiersprachen möglich.  

Für das indizierte Adressieren eines Elementes des Arrays mit dem Namen "data", das in den Datenbausteinen "Source" und "Target" deklariert wurde, wird hierbei die folgende Syntax verwendet:

  • "Source".data["i"]  (eindimensionales ARRAY)
  • "Source".data["i"].a  (eindimensionales ARRAY of STRUCT)
  • "Target".data["i", "j"]  (mehrdimensionales ARRAY)
  • "Target".data["i", "j"].a  (mehrdimensionales ARRAY of STRUCT)

Element Beschreibung 
Source, TargetName der Datenbausteine, in dem sich die ARRAY-Variablen befinden.
dataVariable vom Datentyp ARRAY.
i, jPLC-Variablen vom Datentyp Ganzzahl, die als Zeiger verwendet werden.
aWeitere Teilvariable der Struktur.

Tabelle 1

In den nachfolgenden Bildern ist der nötige Programmcode zur Adressierung einer Komponente eines ARRAYs dargestellt, die sich in einem Datenbaustein befindet. Hierbei wird zwischen einer SIMATIC S7-1200/S7-1500 Steuerung und einer SIMATIC S7-300/S7-400 Steuerung verglichen. In einer SIMATIC S7-300/S7-400 Steuerung muss die Startadresse der Array-Variablen bekannt sein und die indizierte Adressierung dann unter Zuhilfenahme der Adressregister erfolgen.

  • S7-300/S7-400


    Bild 1
     
  • S7-1200/S7-1500 in KOP
     

    Bild 2

  • S7-1200/S7-1500 in SCL
     

    Bild 3

Aus der mit einer SIMATIC S7-1200/S7-1500 Steuerung möglichen Adressierung ergeben sich daher folgende Vorteile:

  • Verwendung der vorhanden Namen der Datenbausteine und der Arrayvariablen.
  • Die Basisadresse des Arrays muss für den Aufbau des Pointers nicht bekannt sein.
  • Der Programmcode ist einfacher zu erstellen und besser lesbar.
  • Der Compiler erzeugt optimierten Programmcode.

Um eine bestmögliche Performance zu erzielen kann für diese Adressierungs- und Speicherbefehle im TIA Portal als Programmierempfehlung gegeben werden:

  • Variablen, die als Array Index genutzt werden, sollten als DINT, UDINT (32 Bit) deklariert werden.
  • Zwischenergebnisse und Arrayindizes sollten im temporären Lokaldatenbereich angelegt werden.

Hinweis
Mehr Informationen über die indirekte Adressierung mit einer SIMATIC S7-1200/S7-1500 Steuerung, können der Online Hilfe von STEP 7 (TIA Portal) entnommen werden.

Erstellumgebung
Die Bilder in diesem Beitrag sind mit TIA Portal V15 erstellt worden.


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.
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