Ein paar grundfragen zu SCL und graph

Markus

Administrator
Teammitglied
Beiträge
6.301
Reaktionspunkte
2.317
Zuviel Werbung?
-> Hier kostenlos registrieren
hallo,

ich bin was scl betrifft nicht sonderlich bewandert, deshalb ein paar fragen:

ich scl kann man berechnungen ja ähnlich komfortabel formulieren wie in hochsprachen. bringt das dann mehr performance?

ich meine wird aus der scl beim übersetzen nicht eine awl?

wenn ja, dann tippe ich doch sauberer direkt in awl, oder nicht?

wie sieht es mit dem onlinestatus aus, kann ich den beobachten? direkt in der scl, oder nur in der generierten awl?


wie ist das mit graph? macht der auch ne awl?


grundlegen:
sind scl und graph mit fup vergelichbar?
wird also damit am ende auch eine miserable awl generiert, oder werden die direkt in maschinencode übersetzt und sind ggf. sogar schneller als ne awl?


danke!
 
Hi Markus,

Beide erzeugen einen AWL-Baustein!
Mit GRAPH hab ich noch fast nix gemacht,dafür mit HIGRAPH und SCL schon einiges.
Natürlich ist der erzeugte AWL-Code nicht sooo optimal, als wenn ich unter Ausnutzung aller Tricks und Kniffe ein laufzeitoptimiertes Programm schreibe, aber der SCL-Compiler ist schon relativ nahe dran.

Den Sinn von SCL sehe ich nur in der kompfortableren Programmierung komplexer Dinge. Ich vergleiche AWL immer mit ASSEMBLER und SCL mit einer Hochsprache.
JEDES Programm könnte man direkt in Assembler schreiben, aber der Zeitaufwand steigt ins Uferlose, die Lesbarkeit des Programmcodes geht im Gegenzug gegen 0 :wink:
Der Programmcode wird auch einiges größer, dafür wird der Code für verschiedene Überprüfungen, wie z.B. zur Überwachung von Feldgrenzen bei Zugriffen auf ARRAY-Variablen automatisch generiert, den man sonst explizit im Programmcode einfügen müsste.

SCL lässt sich direkt in der SCL-Quelle beobachten und debuggen und zeigt dabei alle Variablenwerte sofort im richtigen Format an. Haltepunkte und Aufrufpfade sind auch setzbar.

SCL für alles einzusetzen ist Quatsch, jeder muß für sich entscheiden, wie weit er in AWL programmiert und ab wann er SCL verwendet.

Mit Graph hab ich, wie gesagt, nur ein wenig rumprobiert, hat mir aber nicht so gefallen. Ich bin eher von HiGraph überzeugt.

Der erzeugt zwar einen riesigen Programmcode :cry: , der aber im Ablauf um den Faktor 10 schneller sein soll, als entsprechende Graph-Programme, weil nur die zum aktuellen Zustand gehörigen Programmteile bearbeitet werden, der Rest wird übersprungen.
Auch HiGraph lässt sich Online graphisch :!: beobachten und ist vor allem gut für Maschinenbauer und Anlagenbetreiber verständlich, da eigentlich nicht der Prozessablauf, sondern die Zustände der Maschinenteile beschrieben werden.

hope, that helps

Gruß Jörg
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Den AWL-Code, den SCL erzeugt, den kannst du dir auf einem System ohne installiertes SCL ansehen. Du kannst auch den reinen FC kopieren und unter einem anderen Namen einfügen, oder die SCL Quelle umbenennen. Ist manchmal ganz interessant zu sehen, was für Code der Siemens-Übersetzer erzeugt. Ich würde sagen, kleinere Probleme sind in AWL effizienter zu codieren.
 
ok, d.h. das man die schnellsten und kleinsten programme immer noch in awl schreibt.

mit diesen zusatztools kann also lediglich schneller programmiert werden, aber nicht besser.

oder anders gesagt:
ich komme mit nichts näher an die hw als mit awl.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Markus schrieb:
ok, d.h. das man die schnellsten und kleinsten programme immer noch in awl schreibt.
.....
oder anders gesagt:
ich komme mit nichts näher an die hw als mit awl.

Bingo, 100 Punkte ... :lol:

Markus schrieb:
mit diesen zusatztools kann also lediglich schneller programmiert werden, aber nicht besser.

im Prinzip ja aber ... :wink:
Die Verständlichkeit des Ablaufes, speziell für den, der das Programm nicht selbst geschrieben hat, aber ggf. später was dran ändern soll, ist halt deutlich besser, als in AWL, ebenso die Änderbarkeit an sich. Und das ist für mich auch ein Teil von 'guter' Programmierung.

Gruß Jörg
 
