Typ | Funktionsbaustein |
Beschreibung | Sendet Firmware-Dienste an einen Axioline-Master.Das Senden der in SD_1 enthaltenen Firmware-Dienstanforderung wird in dem Zyklus gestartet, in dem die steigende Flanke am Eingang REQ erkannt wird. Die Dauer des Lesevorgangs ist abhängig von der aktuellen Systemauslastung. Nach Eingang der Antwort (Response) auf die Dienstanforderung 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 Sendevorgang vorzubereiten. Im folgenden Zyklus kann mit einer steigenden Flanke am Eingang REQ der nächste Sendevorgang ausgeführt werden.Wenn RD_1 oder SD_1 mit einem ungültigen Variablentyp oder einem Array mit ungültiger Länge verbunden sind, wird der Ausgang ERROR auf TRUE gesetzt und 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 |
- Das Senden der Firmware-Dienste PDI_READ_OBJECT und PDI_WRITE_OBJECT erfolgt mit den Funktionsbausteinen PDI_READ und PDI_WRITE.
- Eine negative Confirmation (Bestätigung) als Antwort (Response) auf eine gesendete Dienstanforderung (Request) erzeugt grundsätzlich keinen Fehler am Ausgang ERROR. Jede Confirmation, positiv oder negativ, wird ohne Auswertung des Inhalts in das Array RD_1 kopiert und der Ausgang NDR wird entsprechend auf TRUE gesetzt. Die Auswertung der Response ist vom Anwender durchzuführen. Der Ausgang ERROR signalisiert ausschließlich allgemeine, interne Fehler des Funktionsbausteins.
- 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.
|
Parameter | Eingang
REQ
Datentyp: | BOOL |
Beschreibung: | Mit einer steigenden Flanke an Eingang REQ wird der Sendevorgang des Firmware-Dienstes gestartet. Das Vorbereiten eines erneuten Sendevorgangs erfolgt mit einer fallenden Flanke an diesem Eingang. |
Ein-/Ausgang
SD_1
Datentyp: | ARRAY OF BYTE / ARRAY OF WORD |
Beschreibung: | SD_1 ist der Sendepuffer des Bausteins. In den Sendepuffer muss der zu sendende Firmware-Dienst gemäß DDI-Spezifikation (DDI = Device Driver Interface) inkl. Dienst-Code, usw. kopiert werden. |
RD_1
Datentyp: | ARRAY OF BYTE / ARRAY OF WORD |
Beschreibung: | RD_1 ist der Empfangspuffer des Bausteins. In den Empfangspuffer wird die komplette Confirmation (Bestätigung) nach Absetzen eines Firmware-Dienstes gemäß DDI-Spezifikation kopiert. 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. |
Ausgänge
NDR
Datentyp: | BOOL |
Beschreibung: | Eine steigende Flanke am Ausgang NDR (New Data Received) zeigt an, dass ein Sendevorgang 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 Sendevorgangs 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.Negative Confirmations (Bestätigungen) durch abgesetzte Firmware-Dienste werden hier nicht angezeigt. |
STATUS
Datentyp: | WORD |
Beschreibung: | Nach Auftreten eines Fehlers wird hier der entsprechende Fehlercode ausgegeben (siehe unten stehende Fehlercodes). Nur gültig, wenn ERROR = TRUE. |
|
Fehlercodes | Fehlercodes am Ausgang STATUS
Nur gültig, wenn ERROR = TRUE.
Fehlercode (hex) | Bedeutung |
0x0905 | Parameterfehler. Es wurde z.B. versucht, einen nicht erlaubten Dienst mit dem Baustein zu senden (PDI_READ oder PDI_WRITE) oder die Längenangabe der in SD_1 gespeicherten Anforderung (Request) enthält einen nicht erlaubten (zu großen) Wert. |
0x090A | Die mit SD_1 verknüpfte Variable ist ungültig (kein Array oder falscher Array-Typ). |
0x090B | Das mit RD_1 verknüpfte Array ist nicht groß genug, um die empfangene Antwort (Response) speichern zu können. |
0x090C | Die mit RD_1 verknüpfte Variable ist ungültig (kein Array oder falscher Array-Typ). |
0x090E | Timeout. Es wurde keine Antwort (Response) auf die gesendete Dienstanforderung empfangen. |
0x090F | Es ist ein interner Fehler aufgetreten. |
|