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.

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.