Hier ein Auschnitt aus Website von Jonathan Westhues, ins Deutsche uebersetzt.
Ein KOP-Compiler für AVR und PIC16
Moderne unter drei US-Dollar kostende Mikroprozessoren haben wahrscheinlich die gleiche Rechenleistung, wie eine SPS von 1975. Daher sehen sie mehr als genug MIPS (Recheneinheit für Computerleistung) vor, um ein einigermassenen komplexes KOP-Programm mit einer Zykluszeit von ein paar Millisekunden laufen zu lassen. Ich denke, dass eine SPS für gewöhnlich ein Art Laufzeit hat, die in etwa den Interpretern von virtuellen Maschinen ähnlich sind, aber wenn wir es mit einfacher Prozessor-Logik, ohne viel Speicher, zu tun haben, dann dürfte ein Compiler die bessere Lösung sein.
So schrieb ich einen Compiler. Sie beginnen mit einem leeren Netzwerk. Sie können Kontakte hinzufügen (Eingänge) und Spulen (Ausgänge) und kompliziertere Strukturen, um Ihr Programm zu bilden. Timer (TON, TOF, RTO) werden unterstützt. Die max./min. Dauer hängen von der Zykluszeit der 'SPS' ab, welche konfigurierbar ist; Timer können von Millisekunden bis zu dem Zehnfachen von Minuten zählen. Es gibt Zähler und arithmetische Operationen (plus, minus, mal, geteilt durch).
Steuerkreis-Elemente können parallel oder in Reihe zu den schon existierenden Elementen hinzugefügt werden. Es wird eine E/A-Liste von dem KOP-Programm aufgebaut. Sie können interne Relais bilden (Rfoo), für welche ein Speicherplatz automatisch zugewiesen wird, oder Eingänge (Xfoo) und Ausgänge (Yfoo), denen Sie einen Pin des Mikroprozessors zuordnen müssen. Die Auswahl der verfügbaren Pins, hängt von dem gewählten Mikropozessor ab. Ich habe die populärsten PICs und AVRs zu unterstützen versucht. Z.B.: ATmega8, ATmega16, ATmega32, ATmega64, ATmega128
Dann können Sie Ihr Programm in Echzeit testen. Das Programm erscheint auf dem Bilschirm mit den Kontakten (bzw. Anweisungen, arithmetisch oder vergleichend) der Netzwerkzweige hellrot leuchtend, die den Signalfluss passieren lassen.
Das erleichtert die Fehlersuche (debugging). Der Status der Variablen wird in der E/A-Liste auf der Maske ganz unten angezeigt.
Wenn das Programm im Simulationsbetrieb funktioniert, können Sie den Ein- und Ausgängen Pins zuweisen und danach den AVR- oder PIC-Code erzeugen..
Ich unterstütze A/D-Wandler, eine PWM-Einheit, und UART auf den Prozessoren, die diesen vorsehen. Dies bedeutet, dass Sie ein KOP-Programm schreiben können, welches analoge Eingänge einlesen kann, und Zeichen über eine serielle Schnittstelle sendet und empfängt (z.B. zu einem PC, falls wenn Sie einen passenden Pegelumsetzer wie den MAX232 einsetzen, oder zu einem Zeichen-LCD). Es ist sowohl möglich willkürliche Zeichenfolgen über die serielle Schnittstelle zu senden, als auch Werte von Ganzzahl-Variablen als ASCII-Text. Schließlich unterstütze ich jetzt auch 'zu erhaltende Variablen' auf Prozessoren mit einem EEPROM. Sie können anweisen, dass eine bestimmte Variable automatisch, bei jeder Wertänderung, gespeichert wird, sodass ihr Wert bei Versorgungsspannungs-Abschaltungen erhalten bleibt.
Free download unter http://cq.cx/ladder.pl
oder auf Deutsch unter http://cq.cx/ladder-de.html
der Download von ldmicro.exe, deutsche Version, unter
http://cq.cx/ldmicro-de.exe
Na das ist doch mal was Neues und ist bisher einmalig auf der Welt!