Optimierung bei SPS

S

Sebastian Fahrner

Guest
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
 
Am Samstag, 24 Januar 2004 17:30, _Sebastian Fahrner_ schrieb:

[...]

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

Lutz
 
Sebastian Fahrner schrieb:

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?
Das hängt vom SPS-Fabrikat ab. Beides ist möglich.

Wird er in einen speziellen Laufzeitcode übersetzt
oder direkt in Maschinen-Code? Wird dabei optimiert?
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
 
Udo Piechottka schrieb:
Sebastian Fahrner schrieb:


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?


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


Wird er in einen speziellen Laufzeitcode übersetzt
oder direkt in Maschinen-Code? Wird dabei optimiert?


Bei Compilern üblicherweise ja, bei Interpretern nicht, da
können die Ausführungszeiten beim Entwurf ausgerechnet
werden (Siemens S5 z.B).
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
Für Spam + Viren bitte net@meg-glaser.com verwenden
 

Welcome to EDABoard.com

Sponsor

Back
Top