Simatic S7 von Siemens - Portal Automatisierungstechnik der tsm
Simatic S7 von Siemens - Portal Automatisierungstechnik der tsm
Simatic S7 von Siemens - Portal Automatisierungstechnik der tsm
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
Dipl.Ing. Norbert Heinlein<br />
FH Frankfurt, Labor für <strong>Automatisierungstechnik</strong><br />
2.7 Variable<br />
Der Umgang mit Variablen und Adressen bei STEP7 unterscheidet sich <strong>von</strong> den Festlegungen <strong>der</strong> IEC 61131-3.<br />
Während IEC-Programmierer im Allgemeinen nicht daran interessiert sind, an welcher Adresse eine Variable im<br />
Speicher repräsentiert ist, kann <strong>der</strong> STEP7-Programmierer aus seinem Wissen über die Speicheraufteilung Nutzen<br />
ziehen und manche Probleme elegant lösen. Allerdings haben es STEP7-Einsteiger zunächst etwas schwerer.<br />
Was sind eigentlich Variable?<br />
Einige allgemein gültige Überlegungen sollen den Blick auf die Belange <strong>von</strong> STEP7 schärfen:<br />
Variable o<strong>der</strong> ganz allgemein „Datenobjekte“ bezeichnen mit ihrem Namen eine bestimmte Menge <strong>von</strong><br />
Speicherplatz. Unter dem Variablennamen können die dort liegenden Daten benutzt werden. Im Gegensatz dazu<br />
stehen Konstante, die keinen Speicherplatz haben und <strong>der</strong>en Wert im Programmcode festgelegt ist, weil er sich<br />
sowieso nie än<strong>der</strong>t.<br />
Somit ist ein erstes Kennzeichen für Variable <strong>der</strong> zugehörige Datentyp, <strong>der</strong> die erfor<strong>der</strong>liche Menge an Speicherplatz<br />
kennzeichnet. Ein an<strong>der</strong>es Kriterium ist die Aktualisierungsrate <strong>von</strong> Variablen, die sich aus dem Programmablauf<br />
ergibt und <strong>von</strong> Systemereignissen abhängig ist (siehe Abschnitt 8).<br />
Wichtig ist auch <strong>der</strong> Gültigkeitsbereich, innerhalb dessen eine Variable dem Programm bekannt ist. Dies führt zum<br />
Begriff einer Globalen bzw. Lokalen Variable.<br />
2.7.1 Globale Variable<br />
Globale Variable sind überall im Programm bekannt. Tatsächlich könnte man in jedem Codebaustein lesend o<strong>der</strong><br />
schreibend auf sie zugreifen – aber man sollte es nicht tun!<br />
Globale Variable nur in Organisationsbausteinen (OB) verwenden!<br />
Dies för<strong>der</strong>t die Übersichtlichkeit <strong>von</strong> Programmen, vermeidet Programmfehler und unterstützt die<br />
Wie<strong>der</strong>verwertbarkeit <strong>von</strong> Bausteinen.<br />
Es gibt folgende Arten <strong>von</strong> Globalen Variablen:<br />
a) Absolute Operanden<br />
Diese haben einen festen Namen und werden nirgends deklariert, da sie im Systemspeicher <strong>der</strong> CPU eine feste<br />
Adresse haben. Die Anzahl <strong>der</strong> verfügbaren Absoluten Operanden ist daher abhängig <strong>von</strong> <strong>der</strong> Hardwarebestückung<br />
<strong>der</strong> betreffenden <strong>S7</strong>-Station (verwendete CPU, Ein- und Ausgabebaugruppen etc.).<br />
Die Absoluten Operanden verweisen mit ihrem Namen auf einen bestimmten Bereich des Systemspeichers.<br />
Beispielsweise haben sämtliche Namen, die mit ‚E’ beginnen, mit dem Prozessabbild <strong>der</strong> Eingänge zu tun, d.h. diese<br />
Operanden speichern die Zustände <strong>der</strong> Eingangsperipherie.<br />
Es gibt folgende Bereiche im Systemspeicher (s.a. Abschn. 2.8):<br />
Bereichskennung<br />
E<br />
A<br />
M<br />
Z<br />
T<br />
L<br />
P<br />
D<br />
Erklärung<br />
Prozessabbild <strong>der</strong> Eingänge (PAE)<br />
Prozessabbild <strong>der</strong> Ausgänge (PAA)<br />
Speicherbereich für Merker<br />
Speicherbereich für Zähler<br />
Speicherbereich für Timer<br />
Lokaldatenstack<br />
Peripheriedaten<br />
Daten <strong>von</strong> Datenbausteinen<br />
Namensaufbau für Operanden <strong>der</strong> Speicherbereiche E, A, M, L<br />
Der Name enthält Bereichskennung, Datentyp und die Startadresse (=Bytenummer, weil <strong>der</strong> Speicher Byteorientiert<br />
aufgebaut ist).<br />
Syntax allgemein: Bereichskennung Datentyp Bytenummer Beispiel: EB 10<br />
B = Byte<br />
W= Wort<br />
D= Doppelwort<br />
Ausnahme für Bitdaten: Bereichskennung Bytenummer.Bitnummer Beispiel: E 1.0<br />
<strong>S7</strong>kurs_2004.doc 27.10.05 Programmieren mit STEP 7 Seite 12