D_ACT_DP: DP-Slaves deaktivieren / aktivieren (S7-300, S7-400) - STEP 7

Erweiterte Anweisungen (S7-300, S7-400)

ft:publication_title
Erweiterte Anweisungen (S7-300, S7-400)
Product
STEP 7
Version
V20
Publication date
11/2024
Language
de-DE
D_ACT_DP: DP-Slaves deaktivieren / aktivieren

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).
Während des Ladens einer geänderten Konfiguration vom PG in die CPU im laufenden Betrieb (CiR) weist die CPU die Aktivierung eines "D_ACT_DP"-Auftrags ab.

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
REQ=1:
Aktivieren bzw. Deaktivieren durchführen

MODE

Input

BYTE

E, A, M, D, L oder Konstante

Auftragskennung
Mögliche Werte:

  • 0: Auskunft einholen, ob die
    angesprochene Komponente aktiviert
    oder deaktiviert ist

  • 1: DP-Slave/PROFINET IO-Device aktivieren

  • 2: DP-Slave/PROFINET IO-Device deaktivieren

  • 3: DP-Slave/PROFINET IO-Device aktivieren und nach durchgeführtem Wechsel des Aktivierungszustands OB 86 aufrufen

  • 4: DP-Slave/PROFINET IO-Device deaktivieren und nach durchgeführtem Wechsel des Aktivierungszustands OB 86 aufrufen

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:

  • BUSY=1: Der Auftrag ist noch aktiv.

  • BUSY=0: Der Auftrag wurde beendet.

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

  • Sie haben keine Baugruppe mit der in LADDR angegebenen Adresse projektiert.

  • Sie betreiben Ihre CPU als I-Slave und haben in LADDR eine Adresse dieses I-Slaves angegeben.

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:
Diese Fehlerinformation liefert "D_ACT_DP" nur dann, wenn während der Parametrierung des aktivierten Slaves/Devices diese Komponente wieder ausfällt. Wenn nur die Parametrierung einer einzelnen Baugruppe nicht erfolgreich war, liefert "D_ACT_DP" die Fehlerinformation W#16#0000.

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:
Diese Fehlerinformation liefert "D_ACT_DP" nur dann, wenn nach der Parametrierung der aktivierten Komponente und vor dem Ende von "D_ACT_DP" die Komponente wieder ausfällt. Wenn nur eine einzelne Baugruppe nicht verfügbar ist, liefert "D_ACT_DP" die Fehlerinformation W#16#0000.

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

  • Temporärer Ressourcenfehler: Die CPU bearbeitet momentan das mögliche Maximum an Aktivierungs-/Deaktivierungsaufträgen. (Dieser Fehlercode ist nur möglich bei MODE = 1 und MODE = 2.)

  • Die CPU erhält gerade eine geänderte Konfiguration. Das Deaktivieren und Aktivieren von DP-Slaves/PROFINET IO-Devices ist daher momentan nicht möglich.

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.