Typ | Funktionsbaustein |
Beschreibung | Mit dem Funktionsbaustein können die PDI-Objekte der lokalen Axioline-Module gelesen werden.Der Lesevorgang startet in dem Zyklus, in dem die steigende Flanke am Eingang REQ erkannt wird. Die Dauer des Lesevorgangs ist u.a. abhängig vom Busaufbau, dem Typ des gelesenen Objekts usw. Nach erfolgreichem Abschluss des Lesevorgangs wird der Ausgang NDR auf TRUE gesetzt. Die in RD_1 gespeicherten Empfangsdaten sind nur während des Zyklus gültig und lesbar, in dem der Ausgang NDR = TRUE ist.
Im Fehlerfall wird der Ausgang ERROR = TRUE. Der zugehörige Fehlercode kann am Ausgang STATUS ausgelesen werden. Die im Array STATUS gespeicherten Fehlerinformationen sind nur während des Zyklus gültig und lesbar, in dem der Ausgang ERROR = TRUE ist. Im darauf folgenden Zyklus wird ERROR wieder auf FALSE gesetzt. Der Eingang REQ kann jetzt durch den Anwender wieder auf FALSE gesetzt werden, um den nächsten Lesevorgang vorzubereiten. Im folgenden Zyklus kann mit einer steigenden Flanke am Eingang REQ der nächste Lesevorgang ausgeführt werden.Wenn RD_1 oder STATUS mit einem ungültigen Variablentyp oder einem Array mit ungültiger Länge verbunden sind, wird der Ausgang ERROR auf TRUE gesetzt und, falls möglich, der entsprechende Fehlercode am Ausgang STATUS ausgegeben. In diesem Fall bleibt der Ausgang ERROR solange TRUE, bis der Fehler behoben wurde. Während ERROR = TRUE ist, kann der zugehörige Fehlercode am Ausgang STATUS ausgelesen werden. |
Hinweise | Funktionsbausteine müssen instanziiert werden. Der FB-Instanzname muss in der 'Variablen'-Tabelle der POE deklariert werden, in welcher der FB verwendet werden soll. Der Instanzname muss innerhalb der POE eindeutig sein.
Tipp: Phoenix Contact bietet kostenfreie Bibliotheken mit Funktionsbausteinen an, die das Handling bestimmter Axioline-Module vereinfachen. Sie können diese Bibliotheken von der Webseite der jeweiligen Steuerung (Register 'Downloads') unter www.phoenixcontact.com herunterladen. |
Parameter | Eingänge
REQ
Datentyp: | BOOL |
Beschreibung: | Mit einer steigenden Flanke an Eingang REQ wird der PDI-Lesevorgang gestartet. Das Vorbereiten eines erneuten Lesevorgangs erfolgt mit einer fallenden Flanke an diesem Eingang. |
SLOT
Datentyp: | WORD |
Beschreibung: | Gibt den Steckplatz (Slot) des Axioline-Moduls an, dessen PDI-Objekt gelesen werden soll. |
SUBSLOT
Datentyp: | BYTE |
Beschreibung: | Gibt den Subslot des Axioline-Moduls an, dessen PDI-Objekt gelesen werden soll. |
INDEX
Datentyp: | WORD |
Beschreibung: | Gibt den Index des zu lesenden PDI-Objekts an. |
SUBINDEX
Datentyp: | BYTE |
Beschreibung: | Gibt den Subindex des zu lesenden PDI-Objekts an. |
Ein-/Ausgang
RD_1
Datentyp: | ARRAY OF BYTE / ARRAY OF WORD |
Beschreibung: | RD_1 ist der Empfangspuffer des Bausteins. Das Array muss ausreichend dimensioniert werden, um die angeforderten Daten speichern zu können. Ist das Array zu klein, wird ein entsprechender Fehler am Ausgang ERROR ausgegeben. |
STATUS
Datentyp: | ARRAY OF WORD[2] |
Beschreibung: | Nach Auftreten eines Fehlers wird hier der entsprechende Fehlercode ausgegeben (siehe unten stehende Fehlercodes). Es wird der Error_Code der negativen Confirmation (Bestätigung) der PDI-Leseanforderung (Error_Code und Add_Info) verwendet oder, bei internen Fehlern, ein vom FB selbst generierter Code. Nur gültig, wenn ERROR = TRUE. |
Ausgänge
DAT_CNT
Datentyp: | BYTE |
Beschreibung: | Zeigt die Anzahl der empfangenen Bytes im Empfangsbuffer RD_1 an. |
NDR
Datentyp: | BOOL |
Beschreibung: | Eine steigende Flanke am Ausgang NDR (New Data Received) zeigt an, dass ein PDI-Lesevorgang erfolgreich abgeschlossen wurde und die empfangenen Daten im Array RD_1 ausgelesen werden können. Der Ausgang bleibt nur für einen Zyklus TRUE. Die im Array RD_1 gespeicherten Daten sind nur in diesem Zyklus gültig. |
ERROR
Datentyp: | BOOL |
Beschreibung: | Tritt während des PDI-Lesevorgangs ein Fehler auf, wird der Ausgang ERROR auf TRUE gesetzt. Der zugehörige Fehlercode kann am Ausgang STATUS ausgelesen werden. Der Ausgang ERROR bleibt für nur einen Zyklus TRUE. Die im Array STATUS gespeicherten Daten sind nur in diesem Zyklus gültig. |
|
Fehlercodes | Fehlercodes am Ausgang STATUS
Nur gültig, wenn ERROR = TRUE.
Die folgende Tabelle zeigt die möglichen vom Funktionsbaustein selbst hervorgerufenen Fehlercodes und deren Bedeutung:
STATUS[0] | STATUS[1] | Bedeutung |
0x090B | 0x000C | Die mit RD_1 verknüpfte Variable ist nicht vom richtigen Typ (kein Array oder Array vom falschen Typ). |
0x090B | 0x000B | Das mit RD_1 verknüpfte Array ist nicht groß genug, um die empfangene Response aufzunehmen. |
0x090B | 0x000E | Timeout. Es wurde keine Antwort auf die gesendete PDI-Leseanforderung (PDI READ Request) empfangen. |
0x090B | 0x000F | Es ist ein interner Fehler aufgetreten. |
0x090B | 0x0011 | Verbindung mit dem Servicemanager oder das Abonnieren des Dienstes ist fehlgeschlagen |
0x090B | 0x0013 | Zu viele Instanzen von Bausteinen für azyklische Axio-Dienste angelegt. (Summe aus PDI_WRITE- und PDI_READ-FBs darf nicht größer als 32 sein.) |
0x090B | 0x0014 | Verbindung zum Treiber kann nicht hergestellt werden. |
0x090B | 0x0015 | Senden der Anfrage an den Treiber fehlgeschlagen. |
0x090B | 0x0016 | Empfangen der Antwort vom Treiber fehlgeschlagen. |
Beim Empfang einer negativen Confirmation (Bestätigung) als Antwort auf eine PDI-Leseanforderung (PDI READ Request) wird der empfangene Fehlercode vom Axioline-Modul (Error_Code und Add_Info) direkt in STATUS[0] bzw. STATUS[1] kopiert. Diese Fehlercodes sind modulspezifisch. Eine Beschreibung finden Sie in der Dokumentation zum entsprechenden Modul.
|