Die S7 1200 von Siemens steht in der Linie der S7 200 und wird diese vermutlich langfristig ersetzen. Die S7 200 ist eine Steuerung, die in kleineren Automatisierungsaufgaben mit einer hohen Leistungsfähigkeit überraschen kann. Sie verfügt über kostengünstige Möglichkeiten Positionierungen zu realisieren, ebenso wie Regelungsaufgaben zu lösen, komplexe Datenverwaltungen zu verarbeiten und die unterschiedlichsten Netzwerkanbindungen zu integrieren. Gleichzeitig stellt Siemens für diese Anwendungsgebiete Technologiebausteine zur Verfügung, die dem Anwender die Arbeit vereinfachen. Da die S7 1200 mit dem niedrigen Preis und der hohen Leistungsfähigkeit durch das SCL eine große Verbreitung finden wird, sind viele Ausführungen und Beispiele dieses Artikels an dieser Steuerung orientiert. Es finden sich aber auch Beispiele und Ausführungen die auf Codesys, PC Worx oder logi.CAD3 passen. Der Fachmann wird kein Problem mit der Übertragung auf sein eigenes Steuerungssystem haben.
Die einfachen Zuweisungen
Beginnt man mit der einfachsten Zuweisung des SCL, so ist die typische Schreibweise einer Hochsprache wie zum Beispiel \’C\‘ zu erkennen. Der \’Trenner\‘ oder auch das \’Zuweisungszeichen\‘ besteht aus einem Doppelpunkt und dem Gleichheitszeichen. Links davon befindet sich die Variable auf die das rechts entstandene Verknüpfungs- oder Berechnungsergebnis zugewiesen wird. Die Reihenfolge der Abarbeitung durch den Prozessor kann durch Klammern gesteuert werden. Soweit Klammern die Abarbeitung nicht beeinflussen, entscheidet die \’Bindungsstärke\‘ (AND vor OR usw.). Bei Operatoren mit gleicher Bindungsstärke wird ein Statement von links nach rechts vom Prozessor abgearbeitet.
Beispiel:
(* Beliebiger Kommentar *)
x_MotorEin := x_Start OR x_MotorEin AND ( i_Anz = 15 );
Das gesamte Statement kann in einer Zeile geschrieben werden. Das Programm und entsprechend die Dokumentation sind wesentlich kompakter und somit einfacher zu lesen als in AWL. Der Aufruf eines Funktionsbausteins in SCL wird wie folgt realisiert.
Beispiel Timer:
(* TIA Portal*)
#FB_ZeitAmpelX( IN := x_StartTime , (*Start der Zeit *)
PT := t_ZeitAmpel1, (* Übergabe der Sollzeit *)
Q => x_ZeitEnde , (* Zeit ist abgelaufen *)
ET => t_ZeitAbgel ); (* Bisher vergangene Zeit*)
Neue Variablentypen
Die Variablen einer einfachen Steuerung bestanden aus den Grundtypen (Bit, Byte, Word, Doppel-Word und Real). Diese Variablen hatten feste Hardware-Adressen und konnten wahlweise mit einer symbolischen Bezeichnung versehen werden, mit denen dann im Programm auch operiert wurde. Mit den modernen SPS-Prozessoren kommen Arrays und Strukturen hinzu. Der Compiler legt dann selber die Speicherbereiche fest, an denen die Variablen (Speicher) generiert werden. Zusätzlich können Werte und Zustände definiert werden, mit denen die Variablen bei einem \’Kaltstart\‘ der Steuerung beginnen sollen.
VAR
w_Sollwert : WORD := 1200 ; (* Variable mit Initialisierung *)
END_VAR
Diese Datentypen benötigen entsprechende Bearbeitungsbefehle, die das SCL (bzw. ST) bietet.
Arrays
Ein Array ist eine geordnete Zusammenfassung gleicher Daten (Datentypen) in einer Tabelle. Ein Array kann vom Typ Bool, Byte …String sein, es ist jedoch immer vom gleichen Datentyp (im Gegensatz zu Strukturen). Mit einem Array lassen sich aber wiederum mehrere Strukturen geordnet als Felder zusammenfassen, ebenso wie eine Struktur als Teil-Element ein Array beinhalten kann.