Geschwindigkeit ist nicht alles. Wie Jogi bereits erklärt hat es kommt auch darauf an wie leicht oder schwer es einem anderen Programmierer fällt sich in das Programm einzuarbeiten. Man findet sich aber auch selbst in einem gut strukturierten Programm besser und schneller zurecht, beim schreiben und nach einer gewissen zeit wenn man doch noch mal rann muss.
Es ist möglich mit AWL strukturiert zu Programmieren aber es ist deutlich schwerer als mit ST (Structured Text) = SCL. Es geht darum das ST einem Programmierer die Tools zur Strukturierten Programmierung zu Verfügung stellt. Wer aus Geschwindigkeitsgründen hart an die Hardware gehen muss ist wohl mit AWL gut dran, ich nehme dann lieber eine leistungsfähigere CPU :lol: :!:
Zu Graph 7 ich find es Super und wenn HiGraph noch besser ist muss ich mir das mal anschauen. Graph ist aber nichts was man an einem Nachmittag durch machen kann, dazu sollte man sich Zeit nehmen und vorher eine Strategie ausarbeiten. Das ist wirklich was neues und bietet jede Menge Funktionen.
 
Arbeiten mit Stringvariablen + Adressieren von DBs

Hallo,

ich würde sagen, das das Arbeiten mit Stringvariablen ohne SCL
- z.B. in AWL - sehr umständlich ist. Z.B. die Funtion
STRING --> REAL (STRING_R) ist in SCL viel einfacher zu
Handhaben.

Auch der Zugriff auf DBs mit ARRAYs sieht in SCL so aus:


Code:
X_Pos        :=DATA.BESTK[0,1];


wobei DATA = DB99 ist und BESTK die symbolische ARRAY-Variablen-
bezeichnung.

Das versteht man auch in 10 Jahren noch.

Gruß
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich habe bis jetzt alles in AWL programmiert.

Aber das eine oder andere mal hab ich schon mit SCL geliebäugelt - habe aber nie den Einstieg geschafft...

Gibt es vielleicht von euch ein paar Tips wie man sich am schnellsten in SCL zurechtfinden kann ? (ohne C-Vorkenntnisse)

Am besten vielleicht noch ein paar Empfehlungen wofür man es wirklich einsetzen sollte...



Ich weiss die Frage ist global gestellt - aber die Antworten dürfen es ja auch sein... :)
 
SCL

Hallo rs-plc-aa,
(ohne C-Vorkenntnisse)
C-Vorkenntnisse sind weniger erforderlich, SCL ist eher an Pascal angelehnt und speziell um die Datentypen (Eingänge, Ausgänge, Merker, DB's u.s.w.) einer SPS erweitert. Wer Pascal kann, kann eigentlich sofort auch SCL lesen und mit ein bisschen Gewöhnung an die SPS-spezifischen Eigenheiten dann auch recht schnell schreiben lernen.
Gruss
Question_mark
 
Zuviel Werbung?
-> Hier kostenlos registrieren
SCL

Hallo,
und hier noch einen, nämlich zum Handbuch SCL V5.3. Damit kann man sich auch weitere Literatur ersparen, da dort alles recht ausführlich erklärt ist. Die Beitrags-ID zum Download auf der Siemens Homepage ist 5581793.
Gruss
Question_mark
 
Hallo,
die Frage ist eigentlich immer nach den Randbedingungen:
für große Ketten ist Graph sehr nett. hat man viele Sprünge ist Graph sehr gut. Alternativ und Parallelschritte sind auch schon da. Das ganze wird wie in der DIN graphisch dargestellt. diagnose ist auch sehr einfach.

Nachteile gibt es auch:
Der Code ist i.d.R. größer. Ich hatte damit schon mal eine S7-300 gesprengt, da die Bausteingröße zu groß für die CPU war. (Mit PDIAG)

SCL ermöglicht sehr übersichtlich zu programmieren. Schleifen und Vergleiche sind sehr einfach (und somit auch schnell zu programmieren) und auch nach Monaten sofort verständlich.
Optimal für den Anwendungsfall wird der Code bei allen Tools nicht, also das schnellste und Codesparsamste ist AWL. aber das versteht man oft nicht auf anhieb.

Higraph V4.0 war nicht meine Welt, aber es waren auch nur Laboranwendungen. Aber das ist meine persönliche Meinung. Einige schwören drauf.
 
Die Größe bläht sich bei GRAPH7 nochmals auf, wenn du einen FB schreibst, der mehrfach aufgerufen werden soll. Ausserdem musst du jedesmal, wenn du online gehst die Instanz wieder einstellen. S7 nimmt standardmäsig zum FB den DB mit der gleichen Nummer, egal ob der nun vorhanden ist oder nicht.
Dennoch sollte sich der DB mit der gleichen Nummer im Projekt und auf dem Zielsystem befinden, da sich step 7 sonst sonderbar verhält.
Was ist noch nicht ganz herausgefunden habe ist, wann S7 eine Initialisierung des FB anfordert und wann nicht - theoretisch nur bei änderung der Instanzdaten, aber ich meine es auch schon anderes erlebt zu haben.
 
Zurück
Oben