Banner

Einführung in die Benutzerprogrammstruktur von S7-1200 Siemens

Sep 14, 2023

Einführung in die Benutzerprogrammstruktur

Die Anwenderprogrammstruktur von S7-1200 und S7-300/400 ist grundsätzlich gleich.

Modulare Programmierung

Die modulare Programmierung unterteilt komplexe Automatisierungsaufgaben in kleinere Teilaufgaben, die den technischen Funktionen des Produktionsprozesses entsprechen und jeweils einem Unterprogramm namens „Block“ entsprechen, mit dem das Programm durch gegenseitige Aufrufe zwischen Blöcken organisiert werden kann.

Bild

Dieses Programm lässt sich leicht ändern, Fehler beheben und debuggen. Durch die Blockstruktur wird die organisatorische Transparenz, Verständlichkeit und Wartbarkeit von SPS-Programmen deutlich erhöht. OB, FB und FC enthalten alle Programme, die zusammen als Codeblöcke bezeichnet werden.

Die Anzahl der Codeblöcke ist unbegrenzt, sie ist jedoch durch die Speicherkapazität begrenzt.

Der aufgerufene Codeblock kann auch andere Codeblöcke aufrufen, was als verschachtelte Aufrufe bezeichnet wird.

Ausgehend vom Programmschleifen-OB bzw. Anlauf-OB beträgt die Schachtelungstiefe der S7-1200 16; Ab dem Alarm-OB beträgt die Schachtelungstiefe der S7-1200 6.

Beim Blockaufruf kann der Aufrufer aus verschiedenen Codeblöcken bestehen, und der aufgerufene Block ist ein anderer Codeblock als OB. Beim Aufruf eines Funktionsbausteins müssen Sie einen Hintergrunddatenbaustein dafür angeben.

Organisationsblock

Der Organisationsblock (OB) ist die Schnittstelle zwischen dem Betriebssystem und der Produktions-Root-Sequenz, die vom Betriebssystem aufgerufen wird und für die Meldung der Ausführung von Scan-Ring- und Interrupt-Programmwörtern, den SPS-Start und die Fehlerbehandlung verwendet wird.

Jeder Organisationsblock muss eine eindeutige OB-Nummer haben, einige Nummern vor 123 sind reserviert und andere OB-Nummern sollten größer oder gleich 123 sein.

Bestimmte Ereignisse in der CPU lösen die Ausführung von Organisationsbausteinen aus und OBs können weder untereinander noch von FC und FB aufgerufen werden. Nur Anlaufereignisse (z. B. Diagnosealarmereignisse oder periodische Alarmereignisse) können die Ausführung eines OB anstoßen.

1. Organisationsblock der Programmschleife. OB1 ist das Hauptprogramm im Anwenderprogramm, in dem die CPU das Betriebssystemprogramm durchläuft. In jeder Schleife ruft das Betriebssystemprogramm den OB1 einmal auf.

Deshalb wird das Programm im OB1 auch in einer Schleife ausgeführt. Es sind mehrere Programmzyklen-OBs zulässig, der Standardwert ist OB1. Die Anzahl der weiteren Programmzyklen OB sollte größer oder gleich 123 sein.

2. Starten Sie den Organisationsblock. Wenn der Betriebszustand der CPU von STOP nach RUN wechselt, wird ein STARTUP-Organisationsbaustein ausgeführt, um bestimmte Variablen im Programmschleifen-OB zu initialisieren.

Nachdem Sie den Start-OB ausgeführt haben, beginnen Sie mit der Ausführung des Programmschleifen-OB. Es können mehrere Anlauf-OBs vorhanden sein, der Standardwert ist OB100. Die Anzahl der weiteren Anlauf-OBs sollte größer oder gleich 123 sein.

3. Unterbrechen Sie organisatorische Blockaden. Die Interruptbehandlung wird verwendet, um eine schnelle Reaktion auf spezielle interne oder externe Ereignisse zu erreichen. Wenn kein Alarmereignis auftritt, durchläuft die CPU den OB1 und die von ihm aufgerufenen Bausteine.

Bild

Wenn Interrupt-Ereignisse wie Diagnosealarme und Zeitverzögerungsalarme auftreten, reagiert das Betriebssystem sofort nach der Ausführung der aktuellen Anweisung des aktuellen Programms (d. h. am Haltepunkt) auf den Interrupt, da OB1 die niedrigste Interrupt-Priorität hat.

