# LGF_ActDeactDevice (FB / 2.0.0)

Übersicht

Autor: Simatic Systems Support

## Kurzbeschreibung

`LGF_ActDeactDevice` stellt eine kompakte State Maschine zur Aktivierung und Überwachung bzw. Deaktivierung eines dezentralen IO-Gerätes bereit.

### Baustein Schnittstelle

| LGF_ActDeactDevice (FB) |
--- | --- | ---
Bool |  |  | deactivate |  | done |  |  | Bool
Bool |  |  | activate |  | busy |  |  | Bool
HW_DEVICE |  |  | hwId |  | error |  |  | Bool
LGF_typeActDeactDeviceParameter |  |  | parameter |  | status |  |  | Word
|  |  |  |  | deactivatingActive |  |  | Bool
|  |  |  |  | deactivatingDone |  |  | Bool
|  |  |  |  | activatingActive |  |  | Bool
|  |  |  |  | activatingDone |  |  | Bool
|  |  |  |  | diagnostics |  |  | LGF_typeDiagnostics

### Input Parameter

Bezeichner | Datentyp | Default Wert | Beschreibung
--- | --- | --- | ---
deactivate | Bool | FALSE | Steigende Flanke: Deaktivieren des Gerätes angegeben `hwId`
activate | Bool | FALSE | Steigende Flanke: Aktivieren des Gerätes angegeben `hwId`
hwId | HW_DEVICE | --- | Hardware-ID des Geräts, das aktiviert/deaktiviert werden soll (`Device~PnIf~IODevice`)
parameter | LGF_typeActDeactDeviceParameter | --- | Parameterdatensatz für die Funktion `LGF_ActDeactDevice`

### Output Parameter

Bezeichner | Datentyp | Beschreibung
--- | --- | ---
done | Bool | TRUE: FB-Abarbeitung erfolgreich fertiggestellt
busy | Bool | TRUE: FB ist aktive und neue Ausgabewerte können erwartet werden.
error | Bool | Während der Ausführung des FB ist ein Fehler aufgetreten
status | Word | 16#0000-16#7FFF: Status des FB / 16#8000-16#FFFF: Fehleridentifikation (siehe folgende Tabelle)
deactivatingActive | Bool | TRUE: Deaktivierung des Gerätes aktiv
deactivatingDone | Bool | TRUE: Gerät deaktiviert
activatingActive | Bool | TRUE: Aktivierung des Geräts aktiv
activatingDone | Bool | TRUE: Gerät aktiviert
diagnostics | LGF_typeDiagnostics | Diagnosestruktur zur Speicherung und Übertragung von Diagnoseinformationen von Blöcken über die Schnittstelle.

### Status & Error Meldungen

Code / Wert | Bezeichner / Beschreibung
--- | ---
16#0000 | STATUS_DEACTIVATION_DONE Geräte Deaktivierung erfolgreich beendet
16#0001 | STATUS_ACTIVATION_DONE Geräte Aktivierung erfolgreich beendet
16#7000 | STATUS_NO_CALL Kein Auftrag wird gerade bearbeitet
16#7040 | STATUS_DEACTIVATION Deaktivierung des Geräts
16#7060 | STATUS_ACTIVATION Aktivierung des Geräts
16#8600 | ERR_UNDEFINED_STATE Fehler: Aufgrund eines undefinierten Zustands im Zustandsautomaten
16#8601 | ERR_LOG2GEO Fehler: Log2Geo, möglicherweise ist die HW ID für das Gerät falsch, siehe `diagnostics.subFunctionStatus` für weitere Informationen
16#8602 | ERR_GEO2LOG Fehler: Geo2Log, möglicherweise ist die HW-ID für das Gerät falsch, siehe `diagnostics.subFunctionStatus` für weitere Informationen
16#8640 | ERR_DEVICE_DEACTIVATING Fehler: Deaktivierung `D_ACT_DP` des Geräts, siehe `diagnostics.subFunctionStatus` für weitere Informationen
16#8641 | ERR_DEVICE_DEACTIVATING_TIME_OUT Fehler: Deaktivierung des Gerätes - Watchdog-Timer abgelaufen
16#8642 | ERR_DEVICE_DEACTIVATING_RETRIES_REACHED Fehler: Deaktivierung des Geräts - Wiederholungszähler maximum erreicht
16#8650 | ERR_READ_ACTIVATION_STATE_WHILE_DEACTIVATED Fehler: Deaktivierungsstatus (D_ACT_DP) des Geräts ist falsch, gewünscht ist `16#0000` oder `16#0002`, siehe `diagnostics.subFunctionStatus` für weitere Informationen
16#8660 | ERR_DEVICE_ACTIVATING Fehler: Aktivierung `D_ACT_DP` des Geräts, siehe `diagnostics.subFunctionStatus` für weitere Informationen
16#8661 | ERR_DEVICE_ACTIVATING_TIME_OUT Fehler: Aktivierung des Geräts - Watchdog-Timer abgelaufen. Kann an einer unterbrochenen Geräteverbindung liegen.
16#8662 | ERR_DEVICE_ACTIVATING_RETRIES_REACHED Fehler: Aktivierung des Geräts - Wiederholungszähler maximum erreicht. Kann an einer unterbrochenen Geräteverbindung liegen.
16#8663 | ERR_READ_DEVICES_STATES_DURING_ACTIVATION Fehler: Read Device States (`DeviceStates`) während der Aktivierung des Gerätes, siehe `diagnostics.subFunctionStatus` für weitere Informationen
16#8670 | ERR_READ_DEVICES_STATES_WHILE_ACTIVE Fehler: Read Device States (`DeviceStates`) während das Gerät aktiv ist, siehe `diagnostics.subFunctionStatus` für weitere Informationen
16#8671 | ERR_DEVICE_STATE_WHILE_ACTIVE Fehler: Gerät meldet vorliegenden Fehler und ist unerreichbar, fehlerhaftes Gerät oder IO-System
16#8672 | ERR_READ_ACTIVATION_STATE_WHILE_ACTIVE Fehler: Aktivierungsstatus (`D_ACT_DP`) des Geräts ist falsch, gewünscht ist `16#0000` oder `16#0001`, siehe `diagnostics.subFunctionStatus` für weitere Informationen
16#8690 | ERR_DISABLING_DEACT_DEVICE Fehler: Deaktivierung `D_ACT_DP` des Geräts führt zu einem Fehler bei der Deaktivierung, siehe `diagnostics.subFunctionStatus` für weitere Informationen
16#8691 | ERR_DISABLING_WATCHDOG Fehler: Watchdog-Timer beim Deaktivieren abgelaufen

