ST Parser ?

Hi
Hat jemand hier im Forum schon einmal einen Parser für ST geschrieben?

Hintergrund ist die Überlegung, einen Arduino zur SPS zu machen.

http://de.wikipedia.org/wiki/Arduino-Plattform
Unterstützung gibt es z.b. durch CoDeSys.
Die Umgebung, für ein "Target" liegt bei etwa 10.000 Euro.


Ich denke NICHT, das man das selbst machen kann.
(Außer du ziehst mal so ein Team wie die OSCAT hoch.
Nach einigen Jahren könnte da schon was werden.

Gruß Karl
 
Nur aus reiner Neugier: warum sollte man soetwas tun wollen?
Arduinos lassen sich so schon recht simpel programmieren.

Das ist klar, die Sprache der Arduinos ist C. Aber der Arduino ist eine fast perfekte Billig SPS für den Hausgebrauch und Pascal ist eine recht simple Sprache, von der ST direkt abgeleitet wurde, da würde es sich doch fast anbieten, mal die Basis zu verbreitern.

Mit dem Aufkommen von C und Pascal gab es sogenannte Transpiler, die zwischen den beiden Sprachen umsetzen konnten, wenn man den Source von so einem Tool hätte ...

Ich habe mir auch mal LEX und YACC angesehen, aber das sind Geschosse, die man nicht nach Feierabend lernen möchte.

Frage also noch einmal hat das jemand schon mal so etwas gemacht?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hättest du geschrieben KOP oder FUP .... Das hätte ich verstanden.
Aber ST und C sind eigentlich sehr nach beieinander.

Bau mal die SPS-Grundfunktionen (Eingänge lesen, Programm abarbeiten, Ausgänge schreiben) mit dem Arduino nach.
Wenn du dabei vernünftige Variablennamen und entsprechende Defines nutzt, dann sieht dein C-Programm schon fast aus wie ein "richtiges" SPS-Programm.

Ich hab sowas mal vor zig Jahren für ein RTOS gemacht und es war eine nette Sache.

Gruß
Dieter
 
eine fast perfekte Billig SPS für den Hausgebrauch

"Standard" bei einer SPS ist meiner Meinung nach eine Online-Programmiermöglichkeit oder alternativ die Möglichkeit Teiles des Programms bei laufender SPS zu laden. Desweiteren muss ich Variablen/Bits online beobachten können. Nur wenn beides möglich ist ist das als SPS zu gebrauchen, alles andere ist Spielzeug, da kann ich dann auch mal eine andere Programmiersprache verschmerzen.

Pascal ist eine recht simple Sprache, von der ST direkt abgeleitet wurde

Mit dem Aufkommen von C und Pascal gab es sogenannte Transpiler

Dann würde ich mal den Transpiler für "Pascal nach C" probieren, gegebenenfalls ist noch Handarbeit erforderlich.
 
Hättest du geschrieben KOP oder FUP .... Das hätte ich verstanden.
Aber ST und C sind eigentlich sehr nach beieinander.

Bau mal die SPS-Grundfunktionen (Eingänge lesen, Programm abarbeiten, Ausgänge schreiben) mit dem Arduino nach.
Wenn du dabei vernünftige Variablennamen und entsprechende Defines nutzt, dann sieht dein C-Programm schon fast aus wie ein "richtiges" SPS-Programm.

Ich hab sowas mal vor zig Jahren für ein RTOS gemacht und es war eine nette Sache.

Gruß
Dieter

Genau so sehe ich das auch, die Unterschiede sind mehr optisch und auf Online Change etc. kann ich verzichten bei 28 Euro Hardware.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

Klar habe ich schon mal einen Parser für ST geschrieben (für CoDeSys). Die Frage ist, was einem das bringt. Einen Parser für ST zu schreiben ist relativ simpel, wenn man
Programmiererfahrung hat und nicht besonders viel Wert auf Performance legt. Richtig schwierig ist es, gute Fehlermeldungen auszugeben.
Literatur zum Compilerbau gibt es en masse, und du wirst nicht drumrumkommen dich da einzulesen. Ich würde LEX und YACC empfehlen, auch wenn wir das für uns nicht nutzen.

Aber das Problem ist vielmehr was man mit dem Ergebnis des Parser macht: vermutlich einen Crosscompiler nach C.
Dann brauchst du also doch noch einen C-Compiler. Alles was über reine Syntaxfehler rausgeht (Variable nicht definiert, Kann long nicht nach int konvertieren, etc) wirst du
in deinem C-Generat suchen müssen, dann in ST beheben, dann nochmal zwei Compiler anwerfen, dann ärgern wegen eines Tippfehlers, dann...

..kurz gesagt: schreib deine Applikationen in C.

Bernhard
 
Zurück
Oben