MC_AxUtiReadCoeEncTerm_BkPlcMc (ab V3.0)
Der Funktionsbaustein liest den Inhalt eines Registers aus der EL-Klemme, die als Encoder-Schnittstelle für die Achse dient.
Eingänge
VAR_INPUT
Execute: BOOL;
Pdata: POINTER TO BYTE:=0;
ByteCount: BYTE:=0;
Index: WORD:=0;
Subindex: BYTE:=0;
END_VAR
Name | Typ | Beschreibung |
---|---|---|
Execute | BOOL | Eine steigende Flanke an diesem Eingang startet den Lesevorgang. |
Pdata | POINTER | Hier ist die Adresse der Variablen anzugeben, in die der gelesene Wert ausgegeben werden soll. |
ByteCount | BYTE | Hier ist die Größe der Variablen in Bytes anzugeben. |
Index | WORD | Hier ist die Adressierung des Parameters in der Klemme anzugeben. |
Subindex | BYTE |
Ein-/Ausgänge
VAR_INOUT
Axis: Axis_Ref_BkPlcMc;
END_VAR
Name | Typ | Beschreibung |
---|---|---|
Axis | Axis_Ref_BkPlcMc | Hier ist die Adresse einer Variablen vom Typ Axis_Ref_BkPlcMc zu übergeben. |
Ausgänge
VAR_OUTPUT
Busy: BOOL;
Done: BOOL;
CommandAborted: BOOL;
Error: BOOL;
ErrorID: UDINT;
END_VAR
Name | Typ | Beschreibung |
---|---|---|
Busy | BOOL | Hier wird signalisiert, dass ein Kommando abgearbeitet wird. |
Done | BOOL | Hier wird das erfolgreiche Laden des Parameters signalisiert. |
CommandAborted | BOOL | Hier wird ein Abbruch des Lesevorgangs signalisiert. |
Error | BOOL | Hier wird das Auftreten eines Fehlers signalisiert. |
ErrorID | UDINT | Hier wird eine codierte Fehlerursache bereitgestellt. |
Verhalten des Bausteins
Auf eine steigende Flanke an Execute hin untersucht der Baustein das übergebene Achsinterface. Dabei können eine Reihe von Problemen erkannt und gemeldet werden:
- Wenn die Achse für den Betrieb freigegeben ist wird mit Error und ErrorID:=dwTcHydErrCdNotReady reagiert.
- Wenn Index oder Subindex außerhalb des zulässigen Bereichs liegen wird mit Error und ErrorID:=dwTcHydErrCdTblIllegalIndex reagiert.
- Wenn ByteCount oder Pdata außerhalb des zulässigen Bereichs liegen wird mit Error und ErrorID:=dwTcHydErrCdTblIllegalIndex reagiert.
- Wenn in den Achsparametern als nEncoder_Type eine E/A-Baugruppe eingestellt ist, die keine Parameterkommunikation unterstützt wird mit Error und ErrorID:=dwTcHydErrCdNotCompatible reagiert.
- Wenn es bei der ADS-Kommunikation mit der Klemme zu Problemen kommt wird der entsprechende ADS Error Code als ErrorID zurückgegeben und dies mit Error kenntlich gemacht. Dabei können unter anderen folgende Codes auftreten:
- 16#0006 = 6 = Die Portnummer der verwendeten ADS-Adresse ist ungültig: Mapping des InfoData Elements der Klemme überprüfen!
- 16#0007 = 7 = Die AmsNetID der verwendeten ADS-Adresse ist ungültig: Mapping des InfoData Elements der Klemme überprüfen!
- 16#0702 = 1794 = dwTcHydAdsErrInvalidIdxGroup = Die Klemme unterstützt nicht das CoE Protokoll.
- 16#0703 = 1795 = dwTcHydAdsErrInvalidIdxOffset = Die Adresse in Index und Subindex ist in der Klemme nicht unterstützt.
- 16#0745 = 1861 = dwTcHydAdsErrTimeout = Zeitüberschreitung.
Eine fallende Flanke an Execute löscht alle anstehenden Ausgangssignale. Wird Execute bereits bei noch aktivem Ladevorgang auf FALSE gesetzt wird der eingeleitete Vorgang unbeeinflusst weiter bearbeitet. Die Signale am Ende der Operation (Done, CommandAborted, Error, ErrorID) werden für einen Zyklus gegeben.