Diese Funktion initialisiert und steuert die Kommunikation zwischen der S7-Steuerung, ibaPDA und ibaBM-DP-Gerät.
Die Funktion ibaDP_Req muss einmal pro Slave im zyklischen Programm aufgerufen werden.
Die verwendeten Bausteine sind Bestandteil der iba S7-Bibliothek, siehe iba S7-Bibliothek.
Hinweis |
|
|---|---|
|
Verwenden Sie nur Request-Blöcke aus der aktuellen iba S7-Bibliothek! Request-Blöcke aus Anwendungsbeispielen können veraltet sein und daher zu Fehlern führen. |
|
Beschreibung der Formalparameter des ibaDP_Req (FC122)
|
Name |
Art |
Typ |
Beschreibung |
|---|---|---|---|
|
DB_PDA |
IN |
BLOCK_DB |
DB der ibaPDA-Kommunikationsschnittstelle ibaDP_DB_PDA (2064 Byte) |
|
DB_INTERN |
IN |
BLOCK_DB |
DB der internen Datenschnittstelle ibaDP_DB_work (1900 Byte) |
|
OUTPUT_ADR_SLAVE |
IN |
INT |
Anfangsadresse des Peripherie-Ausgangsbereichs, zusammenhängend und 244 Bytes lang |
|
INIT_FC |
IN |
BOOL |
TRUE: Initialisierung durchführen |
|
INP_RANGE |
IN |
INT |
Anzahl der Eingangsbytes (Auswertung nur bei Initialisierung), 0: automatische Erkennung (empfohlen) |
|
OUT_RANGE |
IN |
INT |
Anzahl der Ausgangsbytes (Auswertung nur bei Initialisierung), 0: automatische Erkennung (empfohlen) |
|
MARKER_RANGE |
IN |
INT |
Anzahl der Merkerbytes (Auswertung nur bei Initialisierung), 0: automatische Erkennung (empfohlen) |
|
ERROR_STATUS_INIT |
OUT |
BYTE |
Fehler bei Initialisierung |
|
ERROR_STATUS_COM |
OUT |
BYTE |
Fehler während der Kommunikation |
Folgende SFCs werden intern verwendet:
-
SFC 13 (DPNRM_DG)
-
SFC 15 (DPRD_DAT)
-
SFC 20 (BLKMOV)
-
SFC 21 (FILL)
-
SFC 24 (TEST_DB)
-
SFC 49 (LGC_GADR)
-
SFC 50 (RD_LGADR)
-
SFC 51 (RDSYSST)
Detaillierte Beschreibung
DB_PDA
DB im Bereich von 1 bis n (siehe Leistungsmerkmale der CPU). Dieser DB wickelt den Datenaustausch mit ibaPDA ab. Länge mind. 2064 Bytes.
DB_INTERN
DB im Bereich von 1 bis n (siehe Leistungsmerkmale der CPU). Länge mind. 1900 Bytes.
In diesem DB werden die folgenden Daten gespeichert:
-
Leistungsmerkmale der CPU, die bei der Initialisierung ermittelt werden
-
von ibaPDA angeforderte S7-Zeiger
-
binäre und analoge Sendedaten
OUTPUT_ADR_SLAVE
DP-Anfangsadresse des ibaBM-DP im Peripherie-Ausgangsbereich für das Senden von Daten. Länge 244 Bytes, zusammenhängend (ohne Lücken!).
INIT_FC
Dient zur Initialisierung des Request-Blocks. Die Initialisierung des Request-Blocks wird automatisch intern durchgeführt. Über den Eingang INIT_FC = TRUE kann die Initialisierung durch eine externe Logik manuell zusätzlich durchgeführt werden.
INP_RANGE
Beschränkt die Anzahl der messbaren Eingangsbytes. Bei INP_RANGE = 0 wird die Größe des verfügbaren Prozessabbildes der Eingänge vom Request-FB selbst ermittelt (empfohlen). Die Auswertung erfolgt nur während der Initialisierungsphase des Bausteins.
OUT_RANGE
Beschränkt die Anzahl der messbaren Ausgangsbytes. Bei OUT_RANGE = 0 wird die Größe des verfügbaren Prozessabbildes der Ausgänge vom Request-FB selbst ermittelt (empfohlen). Die Auswertung erfolgt nur während der Initialisierungsphase des Bausteins.
MARKER_RANGE
Beschränkt die Anzahl der messbaren Merkerbytes. Bei MARKER_RANGE = 0 wird die Anzahl der verfügbaren Merker vom Request-FB selbst ermittelt (empfohlen). Die Auswertung erfolgt nur während der Initialisierungsphase des Bausteins.
ERROR_STATUS_INIT
Zeigt Fehlercode der Initialisierungsfehler.
ERROR_STATUS_COM
Zeigt Fehlercode der Fehler während der Kommunikation.
Fehlercodes
|
Dezimalwert ERROR_STATUS_INIT |
Beschreibung |
|---|---|
|
1 |
DB_PDA ist schreibgeschützt. |
|
2 |
DB_PDA-Nr = 0 oder größer als die max. zulässige DB-Nummer dieser CPU |
|
3 |
DB_PDA mit der angegebenen Nummer ist nicht vorhanden. |
|
5 |
DB_PDA ist zu kurz. |
|
11 |
DB_INTERN ist schreibgeschützt. |
|
12 |
DB_INTERN-Nr = 0 oder größer als die max. zulässige DB-Nummer dieser CPU |
|
13 |
DB_INTERN mit der angegebenen Nummer ist nicht vorhanden. |
|
15 |
DB_INTERN ist zu kurz. |
|
16 |
Fehler beim Lesen der Identifikationsdaten der CPU |
|
19 |
Initialisierung nicht abgeschlossen |
|
21 |
nicht genügend Speicherplatz für den Datensatz vorhanden |
|
22 |
SZL_ID ist falsch oder unbekannt in dieser CPU. |
|
23 |
Der Index der SZL ist falsch oder unzulässig. |
|
30 |
OUT_ADR_SLAVE ist kein Peripherie-Ausgangsbereich. |
|
31 |
OUT_ADR_SLAVE ist keinem PROFIBUS DP zugeordnet. |
|
Dezimalwert ERROR_STATUS_COM |
Beschreibung |
|---|---|
|
100 |
Bitnummer ungleich 0 |
|
101 |
Bitnummer ungleich 0–7 |
|
103 |
Der Operandenbereich ist nicht definiert. |
|
104 |
Der Datentyp ist nicht definiert. |
|
105 |
DB0 wurde als Datenquelle angefordert. |
|
106 |
DB-Nummer ist höher als die max. zulässige Anzahl DBs dieser CPU. |
|
107 |
DB mit der angegebenen Nummer ist nicht vorhanden. |
|
109 |
DB ist zu kurz für die gewählte Datenadresse. |
|
110 |
Angegebene Datenadresse existiert nicht. |
|
111 |
Initialisierung mit Fehler abgebrochen (Fehlerursache ist im ERROR_STATUS_INIT zu sehen) |
|
112 |
Initialisierung nicht durchgeführt (Fehlerursache ist im ERROR_STATUS_INIT zu sehen) |
|
150 |
Auftragsfragmentierung wird nicht unterstützt. |
|
151 |
Auftrag Request: Anzahl Werte gesamt ungleich Werte im Auftrag |
|
152 |
Auftrag Request: Maximal 64 Binärwerte zulässig |
|
153 |
Auftrag Request: Maximal 64 Analogwerte zulässig |
|
200 |
DP Station ist nicht vorhanden. |