## Benutzer definierte Datentypen

### LGF_typeActDeactDeviceParameter (UDT / V2.0.0)

Dieser UDT gehört zum Modul `LGF_ActDeactDevice` und listet alle möglichen Parameter zur Konfiguration des Verhaltens auf.

Bezeichner | Datentyp | Default Wert | Beschreibung
--- | --- | --- | ---
activationRetries | SInt | 100 | Anzahl der Wiederholungen der Aktivierung & Deaktivierung, bis einen Fehler anzeigt wird
timeOutActDeact | Time | T#5S | Die Zeit für die Überwachung der Befehle `activate` und `deactivate` sollte größer sein als die in der Hardwarekonfiguration der SPS im Abschnitt `Startup` eingestellte `Parametrierungszeit`.

### LGF_typeDiagnostics (UDT / V1.0.1)

Diagnosestruktur zur Speicherung und Übertragung von Diagnoseinformationen von Blöcken über die Schnittstelle.

Bezeichner | Datentyp | Default Wert | Beschreibung
--- | --- | --- | ---
status | Word | 16#0000 | Status des Bausteins oder Fehleridentifikation beim Auftreten des Fehlers
subfunctionStatus | Word | 16#0000 | Status oder Rückgabewert von aufgerufenen FB's, FC's und Systembausteinen
stateNumber | DInt | 0 | Zustand in der Zustandsmaschine des Blocks, in dem der Fehler aufgetreten ist

## Funktionsbeschreibung

Das Modul stellt den Ablauf zum Aktivieren und Deaktivieren eines dezentralen IO-Gerätes im Profinet (PN, S7-1500 & S7-1200) sowie im Profibus (DP, S7-1500) Netzwerk zur Verfügung.

Das Aktivieren des Gerätes (definiert an `hwId`) wird durch eine steigende Flanke an `activate` eingeleitet, nach vollständiger Aktivierung wir dieses am Ausgang `isActivated` angezeigt.

Hinweis
  Der Verbindungsstatus des Dezentralen Gerätes wird in der TIA Portal Projekt Navigation in der PLC, welcher der IO-Controller ist, unter dem Punkt `Dezentrale Peripherie` angezeigt, wenn sie mit dem Engineering System online sind.

Das Deaktivieren des Gerätes (definiert an `hwId`) wird durch eine steigende Flanke an `deactivate` eingeleitet, nach vollständiger Aktivierung wir dieses am Ausgang `isDeactivated` angezeigt.

Hinweis
  Der Parameter `timeOutActDeact` zur Überwachung der Aktivierungs- und Deaktivierungssequenz sollte immer größer eingestellt werden als der Parametrierte Wert in der `Gerätekonfiguration` / `Anlauf` / `Parametrierungszeit`.

## Änderungshistorie

Version & Datum | Änderungsbeschreibung
--- | ---
| 1.0.0 | Simatic Systems Support
| 06.04.2024 | First released version in different project
| 2.0.0 | Simatic Systems Support
| 10.03.2025 | Refactoring & Improve Code for LGF Integration Thats why we start here with V2.0 for the LGF integration Copy of `LGF_ActDeactMonitorDevice` without device monitoring, just executing activation and deactivation