Beschreibung
Die Anweisung "IP_CONF" dient zur programmgesteuerten Konfiguration der integrierten PROFINET-Schnittstelle der CPU. Die bisher gültigen Konfigurationsdaten werden dabei überschrieben.
Sie können die folgenden Einstellungen der Schnittstellen-Konfiguration vornehmen:
-
IP-Parameter: IP-Adresse, Subnetzmaske, Router-Adresse
-
PROFINET IO-Gerätename (falls die CPU als PROFINET IO Device betrieben wird)
Die Konfigurationsdaten müssen Sie in einem Konfigurations-DB ablegen.
Die programmgesteuerte Einstellung der IP-Konfiguration mit der Anweisung "IP_CONF" können Sie alternativ zur Projektierung mit STEP 7 vornehmen. Sie wird jedoch nur dann wirksam, wenn Sie in der Hardware-Konfiguration explizit vorgegeben haben, dass die Vergabe von IP-Parametern über das Anwenderprogramm erfolgt.
|
Hinweis Die Konfigurationsdaten eines Kommunikationsprozessors können alternativ zur Projektierung mit der Anweisung "IP_CONFIG" eingestellt werden (siehe SIMATIC NET CP). |
Arbeitsweise
Die Anweisung "IP_CONF" ist eine asynchron arbeitende Anweisung, d. h. die Bearbeitung erstreckt sich über mehrere Aufrufe. Sie starten den Übertragungsvorgang, indem Sie "IP_CONF" mit REQ = 1 aufrufen.
Zu jedem Zeitpunkt kann nur ein Auftrag aktiv sein.
Über den Ausgangsparameter BUSY und den Ausgangsparameter STATUS wird der Zustand des Auftrags angezeigt. Dabei entspricht STATUS dem Ausgangsparameter RET_VAL der asynchron arbeitenden Anweisungen (siehe auch: Unterschied zwischen synchron und asynchron arbeitenden Anweisungen).
In der folgenden Tabelle ist der Zusammenhang zwischen BUSY, DONE und ERROR angegeben. Mit ihrer Hilfe können Sie feststellen, in welchem Zustand sich die Anweisung aktuell befindet bzw. wann die Übertragung der Konfigurationsdaten beendet ist.
|
BUSY |
DONE |
ERROR |
Beschreibung |
|---|---|---|---|
|
TRUE |
irrelevant |
irrelevant |
Der Auftrag ist in Bearbeitung. |
|
FALSE |
TRUE |
FALSE |
Der Auftrag wurde erfolgreich abgeschlossen. |
|
FALSE |
FALSE |
TRUE |
Der Auftrag wurde mit einem Fehler beendet. Die Fehlerursache können Sie dem Parameter STATUS entnehmen. |
|
FALSE |
FALSE |
FALSE |
Der Anweisung wurde kein (neuer) Auftrag erteilt. |
Parameter
Die folgende Tabelle zeigt die Parameter der Anweisung "IP_CONF":
|
Parameter |
Deklaration |
Datentyp |
Speicherbereich |
Beschreibung |
|---|---|---|---|---|
|
REQ |
Input |
BOOL |
E, A, M, D, L, T, Z |
Steuerparameter REQUEST. Startet die Anweisung bei steigender Flanke. |
|
LADDR |
Input |
WORD |
M, D oder Konstante |
Diagnoseadresse der PROFINET-Schnittstelle |
|
Input |
ANY |
D |
Zeiger auf die Konfigurationsdaten (zulässige Datentypen: BYTE, WORD, BLOCK_DB) Hinweis: Den Parameter CONF_DB können Sie auf die folgenden beiden Arten angeben:
|
|
|
DONE |
Output |
BOOL |
E, A, M, D, L |
Zustandsparameter DONE:
|
|
BUSY |
Output |
BOOL |
E, A, M, D, L |
|
|
ERROR |
Output |
BOOL |
E, A, M, D, L |
Zustandsparameter ERROR: ERROR=1: Bei der Bearbeitung ist ein Fehler aufgetreten. STATUS liefert detaillierte Auskunft über die Art des Fehlers |
|
STATUS |
Output |
DWORD |
E, A, M, D, L |
Fehlerinformation |
|
ERR_LOC |
Output |
DWORD |
E, A, M, D, L |
Fehlerquelle (field_id und subfield_type_id des Fehler verursachenden Parameterblocks) |
Weitere Informationen zu den gültigen Datentypen finden Sie unter "Übersicht über die gültigen Datentypen".
Parameter ERROR und STATUS
|
ERROR |
STATUS (DW#16#..) |
ERR_LOC* |
Erläuterung |
|---|---|---|---|
|
0 |
00000000 |
0 |
Auftragsbearbeitung ohne Fehler beendet |
|
0 |
00700000 |
0 |
Keine Auftragsbearbeitung aktiv |
|
0 |
00700100 |
0 |
Start der Auftragsbearbeitung |
|
0 |
00700200 |
0 |
Zwischenaufruf (REQ irrelevant ) |
|
1 |
C08xyy00 |
0 |
Allgemeine Fehlerinformation Siehe auch: Fehlerauswertung mit dem Ausgangsparameter RET_VAL |
|
1 |
C0808000 |
0 |
LADDR ist ungültig |
|
1 |
C0808100 |
0 |
LADDR ist der unterstützten PROFINET-Schnittstelle nicht zugewiesen |
|
1 |
C0808200 |
0 |
Fehler im Parameter CONF_DB: Datentyp wird nicht unterstützt. |
|
1 |
C0808300 |
0 |
Fehler im Parameter CONF_DB: Der Pointer zeigt auf einen nicht unterstützten Bereich. |
|
1 |
C0808400 |
0 |
Fehler im Parameter CONF_DB: Falsche Länge des ANY-Pointers |
|
1 |
C0808700 |
0 |
Fehler im Parameter CONF_DB: Inkonsistenz der Längenangabe bei den Konfigurationsdaten |
|
1 |
C0808800 |
s, 0 |
field_type_id hat einen unzulässigen Wert |
|
1 |
C0808900 |
s, 0 |
field_id hat einen unzulässigen Wert |
|
1 |
C0808A00 |
s, 0 |
Falsche Anzahl bei subfield_cnt |
|
1 |
C0808B00 |
s, t |
subfield_id hat einen unzulässigen Wert |
|
1 |
C0808C00 |
s, t |
Teilfeld mehrfach benutzt |
|
1 |
C0808D00 |
s, t |
subfield_len hat einen falschen oder unzulässigen Wert |
|
1 |
C0808E00 |
s, t |
subfield_mode hat einen unzulässigen Wert |
|
1 |
C0808F00 |
s, t |
Im Teilfeld besteht ein Konflikt zu einem früheren Teilfeld. |
|
1 |
C0809000 |
s, t |
Die Parameter des Teilfelds sind schreibgeschützt. Z. B. erfolgte die Parametervorgabe per Projektierung oder der PNIO-Betrieb ist aktiv. |
|
1 |
C0809400 |
s, t |
Parameterwert im Teilfeld ist nicht definiert oder unzulässig |
|
1 |
C080C200 |
0 |
Die Übertragung kann nicht durchgeführt werden (z. B. weil die Schnittstelle nicht erreichbar ist). |
|
1 |
C080C300 |
0 |
Ungenügende Ressourcen (z. B. mehrfacher Aufruf von "IP_CONF" mit unterschiedlichen Parametern) |
|
1 |
C080C400 |
0 |
Temporärer Kommunikationsfehler |
|
* In der obigen Tabelle ist f die field_id und s die subfield_type_id des Fehler verursachenden Parameterblocks. |
|||