06.11.2013 Aufrufe

Simatic S7 von Siemens - Portal Automatisierungstechnik der tsm

Simatic S7 von Siemens - Portal Automatisierungstechnik der tsm

Simatic S7 von Siemens - Portal Automatisierungstechnik der tsm

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!