Herunterladen Diese Seite drucken

Verarbeitung Von Interruptprogrammen Durch Die S7; Systemunterstützung Für Interrupts - Siemens SIMATIC S7-200 Systemhandbuch

Vorschau ausblenden Andere Handbücher für SIMATIC S7-200:

Werbung

S7-200 Systemhandbuch

Verarbeitung von Interruptprogrammen durch die S7-200

Das Interruptprogramm wird in Reaktion auf ein zugeordnetes internes oder externes Ereignis ausgeführt.
Nachdem die letzte Operation eines Interruptprogramms ausgeführt wurde, wird die Steuerung wieder an
das Hauptprogramm übergeben.Sie können das Interruptprogramm beenden, indem Sie die Operation
Interruptprogramm bedingt beenden (CRETI) ausführen. Tabelle 6-46 führt einige Richtlinien und
Einschränkungen für die Verwendung von Interruptprogrammen in Ihrem Programm auf.
Tabelle 6-46 Richtlinien und Einschränkungen für die Verwendung von Interruptprogrammen
Richtlinien
Mit der Interruptbearbeitung können Sie schnell auf besondere interne oder externe Ereignisse reagieren. Sie sollten Ihr
Interruptprogramm so aufbauen, dass es eine bestimmte Aufgabe ausführt und anschließend die Steuerung wieder an
das Hauptprogramm übergibt.
Programmieren Sie möglichst kurze Interruptprogramme mit präzisen Angaben, so dass die Programme schnell bearbei-
tet werden können und andere Prozesse nicht lange unterbrochen werden. Missachten Sie diese Richtlinie, kann es zu
unvorhersehbaren Zuständen kommen, die den Betrieb der vom Hauptprogramm gesteuerten Geräte stören können. Für
Interruptprogramme gilt die Devise "je kürzer, desto besser".
6
Einschränkungen
Sie dürfen die Operationen Alle Interruptereignisse sperren (DISI), Alle Interruptereignisse freigeben (ENI), Modus für
schnellen Zähler definieren (HDEF) und Bearbeitung beenden (END) nicht in einem Interruptprogramm verwenden.
Systemunterstützung für Interrupts
Kontakte, Spulen und Akkumulatoren können von Interrupts beeinflusst werden. Deshalb speichert das
System den Stack, die Akkumulatoren und die Sondermerker (SM), die den Status von Akkumulatoren und
Anweisungen anzeigen, und lädt sie später neu. Dadurch wird verhindert, dass das Hauptprogramm durch
eine Verzweigung zu oder von einem Interruptprogramm gestört wird.
Sie können Daten in einem Hauptprogramm und in Interruptprogrammen gemeinsam
nutzen.
Sie können Daten in einem Hauptprogramm und in einem oder in mehreren Interruptprogrammen
gemeinsam nutzen. Weil es nicht vorhersehbar ist, wann die S7-200 einen Interrupt erzeugt, ist es
empfehlenswert, die Anzahl von Variablen zu begrenzen, die sowohl im Interruptprogramm als auch an
anderen Stellen im Programm verwendet werden. Fehler in der Konsistenz der gemeinsam genutzten Daten
können durch die Ausführung von Interruptprogrammen entstehen, wenn die Bearbeitung der Operationen
in Ihrem Hauptprogramm von Interruptereignissen unterbrochen wird. Wenn Sie die lokale Variablentabelle
des Interruptprogramms verwenden, stellen Sie sicher, dass Ihr Interruptprogramm nur den temporären
Speicher verwendet und keine Daten an anderen Stellen im Programm überschreibt.
Es gibt eine Reihe von Programmiertechniken, mit denen Sie sicherstellen, dass Fehler beim gemeinsamen
Nutzen von Daten im Haupt- und im Interruptprogramm vermieden werden. Diese Techniken schränken den
Zugriff auf gemeinsam genutzte Daten ein bzw. sie erlauben keine Unterbrechungen der Anweisungsfolgen,
die auf gemeinsam genutzte Daten zugreifen.
Bei einem AWL-Programm, das eine einzige Variable gemeinsam nutzt: Handelt es sich bei den
-
gemeinsam genutzten Daten um eine einzige Byte-, Wort- oder Doppelwortvariable und ist Ihr
Programm in AWL geschrieben, dann dürfen Zwischenergebnisse von Operationen mit gemeinsam
genutzten Daten nur an Adressen im Speicher bzw. in Akkumulatoren abgelegt werden, die nicht
gemeinsam genutzt werden.
Bei einem KOP-Programm, das eine einzige Variable gemeinsam nutzt: Handelt es sich bei den
-
gemeinsam genutzten Daten um eine einfache Byte-, Wort- oder Doppelwortvariable und ist Ihr
Programm in KOP geschrieben, dann müssen Sie mit Hilfe der Übertragungsoperationen (MOVB,
MOVW, MOVD, MOVR) auf die gemeinsam genutzten Adressen im Speicher zugreifen. Viele
KOP-Operationen entsprechen Anweisungsfolgen in AWL, die unterbrochen werden können. Jede
dieser Übertragungsoperationen entspricht jedoch einer einzigen AWL-Anweisung, deren
Bearbeitung nicht von Interruptereignissen beeinflusst werden kann.
Bei AWL- oder KOP-Programmen, die mehrere Variablen gemeinsam nutzen: Handelt es sich bei den
-
gemeinsam genutzten Daten um mehrere zusammengehörige Bytes, Wörter und Doppelwörter, dann
kann die Bearbeitung des Interruptprogramms von den Operationen Alle Interruptereignisse sperren
(DISI) und Alle Interruptereignisse freigeben (ENI) gesteuert werden. An der Stelle in Ihrem
Hauptprogramm, an der Sie Operationen anordnen, die auf gemeinsamen Speicher zugreifen,
müssen Sie die Interruptereignisse sperren. Nachdem alle Operationen, die mit dem gemeinsamen
Speicher arbeiten, ausgeführt wurden, müssen Sie die Interruptereignisse wieder freigeben. Während
der Zeit, in der die Interruptereignisse gesperrt sind, können keine Interruptprogramme ausgeführt
werden und auf gemeinsamen Speicher zugreifen. Diese Programmiertechnik kann allerdings
verzögerte Reaktionen auf Interruptereignisse verursachen.
158

Quicklinks ausblenden:

Werbung

loading