Optimierung bei SPS

Do you have a question? Post it now! No Registration Necessary

Translate This Thread From German to

Threaded View
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?


2. 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


--
Posted via Mailgate.ORG Server - http://www.Mailgate.ORG

Re: Optimierung bei SPS
Am Samstag, 24 Januar 2004 17:30, _Sebastian Fahrner_ schrieb:

[...]

xpost sind f'2 ist böse. Bitte informiere dich.

Lutz

Re: Optimierung bei SPS


Sebastian Fahrner schrieb:

Quoted text here. Click to load it

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

Quoted text here. Click to load it

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



Re: Optimierung bei SPS
Udo Piechottka schrieb:
Quoted text here. Click to load it

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
--
Franz Glaser MEG   Glasau 3  A-4191 Vorderweissenbach
http://www.meg-glaser.com - da findest du die e-mail
We've slightly trimmed the long signature. Click to see the full one.

Site Timeline