×
Siemens Industry Online Support
Siemens AG
Beitragstyp: FAQ Beitrags-ID: 10625180, Beitragsdatum: 16.12.2010
(1)
Bewerten

Wie können die ANY-Parameter für die SFC14 und die SFC15 in S7-SCL programmiert werden?

  • Beitrag
  • Betrifft Produkt(e)
In S7-SCL und im KOP/AWL/FUP-Editor ist es nicht möglich, eine Variable vom Datentyp ANY in einem UDT oder in einem DB zu deklarieren, da die ANY-Variable ein Parametertyp ist. Sie können jedoch eine ANY-Variable als temporäre Variable deklarieren.

Vorgehensweise
Beim Aufruf der SFC14 oder der SFC15 muss der Nutzdatenbereich, der über die ANY-Variable "RECORD" parametriert wird, genauso lang sein, wie bei der Projektierung der Baugruppe in der HW-Konfig definiert wurde (z.B. 3 Bytes). Deshalb ist es empfehlenswert diese Bausteine in AWL aufzurufen, um den ANY Pointer bytegenau angeben zu können (z.B. DB100.DBX0.0 BYTE 3). Wenn Sie in S7-SCL oder im KOP/AWL/FUP-Editor bei symbolischer Programmierung  einem Bausteinparameter vom Datentyp ANY ein STRUCT oder ARRAY übergeben, wird vom Compiler der passende ANY Pointer übergeben. 

Wenn Sie die SFC14 oder die SFC15 direkt aufrufen und den Parameter "RECORD" über eine Variable vom Typ "STRUCT" oder "ARRAY" symbolisch versorgen, meldet die SFC14/15 den Fehlercode 80B1, wenn die projektierte Byteanzahl des Slaves ungerade ist.

Verursacht wird das Verhalten, dass STRUCT und ARRAYs in STEP 7 immer auf Wortgrenzen im Speicher abgelegt sind, also immer eine gerade Anzahl von Byte belegen.

Wenn Sie die SFC14 oder die SFC15 in S7-SCL aufrufen und den ANY Pointer dynamisch versorgen wollen, empfehlen wir Ihnen das Schlüsselwort "AT" in S7-SCL zu verwenden ("Deklarieren von Sichten auf Variablenbereiche").


Bild 01

Programmbeschreibung
Die Funktion "CALL_SFC14_15" versorgt wahlweise die SFC14 zum Lesen und die SFC15 zum Schreiben konsistenter Daten eines DP-Normslaves. In einem Datenbaustein "DB_Number" ab der Byte-Adresse "DB_Byte_Adr" werden die Daten abgelegt. Die Anzahl der Bytes "BYTE_COUNT" muss die gleiche Länge aufweisen, die Sie für die ausgewählte Baugruppe mit STEP 7 projektiert haben. Wenn der Parameter "SFC15_Select" den Signalzustand "1" (True) hat, werden die Daten mit der SFC15 zum Slave übertragen, und mit Signalzustand "0" (False) mit der SFC14 gelesen. Der Parameter "LADDR" und der Rückgabewert "RET_VAL" sind in der STEP 7 Onlinehilfe zur SFC14/15 beschrieben.

Hinweis zum Kopieren von Datenbereichen mit selbst erstellten Funktionen
Es ist nicht möglich, mit einer selbst erstellten Funktion einschließlich zwei Indexvariablen z.B. in der Form "WORD_TO_BLOCK_DB(DBNr).DBB[Index]" Datenbereiche zu kopieren, oder indiziert auf Datenbytes eines Datenbausteins zuzugreifen. Der Hintergrund ist, dass hier sowohl die Datenbaustein-Nummer als auch die Adresse innerhalb des Datenbausteins erst zur Laufzeit zugeordnet werden. Dies ist systembedingt nicht möglich.

Download
Der beigefügte Download enthält ein STEP 7 Projekt mit der oben beschriebenen S7-SCL-Funktion FC10. Kopieren Sie die Datei "ANY_SCL.zip" in ein separates Verzeichnis und starten Sie die Datei anschließend per Doppelklick. Das STEP 7 V5.4 Projekt wird jetzt automatisch mit allen dazugehörigen Unterverzeichnissen entpackt. Anschließend können Sie das entpackte Projekt mit dem SIMATIC Manager öffnen und bearbeiten.

In dem STEP 7 Projekt sind die zwei gleichen S7-Programme enthalten:

  • "S7-Prog_d" enthält die S7-SCL-Funktion mit den deutschen Kommentaren
  • "S7-Prog_e" enthält die S7-SCL-Funktion mit den englischen Kommentaren

ANY_SCL.zip ( 48 KB )

Weitere Informationen
Weitere Informationen zum Aufbau eines ANY-Pointers mit der AT-Funktion in S7-SCL finden Sie unter der Beitrags-ID: 21946854.

Suchbegriffe:
ANY-Pointer

 

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.