Vorteile von SCL gegenüber anderen Sprachen - Beispiel
Damit das für dich etwas anschaulicher wird, programmiere ich ein kleines Schieberegister.
Hinweis:
Die Funktionen die ich hier verwende, erkläre ich dir alle noch im Laufe des Kurses was bedeutet, dass du diese jetzt noch nicht im Detail verstehen musst.
Zum jetzigen Zeitpunkt möchte ich dir im Grunde nur zeigen welchen Vorteil SCL gegenüber anderen Programmiersprachen haben kann.Die Aufgabenstellung
Wir haben ein kleines Warenlager mit 10 Plätzen und jedes Mal, wenn ein neues Paket eingelagert wird muss dieses gescannt werden.
Nachdem das geschehen ist, drückt der Bediener einen Start Knopf und das Paket rutscht einen Platz nach vorne, während des letzte Paket dann vom Regal auf ein Paketband fällt.
Um die Aufgabe zu lösen erstelle ich nun einen Datenbaustein und in diesem DB lege ich nun einen Startknopf vom Datentyp Bool und eben auch 10 Regalplätze vom Datentyp INT an.
INT deswegen, weil jedes Paket ja auch einen Barcode hat und dieser in diesem Beispiel eine Ganzzahl hat.
Nun könnte ich ganz einfach diese Regalplätze 10 mal hintereinander eintragen oder aber ich verwende ein Array das von 1 bis 10 geht.
Nur als kleine Randinfo, ein Array ist kein besonderer Datentyp sondern nur ein Datenfeld.
Lösung im FUP
Damit der Vergleich zwischen SCL und den anderen Programmiersprachen etwas ersichtlicher wird, habe ich die Aufgabe als erstes im Funktionsplan gelöst.
Wenn Startknopf gedrückt wird, dann werden die Daten von Platz 9 auf Platz 10 geschrieben. Im Anschluss daran von Platz 8 auf Platz 9 und das geht so weiter bis eben Platz 1 in Platz 2 geschoben wird und da dann nichts mehr auf Platz 1 sein kann wird dieser gelöscht und zur Sicherheit auch der Startknopf und die Aufgabe ist gelöst.
Das klappt zwar ganz wunderbar, aber ich möchte dir auch noch gerne die dazugehörige SCL Lösung Zeigen.
Lösung in SCL
Ohne hier zu tief ins Detail zu gehen habe ich die gleiche Aufgabe in SCL, mit einer FOR Schleife, in einem Bruchteil der Zeit gelöst.
Der ganz große Vorteil gegenüber FUP wird aber erst ersichtlich, wenn sich Beispielsweise die Anzahl der Regalplätze von 10 auf 100 verändert.
Denn während du im Funktionsplan die MOVE Box noch 90 mal kopieren müsstest und sich mit großer Sicherheit auch der ein oder andere Tippfehler einschleicht, müsstest du in SCL nur die Zahl des Schleifenzählers verändern und schon wärst du wieder fertig.
Siehst du, wie einfach es sein kann?