MC_AxUtiUpdateRegDriveTerm_BkPlcMc (ab V3.0.7)
Der Funktionsbaustein schreibt einen Parametersatz in die Register einer KL-Klemme. Dazu benutzt er MC_AxUtiReadRegDriveTerm_BkPlcMc und MC_AxUtiWriteRegDriveTerm_BkPlcMc Bausteine.
Eingänge
VAR_INPUT
Execute: BOOL;
END_VAR
Name | Typ | Beschreibung |
---|---|---|
Execute | BOOL | Eine steigende Flanke an diesem Eingang startet den Schreibvorgang. |
Ein-/Ausgänge
VAR_INOUT
Axis: Axis_Ref_BkPlcMc;
RegData: ST_TcPlcRegDataTable;
END_VAR
Name | Typ | Beschreibung |
---|---|---|
Axis | Axis_Ref_BkPlcMc | Hier ist die Adresse einer Variablen vom Typ Axis_Ref_BkPlcMc zu übergeben. |
RegData | ST_TcPlcRegDataTable | Hier ist die Adresse des Parametersatzes anzugeben, deren Inhalt in die Klemme geschrieben werden soll. |
Ausgänge
VAR_OUTPUT
Done: BOOL;
Busy: BOOL;
CommandAborted: BOOL;
Error: BOOL;
ErrorID: UDINT;
END_VAR
Name | Typ | Beschreibung |
---|---|---|
Done | BOOL | Hier wird das erfolgreiche Schreiben des Parameters signalisiert. |
Busy | BOOL | Hier wird signalisiert, dass ein Kommando abgearbeitet wird. |
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 einer der Pointer ST_TcPlcDeviceInput und ST_TcPlcDeviceOutput nicht initialisiert ist wird mit Error und ErrorID:=dwTcHydErrCdPtrPlcMc reagiert.
- Wenn die Achse für den Betrieb freigegeben ist wird mit Error und ErrorID:=dwTcHydErrCdNotReady reagiert.
- Wenn Select außerhalb des zulässigen Bereichs von 0 bis 63 liegt wird mit Error und ErrorID:=dwTcHydErrCdTblIllegalIndex reagiert.
- Wenn in den Achsparametern als nDrive_Type eine E/A-Baugruppe eingestellt ist, die keine Parameterkommunikation unterstützt wird mit Error und ErrorID:=dwTcHydErrCdNotCompatible reagiert.
- Der Wert in ST_TcPlcRegDataTable.RegDataItem[...].Access legt fest, wie das Element behandelt wird.
- 0: Element wird ignoriert.
- 1: Das durch Select adressierte Register wird gelesen. Sein Inhalt wird mit RegData verglichen. Bei einem ungleichen Inhalt wird der Schreibvorgang mit Error und ErrorID:=16#FFFFFFFF abgebrochen.
- 2: Das durch Select adressierte Register wird gelesen. Sein Inhalt wird mit RegData verglichen. Bei einem Inhalt der nicht größer ist wird der Schreibvorgang mit Error und ErrorID:=16#FFFFFFFF abgebrochen.
- 3: Das durch Select adressierte Register wird gelesen. Sein Inhalt wird mit RegData verglichen. Bei einem Inhalt der nicht kleiner ist wird der Schreibvorgang mit Error und ErrorID:=16#FFFFFFFF abgebrochen.
- 4: Das durch Select adressierte Register wird gelesen. Sein Inhalt wird mit RegData verglichen. Bei einem Inhalt der nicht größer oder gleich ist wird der Schreibvorgang mit Error und ErrorID:=16#FFFFFFFF abgebrochen.
- 5: Das durch Select adressierte Register wird gelesen. Sein Inhalt wird mit RegData verglichen. Bei einem Inhalt der nicht kleiner oder gleich ist wird der Schreibvorgang mit Error und ErrorID:=16#FFFFFFFF abgebrochen.
- 10: Das durch Select adressierte Register wird mit RegData geschrieben.
- Andere Werte werden derzeit ignoriert. Zukünftige Versionen der Bibliothek werden jedoch möglicherweise weitere Funktionen unterstützen. Ein leeres Element sollte daher immer mit 0 gekennzeichnet werden.
Eine fallende Flanke an Execute löscht alle anstehenden Ausgangssignale. Wird Execute bereits bei noch aktivem Schreibvorgang auf FALSE gesetzt wird der eingeleitete Vorgang unbeeinflusst weiter bearbeitet. Die Signale am Ende der Operation (Done, CommandAborted, Error, ErrorID, Done) werden für einen Zyklus gegeben.