Optimierung bei SPS

Hallo,

mal eine Frage an die SPS-Experten. Ich bin von Haus aus C-Programmierer und gewohnt, daß der Compiler recht viel optimiert. Es würde mich mal interessieren, wie das bei einer SPS funktioniert.

  1. Wenn ein AWL-Code "übersetzt" wird, was kommt dann dabei heraus? Wird der Code compiliert oder läuft er auf der SPS auf einer Art Interpreter? Wird er in einen speziellen Laufzeitcode übersetzt oder direkt in Maschinen-Code? Wird dabei optimiert?

  1. Man vergleiche folgende zwei Programme:

Programm 1: O( U E 1 U E 2 ) O( U E 3 U E 4 ) = A 1

Programm 2: U E 1 U E 2 O U E 3 U E 4 = A 1

Ich würde jetzt mal annehmen, daß beide Programme ein völlig identisches Laufzeitverhalten haben, bzw. in den identischen Laufzeitcode übersetzt werden. Kann das jemand bestätigen oder widerlegen?

Follow up bitte in de.sci.eletronics

Danke,

Sebastian

Reply to
Sebastian Fahrner
Loading thread data ...

Sebastian Fahrner schrieb:

Das hängt vom SPS-Fabrikat ab. Beides ist möglich.

Bei Compilern üblicherweise ja, bei Interpretern nicht, da können die Ausführungszeiten beim Entwurf ausgerechnet werden (Siemens S5 z.B).

Man darf sich allerdings unter den verfügbaren Compilern nicht zuviel versprechen, ich halte sie zum Teil eher für so etwas wie einen Assembler. Bei zeitkritischem Code wird man die CPU ohnehin möglichst mundgerecht füttern und sich nicht auf die Optimierungen verlassen.

Gruss Udo

Reply to
Udo Piechottka

Udo Piechottka schrieb:

Moderne SPS haben 2 CPU's mit verschiedenem Sprachschatz. Die eine führt die puren Schalteranweisungen durch, die andere die Rechenanweisungen.

Die Schalteranweisungen werden von den Bytes in Bits zerlegt, damit sie die CPU schneller verwurschten kann. Sie muß nicht Bytes bzw. Words aus dem Speicher und den Registern lesen sondern kriegt sie schon bitweise zugeführt. Alte Maschinen mußten da tatsächlich noch ROTen und SHFten bevor sie ANDen konnten.

Und daß sich alles Klammerzeuch auf "dem ominösen STACK" abspielt, das weißt eh. Eh klar, geh? Diese "Auflösung" macht der Compiler mit Vergnügen.

Das Vergnügen hab' ich ihm nicht gegönnt und habe in FORTH programmiert. Justament. Das tun heute noch manche freaks. Schau mal im Google, was du dazu alles findest. Eine Welt für sich, aber wirklich nur für sich.

MfG

Reply to
Franz Glaser (Lx)

PolyTech Forum website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.