FB_RegisterComKL25xx
Der Funktionsblock FB_RegisterComKL25xx wird zur Registerkommunikation zwischen SPS und den Busklemmen KL2502, KL2521, KL2531, KL2541 und KL5001 verwendet.
Bevor der Funktionsblock vom oder in das Register schreibt bzw. liest, wird die AxisID, EncoderID und DriveID gelesen, mit der die Klemmenvariablen gemappt sind. Darüber hinaus unterbricht der Funktionsblock die Verbindung zwischen Antrieb o/p und Klemme, so dass der NC task Zugriff verhindert wird. Von jetzt an besteht keine Kommunikation mehr zwischen dem Ausgang des Antriebs und der Klemme, solange dieser Funktionsblock ausgeführt wird. Dem schließt sich das Register Lesen oder Schreiben an. Der NC Task Zugriff ist wiederhergestellt, sobald die Registerkommunikation stattfindet ( Antriebsausgang ist aktiviert).
Voraussetzungen:
Es ist notwendig, die Prozessdaten der Klemmenvariablen mit dem Encoder und den Antriebsvariablen der entsprechenden Achse zu mappen, indem der dazugehörige Encoder und Antriebstyp ausgewählt wird. Basierend auf das Mapping zwischen IO Klemmen und NC Variablen können die Klemmen in zwei Gruppen aufgeteilt werden: Einmal in die Gruppe mit den Klemmen KL2531 und KL2541 und zum anderen mit KL2502 und KL2521.
Das erforderliche Mapping zwischen Busklemme und NC Variablen:

Hinweis :
Wurde durch eine positive Flanke am Eingang Read (Lesen) und am Eingang Write (Schreiben) ein Registerkommunikationszyklus ausgelöst, schreibt der Funktionsbaustein zunächst den vorgegebenen RegisterValue (Registerwert) in die spezifizierte RegisterNumber (Registernummer) und liest den Registerwert aus dieser RegisterNumber wieder aus. Dies wird nicht als Fehler angesehen.
Auslesen und Schreiben des Registers erfolgt vom bzw. in dem EEPROM. Beim Schreiben in ein Register gibt es eine Ausnahme: Es ist mit diesem Funktionsbaustein nicht möglich ins Herstellerregister zu schreiben. Dies würde zu einer Fehlernummer 0x4B41 führen.
VAR_INPUT
VAR_INPUT
Read : BOOL; (* Indication to read a register *)
Write : BOOL; (* Indication to write into a register *)
RegisterNumber : USINT; (* Register number to be communicated with *)
RegisterValue : UINT; (* Register Value to be written, provided Write = TRUE *)
END_VAR
Read : Der Befehl Lesen wird bei einer positiven Flanke an diesem Eingang ausgeführt.
Write : Der Befehl Schreiben wird bei einer positiven Flanke an diesem Eingang ausgeführt.
RegisterNumber : In dieser Variablen wird die zu schreibende/lesende Registernummer spezifiziert.
RegisterValue : Wenn Eingang Write =TRUE, spezifiziert diese Variable den zu schreibenden Registerwert. Wenn Eingang Read = TRUE, wird der Wert in dieser Variablen nicht berücksichtigt.
VAR_OUTPUT
VAR_OUTPUT
Done : BOOL; (* move completed *)
Busy : BOOL; (* function block is currently busy *)
Error : BOOL; (* Signals that an error has occurred within Function Block *)
ErrorID : UDINT; (* Error identification *)
TerminalType : UINT; (* Terminal type/number involved in register communication *)
CurrentRegisterNumber : USINT; (* Register Number that was under process *)
CurrentRegisterValue : UINT; (* Register Value of the register under process *)
END_VAR
Done : Wird TRUE, wenn eine Registerkommunikation erfolgreich ausgeführt worden ist. Die geschriebene/ausgelesene Registernummer wird in CurrentRegisterNumber (aktuelle Registernummer) spezifiziert, der entsprechende Wert in CurrentRegisterValue (aktueller Registerwert).
Busy: Wird TRUE, sobald der Funktionsbaustein aktiv ist und FALSE, wenn er in den ursprünglichen Zustand zurückgekehrt.
Error : Wird TRUE, sobald ein Fehler auftritt.
ErrorID : Wenn der Fehlerausgang gesetzt ist, liefert dieser Parameter die Fehlernummer.
TerminalType : Wenn Done=TRUE enthält dieser Ausgang den entsprechenden Klemmentyp/die Klemmennummer, die in die Registerkommunikation involviert ist.
CurrentRegisterNumber : Wenn Done =TRUE gibt dieser Ausgang die Registernummer an, die bearbeitet wurde.
CurrentRegisterValue : Wenn Done =TRUE gibt dieser Ausgang den Registerwert des Registers an, das gerade bearbeitet wird.
VAR_IN_OUT
VAR_IN_OUT
AxisRefIn : NCTOPLC_AXLESTRUCT;
AxisRefOut : PLCTONC_AXLESTRUCT;
END_VAR
AxisRefIn : Achsstruktur aus der NC.
AxisRefOut : Achsstruktur aus der SPS.
Voraussetzungen
Entwicklungsumgebung | Zielsystem | Einzubindende SPS-Bibliotheken |
---|---|---|
ab TwinCAT v2.10 Build 1314 | PC (i386) | TcNc.Lib |