Beschreibung
Ein I-Device kann vom übergeordneten Controller eine Anforderung erhalten, einen Datensatz bereitzustellen. Die Bereitstellung erfolgt im Anwenderprogramm mit der Anweisung "PRVREC" (provide record).
Die Anweisung hat folgende Betriebsarten:
-
Überprüfung, ob dem I-Device eine Anforderung für eine Datensatzbereitstellung vorliegt.
-
Übertragung des angeforderten Datensatz an den übergeordneten Controller.
-
Schicken einer Antwort an den übergeordneten Controller.
Welche dieser Betriebsarten die Anweisung ausführt, legen Sie über den Eingangsparameter MODE fest (siehe unten).
Das I-Device muss sich im Betriebszustand RUN oder im Betriebszustand ANLAUF befinden.
Mit LEN geben Sie vor, wie viele Bytes der zu versendende Datensatz maximal haben soll. Den Zielbereich RECORD sollten Sie daher mindestens LEN Bytes lang wählen.
Wenn eine Anforderung für eine Datensatzbereitstellung vorliegt (MODE=0), wird der Ausgangsparameter NEW auf TRUE gesetzt.
Wenn die Anforderung für eine Datensatzbereitstellung akzeptiert wird, beschreiben Sie für die positive Antwort an den übergeordneten Controller RECORD mit dem angeforderten Datensatz und CODE1 und CODE2 mit Null. Wenn die Anforderung für eine Datensatzbereitstellung abgelehnt werden soll, geben Sie in CODE1 den Error Code 1 und in CODE2 den Error Code 2 der negativen Antwort an den übergeordneten Controller an.
|
Hinweis Wenn das I-Device eine Anforderung für eine Datensatzbereitstellung erhalten hat, müssen Sie die Zustellung dieser Anforderung innerhalb einer bestimmten Zeitdauer erkannt haben. Nach dem Erkennen müssen Sie dem übergeordneten Controller innerhalb derselben Zeitdauer eine Antwort geschickt haben. Andernfalls tritt beim I-Device ein Timeout-Fehler auf, der zur Folge hat, dass das Betriebssystem des I-Device eine negative Antwort an den übergeordneten Controller schickt. Den Wert für die Zeitdauer entnehmen Sie den Technischen Daten Ihrer CPU. |
Nach Auftreten eines Fehlers enthält der Ausgangsparameter STATUS die Fehlerinformation.
Betriebsarten
Die Betriebsart der Anweisung "PRVREC" legen Sie über den Eingangsparameter MODE fest. Dieser wird in der folgenden Tabelle erläutert.
|
MODE |
Bedeutung |
|---|---|
|
0 |
Überprüfen, ob eine Anforderung für eine Datensatzbereitstellung vorliegt Falls auf dem I-Device eine Anforderung vom übergeordneten Controller für eine Datensatzbereitstellung vorliegt, beschreibt die Anweisung nur die Ausgangsparameter NEW, SLOT, INDEX und RLEN. Wenn Sie die Anweisung mehrmals hintereinander mit MODE=0 aufrufen, beziehen sich die Ausgangsparameter stets auf ein und dieselbe Anforderung. |
|
1 |
Empfangen einer Anforderung für eine Datensatzbereitstellung für irgendeinen Subslot des I-Device Falls auf dem I-Device eine solche Anforderung vom übergeordneten Controller für irgendeinen Subslot des I-Device vorliegt, beschreibt die Anweisung die Ausgangsparameter. |
|
2 |
Empfangen einer Anforderung für eine Datensatzbereitstellung für einen bestimmten Subslot des I-Device Falls auf dem I-Device eine solche Anforderung vom übergeordneten Controller für einen bestimmten Subslot des I-Device vorliegt, beschreibt die Anweisung die Ausgangsparameter. |
|
3 |
Datensatz bereitstellen und positive Antwort an den übergeordneten Controller schicken Die Anweisung überprüft die Anforderung des übergeordneten Controllers, einen Datensatz bereitzustellen, stellt den angeforderten Datensatz in RECORD zur Verfügung und schickt eine positive Quittung an den übergeordneten Controller. |
|
4 |
Negative Antwort an den übergeordneten Controller schicken Die Anweisung überprüft die Anforderung des übergeordneten Controllers, einen Datensatz bereitzustellen, lehnt diese Anforderung ab und schickt eine negative Quittung an den übergeordneten Controller. Den Grund für die Ablehnung geben Sie in den Eingangsparametern CODE1 und CODE2 an. |
|
Hinweis Nach dem Eintreffen einer Anforderung (NEW=1) müssen Sie die Anweisung noch zweimal aufrufen, um seine vollständige Abarbeitung zu gewährleisten. Dabei müssen Sie die folgende Reihenfolge einhalten:
|
Parameter
Die folgende Tabelle zeigt die Parameter der Anweisung "PRVREC":
|
Parameter |
Deklaration |
Datentyp |
Speicherbereich |
Beschreibung |
|---|---|---|---|---|
|
MODE |
Input |
INT |
E, A, M, D, L oder Konstante |
Betriebsart |
|
F_ID |
Input |
DWORD |
E, A, M, D, L oder Konstante |
Subslot im Transferbereich des I-Device für den zu versendenden Datensatz (nur relevant für MODE=2). Das high word ist stets auf Null zu setzen. |
|
CODE1 |
Input |
BYTE |
E, A, M, D, L oder Konstante |
Null (bei MODE=3) bzw. Error Code 1 (bei MODE=4) |
|
CODE2 |
Input |
BYTE |
E, A, M, D, L oder Konstante |
Null (bei MODE=3) bzw. Error Code 2 (bei MODE=4) |
|
LEN |
Input |
INT |
E, A, M, D, L oder Konstante |
Maximale Länge des zu versendenden Datensatzes in Bytes |
|
NEW |
Output |
BOOL |
E, A, M, D, L |
Neuer Datensatz wurde vom übergeordneten Controller angefordert. |
|
STATUS |
Output |
DWORD |
E, A, M, D, L |
Fehlerinformation |
|
SLOT |
Output |
INT |
E, A, M, D, L |
identisch zu F_ID |
|
SUBSLOT |
Output |
INT |
E, A, M, D, L |
identisch zu F_ID |
|
INDEX |
Output |
INT |
E, A, M, D, L |
Nummer des zu versendenden Datensatzes |
|
RLEN |
Output |
INT |
E, A, M, D, L |
Länge des zu versendenden Datensatzes |
|
RECORD |
InOut |
ANY |
E, A, M, D, L |
Bereitgestellter Datensatz Hinweis: Beachten Sie, dass der Parameter RECORD bei S7-300-CPUs immer die vollständige Angabe der DB-Parameter erfordert (Bsp.: P#DB13.DBX0.0 Byte 100). Das Weglassen einer expliziten DB-Nr. ist für S7-300-CPUs unzulässig und führt zu einer Fehlermeldung im Anwenderprogramm. |
Weitere Informationen zu den gültigen Datentypen finden Sie unter "Übersicht über die gültigen Datentypen".
Parameter STATUS
Zur Interpretation des Parameters STATUS siehe Abschnitt: Parameter STATUS