Simatic S7 von Siemens - Portal Automatisierungstechnik der tsm
Simatic S7 von Siemens - Portal Automatisierungstechnik der tsm
Simatic S7 von Siemens - Portal Automatisierungstechnik der tsm
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
Dipl.Ing. Norbert Heinlein<br />
FH Frankfurt, Labor für <strong>Automatisierungstechnik</strong><br />
2.2 Programmbausteine: OB, FC, DB, FB, SFC, SFB<br />
Das Bausteinkonzept <strong>von</strong> STEP7 unterscheidet sich <strong>von</strong> den Festlegungen <strong>der</strong> Norm IEC 1131-3. Es ist für das<br />
Verständnis <strong>von</strong> STEP7 <strong>von</strong> zentraler Bedeutung!<br />
Eine Beson<strong>der</strong>heit sind die Systembausteine SFC und SFB. Sie sind bereits in <strong>der</strong> jeweiligen CPU vorhanden. Alle<br />
an<strong>der</strong>en erfor<strong>der</strong>lichen Bausteine werden vom Programmierer erstellt o<strong>der</strong> in das <strong>S7</strong>-Programm importiert.<br />
Hinsichtlich des Inhalts können Bausteine unterschieden werden in<br />
• Codebausteine<br />
Diese enthalten Programmanweisungen (Code). Alle OB, FC, FB, SFC, SFB sind Codebausteine.<br />
• Datenbausteine (DB’s)<br />
enthalten Speicherplatz für Daten. Der Programmierer legt die Größe und Datenstruktur <strong>von</strong> DB’s fest. Auf die<br />
Daten kann man durch Anweisungen in Codebausteinen zugreifen. DB’s werden für die Speicherung <strong>von</strong><br />
statischen Variablen (Messwerte, Rezepturen, Regelparameter etc.) verwendet.<br />
Codebausteine können hinsichtlich des Programmablaufs in zwei Gruppen unterschieden werden.<br />
• Organisationsbausteine (OB’s) werden bei bestimmten Ereignissen vom Betriebssystem gestartet.<br />
• Alle an<strong>der</strong>en Codebausteine werden durch Anweisungen im Anwen<strong>der</strong>programm gestartet.<br />
2.2.1 Organisationsbausteine (OB‘s)<br />
OB‘s bilden die Schnittstelle zwischen dem SPS-Betriebssystem und dem Anwen<strong>der</strong>programm. Sie können nicht<br />
durch Programmanweisungen gestartet werden! Stattdessen wird <strong>der</strong> Start <strong>von</strong> OB’s beim Eintreten <strong>von</strong> festgelegten<br />
Ereignissen durch das CPU-Betriebssystem veranlasst.<br />
OB’s werden durch Systemereignisse ausgelöst!<br />
Die nachfolgende Tabelle zeigt eine Auswahl <strong>der</strong> wichtigsten OB’s mit den betreffenden Ereignissen und <strong>der</strong><br />
zugehörigen Priorität. Ein OB höherer Priorität unterbricht die Bearbeitung des OB mit niedrigerer Priorität. Am Ende<br />
des höherprioren OB’s wird die Bearbeitung des unterbrochenen OB’s fortgesetzt.<br />
Priorität OB-Nr Name Systemereignis<br />
niedrigste OB1 Zyklus am Zyklusende und nach dem Anlauf (Ende <strong>von</strong> OB100)<br />
OB10 Uhrzeitalarm definierte Uhrzeit o<strong>der</strong> Datum<br />
OB35 Weckalarm "Zeit-Interrupt" periodisch jeweils nach einer definierten Zeit<br />
OB40 Prozessalarm "I/O-Interrupt" bei bestimmten Signalen <strong>der</strong> I/O-Peripherie<br />
OB80 Zykluszeitfehler OB1-Zyklus überschreitet eine definierte Zeit<br />
OB100 Anlauf beim Anlauf <strong>der</strong> SPS, d.h. bei Stop=>Run<br />
höchste OB122 Baugruppenfehler wenn beim Baugruppenzugriff ein Fehler erkannt wird<br />
Am häufigsten wird in Anwen<strong>der</strong>programmen <strong>der</strong> OB1 (Zyklus) eingesetzt. Viele STEP7-Programme verwenden den<br />
OB1 sogar als einzigen OB. Wegen <strong>der</strong> niedrigen Priorität kann er durch alle Systemereignisse unterbrochen<br />
werden. Die höchste Priorität hat <strong>der</strong> OB122, <strong>der</strong> bei <strong>der</strong> Erkennung <strong>von</strong> Baugruppenfehlern sofort bearbeitet wird.<br />
Die Anzahl <strong>der</strong> verfügbaren OB’s hängt ab <strong>von</strong> den Leistungsdaten <strong>der</strong> verwendeten CPU. Beispielsweise kennt die<br />
kleinste CPU (CPU312 IFM) nur OB1, OB40 und OB100.<br />
Wenn ein bestimmtes Systemereignis eintritt, <strong>der</strong> Anwen<strong>der</strong> aber den betreffenden OB nicht erstellt hat, dann<br />
passiert folgendes: das System verzweigt auf die OB-Adresse, dort steht aber nichts, also wird <strong>der</strong> unterbrochene<br />
OB sofort weiterbearbeitet.<br />
Eine beliebte Fehlerquelle besteht darin, dass irgendein Baustein eigentlich zyklisch bearbeitet werden soll, aber im<br />
OB1 <strong>der</strong> betreffende Bausteinaufruf fehlt. Dann passiert nichts und <strong>der</strong> Programmierer wun<strong>der</strong>t sich.<br />
<strong>S7</strong>kurs_2004.doc 27.10.05 Programmieren mit STEP 7 Seite 6