Satzvorlauf verwenden
Ein Satzvorlauf ermöglicht die Fortsetzung der Interpolation nach einer Unterbrechung. Dabei wird zuerst die Stoppposition angefahren und ab dieser Position die Bahn unverändert verfahren. Dazu müssen das Programm, das die Interpolation durchführt, und das Programm, das die Bahnvorverarbeitung durchführt, erweitert werden.
Ein abgebrochener Fräskopf führt zu einem Stopp der Fahrt. Nach einer Reparatur kann mit Satzvorlauf die Bahn weiterverfahren werden.
Erweitern der Applikation um
Funktionsbausteininstanz in der Interpolationstask, die die Vorlaufposition speichert
Funktionsbausteininstanz in der Bahntask, die ein Bahnelement verkürzt
Für weitere Informationen siehe: SMC_BlockSearchSavePos, SMC_BlockSearchPos und SMC_BlockSearch
Vorlaufposition vornehmen
Sie können den Funktionsbaustein SMC_BlockSearchSavePos
verwenden, um auf Kommando die aktuelle Position zu speichern. Dabei muss die Instanz des Funktionsbausteins in der Task des Interpolators laufen. Das Interplator-Programm im Beispiel trägt den Namen CNC.
Deklarieren Sie in dem Programm, das die Interpolation durchführt, eine Instanz des Funktionsbausteins
SMC_BlockSearchSavePos
.bssp: SMC_BlockSearchSavePos;
Verbinden Sie den Eingang
ipo
der Instanz vonSMC_BlockSearchSavePos
mit der Instanz des Interpolators.Verbinden Sie den Eingang
bExecute
mit einer Steuervariablen, die in der Applikation dann gesetzt wird, wenn das CNC-Programm abgebrochen wird (zum Beispiel wenn der EingangbAbort
der SMC_Interpolator-Instanz gesetzt wurde. Die damit an AusgangePos
gespeicherte Position wird im Folgenden mittelsSMC_BlockSearc
für den Satzvorlauf verwendet. Nach einer Unterbrechung mussbExecute
mit steigender Flanke zurückgesetzt werden.
Teil des Programms, das die Interpolation durchführt mit der Instanz des Funktionsbaustein SMC_BlockSearchSavePos
in CFC.

Verwenden des Satzvorlaufs
Eine Instanz des Funktionsbausteins SMC_BlockSearch
muss in der gleichen Task wie die übrige Bahnvorverarbeitung aufgerufen werden, typischerweise direkt vor dem Funktionsbaustein SMC_CheckVelocities
. Wenn an bExecute
eine steigende Flanke anliegt, wird ein Satzvorlauf ausgeführt. Nach dem Start wird die gespeicherte Position angefahren und ab dieser Position die Bahn unverändert gefahren.
Deklarieren Sie in dem Programm, das die Bahnvorverarbeitung durchführt, eine Instanz des Funktionsbausteins
SMC_BlockSearch
.bs: SMC_BlockSearch;
Implementieren Sie das Triggern des Eingangs
bExecute
der Instanz vonSMC_BlockSearch
.Als Eingang
epos
des FunktionsbausteinsSMC_BlockSearch
muss die zuvor mittels des FunktionsbausteinsSMC_BlockSearchSavePos
gespeicherte Position übergeben werden.
PROGRAM CNC_PreparePath ... VAR bs: SMC_BlockSearch; END_VAR ... bs( ePos:=CNC.bssp.ePos , bExecute:=rncf.bExecuteDecoder , bAbort:= , bAppend:= , poqDataIn:=ncd.poqDataOut , bStartFromSavedPos:=CNC.bssp.bPositionStored , nSizeOutQueue:=SIZEOF(agiBufBlockSearch) , pbyBufferOutQueue:=ADR(agiBufBlockSearch) , bDone=> , bBusy=> , bError=> , wErrorID=> , poqDataOut=> );
Der Eingang bStartFromSavedPos
kann auch mit einer Steuervariablen beschaltet werden. Die Steuervariable kann nach einer Unterbrechung geschaltet werden, um an der letzten gespeicherten Position wieder fortzufahren.