Beschreibung
Mit der Anweisung "D_ACT_DP" können Sie projektierte DP-Slaves/PROFINET IO-Devices gezielt deaktivieren und wieder aktivieren. Darüber hinaus können Sie für jeden eingesetzten DP-Slave bzw. für jedes eingesetzte PROFINET IO-Device ermitteln, ob diese Komponente momentan aktiviert oder deaktiviert ist.
Falls Sie mit Hilfe von der Anweisung einen Netzübergang vom Typ IE/PB Link PN IO deaktivieren, fallen alle daran angeschlossenen PROFIBUS DP-Slaves aus. Diese Ausfälle werden gemeldet.
Die Anweisung ist nicht anwendbar auf PROFIBUS PA-Feldgeräte, die über DP/PA Link an ein DP-Mastersystem angeschlossen sind.
|
Hinweis So lange ein oder mehrere "D_ACT_DP"-Aufträge aktiv sind, können Sie keine geänderte Konfiguration vom PG in die CPU laden (im Rahmen von CiR). Für die Bearbeitung eines Deaktivier- bzw. Aktivierauftrags sind mehrere Durchläufe durch den Zykluskontrollpunkt notwendig. Sie können daher nicht in einer programmierten Schleife auf das Ende eines solchen Auftrags warten. |
Parameter
Die folgende Tabelle zeigt die Parameter der Anweisung "D_ACT_DP":
|
Parameter |
Deklaration |
Datentyp |
Speicherbereich |
Beschreibung |
|---|---|---|---|---|
|
REQ |
Input |
BOOL |
E, A, M, D, L |
Pegelgetriggerter Steuerparameter |
|
MODE |
Input |
BYTE |
E, A, M, D, L oder Konstante |
Auftragskennung
|
|
LADDR |
Input |
WORD |
E, A, M, D, L oder Konstante |
Beliebige logische Adresse des DP-Slaves/PROFINET IO-Devices. Bei einer Ausgabeadresse muss das höchstwertige Bit gesetzt sein. |
|
RET_VAL |
Return |
INT |
E, A, M, D, L |
Tritt während der Bearbeitung der Anweisung ein Fehler auf, enthält der Rückgabewert einen Fehlercode. |
|
BUSY |
Output |
BOOL |
E, A, M, D, L |
Aktivkennung:
|
Weitere Informationen zu den gültigen Datentypen finden Sie unter "Übersicht über die gültigen Datentypen".
Parameter RET_VAL
|
Fehlercode (W#16#...) |
Erläuterung |
|---|---|
|
0000 |
Der Auftrag wurde fehlerfrei durchgeführt. |
|
0001 |
DP-Slave/PROFINET IO-Device ist aktiviert (Dieser Fehlercode ist nur möglich bei MODE = 0.) |
|
0002 |
DP-Slave/PROFINET IO-Device ist deaktiviert (Dieser Fehlercode ist nur möglich bei MODE = 0.) |
|
7000 |
Erstaufruf mit REQ=0. Der über LADDR festgelegte Auftrag ist nicht aktiv; BUSY hat den Wert "0". |
|
7001 |
Erstaufruf mit REQ=1. Der über LADDR festgelegte Auftrag wurde angestoßen; BUSY hat den Wert "1". |
|
7002 |
Zwischenaufruf (REQ irrelevant). Der aktivierte Auftrag ist noch in Bearbeitung; BUSY hat den Wert "1". |
|
8090 |
|
|
8092 |
Der laufende Deaktiviervorgang eines DP-Slaves/PROFINET IO-Devices (MODE=2) kann nicht durch seine Aktivierung (MODE=1) abgebrochen werden. Aktivieren Sie die Komponente zu einem späteren Zeitpunkt. |
|
8093 |
Zu der in LADDR angegebenen Adresse gehört kein DP-Slave/PROFINET IO-Device (Es liegt keine Projektierung vor.), oder der Parameter MODE ist nicht bekannt. |
|
8094 |
Sie haben versucht, ein Gerät zu aktivieren, das ein möglicher Partner eines Werkzeugwechselports ist. Zu diesem Zeitpunkt ist an diesem Werkzeugwechselport aber bereits ein anderes Gerät aktiviert. Das aktivierte Gerät bleibt aktiviert. |
|
80A1 |
Die angesprochene Komponente konnte nicht parametriert werden. (Dieser Fehlercode ist nur möglich bei MODE = 1.) Hinweis: |
|
80A2 |
Der angesprochene DP-Slave gibt keine Rückmeldung (Diese Fehlerinformation gibt es nicht bei PROFINET IO-Devices. Der Vorgang wird bei PROFINET nicht zeitüberwacht.). |
|
80A3 |
Der betroffene DP-Master/PROFINET IO-Controller unterstützt diese Funktion nicht. |
|
80A4 |
Die CPU unterstützt diese Funktion bei externen DP-Mastern/PROFINET IO-Controllern nicht. |
|
80A6 |
Steckplatzfehler im DP-Slave/PROFINET IO-Device; es kann nicht auf alle Nutzdaten zugegriffen werden (Dieser Fehlercode ist nur möglich bei MODE=1). Hinweis: |
|
80C1 |
"D_ACT_DP" wurde gestartet und wird mit einer anderen logischen Adresse fortgesetzt (Dieser Fehlercode ist möglich bei MODE=1 und bei MODE=2). |
|
80C3 |
|
|
80C5 |
DP: Vom Anwender noch nicht abgeholte Aufträge werden durch Wiederanlauf verworfen. |
|
80C6 |
PROFINET: Vom Anwender noch nicht abgeholte Aufträge werden durch Wiederanlauf verworfen. |
|
8xyy |
allgemeine Fehlerinformation Siehe auch: Fehlerauswertung mit dem Ausgangsparameter RET_VAL |
Anwendungsbereich
Wenn Sie in einer CPU DP-Slaves/PROFINET IO-Devices konfigurieren, die real nicht vorhanden sind oder aktuell nicht benötigt werden, greift die CPU dennoch regelmäßig auf diese DP-Slaves/PROFINET IO Devices zu. Nach deren Deaktivierung unterbleiben weitere CPU-Zugriffe. Bei PROFIBUS DP kann dadurch der schnellstmögliche DP-Buszyklus erreicht werden, und die entsprechenden Fehlerereignisse treten nicht mehr auf.
Beispiele
Im Serienmaschinenbau ist aus Sicht des Maschinenbauers eine Vielzahl von Maschinenoptionen möglich. Jede ausgelieferte Maschine beinhaltet jedoch nur eine individuelle Kombination ausgewählter Optionen.
Sämtliche möglichen Maschinenoptionen sind vom Hersteller als DP-Slaves/PROFINET IO Devices projektiert, um ein gemeinsames Anwenderprogramm über alle möglichen Optionen erstellen und pflegen zu können. Mit "D_ACT_DP" können Sie im Anlauf der Maschine alle nicht vorhandenen DP-Slaves/PROFINET IO Devices deaktivieren.
Eine ähnliche Situation besteht bei Werkzeugmaschinen, die viele Werkzeuge vorhalten, aber zu einem Zeitpunkt nur wenige einsetzen. Hier werden die Werkzeuge als DP-Slaves/PROFINET IO Devices realisiert. Das Anwenderprogramm aktiviert mit Hilfe von "D_ACT_DP" die aktuell benötigten und deaktiviert die erst später wieder einzusetzenden Werkzeuge.
Arbeitsweise
"D_ACT_DP" ist eine asynchron arbeitende Anweisung, d. h. die Bearbeitung erstreckt sich über mehrere Aufrufe. Sie starten den Auftrag, indem Sie "D_ACT_DP" mit REQ=1 aufrufen.
Über die Ausgangsparameter RET_VAL und BUSY wird der Zustand des Auftrags angezeigt.
Siehe auch: Unterschied zwischen synchron und asynchron arbeitenden Anweisungen.
Identifikation eines Auftrags
Falls Sie einen Deaktivierungs- bzw. Aktivierungsauftrag angestoßen haben und Sie "D_ACT_DP" erneut aufrufen, bevor dieser beendet wurde, hängt das weitere Verhalten der Anweisung entscheidend davon ab, ob es sich beim erneuten Aufruf um denselben Auftrag handelt. Stimmt der Eingangsparameter LADDR überein, so gilt der Aufruf als Folgeaufruf.
Deaktivieren von DP-Slaves/PROFINET IO-Devices
Wenn Sie einen DP-Slave bzw. ein PROFINET IO Device mit "D_ACT_DP" deaktivieren, werden dadurch dessen Prozessausgänge auf die projektierten Ersatzwerte bzw. auf 0 gesetzt (sicherer Zustand). Der zugehörige DP-Master/PROFINET IO Controller spricht diese Komponente im Weiteren nicht mehr an. Deaktivierte DP-Slaves/PROFINET IO-Devices werden an den Fehler-LEDs des DP-Masters/PROFINET IO-Controllers oder der CPU nicht als gestört oder fehlend gekennzeichnet.
Das Prozessabbild der Eingänge von deaktivierten DP-Slaves/PROFINET IO-Devices wird mit 0 aktualisiert, d. h. es wird wie bei ausgefallenen DP-Slaves/PROFINET IO-Devices behandelt.
Falls Sie in Ihrem Programm mittels Direktzugriff auf die Nutzdaten eines zuvor deaktivierten DP-Slaves/PROFINET IO-Devices zugreifen, wird der Peripheriezugriffsfehler-OB (OB 122) aufgerufen und das zugehörige Startereignis in den Diagnosepuffer eingetragen. Falls Sie per Anweisung (z. B. "RD_REC") auf einen deaktivierten DP-Slave bzw. ein deaktiviertes PROFINET IO-Device zugreifen, erhalten Sie in RET_VAL dieselbe Fehlerinformation wie bei einem nicht verfügbaren DP-Slave/PROFINET IO-Device.
Das Deaktivieren eines DP-Slaves/PROFINET IO-Devices verursacht keinen Start des Programmablauffehler-OB (OB 85), auch wenn dessen Ein- bzw. Ausgänge zum systemseitig zu aktualisierenden Prozessabbild gehören. Es erfolgt auch kein Eintrag in den Diagnosepuffer.
Ob das Deaktivieren eines DP-Slaves/PROFINET IO-Devices einen Start des Baugruppenträgerausfall-OB (OB 86) und einen Eintrag in den Diagnosepuffer zur Folge hat, ist vom Parameter MODE abhängig:
-
MODE = 2: Kein OB 86-Start und kein Diagnosepuffereintrag
-
MODE = 4: OB 86-Start und Diagnosepuffereintrag
Fällt eine DP-Station/PNIO-Station aus, nachdem Sie sie mit "D_ACT_DP" deaktiviert haben, wird der Ausfall vom Betriebssystem nicht erkannt. Es erfolgt daher weder ein OB 86-Start noch ein Diagnosepuffereintrag.
Bei PROFIBUS DP gilt: Falls Sie DP-Slaves deaktivieren wollen, die als Sender am Querverkehr beteiligt sind, wird empfohlen, zuerst die Empfänger (Mithörer) zu deaktivieren, die mithören, welche Eingangsdaten der Sender seinem DP-Master schickt. Erst im Anschluss daran deaktivieren Sie den Sender.
Aktivieren von DP-Slaves/PROFINET IO-Devices
Wenn Sie einen DP-Slave bzw. ein PROFINET IO-Device mit "D_ACT_DP" wieder aktivieren, wird diese Komponente vom zugehörigen DP-Master/PROFINET IO-Controller konfiguriert und parametriert (wie bei der Wiederkehr einer ausgefallenen DP-Station/PROFINET IO-Station). Die Aktivierung ist abgeschlossen, wenn die Komponente Nutzdaten transferieren kann.
Das Aktivieren eines DP-Slaves/PROFINET IO-Devices verursacht keinen Start des Programmablauffehler-OB (OB 85), auch wenn dessen Ein- bzw. Ausgänge zum systemseitig zu aktualisierenden Prozessabbild gehören. Es erfolgt auch kein Eintrag in den Diagnosepuffer.
Ob das Deaktivieren eines DP-Slaves/PROFINET IO-Devices einen Start des Baugruppenträgerausfall-OB (OB 86) und einen Eintrag in den Diagnosepuffer zur Folge hat, ist vom Parameter MODE abhängig:
-
MODE = 1: Kein OB 86-Start und kein Diagnosepuffereintrag
-
MODE = 3: OB 86-Start und Diagnosepuffereintrag
Wenn Sie versuchen, einen deaktivierten DP-Slave, der physikalisch vom DP-Bus getrennt ist, mit "D_ACT_DP" zu aktivieren, liefert die Anweisung nach ca. einer Minute den Fehlercode W#16#80A2, und der DP-Slave bleibt deaktiviert. Falls er zu einem späteren Zeitpunkt wieder Verbindung zum DP-Bus hat, müssen Sie den Slave mittels "D_ACT_DP" wieder aktivieren.
Wenn Sie versuchen, ein PROFINET IO-Device zu aktivieren, das physikalisch vom PN-Bus getrennt ist, bleibt "D_ACT_DP" tätig. Es erfolgt kein automatischer Abbruch nach einer gewissen Zeit wie bei DP-Slaves. Sie müssen den laufenden Auftrag selbst abbrechen.
|
Hinweis Das Aktivieren eines DP-Slaves/PROFINET IO-Devices kann geraume Zeit dauern. Falls Sie einen laufenden Aktivierungsauftrag abbrechen wollen, starten Sie "D_ACT_DP" mit dem gleichen Wert für LADDR und MODE = 2. Sie wiederholen den Aufruf von "D_ACT_DP" mit MODE = 2 so lange, bis der erfolgreiche Abbruch des Aktivierungsauftrags mit RET_VAL = 0 angezeigt wird. |
Falls Sie DP-Slaves aktivieren wollen, die am Querverkehr beteiligt sind, wird empfohlen, zuerst die Sender und anschließend die Empfänger (Mithörer) zu aktivieren.
CPU-Anlauf
Das Betriebssystem der CPU zeigt in den verschiedenen Anlaufarten folgendes Verhalten hinsichtlich der DP-Slaves/PROFINET IO-Devices:
-
In den Anlaufarten Kaltstart und Neustart (Warmstart) werden deaktivierte Slaves/Devices automatisch wieder aktiviert.
-
Bei S7-400: Das Aktivieren der DP-Slaves/PROFINET IO-Devices kann längere Zeit dauern. In diesem Fall läuft die CPU trotzdem an, und bis zur fertigen Aktivierung treten Peripheriezugriffsfehler auf. Die Reaktion der CPU ist abhängig von der Parametrierung (OB 85-Aufruf bei Peripheriezugriffsfehler) und dem Programm im OB 85. Sie können diese Peripheriezugriffsfehler nicht unterdrücken.
-
Bei S7-300: Das Aktivieren der DP-Slaves/PROFINET IO-Devices kann längere Zeit dauern. In diesem Fall wartet die CPU, bis die DP-Slaves / PROFINET IO-Devices aktiviert wurden. Die maximale Wartezeit für das Aktivieren der DP-Slaves / PROFINET IO-Devices beträgt ca. 1 Minute. Innerhalb dieser Zeit treten keine Peripheriezugriffsfehler auf.
-
-
In der Anlaufart Wiederanlauf bleibt der Aktivierungsstatus von Slaves/Devices unverändert: Aktivierte Slaves/Devices bleiben aktiviert, deaktivierte Slaves/Devices bleiben deaktiviert.
Nach dem CPU-Anlauf versucht die CPU zyklisch zu allen projektierten und nicht deaktivierten Slaves/Devices, die nicht vorhanden oder nicht ansprechbar sind, Kontakt aufzunehmen.
|
Hinweis Ein Aufruf von "D_ACT_DP" in den Anlauf-OBs wird nicht unterstützt. |