escride1
Level-1
- Beiträge
- 1.110
- Reaktionspunkte
- 262
-> Hier kostenlos registrieren
Ich würde es nicht als gänzlich falsch bezeichnen, den hier zitierten Text aber auch nicht.Halte ich jetzt mal für mindestens grenzwertig bis falsch.
Beispiel1: Ein Bit in einem DB (optimiert) belegt ein Byte (Laut Hersteller: Siemens).
Beispeil2: Der Speicher wird Zugriffoptimiert verwaltet Bytes zusammen Worte zusammen ... (Laut Hersteller: Siemens).
Da gibt's sogar entsprechende Doku zu.
Die SPS wird etwas anders verwaltet als PC's...
Mit Programm start sind hier die Adressen und Speicherbereiche eindeutig bekannt! Zur Laufzeit kommt es so nicht zuunvorhergesehenen Engpässen.
Es passt nur leider nicht so richtig mit dem Prinzip aud Aufbau einer SPS übereinander.
Aktuelle S7-1500er arbeiten mit einem 32-Bit Prozessor.
Bei dem Beispiel wird davon ausgegangen das ein Emulator hinter dem Code steht der zur Laufzeit alles umrechnen muss. Dem ist bei der SPS nicht so. Beim Übersetzen werden in den Projektdateien maschinenoptimierte Daten erzeugt die geladen werden. Diese werden beim Übersetzen so umsortiert das die CPU mit einem Maschinenbefehl z.B. einen REAL-Wert lesen kann. Wäre das ganze nicht symbolisch sondern direkt, dann könnte das ungünstig aussehen und eventuell sogar verdreht sein. Also könnten 2 Befehle notwendig sein plus das manuelle Drehen der Worte. Das kostet Zeit.
Damit das nicht geschieht gibt es die Smybolik die vor dem Laden alles "richtig" umsortiert sodass die CPU nur einen Maschinenbefehl einsetzen muss. Der Nachteil aber ist, das man im Programm selbst nicht weiß an genau welcher Stelle das nun sortiert wird. Das bleibt das Geheimnis von Siemens, mehr oder weniger. Also ist eine direkte Adressierung nicht möglich.
Zeiger:
Es wurde oben beschrieben das es das alles mal gab, dann hat Siemens es eingestampft um dann über Umwege doch wieder zu ermöglichen.
Vielleicht sollte man einfach mal den Gedanken folgen das es früher eben so war das man mit nahen "Maschinenbefehlen" (AWL) gearbeitet hat, aufgrund von Speichermangel sehr häufig platzsparend programmieren musste, aber heute mit wesentlich komplexeren Programmen gearbeitet wird die natürlich viel besser dokumentiert sein müssen und es einfach genug Speicherplatz gibt. Desweiteren werden auch immer mehr "Hochsprachen" vereinfacht. Das ist also nicht nur in der SPS so. Wer nicht mag das es alles "leichter" wird, der sollte überdenken warum dem so ist das er es nicht mag.
Die Tatsache das Siemens beschreibt wie es über Umwege doch wieder möglich ist liegt vielleicht ja auch an nichts anderem als das es so viele Einwände und Fragen gab wie es nun gemacht werden könnte, es für Siemens günstiger war einfach mal ne FAQ zu schreiben statt es jedem einzeln zu erklären.
Aus meiner persönlichen Meinung sehe ich in keinem einzigen meiner Anwendungsfälle (Fördertechniken, Sondermaschinen, Lüftungs- und Lackieranlagen) die Notwendigkeit das SPS-Programm mit nicht optimierten Bausteinen zu erstellen. Ich bin sogar davon überzeugt das es mir Unmengen an Arbeit erspart, auch später bei der Fehlersuche.
Zeiger auf verschiedene DBs benötige ich nicht. Wenn ich eine Anlage mit verschiedenen Positionen habe, dann erstelle ich wie ich oben schon geschrieben habe einen FB der jeweils mit einem anderen IDB und anderen Eingangsparametern aufgerufen wird. Das ist übersichtlicher, da ich direkt zu jeder Zeit sehen kann was exakt wo passiert. Sobald die DBs aber durchgehend wechseln weil ich Zeiger nutze und zufällig alle 2 Sekunden ein anderer DB aufgerufen wird, dann wird die Fehlersuche schnell zur Qual und das Programm muss eventuell sogar im Haltebetrieb überprüft werden. Also steht die Produktionskette.
Die einzige Krücke die ich aktuell sehe sind die Bitmeldungen in den Basic-Panels. Die sind für mich wirklich nervig, auch wenn ich meinen Weg gefunden habe die sehr komfortabel zu erstellen und zu nutzen.