User manual

Table Of Contents
Synchroner Betrieb mehrerer CPUs (Multicomputing)
Hardware konfigurieren und Verbindungen projektieren mit STEP 7
8-8
A5E00706938-01
8.3 Programmieren der CPUs
Programmierung
Die Multicomputing-Programmierung unterscheidet sich prinzipiell nicht von der
Programmierung für eine einzelne CPU.
Es sind aber zusätzliche Schritte erforderlich, falls Sie die gesteckten CPUs
synchronisieren bzw. auf Ereignisse gemeinsam reagieren lassen wollen.
Aufrufen der SFC 35
Damit im Multicomputing-Betrieb alle CPUs gezielt auf Ereignisse (z. B. Alarme)
reagieren können, steht die SFC 35 "MP_ALM" zur Verfügung. Der Aufruf der
SFC 35 löst einen Multicomputingalarm aus, der zur synchronisierten Anforderung
des OB 60 auf allen gesteckten CPUs führt. In diesem OB sind lokale Variable
vorhanden, die das auslösende Ereignis näher spezifizieren.
Beim Aufruf der SFC 35 wird die Spezifikation der Ereignisse in einer
Auftragskennung an alle CPUs übertragen. Die Auftragskennung lässt eine
Unterscheidung von 16 unterschiedlichen Ereignissen zu.
Bei der Bearbeitung des Multicomputingalarms prüfen sowohl das sendende
Anwenderprogramm als auch die auf den anderen CPUs laufenden
Anwenderprogramme, ob sie den Auftrag kennen und reagieren danach
entsprechend der Programmierung.
Sie können die SFC 35 an jeder beliebigen Stelle Ihres Programms aufrufen. Da
der Aufruf aber nur im Betriebszustand RUN sinnvoll ist, wird beim Aufruf im
Betriebszustand ANLAUF der Multicomputingalarm unterdrückt.
Ein weiterer Aufruf eines Multicomputingalarms kann erst erfolgen, wenn der
aktuelle Multicomputingalarm abgearbeitet (quittiert) ist.
Nähere Informationen zur SFC 35 finden Sie in der Referenzhilfe zu SFBs/SFCs.
Programmieren des OB 60
Auf jeder beteiligten CPU können Sie einen OB 60 laden, der spezifisch für diese
CPU programmiert wurde. Damit können sich unterschiedlich lange
Bearbeitungszeiten ergeben. Dies führt zu folgendem Verhalten:
x Die jeweils unterbrochene Prioritätsklasse wird zu unterschiedlichen
Zeitpunkten weiterbearbeitet.
x Ein Multicomputingalarm wird nicht ausgeführt, wenn dieser während der
Bearbeitung eines OB 60 einer beliebigen CPU auftritt. Es erfolgt jedoch eine
Meldung, die Sie abfragen und darauf entsprechend reagieren können.
Ist der OB 60 auf einer gesteckten CPU nicht geladen, kehrt die entsprechende
CPU sofort in die zuletzt bearbeitete Prioritätsklasse zurück und fährt dort mit der
Programmbearbeitung fort.
Nähere Informationen zum OB 86 finden Sie in der Referenzhilfe zu OBs.