zotos
User des Jahres 2007
- Beiträge
- 4.504
- Reaktionspunkte
- 1.201
-> Hier kostenlos registrieren
...
Mit einem Debugger arbeitest du gewöhnlich mit Einzelschritten oder Breakpoints.
...
So kenne ich das von CoDeSys. Ich benutze Breakpoints und Einzelschitte jedoch nur in der Simulation. Mit laufender Maschine würde das sicher mit einem schaden enden.
...
Nun zur Programmierung eines PC als Soft-SPS: C++ scheint mir nicht die richtige Sprache. Die typischen C++ Anwendungen generieren Objekte zur Laufzeit. Auch wenn man Teile des Prozesses/Feldes durch Objekte abbilden möchte, kann ich keine Notwendigkeit erkennen, solche Objekte zur Laufzeit zu generieren oder zu entfernen. Damit ist die Speicherverwaltung und der Konstruktor/Destruktor-Mechanismus überflüssig. Mehrfachvererbung verwendet kaum ein C++-Programmierer. Vererbung an sich läßt sich auch in C, ohne ++, mit Structs und Funktionszeigern realisieren.
...
Ich selbst bin in C++ eine Niete und kann da auch nicht wirklich was zu sagen. In C beherrsche ich einige Schweinereien die den Code schlanker aber nicht gerade verständlicher machen.
...
C (auch ohne ++) macht auf mich immer einen leicht kryptischen Eindruck, da man mit kurzen Folgen von Sonderzeichen allerlei nette Effekte bewirken kann.
Ich halte Pascal für leichter lesbar (wichtig, da Steuerungen eigentlich immer von anderen Personen als dem Programmierer gewartet werden müssen) und so finde ich es folgerichtig, daß SCL ziemlich "Pascal-artig" ist.
...
100% ACK
...
Für binäre Verknüpfungen ist keine der üblichen Hochsprachen so richtig gut geeignet.
...
Auch hier 100% ACK.
Ich persönlich halte FUP bei Bitverknüpfungen für unschlagbar.
Immer die richtige (passende) Sprache (Tool) für die Aufgabe zu wählen ist schon mal die halbe Miete.
...
Meine Vorstellung wäre, Compiler zur Verfügung zu stellen für:
KOP, FUP -> AWL
AWL->Maschinencode
SCL->Maschinencode
SCL-> AWL
Und als Hochsprache eine Art abgespecktes JAVA (ohne new), nachfolgend AVA genannt:
AVA->Maschinencode
AVA-> AWL
Der Sinn, den über den Zwischenschritt AWL gehen zu können oder nicht, liegt darin, daß mit AWL-Zwischenschritt der Code auch für nicht Hochsprachenkundige (notfalls) nachvollziehbar bleibt, während ohne AWL-Zwischenschritt optimaler (schneller, kurzer) Maschinencode erzeugt wird.
Ich kenne das ja nur vom hören sagen hier aus dem Forum. Bin mir also bei folgenden Aussagen nicht sicher:
Step7 macht aus SCL erstmal AWL und das würde dann übel und schwer zu lesen sein.
Es gab ja mal ein CoDeSys abkömmling von Deltalogic der für S5 und S7 aus den Sprachen AWL/KOP/FUP/ST/AS/CFC Code (AWL?) erzeugt hat und das muss nur sehr schwer lesbar gewesen sein.
_____
Ich kenne das auch von µC wenn man sich da einen Code der in C verfasst wurde in ASM anschaut ist das nicht wirklich lesbar.
Einen Compiler zu bauen ist sehr schwer und super viel Arbeit.
Ich denke das sich ST/SCL für die entsprechenden Aufgaben etablieren wird.
Als die SPSen auf den Markt kamen hat auch kein Instanthalter gewust was das ist und was da auf sie zu kommt. Das war zwar weit vor meiner Zeit aber heute ist eine SPS absolut Standart und so wird es mit den "neuen" Sprachen auch sein.
Die Anforderungen steigen und wenn wir da mit halten wollen dürfen wir nicht als Bermse wirken.