Die CPU hält den ausgeführten Programmblock an und ruft automatisch einen dem Ereignis zugewiesenen Organisationsblock (d. h. Interrupt-Programm) auf, um das Interrupt-Ereignis zu verarbeiten.

Kehren Sie nach der Ausführung des Interrupt-Organisationsblocks zum Haltepunkt des unterbrochenen Programms zurück, um mit der Ausführung des ursprünglichen Programms fortzufahren.

Dies bedeutet, dass einige Benutzerprogramme nicht in jeder Schleife verarbeitet werden müssen, sondern nur dann zeitnah verarbeitet werden, wenn sie benötigt werden. Das Programm, das Interrupt-Ereignisse verarbeitet, wird in dem von diesem Ereignis gesteuerten OB platziert.

Funktion

Eine Funktion ist ein von einem Benutzer geschriebenes Unterprogramm, abgekürzt FC, das in STEP7V5.5 als Funktion bezeichnet wird. Es enthält Code und Parameter zur Ausführung bestimmter Aufgaben.

FC und FB (Funktionsblöcke) verfügen über Ein- und Ausgangsparameter, die mit dem Block, der sie aufruft, geteilt werden. Geben Sie nach der Ausführung von FC und FB den Codeblock zurück, der ihn aufgerufen hat.

Eine Funktion ist ein schnell ausgeführter Codeblock, der zur Ausführung standardmäßiger und wiederverwendbarer Operationen, beispielsweise arithmetischer Operationen, verwendet werden kann. Oder komplette technische Funktionen, wie zum Beispiel die Steuerung über Bitverknüpfungen.

Der gleiche FC und FB kann mehrmals an verschiedenen Stellen im Programm aufgerufen werden, was die Programmierung sich wiederholender Aufgaben vereinfachen kann. Die Funktion verfügt über keinen festen Speicherbereich und nach Ausführung der Funktion gehen die Daten in ihren temporären Variablen verloren.

Funktionsblock

Funktionsblöcke sind vom Benutzer geschriebene Unterprogramme, abgekürzt FB, und werden in STEP7V5.5 als Funktionsblöcke bezeichnet.

Beim Aufruf eines Funktionsblocks müssen Sie den Hintergrunddatenblock angeben, der ein dedizierter Speicherbereich für den Funktionsblock ist. Die CPU führt den Programmcode im FB aus und speichert die Eingabe- und Ausgabeparameter sowie die lokalen statischen Variablen des Blocks im Hintergrunddatenblock für den Zugriffnachfolgende Scan-Zyklen.

Die typische Anwendung von FB besteht darin, Vorgänge auszuführen, die nicht in einem Scanzyklus abgeschlossen werden können. Beim Aufruf von FB wird automatisch der entsprechende Hintergrunddatenblock geöffnet, dessen Variablen von anderen Codeblöcken verwendet werden können.

Durch die Verwendung verschiedener Hintergrunddatenblöcke beim Aufruf desselben Funktionsblocks können unterschiedliche Objekte gesteuert werden.

Einige Anweisungen der S7-1200 (z. B. Timer- und Zähleranweisungen, die den IEC-Standards entsprechen) sind eigentlich Funktionsblöcke, und beim Aufruf muss der entsprechende Hintergrunddatenblock angegeben werden.

Brauchen Sie Hilfe? Chatte mit uns

eine Nachricht hinterlassen
Für jede Informations- oder technische Supportanfrage füllen Sie bitte das Formular aus. Alle mit einem Sternchen* gekennzeichneten Felder sind Pflichtfelder.
einreichen
Auf der Suche nach FAQs?
KONTAKTIERE UNS #
+86 -15259245292

Unsere Stunden

Mo. 21.11. - Mi. 23.11.: 9.00 - 20.00 Uhr
Do. 24.11.: geschlossen – Happy Thanksgiving!
Fr. 25.11.: 8:00 - 22:00 Uhr
Sa. 26.11. - So. 27.11.: 10.00 - 21.00 Uhr
(Alle Stunden sind Eastern Time)

Heim

Produkte

WhatsApp

Kontaktiere uns