Typ | Funktionsbaustein |
Beschreibung | Mit dem Funktionsbaustein können die PDI-Objekte der lokalen Axioline-Module geschrieben werden.Der Schreibvorgang startet in dem Zyklus, in dem die steigende Flanke am Eingang REQ erkannt wird. Die Dauer des Schreibvorgangs ist u.a. abhängig vom Busaufbau, dem Typ des geschriebenen Objekts usw. Nach Abschluss des Schreibvorgangs wird der Ausgang DONE auf TRUE gesetzt.
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 der Ausgang ERROR oder DONE wieder auf FALSE gesetzt. Der Eingang REQ kann jetzt durch den Anwender wieder auf FALSE gesetzt werden, um den nächsten Schreibvorgang vorzubereiten. Im folgenden Zyklus kann mit einer steigenden Flanke am Eingang REQ der nächste Schreibvorgang ausgeführt werden.Wenn SD_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-Schreibvorgang gestartet. Das Vorbereiten eines erneuten Schreibvorgangs erfolgt mit einer fallenden Flanke an diesem Eingang. |
SLOT
Datentyp: | WORD |
Beschreibung: | Gibt den Steckplatz (Slot) des Axioline-Moduls an, dessen PDI-Objekt beschrieben werden soll. |
SUBSLOT
Datentyp: | BYTE |
Beschreibung: | Gibt den Subslot des Axioline-Moduls an, dessen PDI-Objekt beschrieben werden soll. |
INDEX
Datentyp: | WORD |
Beschreibung: | Gibt den Index des zu beschreibenden PDI-Objekts an. |
SUBINDEX
Datentyp: | BYTE |
Beschreibung: | Gibt den Subindex des zu beschreibenden PDI-Objekts an. |
DAT_CNT
Datentyp: | BYTE |
Beschreibung: | Gibt die Anzahl der zu sendenden Bytes aus dem Sendebuffer SD_1 an. |
Ein-/Ausgang
SD_1
Datentyp: | ARRAY OF BYTE / ARRAY OF WORD |
Beschreibung: | SD_1 ist der Sendepuffer des Bausteins. Dieses Array enthält die Daten, die in das adressierte PDI-Objekt geschrieben werden sollen. |
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-Schreibanforderung (Error_Code und Add_Info) verwendet oder, bei internen Fehlern, ein vom FB selbst generierter Code. Nur gültig, wenn ERROR = TRUE. |
Ausgänge
DONE
Datentyp: | BOOL |
Beschreibung: | Eine steigende Flanke am Ausgang DONE zeigt an, dass ein PDI-Schreibvorgang erfolgreich abgeschlossen wurde. |
ERROR
Datentyp: | BOOL |
Beschreibung: | Tritt während des PDI-Schreibvorgangs 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 | 0x000A | Die mit SD_1 verknüpfte Variable ist nicht vom richtigen Typ (kein Array oder Array vom falschen Typ). |
0x090B | 0x0009 | Ungültiger Wert am Eingang DATA_CNT. Der Wert ist entweder größer als das mit SD_1 verknüpfte Array, größer als die maximal zulässige Länge (245 Byte) oder gleich Null. |
0x090B | 0x000E | Timeout. Es wurde keine Antwort auf die gesendete PDI-Schreibanforderung (PDI_WRITE 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-Schreibanforderung (PDI WRITE 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.
|