Beispiel S7 200 Übergabe des Wertes einer Variablen an eine andere (kopieren des Variableninhaltes ):
MOVB VB20,VB100
Beispiel SCL- gleiche Anwendung, der Wert von b_Pumpe wird an b_Status1 übertragen:
b_Status1 := b_Pumpe;
Speicherung von Daten durch einen Index (S7 200 AWL)
Um Daten strukturiert in Tabellen oder Rezepten verwalten zu können, benötigt der Anwender entsprechende Befehle um die Tabellen zu durchsuchen, initialisieren, zu beschreiben und durch gezielten Zugriff Daten herauszulesen. Da eine Steuerung wie die S7 200 (ähnlich wie Wettbewerbsprodukte) in der AWL keine leistungsfähigen Steuerbefehle besitzt, werden Funktionen bzw. Funktionsbausteine verwendet. Auslesen eines Wertes aus einem Variablenbereich durch einen Index (S7 200 AWL), Übertragung der Adresse, auf die zugegriffen werden soll ( & ) bzw. setze Pointer:
Setze einen Pointer in AC1 (Akkumulator 1)
MOVD &MB10, AC1 // Die Adresse MB10 wird in AC1 gespeichert
Indirekter Zugriff (*)
MOVD *AC1, AC0 // Der Wert der Variablen, deren Adresse in AC1 gespeichert ist, // wird in AC0 gespeichert
Mit der gespeicherten Adresse kann auch gerechnet werden, das heißt die Adresse zum Übertragen eines Variableninhalts kann auch Ergebnis einer Berechnung sein. Insgesamt wird dem Leser die Nähe zu Assembler-Programmen auffallen (MOV-Befehle, Pointer-Kennzeichnung u.v.m.). Eine ähnliche Aufgabe mit dem SCL (gleich ST), mit der Ähnlichkeit zu einer Hochsprache wie \’C\‘ oder Pascal:
i_Zeiger := 14 ;
i_Ergebnis1 := iArr_Wert[i_Zeiger];
oder mit Berechnung des Zeigers:
i_Zeiger := i_Zeiger + 2;
i_Ergebnis2 := iArr_Wert[i_Zeiger];
Befehle zur Steuerung der Programmabarbeitung
Während die AWL (hier zur S7 200) nur den bedingten und unbedingten Sprung auf ein Label kannte, den bedingten und unbedingten Aufruf eines Funktionsbausteins bzw. einer Funktion, sowie die STOP-Anweisung, verfügt SCL über moderne Befehle zur Abarbeitungssteuerung von Programmsequenzen, wie sie aus Fortan, Pascal oder C bekannt sind. Übersicht der Befehle zur Programm-Steuerung:
- IF…THEN – Anweisung
- CASE-Anweisung (Fall der Auswahlanweisung)
- WHILE…DO (Kopfgesteuerte Anweisung)
- REPEAT…UNTIL (Fußgesteuert)
- FOR…TO…DO (Kopfgesteuert)
- FOR…TO…BY…DO (Kopfgesteuert)
- EXIT (Abbruch)
- RETURN
- CONTINUE
- GOTO (Nur bei SCL, Anwendung nicht zu empfehlen)
Mit den veränderten Strukturen zur Programmsteuerung bieten sich auch neuere Entwurfsmethoden der Programme an. Während der Programmablauf einer AWL sehr gut im PAP (ProgrammAblaufPlan) dargestellt wird, eignen sich für SCL-Programme die Struktogramme (auch Nassi-Schneidermann-Diagramme) zum Entwurf und die Überprüfung (Validierung) fertiger Programmbausteine. SCL kann in mehreren Bereichen angewendet werden, so z.B. um fertige Bausteine mit komplexerer Funktionalität anzubieten, aber auch um Ablaufsteuerungen nachzubilden. Da die S7 1200 nicht über die Programmierung per \’Graph\‘ verfügt (entspricht dem SFC bzw. Grafcet nach Norm), müssen entsprechende Strukturen mit anderen Programmiersprachen nachgebildet werden. Dazu gibt es zahlreiche Ansätze (Schieberegister, Kontaktplan mit R/S-Zuweisungen usw.), doch sehr interessant ist die Nachbildung eines Schrittablaufs mittels der CASE-Anweisungen. Damit kann der Anwender auch problemlos unterschiedliche Zonen eines Schrittes nachbilden (Zone der Aktivierung, der Kontinuität und der Deaktivierung eines Schrittes). Derartige Schrittabläufe sind dann als eigener Funktionsbaustein in ein oder mehreren Projekten einzubinden und können entsprechend mit unterschiedlichen Prozessoren angewendet werden. Obwohl eine Entwicklungsumgebung prinzipiell nichts mit einer Programmiersprache zu tun hat, erschließen sich die Möglichkeiten eines modernen Systems erst, wenn das zugehörige Portal, Studio oder Suite betrachtet wird. Herstellerübergreifend empfiehlt sich die Bezeichnung IDE (Integrated Development Environment). In der Praxis entwickeln zahlreiche, erfahrene Programmierer einzelne Programmbausteine in SCL (oder ST bzw. STL) in einem freien Editor, kopieren es in die jeweilige Entwicklungsumgebung (TIA Portal oder andere Systeme) und überprüfen dann die Syntax durch die entsprechenden Befehle des Editors oder Compilers.
TIA Portal als universelles Engineering Tool
Einer der wesentlichen Unterschiede zwischen der S7 200 und S7 1200 liegt in der Entwicklungsumgebung der zugehörigen Anwendungssoftware. Während die S7 200 ein eigenes Tool (das STEP 7-MicroWIN) besitzt, das sehr einfach gestaltet ist und intuitiv binnen kürzester Zeit angewendet werden kann, ist das TIA-Portal eine universelle Entwicklungsplattform, das alle Werkzeuge enthält um ein verteiltes System über Netzwerkverbindungen zu definieren, Steuerungen zu programmieren und Visualisierungen zu entwickeln.